diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3D.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3D.cdogscpn/campaign.json new file mode 100644 index 00000000..33a7f25e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3D.cdogscpn/campaign.json @@ -0,0 +1,18 @@ +{ + "Version": 16, + "Title": "Super 2D Noah's Ark", + "Author": "Wisdom Tree", + "Description": "", + "Ammo": true, + "WeaponPersist": true, + "SkipWeaponMenu": true, + "BuyAndSell": false, + "RandomPickups": false, + "DoorOpenTicks": 210, + "Lives": 1, + "MaxLives": 9, + "PlayerHP": 0, + "PlayerMaxHP": 0, + "PlayerExcessHP": 0, + "Missions": 0 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3D.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3D.cdogscpn/characters.json new file mode 100644 index 00000000..af9e4154 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3D.cdogscpn/characters.json @@ -0,0 +1,4 @@ +{ + "Version": 13, + "Characters": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3D.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3D.cdogscpn/missions.json new file mode 100644 index 00000000..61f8fc93 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3D.cdogscpn/missions.json @@ -0,0 +1,3 @@ +{ + "Missions": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/ammo.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/ammo.json new file mode 100644 index 00000000..1b35367a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/ammo.json @@ -0,0 +1,35 @@ +{ + "Version": 2, + "Ammo": [ + { + "Name": "Feed", + "Pic": { + "Type": "Normal", + "Pic": "small_feed_box" + }, + "Sound": "pickup", + "Amount": 5, + "Max": 299 + }, + { + "Name": "Cantaloupe", + "Pic": { + "Type": "Normal", + "Pic": "cantaloupes" + }, + "Sound": "pickup", + "Amount": 14, + "Max": 100 + }, + { + "Name": "Watermelon", + "Pic": { + "Type": "Normal", + "Pic": "watermelon" + }, + "Sound": "pickup", + "Amount": 5, + "Max": 100 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/bullets.json new file mode 100644 index 00000000..042503dc --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/bullets.json @@ -0,0 +1,241 @@ +{ + "Version": 5, + "Bullets": [ + { + "Name": "hand_feed", + "Power": 8, + "Hit": { + "Flesh": { + "Sound": "hand_feed" + } + }, + "Special": { + "Effect": "Petrify", + "Ticks": 30 + } + }, + { + "Name": "feed", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail", + "Width": 1.0 + }, + "OutOfRangeSpark": "spark_yellow", + "Hit": { + "Flesh": { + "Sound": "hits/food" + } + }, + "Speed": 35000, + "Range": 1, + "Power": 21, + "Mass": 0.1, + "Special": { + "Effect": "Petrify", + "Ticks": 30 + } + }, + { + "Name": "cantaloupe", + "Pic": { + "Type": "Animated", + "Sprites": "particles/cantaloupe", + "TicksPerFrame": 2 + }, + "Size": [4, 4], + "ShadowSize": [6, 4], + "SpeedLow": 500, + "SpeedHigh": 700, + "Range": 200, + "Power": 20, + "Mass": 1.0, + "Spark": "", + "Hit": { + "Flesh": {}, + "Wall": {} + }, + "HitGuns": ["cantaloupe_splat"], + "Falling": { + "GravityFactor": 1 + } + }, + { + "Name": "cantaloupe_splat", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "particles/spall3", + "TicksPerFrame": 6, + "Mask": "F08C60" + }, + "SpeedLow": 256, + "SpeedHigh": 512, + "SpeedScale": true, + "Range": 100, + "Power": 15, + "WallBounces": true, + "Hit": { + "Flesh": { + "Sound": "splat0" + }, + "Wall": { + "Sound": "splat0" + } + }, + "Falling": { + "GravityFactor": 4, + "DestroyOnDrop": true + } + }, + { + "Name": "watermelon", + "Pic": { + "Type": "Animated", + "Sprites": "grenade", + "Mask": "527A30" + }, + "Size": [8, 8], + "ShadowSize": [8, 6], + "Speed": 400, + "Range": 300, + "Power": 40, + "Mass": 4.0, + "Spark": "", + "Hit": { + "Flesh": {}, + "Wall": {} + }, + "HitGuns": ["watermelon_splat"], + "Falling": { + "GravityFactor": 1 + } + }, + { + "Name": "watermelon_splat", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "particles/spall2", + "TicksPerFrame": 6, + "Mask": "C63A4F" + }, + "SpeedLow": 256, + "SpeedHigh": 512, + "SpeedScale": true, + "Range": 100, + "Power": 20, + "WallBounces": true, + "Hit": { + "Flesh": { + "Sound": "splat1" + }, + "Wall": { + "Sound": "splat1" + } + }, + "Falling": { + "GravityFactor": 4, + "DestroyOnDrop": true + } + }, + { + "Name": "bullet_enemy", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail_spit", + "Width": 1.0 + }, + "Hit": { + "Flesh": { + "Sound": "hurt" + } + }, + "Speed": 35000, + "Range": 1, + "Power": 16, + "Mass": 0.1 + }, + { + "Name": "bullet_boss", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail_spit", + "Width": 1.5 + }, + "Hit": { + "Flesh": { + "Sound": "hurt" + } + }, + "Speed": 35000, + "Range": 1, + "Power": 24, + "Mass": 0.1 + }, + { + "Name": "bullet_quad", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail_spit", + "Width": 1.25 + }, + "Hit": { + "Flesh": { + "Sound": "hurt" + } + }, + "Speed": 35000, + "Range": 1, + "Power": 12, + "Mass": 0.1 + }, + { + "Name": "coconut", + "Pic": { + "Type": "Animated", + "Sprites": "grenade", + "TicksPerFrame": 2, + "Mask": "593519" + }, + "ShadowSize": [6, 4], + "Hit": { + "Flesh": { + "Sound": "hurt" + }, + "Wall": { + "Sound": "hits/splat0" + } + }, + "Speed": 800, + "Range": 70, + "Power": 45, + "Mass": 15.0, + "Size": [4, 4], + "Spark": "", + "Falling": { + "GravityFactor": 1 + } + }, + { + "Name": "goat_kick", + "Power": 22, + "Mass": 1.0, + "Hit": { + "Flesh": { + "Sound": "goat_kick" + } + } + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/campaign.json new file mode 100644 index 00000000..fbe7b587 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/campaign.json @@ -0,0 +1,17 @@ +{ + "Version": 16, + "Title": "Super 2D Noah's Ark", + "Author": "Wisdom Tree", + "Description": "", + "Ammo": true, + "SkipWeaponMenu": true, + "BuyAndSell": false, + "RandomPickups": false, + "DoorOpenTicks": 210, + "Lives": 0, + "MaxLives": 0, + "PlayerHP": 0, + "PlayerMaxHP": 0, + "PlayerExcessHP": 0, + "Missions": 1 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/character_classes.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/character_classes.json new file mode 100644 index 00000000..4c918ca9 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/character_classes.json @@ -0,0 +1,215 @@ +{ + "Version": 2, + "Characters": [ + { + "Name": "Noah", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Sounds": "man", + "BloodColor": "00ccff" + }, + { + "Name": "Naamah", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/lady" + }, + "Sounds": "woman", + "BloodColor": "00ccff" + }, + { + "Name": "Sheep", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/sheep" + }, + "Body": "sheep", + "Sounds": "sheep", + "Footsteps": "sheep", + "Corpse": "sheep_sleep", + "BloodColor": "00000000", + "HasHair": false, + "HasFacehair": false, + "HasHat": false, + "HasGlasses": false + }, + { + "Name": "Goat", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/sheep" + }, + "Body": "sheep", + "Sounds": "sheep", + "Footsteps": "sheep", + "Corpse": "goat_sleep", + "BloodColor": "00000000", + "HasHair": false, + "HasFacehair": false, + "HasHat": false, + "HasGlasses": false + }, + { + "Name": "Antelope", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/sheep" + }, + "Body": "antelope", + "Sounds": "antelope", + "Footsteps": "sheep", + "Corpse": "antelope_sleep", + "BloodColor": "00000000", + "HasHair": false, + "HasFacehair": false, + "HasHat": true, + "HasGlasses": false + }, + { + "Name": "Ostrich", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/ostrich" + }, + "Body": "ostrich", + "Sounds": "ostrich", + "Footsteps": "wood", + "Corpse": "ostrich_sleep", + "BloodColor": "00000000", + "HasHair": false, + "HasFacehair": false, + "HasHat": false, + "HasGlasses": false + }, + { + "Name": "Ox", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/sheep" + }, + "Body": "antelope", + "Sounds": "ox", + "Footsteps": "sheep", + "Corpse": "ox_sleep", + "BloodColor": "00000000", + "HasHair": false, + "HasFacehair": true, + "HasHat": true, + "HasGlasses": false + }, + { + "Name": "Camel", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/sheep" + }, + "Body": "camel", + "Sounds": "camel", + "Footsteps": "camel", + "Corpse": "camel_sleep", + "BloodColor": "00000000", + "HasHair": false, + "HasFacehair": false, + "HasHat": false, + "HasGlasses": false + }, + { + "Name": "Giraffe", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/sheep" + }, + "Body": "giraffe", + "Sounds": "giraffe", + "Footsteps": "camel", + "Corpse": "giraffe_sleep", + "BloodColor": "00000000", + "HasHair": false, + "HasFacehair": false, + "HasHat": true, + "HasGlasses": false + }, + { + "Name": "Bush Bear", + "Vehicle": true, + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/bear" + }, + "Body": "bearbush", + "DeathSprites": "bush_explosion", + "Sounds": "bear", + "Footsteps": "bear", + "Corpse": "tree_wreck", + "BloodColor": "00000000", + "HasHair": true, + "HasFacehair": false, + "HasHat": false, + "HasGlasses": false + }, + { + "Name": "Bear", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/bear" + }, + "Body": "elephant", + "Sounds": "bear", + "Footsteps": "bear", + "Corpse": "bear_sleep", + "BloodColor": "00000000", + "HasHair": true, + "HasFacehair": false, + "HasHat": false, + "HasGlasses": false + }, + { + "Name": "Monkey", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/monkey" + }, + "Body": "monkey", + "Sounds": "monkey", + "Corpse": "monkey_sleep", + "BloodColor": "00000000", + "HasHair": false, + "HasFacehair": false, + "HasHat": false, + "HasGlasses": false + }, + { + "Name": "Kangaroo", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/seal" + }, + "Body": "kangaroo", + "Sounds": "kangaroo", + "Footsteps": "kangaroo", + "BloodColor": "00000000", + "HasHair": false, + "HasFacehair": false, + "HasHat": true, + "HasGlasses": false + }, + { + "Name": "Elephant", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/elephant" + }, + "Body": "elephant", + "Sounds": "elephant", + "Footsteps": "mech", + "Corpse": "elephant_sleep", + "BloodColor": "00000000", + "HasHair": false, + "HasFacehair": true, + "HasHat": true, + "HasGlasses": false + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/characters.json new file mode 100644 index 00000000..ac4d796c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/characters.json @@ -0,0 +1,450 @@ +{ + "Version": 14, + "Characters": [ + { + "Class": "Noah", + "PlayerTemplateName": "Noah", + "FacehairType": "beard", + "Skin": "ffb26aff", + "Arms": "a94fffff", + "Body": "a94fffff", + "Legs": "3144f7ff", + "Hair": "fff7efff", + "Feet": "744815ff", + "Facehair": "fcfcfcff", + "Hat": "fc7e04ff", + "Glasses": "fc7e04ff", + "speed": 256, + "Gun": "Small Launcher", + "maxHealth": 40, + "excessHealth": 80, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }, + { + "Class": "Sheep", + "HairType": "sheep", + "Skin": "fabf4eff", + "Arms": "db9642ff", + "Body": "de9b4bff", + "Legs": "e2964dff", + "Hair": "f7f3f3ff", + "Feet": "1e1a1aff", + "Facehair": "9a9a9aff", + "Hat": "9a9a9aff", + "Glasses": "9a9a9aff", + "speed": 193, + "Gun": "Sheep Spit", + "maxHealth": 25, + "excessHealth": 50, + "flags": 128, + "probabilityToMove": 52, + "probabilityToTrack": 42, + "probabilityToShoot": 13, + "actionDelay": 15 + }, + { + "Class": "Goat", + "HatType": "horns", + "Skin": "515151ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "565555ff", + "Feet": "090909ff", + "Facehair": "565555ff", + "Hat": "d29216ff", + "Glasses": "565555ff", + "speed": 386, + "Gun": "Goat Kick", + "maxHealth": 1, + "excessHealth": 2, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 68, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Ostrich", + "Skin": "ffc8a6ff", + "Arms": "5151f7ff", + "Body": "2e2e2eff", + "Legs": "e28020ff", + "Hair": "ff77eaff", + "Feet": "404040ff", + "Facehair": "ff1709ff", + "Hat": "ff2a00ff", + "Glasses": "ff1709ff", + "speed": 330, + "Gun": "Sheep Spit", + "maxHealth": 100, + "excessHealth": 100, + "flags": 128, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 12, + "actionDelay": 15 + }, + { + "Class": "Antelope", + "HatType": "horns", + "Skin": "ffa83bff", + "Arms": "0b2effff", + "Body": "041af5ff", + "Legs": "0c06fcff", + "Hair": "af7c2cff", + "Feet": "404040ff", + "Facehair": "181effff", + "Hat": "331a06ff", + "Glasses": "181effff", + "speed": 258, + "Gun": "Antelope Spit", + "maxHealth": 160, + "excessHealth": 200, + "flags": 128, + "probabilityToMove": 50, + "probabilityToTrack": 41, + "probabilityToShoot": 12, + "actionDelay": 15 + }, + { + "Class": "Ox", + "FacehairType": "nosering", + "HatType": "horns", + "Skin": "b1adadff", + "Arms": "093f00ff", + "Body": "003f06ff", + "Legs": "003c08ff", + "Hair": "aaaaaaff", + "Feet": "404040ff", + "Facehair": "000000ff", + "Hat": "22e0e7ff", + "Glasses": "000000ff", + "speed": 194, + "Gun": "Antelope Spit", + "maxHealth": 100, + "excessHealth": 110, + "flags": 128, + "probabilityToMove": 50, + "probabilityToTrack": 42, + "probabilityToShoot": 12, + "actionDelay": 5 + }, + { + "Class": "Ogre", + "Skin": "00ff00ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "000000ff", + "Feet": "404040ff", + "Facehair": "404040ff", + "Hat": "404040ff", + "Glasses": "404040ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "excessHealth": 80, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "00ff00ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "000000ff", + "Feet": "404040ff", + "Facehair": "404040ff", + "Hat": "404040ff", + "Glasses": "404040ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "excessHealth": 80, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "00ff00ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "000000ff", + "Feet": "404040ff", + "Facehair": "404040ff", + "Hat": "404040ff", + "Glasses": "404040ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "excessHealth": 80, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "00ff00ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "000000ff", + "Feet": "404040ff", + "Facehair": "404040ff", + "Hat": "404040ff", + "Glasses": "404040ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "excessHealth": 80, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }, + { + "Class": "Camel", + "Skin": "f5921dff", + "Arms": "0c08f0ff", + "Body": "0016ffff", + "Legs": "fc9b08ff", + "Hair": "bf7f00ff", + "Feet": "f79722ff", + "Facehair": "fcfa0aff", + "Hat": "fcfa0aff", + "Glasses": "fcfa0aff", + "speed": 192, + "Gun": "Double Spit", + "maxHealth": 1000, + "excessHealth": 2000, + "flags": 29824, + "Drop": "keys/plain/yellow", + "probabilityToMove": 30, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Giraffe", + "HatType": "ossicone", + "Skin": "e09323ff", + "Arms": "f7f5f5ff", + "Body": "fffafaff", + "Legs": "fffcfcff", + "Hair": "542703ff", + "Feet": "170606ff", + "Facehair": "fcfcfcff", + "Hat": "5b2901ff", + "Glasses": "fcfcfcff", + "speed": 192, + "Gun": "Double Spit", + "maxHealth": 1250, + "excessHealth": 2500, + "flags": 29824, + "Drop": "keys/plain/yellow", + "probabilityToMove": 40, + "probabilityToTrack": 30, + "probabilityToShoot": 52, + "actionDelay": 40 + }, + { + "Class": "Bush Bear", + "Skin": "7e5020ff", + "Arms": "830000ff", + "Body": "9c5e2eff", + "Legs": "583715ff", + "Hair": "5f3514ff", + "Feet": "856226ff", + "Facehair": "000000ff", + "Hat": "000000ff", + "Glasses": "000000ff", + "speed": 192, + "Gun": "Quad Spit", + "maxHealth": 1000, + "excessHealth": 2000, + "flags": 25728, + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Bear", + "Skin": "7e5020ff", + "Arms": "830000ff", + "Body": "9c5e2eff", + "Legs": "583715ff", + "Hair": "5f3514ff", + "Feet": "856226ff", + "Facehair": "000000ff", + "Hat": "000000ff", + "Glasses": "000000ff", + "speed": 327, + "Gun": "Double Spit", + "maxHealth": 750, + "excessHealth": 1500, + "flags": 25728, + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 80, + "actionDelay": 40 + }, + { + "Class": "Monkey", + "Skin": "ffbb63ff", + "Arms": "85510fff", + "Body": "ffbb63ff", + "Legs": "85510fff", + "Hair": "85510fff", + "Feet": "ffbb63ff", + "Facehair": "ffededff", + "Hat": "ffededff", + "Glasses": "ffededff", + "speed": 256, + "Gun": "Coconuts", + "maxHealth": 1000, + "excessHealth": 2000, + "flags": 25728, + "Drop": "keys/plain/yellow", + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Kangaroo", + "HatType": "bunny", + "Skin": "e5b049ff", + "Arms": "cb8d2eff", + "Body": "cb9225ff", + "Legs": "c68e22ff", + "Hair": "af8229ff", + "Feet": "d78727ff", + "Facehair": "fcfa0aff", + "Hat": "fcd108ff", + "Glasses": "fcfa0aff", + "speed": 194, + "Gun": "Coconuts", + "maxHealth": 1000, + "excessHealth": 2000, + "flags": 25728, + "Drop": "keys/plain/yellow", + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Elephant", + "FacehairType": "trusks", + "HatType": "ele_ears", + "Skin": "9c9898ff", + "Arms": "ffbf5fff", + "Body": "ffc26aff", + "Legs": "ffb965ff", + "Hair": "9c9b9aff", + "Feet": "e0ae33ff", + "Facehair": "ffd073ff", + "Hat": "bdbcbbff", + "Glasses": "ffd073ff", + "speed": 192, + "Gun": "Coconuts and Spit", + "maxHealth": 1000, + "excessHealth": 2000, + "flags": 25728, + "Drop": "keys/plain/yellow", + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Naamah", + "PlayerTemplateName": "Naamah", + "HairType": "long", + "Skin": "ffb26aff", + "Arms": "ff412aff", + "Body": "ff352aff", + "Legs": "ff372bff", + "Hair": "fff7efff", + "Feet": "744815ff", + "Facehair": "fcfcfcff", + "Hat": "fc7e04ff", + "Glasses": "fc7e04ff", + "speed": 256, + "Gun": "Small Launcher", + "maxHealth": 40, + "excessHealth": 80, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }, + { + "Class": "Noah", + "PlayerTemplateName": "Utnapishtim", + "HairType": "ponytail", + "FacehairType": "dutch", + "Skin": "ffb26aff", + "Arms": "ffad4bff", + "Body": "23e0ffff", + "Legs": "9f5d2aff", + "Hair": "fff7efff", + "Feet": "faa23fff", + "Facehair": "fcfcfcff", + "Hat": "fc7e04ff", + "Glasses": "fc7e04ff", + "speed": 256, + "Gun": "Small Launcher", + "maxHealth": 40, + "excessHealth": 80, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }, + { + "Class": "Noah", + "PlayerTemplateName": "Ziusudra", + "HairType": "long", + "FacehairType": "beard", + "HatType": "beret", + "Skin": "ffb26aff", + "Arms": "fcfcfcff", + "Body": "ff6316ff", + "Legs": "ff6023ff", + "Hair": "fff7efff", + "Feet": "744815ff", + "Facehair": "fcfcfcff", + "Hat": "ffb96eff", + "Glasses": "fc7e04ff", + "speed": 256, + "Gun": "Small Launcher", + "maxHealth": 40, + "excessHealth": 80, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/antelope_sleep_16x10.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/antelope_sleep_16x10.png new file mode 100644 index 00000000..bdab039e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/antelope_sleep_16x10.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/apple.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/apple.png new file mode 100644 index 00000000..a4f8dedb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/apple.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/apple.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/apple.txt new file mode 100644 index 00000000..04249193 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/apple.txt @@ -0,0 +1,5 @@ +Adapted from CC0 Food Icons +By bluecarrot16 +https://opengameart.org/content/cc0-food-icons + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/banana.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/banana.png new file mode 100644 index 00000000..d7c0392b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/banana.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/bandage.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/bandage.png new file mode 100644 index 00000000..b92f3edc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/bandage.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/bandage_big.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/bandage_big.png new file mode 100644 index 00000000..e36bbfc0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/bandage_big.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/beam.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/beam.png new file mode 100644 index 00000000..71e421af Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/beam.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/bear_sleep_20x16.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/bear_sleep_20x16.png new file mode 100644 index 00000000..9df471ab Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/bear_sleep_20x16.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/birdcage.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/birdcage.png new file mode 100644 index 00000000..207a7411 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/birdcage.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/birdcage.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/birdcage.txt new file mode 100644 index 00000000..63908a1d --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/birdcage.txt @@ -0,0 +1,4 @@ +Adapted from Misc. Dark Fantasy Scenery Sprites by ETTiNGRiNDER +https://opengameart.org/content/misc-dark-fantasy-scenery-sprites + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/cage.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/cage.png new file mode 100644 index 00000000..f8924e35 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/cage.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/camel_sleep_16x10.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/camel_sleep_16x10.png new file mode 100644 index 00000000..debcb0b3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/camel_sleep_16x10.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/candle_14x30.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/candle_14x30.png new file mode 100644 index 00000000..0981394d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/candle_14x30.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/cantaloupe_8x8.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/cantaloupe_8x8.png new file mode 100644 index 00000000..3bd811ed Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/cantaloupe_8x8.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/cantaloupe_feeder.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/cantaloupe_feeder.png new file mode 100644 index 00000000..d99d48a1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/cantaloupe_feeder.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/cantaloupes.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/cantaloupes.png new file mode 100644 index 00000000..50a91e38 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/cantaloupes.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chandelier.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chandelier.png new file mode 100644 index 00000000..4fd2434a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chandelier.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/data.json new file mode 100644 index 00000000..728a7ed3 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/data.json @@ -0,0 +1,65 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "gun_l", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 12]], + "idle": [[0, 12]], + "run": [ + [0, 12], + [0, 11], + [0, 11], + [0, 12], + [0, 12], + [0, 13], + [0, 13], + [0, 12] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [ + [0, 7], + [0, 6], + [0, 5], + [0, 6], + [0, 7], + [0, 6], + [0, 5], + [0, 6] + ] + } + }, + "Dir": { + "Head": [ + [0, -3], + [4, -3], + [6, 0], + [6, 4], + [0, 6], + [-6, 4], + [-7, 0], + [-5, -3] + ] + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/legs_idle_24x24.png new file mode 100644 index 00000000..2f6db470 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/legs_run_24x24.png new file mode 100644 index 00000000..68b48f6d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/src.blend new file mode 100644 index 00000000..a52e3bed Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/src.txt new file mode 100644 index 00000000..1481b855 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/src.txt @@ -0,0 +1,4 @@ +Adapted from Animated Animales Low Poly +by quaternius +https://opengameart.org/content/animated-animales-low-poly +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/upper_idle_24x24.png new file mode 100644 index 00000000..7339ad4a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..3b834bd0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/upper_run_24x24.png new file mode 100644 index 00000000..a1f081aa Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/upper_run_handgun_24x24.png new file mode 100644 index 00000000..a1f081aa Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/antelope/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/data.json new file mode 100644 index 00000000..66d75de7 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/data.json @@ -0,0 +1,42 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "head", "body"], + ["gun_r", "gun_l", "legs", "head", "body"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "gun_l", "body", "head"], + ["gun_r", "gun_l", "legs", "head", "body"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 2]], + "idle": [[0, 2]], + "run": [ + [0, 2], [0, 1], [0, 1], [0, 2], [0, 2], [0, 3], [0, 3], [0, 2] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 6], [0, 5], [0, 6], [0, 7], [0, 6], [0, 5], [0, 6]] + } + }, + "Dir": { + "Head": [ + [-1, -12], [8, -11], [11, -7], [8, -2], [0, 0], [-8, -2], [-10, -6], [-8, -10] + ] + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/legs_idle_30x30.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/legs_idle_30x30.png new file mode 100644 index 00000000..53a02528 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/legs_idle_30x30.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/legs_run_30x30.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/legs_run_30x30.png new file mode 100644 index 00000000..46fae300 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/legs_run_30x30.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/src.blend new file mode 100644 index 00000000..61ef3ba5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/src.txt new file mode 100644 index 00000000..1481b855 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/src.txt @@ -0,0 +1,4 @@ +Adapted from Animated Animales Low Poly +by quaternius +https://opengameart.org/content/animated-animales-low-poly +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/upper_idle_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/upper_idle_32x32.png new file mode 100644 index 00000000..2fa552a1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/upper_idle_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/upper_idle_handgun_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/upper_idle_handgun_32x32.png new file mode 100644 index 00000000..2fa552a1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/upper_idle_handgun_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/upper_run_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/upper_run_32x32.png new file mode 100644 index 00000000..bbbdacd5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/upper_run_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/upper_run_handgun_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/upper_run_handgun_32x32.png new file mode 100644 index 00000000..bbbdacd5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/bearbush/upper_run_handgun_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/data.json new file mode 100644 index 00000000..62618b7f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/data.json @@ -0,0 +1,42 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "gun_l", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 8]], + "idle": [[0, 8]], + "run": [ + [0, 8], [0, 7], [0, 7], [0, 8], [0, 8], [0, 9], [0, 9], [0, 8] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 6], [0, 5], [0, 6], [0, 7], [0, 6], [0, 5], [0, 6]] + } + }, + "Dir": { + "Head": [ + [-1, -15], [11, -12], [15, -7], [12, 3], [0, 6], [-12, 3], [-16, -6], [-12, -12] + ] + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/legs_idle_30x30.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/legs_idle_30x30.png new file mode 100644 index 00000000..53a02528 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/legs_idle_30x30.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/legs_run_30x30.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/legs_run_30x30.png new file mode 100644 index 00000000..46fae300 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/legs_run_30x30.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/src.blend new file mode 100644 index 00000000..054e22da Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/src.txt new file mode 100644 index 00000000..1481b855 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/src.txt @@ -0,0 +1,4 @@ +Adapted from Animated Animales Low Poly +by quaternius +https://opengameart.org/content/animated-animales-low-poly +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/upper_idle_30x30.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/upper_idle_30x30.png new file mode 100644 index 00000000..ae63d631 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/upper_idle_30x30.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/upper_idle_handgun_30x30.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/upper_idle_handgun_30x30.png new file mode 100644 index 00000000..ae63d631 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/upper_idle_handgun_30x30.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/upper_run_30x30.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/upper_run_30x30.png new file mode 100644 index 00000000..50b5f6cb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/upper_run_30x30.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/upper_run_handgun_30x30.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/upper_run_handgun_30x30.png new file mode 100644 index 00000000..50b5f6cb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/camel/upper_run_handgun_30x30.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/data.json new file mode 100644 index 00000000..66d75de7 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/data.json @@ -0,0 +1,42 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "head", "body"], + ["gun_r", "gun_l", "legs", "head", "body"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "gun_l", "body", "head"], + ["gun_r", "gun_l", "legs", "head", "body"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 2]], + "idle": [[0, 2]], + "run": [ + [0, 2], [0, 1], [0, 1], [0, 2], [0, 2], [0, 3], [0, 3], [0, 2] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 6], [0, 5], [0, 6], [0, 7], [0, 6], [0, 5], [0, 6]] + } + }, + "Dir": { + "Head": [ + [-1, -12], [8, -11], [11, -7], [8, -2], [0, 0], [-8, -2], [-10, -6], [-8, -10] + ] + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/legs_idle_30x30.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/legs_idle_30x30.png new file mode 100644 index 00000000..53a02528 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/legs_idle_30x30.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/legs_run_30x30.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/legs_run_30x30.png new file mode 100644 index 00000000..46fae300 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/legs_run_30x30.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/src.blend new file mode 100644 index 00000000..61ef3ba5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/src.txt new file mode 100644 index 00000000..1481b855 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/src.txt @@ -0,0 +1,4 @@ +Adapted from Animated Animales Low Poly +by quaternius +https://opengameart.org/content/animated-animales-low-poly +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/upper_idle_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/upper_idle_32x32.png new file mode 100644 index 00000000..38822a44 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/upper_idle_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/upper_idle_handgun_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/upper_idle_handgun_32x32.png new file mode 100644 index 00000000..38822a44 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/upper_idle_handgun_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/upper_run_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/upper_run_32x32.png new file mode 100644 index 00000000..f0c38f0d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/upper_run_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/upper_run_handgun_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/upper_run_handgun_32x32.png new file mode 100644 index 00000000..f0c38f0d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/elephant/upper_run_handgun_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/data.json new file mode 100644 index 00000000..667bb89c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/data.json @@ -0,0 +1,65 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "gun_l", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 17]], + "idle": [[0, 17]], + "run": [ + [0, 17], + [0, 16], + [0, 16], + [0, 17], + [0, 17], + [0, 18], + [0, 18], + [0, 17] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [ + [0, 7], + [0, 6], + [0, 5], + [0, 6], + [0, 7], + [0, 6], + [0, 5], + [0, 6] + ] + } + }, + "Dir": { + "Head": [ + [0, -3], + [7, -3], + [11, 0], + [10, 5], + [0, 6], + [-10, 5], + [-12, 0], + [-7, -3] + ] + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/legs_idle_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/legs_idle_32x32.png new file mode 100644 index 00000000..cb80d3ed Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/legs_idle_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/legs_run_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/legs_run_32x32.png new file mode 100644 index 00000000..ac0d09b0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/legs_run_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/src.blend new file mode 100644 index 00000000..aa32439c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/src.txt new file mode 100644 index 00000000..1481b855 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/src.txt @@ -0,0 +1,4 @@ +Adapted from Animated Animales Low Poly +by quaternius +https://opengameart.org/content/animated-animales-low-poly +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/upper_idle_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/upper_idle_32x32.png new file mode 100644 index 00000000..7e9141e1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/upper_idle_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/upper_idle_handgun_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/upper_idle_handgun_32x32.png new file mode 100644 index 00000000..7e9141e1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/upper_idle_handgun_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/upper_run_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/upper_run_32x32.png new file mode 100644 index 00000000..0bb7b071 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/giraffe/upper_run_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/data.json new file mode 100644 index 00000000..ffe871ba --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/data.json @@ -0,0 +1,37 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "gun_l", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 11]], + "idle": [[0, 11]], + "run": [ + [0, 13], [0, 11], [0, 10], [0, 11], [0, 13], [0, 11], [0, 10], [0, 11] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 6], [0, 5], [0, 6], [0, 7], [0, 6], [0, 5], [0, 6]] + } + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/legs_idle_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/legs_idle_32x32.png new file mode 100644 index 00000000..7f5a3032 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/legs_idle_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/legs_run_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/legs_run_32x32.png new file mode 100644 index 00000000..59706f63 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/legs_run_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/src.blend new file mode 100644 index 00000000..25fb7c8b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/src.txt new file mode 100644 index 00000000..6d424eab --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/src.txt @@ -0,0 +1,4 @@ +Adapted from Sprite Base Model +by Wind astella +http://opengameart.org/content/sprite-base-model +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/upper_idle_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/upper_idle_32x32.png new file mode 100644 index 00000000..73a3f142 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/upper_idle_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/upper_idle_handgun_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/upper_idle_handgun_32x32.png new file mode 100644 index 00000000..30c5a279 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/upper_idle_handgun_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/upper_run_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/upper_run_32x32.png new file mode 100644 index 00000000..197f794c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/upper_run_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/upper_run_handgun_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/upper_run_handgun_32x32.png new file mode 100644 index 00000000..197f794c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/kangaroo/upper_run_handgun_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/data.json new file mode 100644 index 00000000..59618f94 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/data.json @@ -0,0 +1,37 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "gun_l", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 11]], + "idle": [[0, 11]], + "run": [ + [0, 12], [0, 11], [0, 10], [0, 11], [0, 12], [0, 11], [0, 10], [0, 11] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 6], [0, 5], [0, 6], [0, 7], [0, 6], [0, 5], [0, 6]] + } + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/legs_idle_24x24.png new file mode 100644 index 00000000..f60aefdd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/legs_idle_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/legs_idle_32x32.png new file mode 100644 index 00000000..8e009222 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/legs_idle_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/legs_run_24x24.png new file mode 100644 index 00000000..d9af3c0a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/legs_run_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/legs_run_32x32.png new file mode 100644 index 00000000..6645e407 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/legs_run_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/src.blend new file mode 100644 index 00000000..8acbda08 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/src.txt new file mode 100644 index 00000000..6d424eab --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/src.txt @@ -0,0 +1,4 @@ +Adapted from Sprite Base Model +by Wind astella +http://opengameart.org/content/sprite-base-model +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_idle_24x24.png new file mode 100644 index 00000000..869bf802 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_idle_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_idle_32x32.png new file mode 100644 index 00000000..aee3d3a4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_idle_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..061163be Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_idle_handgun_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_idle_handgun_32x32.png new file mode 100644 index 00000000..e4f036d7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_idle_handgun_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_run_24x24.png new file mode 100644 index 00000000..11983fe3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_run_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_run_32x32.png new file mode 100644 index 00000000..9cfca64c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_run_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_run_handgun_24x24.png new file mode 100644 index 00000000..a273bad4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_run_handgun_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_run_handgun_32x32.png new file mode 100644 index 00000000..7a6dd61f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/monkey/upper_run_handgun_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/data.json new file mode 100644 index 00000000..4f907583 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/data.json @@ -0,0 +1,65 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "gun_l", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 17]], + "idle": [[0, 17]], + "run": [ + [0, 17], + [0, 17], + [0, 16], + [0, 17], + [0, 17], + [0, 17], + [0, 16], + [0, 17] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [ + [0, 7], + [0, 6], + [0, 5], + [0, 6], + [0, 7], + [0, 6], + [0, 5], + [0, 6] + ] + } + }, + "Dir": { + "Head": [ + [1, -1], + [2, 0], + [4, 0], + [2, 0], + [1, 1], + [-1, 0], + [-2, 0], + [-1, 0] + ] + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/legs_idle_24x24.png new file mode 100644 index 00000000..a2707de6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/legs_run_24x24.png new file mode 100644 index 00000000..fc105284 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/src.blend new file mode 100644 index 00000000..2d3a0b1b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/src.txt new file mode 100644 index 00000000..6d424eab --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/src.txt @@ -0,0 +1,4 @@ +Adapted from Sprite Base Model +by Wind astella +http://opengameart.org/content/sprite-base-model +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/upper_idle_24x24.png new file mode 100644 index 00000000..6b2de1c2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..6b2de1c2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/upper_run_24x24.png new file mode 100644 index 00000000..8aebf4a4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/upper_run_handgun_24x24.png new file mode 100644 index 00000000..8aebf4a4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/ostrich/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/data.json new file mode 100644 index 00000000..5cc11240 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/data.json @@ -0,0 +1,42 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "gun_l", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 8]], + "idle": [[0, 8]], + "run": [ + [0, 8], [0, 7], [0, 7], [0, 8], [0, 8], [0, 9], [0, 9], [0, 8] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 6], [0, 5], [0, 6], [0, 7], [0, 6], [0, 5], [0, 6]] + } + }, + "Dir": { + "Head": [ + [0, -3], [4, -3], [6, 0], [6, 4], [0, 6], [-6, 4], [-7, 0], [-5, -3] + ] + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/legs_idle_24x24.png new file mode 100644 index 00000000..b5e41ab3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/legs_run_24x24.png new file mode 100644 index 00000000..ec0d5083 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/src.blend new file mode 100644 index 00000000..0b85e453 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/src.txt new file mode 100644 index 00000000..1481b855 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/src.txt @@ -0,0 +1,4 @@ +Adapted from Animated Animales Low Poly +by quaternius +https://opengameart.org/content/animated-animales-low-poly +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/upper_idle_24x24.png new file mode 100644 index 00000000..9ebe338e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..b8b4eba4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/upper_run_24x24.png new file mode 100644 index 00000000..b8eb7763 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/upper_run_handgun_24x24.png new file mode 100644 index 00000000..3335a73c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bodies/sheep/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bush_explosion_96x96.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bush_explosion_96x96.png new file mode 100644 index 00000000..2491b6ed Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/bush_explosion_96x96.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/facehairs/nosering_12x12.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/facehairs/nosering_12x12.png new file mode 100644 index 00000000..4cabd32e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/facehairs/nosering_12x12.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/facehairs/trusks_12x20.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/facehairs/trusks_12x20.png new file mode 100644 index 00000000..35431038 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/facehairs/trusks_12x20.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/guns/cantaloupe_feeder_30x22.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/guns/cantaloupe_feeder_30x22.png new file mode 100644 index 00000000..7dc41a9c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/guns/cantaloupe_feeder_30x22.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/guns/large_launcher_30x22.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/guns/large_launcher_30x22.png new file mode 100644 index 00000000..9a0b0e0d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/guns/large_launcher_30x22.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/guns/small_launcher_30x22.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/guns/small_launcher_30x22.png new file mode 100644 index 00000000..70e0bb69 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/guns/small_launcher_30x22.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/guns/super_feeder_30x22.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/guns/super_feeder_30x22.png new file mode 100644 index 00000000..422ab51c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/guns/super_feeder_30x22.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/hairs/sheep_12x11.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/hairs/sheep_12x11.png new file mode 100644 index 00000000..e200b72e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/hairs/sheep_12x11.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/hats/ele_ears_28x20.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/hats/ele_ears_28x20.png new file mode 100644 index 00000000..c9ffad7d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/hats/ele_ears_28x20.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/hats/ossicone_12x11.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/hats/ossicone_12x11.png new file mode 100644 index 00000000..44afcacc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/hats/ossicone_12x11.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/heads/bear_12x20.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/heads/bear_12x20.png new file mode 100644 index 00000000..bf423546 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/heads/bear_12x20.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/heads/elephant_12x20.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/heads/elephant_12x20.png new file mode 100644 index 00000000..84b22a3b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/heads/elephant_12x20.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/heads/monkey_12x12.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/heads/monkey_12x12.png new file mode 100644 index 00000000..2956787e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/heads/monkey_12x12.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/heads/ostrich_12x10.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/heads/ostrich_12x10.png new file mode 100644 index 00000000..00f3dd99 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/heads/ostrich_12x10.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/heads/sheep_12x11.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/heads/sheep_12x11.png new file mode 100644 index 00000000..84d71c55 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/chars/heads/sheep_12x11.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/closet.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/closet.png new file mode 100644 index 00000000..8b67519b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/closet.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/closet_fruit.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/closet_fruit.png new file mode 100644 index 00000000..aca34f3f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/closet_fruit.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/closets.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/closets.png new file mode 100644 index 00000000..3fc8be45 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/closets.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/curtain.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/curtain.txt new file mode 100644 index 00000000..7d574586 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/curtain.txt @@ -0,0 +1,4 @@ +Adapted from Dungeon Tileset +By Calciumtrice +https://opengameart.org/content/dungeon-tileset-1 +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/curtain_blue.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/curtain_blue.png new file mode 100644 index 00000000..3d7201ef Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/curtain_blue.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/curtain_red.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/curtain_red.png new file mode 100644 index 00000000..9a0c5a78 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/curtain_red.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/curtain_yellow.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/curtain_yellow.png new file mode 100644 index 00000000..e06ee572 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/curtain_yellow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/duck_picture.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/duck_picture.png new file mode 100644 index 00000000..f704c725 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/duck_picture.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/elephant_sleep_20x16.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/elephant_sleep_20x16.png new file mode 100644 index 00000000..8b6cf65d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/elephant_sleep_20x16.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/giraffe_sleep_16x16.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/giraffe_sleep_16x16.png new file mode 100644 index 00000000..05dd32b9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/giraffe_sleep_16x16.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/goat_sleep_16x10.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/goat_sleep_16x10.png new file mode 100644 index 00000000..3508cfd4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/goat_sleep_16x10.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/grapes.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/grapes.png new file mode 100644 index 00000000..572ba845 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/grapes.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/grapes.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/grapes.txt new file mode 100644 index 00000000..04249193 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/grapes.txt @@ -0,0 +1,5 @@ +Adapted from CC0 Food Icons +By bluecarrot16 +https://opengameart.org/content/cc0-food-icons + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/hand_feed.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/hand_feed.png new file mode 100644 index 00000000..8b0566cc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/hand_feed.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/large_feed_box.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/large_feed_box.png new file mode 100644 index 00000000..8254f4a2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/large_feed_box.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/large_launcher.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/large_launcher.png new file mode 100644 index 00000000..be657ffc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/large_launcher.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/lattice_broken.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/lattice_broken.png new file mode 100644 index 00000000..df938205 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/lattice_broken.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/map.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/map.png new file mode 100644 index 00000000..4a7e1530 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/map.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/monkey_portrait.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/monkey_portrait.png new file mode 100644 index 00000000..16b42653 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/monkey_portrait.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/monkey_sleep_16x10.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/monkey_sleep_16x10.png new file mode 100644 index 00000000..0dcfdeec Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/monkey_sleep_16x10.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/naamah_portrait.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/naamah_portrait.png new file mode 100644 index 00000000..0c2234ad Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/naamah_portrait.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/noah_flag.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/noah_flag.png new file mode 100644 index 00000000..6fbc875a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/noah_flag.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/noah_portrait.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/noah_portrait.png new file mode 100644 index 00000000..6f91a104 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/noah_portrait.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/orange.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/orange.png new file mode 100644 index 00000000..519d17cf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/orange.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/orange.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/orange.txt new file mode 100644 index 00000000..04249193 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/orange.txt @@ -0,0 +1,5 @@ +Adapted from CC0 Food Icons +By bluecarrot16 +https://opengameart.org/content/cc0-food-icons + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/ostrich_sleep_16x10.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/ostrich_sleep_16x10.png new file mode 100644 index 00000000..5534aac1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/ostrich_sleep_16x10.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/ox_sleep_16x10.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/ox_sleep_16x10.png new file mode 100644 index 00000000..ee06e01a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/ox_sleep_16x10.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/particles/cantaloupe_8x8.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/particles/cantaloupe_8x8.png new file mode 100644 index 00000000..f0ac3b0d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/particles/cantaloupe_8x8.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/particles/trail_spit.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/particles/trail_spit.txt new file mode 100644 index 00000000..61b0a943 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/particles/trail_spit.txt @@ -0,0 +1,4 @@ +Adapted from 2D Shooter Effects (Alpha version) +By Tatermand +https://opengameart.org/content/2d-shooter-effects-alpha-version +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/particles/trail_spit_3x38.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/particles/trail_spit_3x38.png new file mode 100644 index 00000000..27980543 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/particles/trail_spit_3x38.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/pillar.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/pillar.png new file mode 100644 index 00000000..44c7df33 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/pillar.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/pillar2.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/pillar2.png new file mode 100644 index 00000000..2c49c429 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/pillar2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/pillar_candle_16x31.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/pillar_candle_16x31.png new file mode 100644 index 00000000..fb68189d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/pillar_candle_16x31.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/scroll.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/scroll.png new file mode 100644 index 00000000..9b87a390 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/scroll.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/shadow.png new file mode 100644 index 00000000..ea400727 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/sheep_sleep_16x10.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/sheep_sleep_16x10.png new file mode 100644 index 00000000..00f2f001 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/sheep_sleep_16x10.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/small_feed_box.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/small_feed_box.png new file mode 100644 index 00000000..8efb4773 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/small_feed_box.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/small_launcher.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/small_launcher.png new file mode 100644 index 00000000..d4756b24 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/small_launcher.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/stairs.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/stairs.png new file mode 100644 index 00000000..751dea77 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/stairs.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/super_feeder.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/super_feeder.png new file mode 100644 index 00000000..57a9594d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/super_feeder.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/generate.ps1 b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/generate.ps1 new file mode 100644 index 00000000..0561688c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/generate.ps1 @@ -0,0 +1,29 @@ +# Use this script to generate all the other versions of wall tiles, given a complete "o" tile +# Use "plasteel" as a template +param ( + [string]$name, + [int]$m = 1 +) +$w = 16 - $m +$h = 12 - $m +$h2 = 24 - $m +# NESW +Invoke-Expression ("magick $name/o.png -crop 16x{0}+0+0 -colorspace sRGB -gravity North -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/n.png" -f $h) +Invoke-Expression ("magick $name/o.png -crop 16x{0}+0+{1} -colorspace sRGB -gravity South -define distort:viewport=16x24-0-{1} -filter point -distort SRT 0 +repage $name/s.png" -f $h2,$m) +Invoke-Expression ("magick $name/o.png -crop {0}x24+{1}+0 -colorspace sRGB -gravity East -define distort:viewport=16x24-{1}-0 -filter point -distort SRT 0 +repage $name/e.png" -f $w,$m) +Invoke-Expression ("magick $name/o.png -crop {0}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/w.png" -f $w) +# NW, NE, SW, SE +Invoke-Expression ("magick $name/n.png -crop {0}x12+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/nw.png" -f $w) +Invoke-Expression ("magick $name/n.png -crop {0}x12+{1}+0 -colorspace sRGB -gravity East -define distort:viewport=16x12-{1}-0 -filter point -distort SRT 0 +repage $name/ne.png" -f $w,$m) +Invoke-Expression ("magick $name/s.png -crop {0}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/sw.png" -f $w) +Invoke-Expression ("magick $name/s.png -crop {0}x24+{1}+0 -colorspace sRGB -gravity East -define distort:viewport=16x24-{1}-0 -filter point -distort SRT 0 +repage $name/se.png" -f $w,$m) +# NT, ET, ST, WT +Invoke-Expression ("magick $name/nw.png -crop {0}x12+{1}+0 -colorspace sRGB -gravity East -define distort:viewport=16x12-{1}-0 -filter point -distort SRT 0 +repage $name/nt.png" -f $w,$m) +Invoke-Expression ("magick $name/ne.png -crop 16x{1}+0+{2} -colorspace sRGB -gravity South -define distort:viewport=16x12-0-{2} -filter point -distort SRT 0 +repage $name/et.png" -f $w,$h,$m) +Invoke-Expression ("magick $name/se.png -crop {0}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/st.png" -f $w) +Invoke-Expression ("magick $name/sw.png -crop 16x{1}+0+0 -colorspace sRGB -gravity North -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/wt.png" -f $w,$h) +# VH +Invoke-Expression ("magick $name/n.png -crop 16x{1}+0+{2} -colorspace sRGB -gravity South -define distort:viewport=16x12-0-{2} -filter point -distort SRT 0 +repage $name/v.png" -f $w,$h,$m) +Invoke-Expression ("magick $name/e.png -crop {0}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/h.png" -f $w) +# X +Invoke-Expression ("magick $name/et.png -crop {0}x12+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/x.png" -f $w) diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/e.png new file mode 100644 index 00000000..2c37c9bf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/et.png new file mode 100644 index 00000000..915082e6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/h.png new file mode 100644 index 00000000..5fce6f2d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/n.png new file mode 100644 index 00000000..a0a980f7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/ne.png new file mode 100644 index 00000000..853ed100 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/nt.png new file mode 100644 index 00000000..89dfa636 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/nw.png new file mode 100644 index 00000000..2011c7c7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/o.png new file mode 100644 index 00000000..7eb2ba39 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/s.png new file mode 100644 index 00000000..ed8498bd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/se.png new file mode 100644 index 00000000..78df64c2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/st.png new file mode 100644 index 00000000..29524c47 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/sw.png new file mode 100644 index 00000000..673b8701 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/v.png new file mode 100644 index 00000000..148dc44c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/w.png new file mode 100644 index 00000000..ba80b969 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/wt.png new file mode 100644 index 00000000..7dd55d46 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/x.png new file mode 100644 index 00000000..a17f4d7d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/landscape/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/e.png new file mode 100644 index 00000000..b8d7cc56 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/et.png new file mode 100644 index 00000000..dce6b2c6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/h.png new file mode 100644 index 00000000..bce6e0fe Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/n.png new file mode 100644 index 00000000..8fccd39a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/ne.png new file mode 100644 index 00000000..8fccd39a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/nt.png new file mode 100644 index 00000000..8fccd39a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/nw.png new file mode 100644 index 00000000..255b388d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/o.png new file mode 100644 index 00000000..b8d7cc56 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/s.png new file mode 100644 index 00000000..1247dea3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/se.png new file mode 100644 index 00000000..1247dea3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/st.png new file mode 100644 index 00000000..1247dea3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/sw.png new file mode 100644 index 00000000..1247dea3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/v.png new file mode 100644 index 00000000..dce6b2c6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/w.png new file mode 100644 index 00000000..b8d7cc56 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/wt.png new file mode 100644 index 00000000..dce6b2c6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/x.png new file mode 100644 index 00000000..dce6b2c6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wall/wood2/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/water_pitcher.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/water_pitcher.png new file mode 100644 index 00000000..920c56e1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/water_pitcher.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/water_pitcher_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/water_pitcher_wreck.png new file mode 100644 index 00000000..4a269b5c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/water_pitcher_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/water_trough.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/water_trough.png new file mode 100644 index 00000000..10e9c2a7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/water_trough.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/watermelon.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/watermelon.png new file mode 100644 index 00000000..eab71c5c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/watermelon.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/well_feed.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/well_feed.png new file mode 100644 index 00000000..2c19d971 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/well_feed.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/well_water.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/well_water.png new file mode 100644 index 00000000..48e11756 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/well_water.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wood_color.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wood_color.png new file mode 100644 index 00000000..c98dc365 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wood_color.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wood_slime.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wood_slime.png new file mode 100644 index 00000000..85c1fb52 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/graphics/wood_slime.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/guns.json new file mode 100644 index 00000000..3a1f4978 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/guns.json @@ -0,0 +1,217 @@ +{ + "Version": 3, + "Guns": [ + { + "Pic": "", + "Icon": "hand_feed", + "Name": "Hand Feed", + "Bullet": "hand_feed", + "Cost": 0, + "Lock": 30, + "Sound": "", + "SwitchSound": "hand_feed", + "CanShoot": false, + "Auto": true + }, + { + "Pic": "small_launcher", + "Grips": 2, + "Name": "Small Launcher", + "Icon": "small_launcher", + "Bullet": "feed", + "Cost": 1, + "Lock": 30, + "MuzzleFlashParticle": "", + "Sound": "small_launcher", + "SwitchSound": "bow_draw0", + "Recoil": 0.1, + "Ammo": "Feed", + "OverheatTicks": -1 + }, + { + "Pic": "large_launcher", + "Grips": 2, + "Name": "Large Launcher", + "Icon": "large_launcher", + "Bullet": "feed", + "Prerequisite": "Small Launcher", + "Cost": 1, + "Lock": 12, + "MuzzleFlashParticle": "", + "Sound": "large_launcher", + "SwitchSound": "bow_draw1", + "Recoil": 0.17, + "Ammo": "Feed", + "OverheatTicks": -1 + }, + { + "Pic": "super_feeder", + "Name": "Super Feeder", + "Icon": "super_feeder", + "Bullet": "feed", + "Prerequisite": "Large Launcher", + "Cost": 1, + "Lock": 6, + "MuzzleFlashParticle": "", + "Sound": "super_feeder", + "SwitchSound": "bow_draw2", + "Recoil": 0.23, + "Ammo": "Feed", + "OverheatTicks": -1 + }, + { + "Pic": "cantaloupe_feeder", + "Name": "Cantaloupe Feeder", + "Icon": "cantaloupe_feeder", + "Bullet": "cantaloupe", + "Cost": 10, + "Lock": 45, + "MuzzleFlashParticle": "", + "Sound": "cantaloupe_feeder", + "SwitchSound": "package_r", + "SpreadCount": 2, + "SpreadWidth": 0, + "ElevationLow": 17, + "ElevationHigh": 19, + "Ammo": "Cantaloupe", + "OverheatTicks": -1 + }, + { + "Pic": "", + "IsGrenade": true, + "Name": "Watermelons", + "Bullet": "watermelon", + "Cost": 20, + "Lock": 70, + "Sound": "watermelon_feeder", + "SwitchSound": "package_pickup", + "Elevation": 24, + "Ammo": "Watermelon" + }, + { + "Pic": "", + "Name": "Sheep Spit", + "Bullet": "bullet_enemy", + "Cost": 1, + "Lock": 70, + "MuzzleFlashParticle": "", + "Sound": "spit", + "Recoil": 0.3, + "Ammo": "Feed", + "CanDrop": false + }, + { + "Pic": "", + "Name": "Antelope Spit", + "Bullet": "bullet_boss", + "Cost": 1, + "Lock": 70, + "MuzzleFlashParticle": "", + "Sound": "spit", + "Recoil": 0.3, + "Ammo": "Feed", + "CanDrop": false + }, + { + "Name": "Double Spit", + "Icon": "machine_gun", + "CanDrop": false, + "Guns": ["boss_spit1", "boss_spit2"], + "Lock": 9 + }, + { + "Name": "Quad Spit", + "Icon": "machine_gun", + "CanDrop": false, + "Guns": ["boss_double_spit1", "boss_double_spit2"], + "Lock": 9 + }, + { + "Pic": "", + "Name": "Goat Kick", + "Bullet": "goat_kick", + "Cost": 0, + "Lock": 80, + "Sound": "", + "CanShoot": false, + "CanDrop": false + }, + { + "Name": "Coconuts", + "Pic": "", + "Icon": "launcher", + "Bullet": "coconut", + "Cost": 9, + "Lock": 40, + "Sound": "launch", + "SwitchSound": "launcher_switch", + "CanDrop": false + }, + { + "Name": "Coconuts and Spit", + "Icon": "akimbo_pistols", + "Guns": ["Coconuts", "boss_spit1"], + "CanDrop": false + } + ], + "PseudoGuns": [ + { + "Name": "cantaloupe_splat", + "Bullet": "cantaloupe_splat", + "Recoil": 2, + "SpreadCount": 6, + "ElevationLow": 22, + "ElevationHigh": 30, + "Sound": "splat0" + }, + { + "Name": "watermelon_splat", + "Bullet": "watermelon_splat", + "Recoil": 2, + "SpreadCount": 10, + "ElevationLow": 22, + "ElevationHigh": 30, + "Sound": "splat1" + }, + { + "Pic": "", + "Name": "boss_spit1", + "Bullet": "bullet_boss", + "Lock": 70, + "MuzzleFlashParticle": "", + "Sound": "spit", + "Recoil": 0.3 + }, + { + "Pic": "", + "Name": "boss_spit2", + "Bullet": "bullet_boss", + "Lock": 70, + "MuzzleFlashParticle": "", + "Sound": "spit", + "Recoil": 0.3 + }, + { + "Pic": "", + "Name": "boss_double_spit1", + "Bullet": "bullet_quad", + "Lock": 70, + "MuzzleFlashParticle": "", + "Sound": "spit", + "SpreadCount": 2, + "Recoil": 0.3, + "MuzzleHeight": 12 + }, + { + "Pic": "", + "Name": "boss_double_spit2", + "Bullet": "bullet_quad", + "Lock": 70, + "MuzzleFlashParticle": "", + "Sound": "", + "SpreadCount": 2, + "Recoil": 0.3, + "MuzzleHeight": 12 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/language.enu b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/language.enu new file mode 100755 index 00000000..0aaebe58 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/language.enu @@ -0,0 +1,722 @@ +/* GILGAMESH! */ + +[enu default] + +MNU_NOPICTURE = "No Picture"; +MNU_DIFFVERSION = "Different\nVersion"; + +CURGAME = "You are currently in\na game. Continuing will\nerase old game. Ok?"; +GAMESVD = "There's already a game\nsaved at this position.\n Overwrite?"; +ENDGAMESTR = "Are you sure you want\nto end the game you\nare playing? (Y or N)"; +DELETESVDGAME = "Are you sure you want to\ndelete this saved game?\n\"%s\""; +STR_NG = "New Game"; +STR_OPTIONS = "Options"; +STR_DISPLAY = "Display Options"; +STR_AMOPTIONS = "Automap Options"; +STR_DEPTHFOG = "Use Depth Fog"; +STR_FULLSCREEN = "Fullscreen"; +STR_VSYNC = "Vertical Sync"; +STR_SD = "Sound Options"; +STR_CL = "Control Setup"; +STR_LG = "Load Game"; +STR_SG = "Save Game"; +STR_CV = "Change View"; +STR_VS = "View Scores"; +STR_RT = "Read This!"; +STR_EG = "End Game"; +STR_BD = "Back to Demo"; +STR_BG = "Back to Game"; +STR_QT = "Quit"; +STR_LOADING = "Loading..."; +STR_SAVING = "Saving..."; +STR_LGC = "Load Game called\n"; +STR_NONE = "None"; +STR_PC = "PC Speaker"; +STR_ALSB = "AdLib/Sound Blaster"; +STR_DISNEY = "Disney Sound Source"; +STR_SB = "Sound Blaster"; +STR_WINDOWEDMOUSE = "Windowed Mouse"; +STR_MOUSEEN = "Mouse Enabled"; +STR_JOYEN = "Joystick Enabled"; +STR_PORT2 = "Use joystick port 2"; +STR_GAMEPAD = "Gravis GamePad Enabled"; +STR_SENS = "Mouse Sensitivity"; +STR_JOYSENS = "Joystick Sensitivity"; +STR_DISABLEYAXIS = "Disable Y Axis"; +STR_CUSTOM = "Customize controls"; +STR_HOWTOUGH = "How tough are you?"; +STR_SUPEREASY = "Super Easy"; +STR_EASY = "Easy"; +STR_NORMAL = "Normal"; +STR_HARD = "Hard"; +STR_MOUSEADJ = "Adjust Mouse Sensitivity"; +STR_MOUSEXADJ = "X Sensitivity"; +STR_MOUSEYADJ = "Y Sensitivity"; +STR_PANXADJ = "Pan X Sensitivity"; +STR_PANYADJ = "Pan Y Sensitivity"; +STR_SLOW = "Slow"; +STR_FAST = "Fast"; +STR_THINK = "Thinking"; +STR_YOUWIN = "you win!"; +STR_TOTALTIME = "total time"; +STR_AVERAGES = "averages"; +STR_BONUS = "bonus"; +STR_TIME = "time"; +STR_PAR = "par"; +STR_RATKILL = "kill"; +STR_RATSECRET = "secret"; +STR_RATTREASURE = "treasure"; +STR_RAT2KILL = "kill ratio"; +STR_RAT2SECRET = "secret ratio"; +STR_RAT2TREASURE = "treasure ratio"; +STR_NOSPACE = "There is not enough space\non your disk to Save Game!"; +STR_SAVECHT = "Your Save Game file is,\nshall we say, \"corrupted\".\nBut I'll let you go on and\nplay anyway...."; +STR_SEEAGAIN = "Let's see that again!"; +STR_SOUNDCONFIG = "Sound Configuration"; +STR_DIGITALDEVICE = "Digital Device & Volume"; +STR_ADLIBDEVICE = "Adlib Device & Volume"; +STR_MUSICDEVICE = "Music Device & Volume"; +STR_SOFT = "Soft"; +STR_LOUD = "Loud"; +STR_ALWAYSRUN = "Always Run"; +STR_CHEATER = "You now have 100% Health,\n99 Ammo and both Keys!\n\nNote that you have basically\neliminated your chances of\ngetting a high score!"; +STR_FLOOR = "floor"; // Floor X completed +STr_COMPLETED = "completed"; +STR_SELECTRES = "Screen Resolution"; +STR_PLAYERCLASS = "Choose Player"; +STR_ESCQUIT = "Don't Return on Escape"; +STR_FAILWRITE = "Could not write save file.\nCheck file permissions."; +STR_FAILREAD = "Could not read save file.\nCheck file permissions."; +STR_AMROTATEOFF = "Rotate: No"; +STR_AMROTATEON = "Rotate: Yes"; +STR_AMROTATEOVERLAY = "Rotate: Overlay Only"; +STR_AMFLOORS = "Draw Floor Textures"; +STR_AMTEXTURES = "Draw Wall Textures"; +STR_AMOVERLAYOFF = "Overlay: Off"; +STR_AMOVERLAYON = "Overlay: On"; +STR_AMOVERLAYBOTH = "Overlay: On + Normal"; +STR_AMTEXTUREDOVERLAY = "Textured Overlay"; +STR_AMPAUSE = "Pause Game"; +STR_AMRATIOS = "Show Level Ratios"; +STR_SMALLFEEDERS = "Small Feeders"; +STR_SCREENSIZE = "Screen Size"; +STR_SMALL = "Small"; +STR_LARGE = "Large"; + +STR_WHICHEPISODE = "Which episode to play?"; +NA_EPISODE1 = "Carl the Camel\nStart at level 1-1"; +NA_EPISODE2 = "Ginny the Giraffe\nStart at level 2-1"; +NA_EPISODE3 = "Melvin the Monkey\nStart at level 3-1"; +NA_EPISODE4 = "Kerry the Kangaroo\nStart at level 4-1"; +NA_EPISODE5 = "Ernie the Elephant\nStart at level 5-1"; +NA_EPISODE6 = "Burt the Bear\nStart at level 6-1"; + +// Super 3D Noah's Ark +NOAH_ENDSTR01 = "Are you sure you're\nready to quit?\nPress Y to Quit."; +NOAH_ENDSTR02 = "What? Quitting already?\nPress Y to Quit."; +NOAH_ENDSTR03 = "Are a few hungry animals\ntoo tough for you?\nPress Y to Quit."; +NOAH_ENDSTR04 = "Giving up so soon?\nPress Y to Quit."; +NOAH_ENDSTR05 = "Be sure to take your\numbrella, it's wet out there.\nPress Y to Quit."; +NOAH_ENDSTR06 = "You're going to let\nthose animals run free?\nPress Y to Quit."; +NOAH_ENDSTR07 = "Did the animals wear\nyou out?\nPress Y to Quit."; +NOAH_ENDSTR08 = "Are you monkeying around or\ndo you really want to quit?\nPress Y to Quit."; +NOAH_ENDSTR09 = "The animals might get\nhungry if you're gone\ntoo long!\nPress Y to Quit."; + +ROBSJUKEBOX = "Robert's Jukebox"; + +NOAH_BRIEF_01 = "You'll be out of the ark in six\ndays, Noah. Unfortunately, the\nanimals are a tad bit restless and\nwant to get out now. Good thing\nyou brought all that food with\nyou. You'll need it to put the\nbusy ones to sleep.\n\nAt the end of the first day, be\nprepared to deal with Carl the\nCamel. He's been real cranky lately\nand is a bit out of control.\n\nGood luck and be careful...\n"; +NOAH_BRIEF_02 = "Wow, Noah! Carl sure was hard to\ncalm down. But remember, you\nwere chosen to guide this ark to\nsafety because you know how to\nget the job done.\n\nThe closing of day two ends with\nirritable Ginny the Giraffe. She\nmay be tall and quick, but give\nher enough food and it's off to\nsleep.\n\nOh, and Noah, remember to keep\nan eye out for hidden rooms...\n"; +NOAH_BRIEF_03 = "ZZZZZ... Great job, Noah!. Ginny is\nsnoring away.\n\nBoy, it seems the animals never\nseem to stay asleep very long.\n\nKeep your eye out for Melvin the\nMonkey. He can be pretty tricky\nand may try distracting you with\ncoconuts, but it's your job to get\nhim settled down for the rest of\nyour time aboard the ark."; +NOAH_BRIEF_04 = "You're doing a great job, Noah!\nYou took care of that Melvin like\na real pro.\n\nI hope you haven't worn yourself\nout yet, because more challenges\nare ahead.\n\nKerry the Kangaroo awaits you,\nand she doesn't look the least\nbit tired. Are you ready for her?\nShe needs to rest like the other\nanimals."; +NOAH_BRIEF_05 = "Wow! Kerry was no challenge for\nyou! Can you keep up the pace\nwhen faced with Ernie the\nElephant?\n\nDon't worry. Very soon you will\nbe on dry land, and you won't\nhave to chase the animals around\nthe ark anymore."; +NOAH_BRIEF_06 = "You are almost there! If you can\nget through one more day, you\nwill be out of here for good!\n\nRumor has it one of the bears\ndoes not want to be found. In\nfact he may try to hide from\nyou. Be on the alert for Burt\nthe Bear.\n\nGet him to sleep and your work\nis done!"; +NOAH_BRIEF_COPYRIGHT = "\nSuper 3-D Noah's Ark\n\n\n(C)2014 Wisdom Tree, Inc.\nAll rights reserved.\n\n\nThis game contains copyrighted\nsoftware code owned by\nId Software, Inc\n(C)1992 Id Software, Inc.\nAll rights reserved.\n"; + +CC_GOAT = "Goat"; +CC_SHEEP = "Sheep"; +CC_OSTRICH = "Ostrich"; +CC_ANTELOPE = "Antelope"; +CC_OX = "Ox"; +CC_CARL = "Carl the Camel"; +CC_MELVIN = "Melvin the Monkey"; +CC_GINNY = "Ginny the Giraffe"; +CC_KERRY = "Kerry the Kangaroo"; +CC_ERNIE = "Ernie the Elephant"; +CC_BURTHIDING = "Hiding Burt"; +CC_BURT = "Burt the Bear"; + +/* Super 3D Noah's Ark Quiz */ + +NOAH_CORRECT = "Correct!"; +NOAH_INCORRECT = "Incorrect!"; + +NOAH_QUIZ_Q01 = "What city was Gilgamesh king\nof?"; +NOAH_QUIZ_H01 = "I:11"; +NOAH_QUIZ_A01A = "Jerusalem"; // Wrong +NOAH_QUIZ_A01B = "Uruk"; // Correct +NOAH_QUIZ_A01C = "Eridu"; // Wrong + +NOAH_QUIZ_Q02 = "What were the walls of Uruk\nmade of?"; +NOAH_QUIZ_H02 = "I:19"; +NOAH_QUIZ_A02A = "Stone"; // Wrong +NOAH_QUIZ_A02B = "Brick"; // Correct +NOAH_QUIZ_A02C = "Concrete"; // Wrong + +NOAH_QUIZ_Q03 = "Who was Gilgamesh's father?"; +NOAH_QUIZ_H03 = "I:35"; +NOAH_QUIZ_A03A = "Lugalbanda"; // Correct +NOAH_QUIZ_A03B = "Sargon"; // Wrong +NOAH_QUIZ_A03C = "Hammurabi"; // Wrong + +NOAH_QUIZ_Q04 = "Who was Gilgamesh's mother?"; +NOAH_QUIZ_H04 = "I:36"; +NOAH_QUIZ_A04A = "Ishtar"; // Wrong +NOAH_QUIZ_A04B = "Zenobia"; // Wrong +NOAH_QUIZ_A04C = "Ninsun"; // Correct + +NOAH_QUIZ_Q05 = "Why did the gods create\nEnkidu?"; +NOAH_QUIZ_H05 = "I:82"; +NOAH_QUIZ_A05A = "Befriend Gilgamesh"; // Wrong +NOAH_QUIZ_A05B = "Stop Gilgamesh's tyranny"; // Correct +NOAH_QUIZ_A05C = "Populate the countryside"; // Wrong + +NOAH_QUIZ_Q06 = "Who found Enkidu first?"; +NOAH_QUIZ_H06 = "I:111"; +NOAH_QUIZ_A06A = "A hunter"; // Correct +NOAH_QUIZ_A06B = "A bushranger"; // Wrong +NOAH_QUIZ_A06C = "A temple prostitute"; // Wrong + +NOAH_QUIZ_Q07 = "Who tamed Enkidu?"; +NOAH_QUIZ_H07 = "I:176"; +NOAH_QUIZ_A07A = "A temple prostitute"; // Correct +NOAH_QUIZ_A07B = "A hunting party"; // Wrong +NOAH_QUIZ_A07C = "A life coach"; // Wrong + +NOAH_QUIZ_Q08 = "Who guards the cedar forest?"; +NOAH_QUIZ_H08 = "II:220"; +NOAH_QUIZ_A08A = "A pride of lions"; // Wrong +NOAH_QUIZ_A08B = "Humbaba the giant"; // Correct +NOAH_QUIZ_A08C = "Smokey the bear"; // Wrong + +NOAH_QUIZ_Q09 = "Where was the cedar forest?"; +NOAH_QUIZ_H09 = "IV:3"; +NOAH_QUIZ_A09A = "Mount Lebanon"; // Correct +NOAH_QUIZ_A09B = "Mount Olympus"; // Wrong +NOAH_QUIZ_A09C = "Garden of Eden"; // Wrong + +NOAH_QUIZ_Q10 = "Which god helped Gilgamesh\ndefeat Humbaba?"; +NOAH_QUIZ_H10 = "III:88"; +NOAH_QUIZ_A10A = "Quetzalcoatl"; // Wrong +NOAH_QUIZ_A10B = "Enlil"; // Wrong +NOAH_QUIZ_A10C = "Shamash"; // Correct + +NOAH_QUIZ_Q11 = "How was Humbaba defeated?"; +NOAH_QUIZ_H11 = "V:159"; +NOAH_QUIZ_A11A = "drowned by water"; // Wrong +NOAH_QUIZ_A11B = "immobilized by wind"; // Correct +NOAH_QUIZ_A11C = "touched by heart"; // Wrong + +NOAH_QUIZ_Q12 = "Why did Gilgamesh reject\nIshtar?"; +NOAH_QUIZ_H12 = "VI:42"; +NOAH_QUIZ_A12A = "He loved Enkidu"; // Wrong +NOAH_QUIZ_A12B = "She was abusive"; // Correct +NOAH_QUIZ_A12C = "She was too old"; // Wrong + +NOAH_QUIZ_Q13 = "Who did Ishtar ask to send\nthe Bull of Heaven?"; +NOAH_QUIZ_H13 = "VI:94"; +NOAH_QUIZ_A13A = "The Cow of Heaven"; // Wrong +NOAH_QUIZ_A13B = "Her mother Antu"; // Wrong +NOAH_QUIZ_A13C = "Her father Anu"; // Correct + +NOAH_QUIZ_Q14 = "Did the Bull of Heaven die\nfrom an axe blow?"; +NOAH_QUIZ_H14 = "VI:146"; +NOAH_QUIZ_A14A = "Yes"; // Wrong +NOAH_QUIZ_A14B = "No"; // Correct + +NOAH_QUIZ_Q15 = "How did the Bull of Heaven\nattack the men of Uruk?"; +NOAH_QUIZ_H15 = "VI:119"; +NOAH_QUIZ_A15A = "Goring with horns"; // Wrong +NOAH_QUIZ_A15B = "Flinging dung"; // Wrong +NOAH_QUIZ_A15C = "Opening pits in the ground"; // Correct + +NOAH_QUIZ_Q16 = "Enkidu helped kill the Bull\nof Heaven by holding its tail."; +NOAH_QUIZ_H16 = "VI:142"; +NOAH_QUIZ_A16A = "False"; // Wrong +NOAH_QUIZ_A16B = "True"; // Correct + +NOAH_QUIZ_Q17 = "How did Enkidu curse the\nhunter?"; +NOAH_QUIZ_H17 = "VII:97"; +NOAH_QUIZ_A17A = "grow horns"; // Wrong +NOAH_QUIZ_A17B = "sickness"; // Wrong +NOAH_QUIZ_A17C = "diminished skill"; // Correct + +NOAH_QUIZ_Q18 = "How long was Enkidu's\nsickness?"; +NOAH_QUIZ_H18 = "VII:260"; +NOAH_QUIZ_A18A = "7 days"; // Wrong +NOAH_QUIZ_A18B = "12 days"; // Correct +NOAH_QUIZ_A18C = "28 days"; // Wrong + +NOAH_QUIZ_Q19 = "Who did Gilgamesh pray to\nbefore slaying the lions?"; +NOAH_QUIZ_H19 = "IX:10"; +NOAH_QUIZ_A19A = "Sin the moon god"; // Correct +NOAH_QUIZ_A19B = "Ishtar the goddess"; // Wrong +NOAH_QUIZ_A19C = "Zeus the thunder god"; // Wrong + +NOAH_QUIZ_Q20 = "Who guards the gate between\nthe twin mountains?"; +NOAH_QUIZ_H20 = "IX:42"; +NOAH_QUIZ_A20A = "Gandalf"; // Wrong +NOAH_QUIZ_A20B = "Two scorpion monsters"; // Correct +NOAH_QUIZ_A20C = "Humbaba the giant"; // Wrong + +NOAH_QUIZ_Q21 = "How long did it take to go\nthrough the mountain path?"; +NOAH_QUIZ_H21 = "IX:170"; +NOAH_QUIZ_A21A = "6 hours"; // Wrong +NOAH_QUIZ_A21B = "12 double-hours"; // Correct +NOAH_QUIZ_A21C = "7 days"; // Wrong + +NOAH_QUIZ_Q22 = "What was at the end of the\nmountain path?"; +NOAH_QUIZ_H22 = "IX:172"; +NOAH_QUIZ_A22A = "Fountain of youth"; // Wrong +NOAH_QUIZ_A22B = "Hills of gold"; // Wrong +NOAH_QUIZ_A22C = "Trees of jewels"; // Correct + +NOAH_QUIZ_Q23 = "Why was Siduri the alewife\nafraid of Gilgamesh?"; +NOAH_QUIZ_H23 = "X:9"; +NOAH_QUIZ_A23A = "he was heavily armed"; // Wrong +NOAH_QUIZ_A23B = "he was disheveled"; // Correct +NOAH_QUIZ_A23C = "he was an immigrant"; // Wrong + +NOAH_QUIZ_Q24 = "How long did Gilgamesh\ngrieve over Enkidu's corpse?"; +NOAH_QUIZ_H24 = "X:58"; +NOAH_QUIZ_A24A = "six days and seven nights"; // Correct +NOAH_QUIZ_A24B = "99 days and nights"; // Wrong +NOAH_QUIZ_A24C = "three days and two nights"; // Wrong + +NOAH_QUIZ_Q25 = "When did Gilgamesh give up\nEnkidu's body for burial?"; +NOAH_QUIZ_H25 = "X:50"; +NOAH_QUIZ_A25A = "the body became stiff"; // Wrong +NOAH_QUIZ_A25B = "the undertakers arrived"; // Wrong +NOAH_QUIZ_A25C = "maggots fell from a nostril"; // Correct + +NOAH_QUIZ_Q26 = "How many poles did the\nboat man ask Gilgamesh to make?"; +NOAH_QUIZ_H26 = "X:160"; +NOAH_QUIZ_A26A = "1"; // Wrong +NOAH_QUIZ_A26B = "120"; // Wrong +NOAH_QUIZ_A26C = "300"; // Correct + +NOAH_QUIZ_Q27 = "What would have protected\nthe boat from the Waters of Death?"; +NOAH_QUIZ_H27 = "X:157"; +NOAH_QUIZ_A27A = "The Stone Ones"; // Correct +NOAH_QUIZ_A27B = "The punting poles"; // Wrong +NOAH_QUIZ_A27C = "The Tree of Life"; // Wrong + +NOAH_QUIZ_Q28 = "Gilgamesh ran out of poles\nwhen crossing the Waters of Death."; +NOAH_QUIZ_H28 = "X:180"; +NOAH_QUIZ_A28A = "True"; // Correct +NOAH_QUIZ_A28B = "False"; // Wrong + +NOAH_QUIZ_Q29 = "Who was Utnapishtim's\nboatman?"; +NOAH_QUIZ_H29 = "X:87"; +NOAH_QUIZ_A29A = "Charon"; // Wrong +NOAH_QUIZ_A29B = "Siduri"; // Wrong +NOAH_QUIZ_A29C = "Urshanabi"; // Correct + +NOAH_QUIZ_Q30 = "Where did Utnapishtim come\nfrom?"; +NOAH_QUIZ_H30 = "XI:23"; +NOAH_QUIZ_A30A = "Shuruppak"; // Correct +NOAH_QUIZ_A30B = "Detroit"; // Wrong +NOAH_QUIZ_A30C = "Eridu"; // Wrong + +NOAH_QUIZ_Q31 = "Who warned Utnapishtim of\nthe deluge?"; +NOAH_QUIZ_H31 = "XI:19"; +NOAH_QUIZ_A31A = "Noah"; // Wrong +NOAH_QUIZ_A31B = "Anu"; // Wrong +NOAH_QUIZ_A31C = "Enki"; // Correct + +NOAH_QUIZ_Q32 = "What shape was\nUtnapishtim's boat?"; +NOAH_QUIZ_H32 = "XI:30"; +NOAH_QUIZ_A32A = "Mickey Mouse"; // Wrong +NOAH_QUIZ_A32B = "rectangle"; // Wrong +NOAH_QUIZ_A32C = "square"; // Correct + +NOAH_QUIZ_Q33 = "Who built Utnapishtim's\nboat?"; +NOAH_QUIZ_H33 = "XI:48"; +NOAH_QUIZ_A33A = "himself"; // Wrong +NOAH_QUIZ_A33B = "workers"; // Correct +NOAH_QUIZ_A33C = "his boatman"; // Wrong + +NOAH_QUIZ_Q34 = "How long did the deluge\nstorm last?"; +NOAH_QUIZ_H34 = "XI:128"; +NOAH_QUIZ_A34A = "six days and seven nights"; // Correct +NOAH_QUIZ_A34B = "one day and one night"; // Wrong +NOAH_QUIZ_A34C = "three days and two nights"; // Wrong + +NOAH_QUIZ_Q35 = "Where did Utnapishtim's\nboat land?"; +NOAH_QUIZ_H35 = "XI:142"; +NOAH_QUIZ_A35A = "Mount Ararat"; // Wrong +NOAH_QUIZ_A35B = "Mount Lebanon"; // Wrong +NOAH_QUIZ_A35C = "Mount Nimush"; // Correct + +NOAH_QUIZ_Q36 = "Which bird found land\nafter the deluge?"; +NOAH_QUIZ_H36 = "XI:154"; +NOAH_QUIZ_A36A = "raven"; // Correct +NOAH_QUIZ_A36B = "dove"; // Wrong +NOAH_QUIZ_A36C = "swallow"; // Wrong + +NOAH_QUIZ_Q37 = "How long did the deluge\nlast?"; +NOAH_QUIZ_H37 = "XI:147"; +NOAH_QUIZ_A37A = "seven days"; // Correct +NOAH_QUIZ_A37B = "seven months"; // Wrong +NOAH_QUIZ_A37C = "seven minutes"; // Wrong + +NOAH_QUIZ_Q38 = "Enki was the god who\ngranted Utnapishtim immortality."; +NOAH_QUIZ_H38 = "XI:199"; +NOAH_QUIZ_A38A = "True"; // Wrong +NOAH_QUIZ_A38B = "False"; // Correct + +NOAH_QUIZ_Q39 = "What led the gods to come\ndown to the landed boat after\nthe deluge?"; +NOAH_QUIZ_H39 = "XI:158"; +NOAH_QUIZ_A39A = "the smells of sacrifice"; // Correct +NOAH_QUIZ_A39B = "the calls of animals"; // Wrong +NOAH_QUIZ_A39C = "Utnapishtim's tears"; // Wrong + +NOAH_QUIZ_Q40 = "How many days did\nGilgamesh sleep after hearing\nthe tale of the deluge?"; +NOAH_QUIZ_H40 = "XI:230"; +NOAH_QUIZ_A40A = "3 days"; // Wrong +NOAH_QUIZ_A40B = "5 days"; // Wrong +NOAH_QUIZ_A40C = "7 days"; // Correct + +NOAH_QUIZ_Q41 = "How did Utnapishtim count\nthe days that Gilgamesh slept?"; +NOAH_QUIZ_H41 = "XI:221"; +NOAH_QUIZ_A41A = "baking bread"; // Correct +NOAH_QUIZ_A41B = "with a calendar"; // Wrong +NOAH_QUIZ_A41C = "in a journal"; // Wrong + +NOAH_QUIZ_Q42 = "How did Gilgamesh obtain the\nplant of youth?"; +NOAH_QUIZ_H42 = "XI:289"; +NOAH_QUIZ_A42A = "donning scuba gear"; // Wrong +NOAH_QUIZ_A42B = "tying heavy stones to his feet"; // Correct +NOAH_QUIZ_A42C = "using a long punting pole"; // Wrong + +NOAH_QUIZ_Q43 = "How did Gilgamesh plan to\ntest the plant of youth?"; +NOAH_QUIZ_H43 = "XI:298"; +NOAH_QUIZ_A43A = "feeding some to an old man"; // Correct +NOAH_QUIZ_A43B = "making a pasta dish"; // Wrong +NOAH_QUIZ_A43C = "trying some himself"; // Wrong + +NOAH_QUIZ_Q44 = "How did Gilgamesh lose the\nplant of youth?"; +NOAH_QUIZ_H44 = "XI:305"; +NOAH_QUIZ_A44A = "stolen by a snake"; // Correct +NOAH_QUIZ_A44B = "left it on the bus"; // Wrong +NOAH_QUIZ_A44C = "it died during the journey"; // Wrong + +NOAH_QUIZ_Q45 = "Which god was Uruk's temple\ndedicated to?"; +NOAH_QUIZ_H45 = "I:16"; +NOAH_QUIZ_A45A = "Odin"; // Wrong +NOAH_QUIZ_A45B = "Enlil"; // Wrong +NOAH_QUIZ_A45C = "Ishtar"; // Correct + +NOAH_QUIZ_Q46 = "Enkidu was made from clay."; +NOAH_QUIZ_H46 = "I:100"; +NOAH_QUIZ_A46A = "True"; // Correct +NOAH_QUIZ_A46B = "False"; // Wrong + +NOAH_QUIZ_Q47 = "How tall was Gilgamesh?"; +NOAH_QUIZ_H47 = "I:52"; +NOAH_QUIZ_A47A = "6 cubits"; // Wrong +NOAH_QUIZ_A47B = "11 cubits"; // Correct +NOAH_QUIZ_A47C = "15 cubits"; // Wrong + +NOAH_QUIZ_Q48 = "Which animal did Enkidu\nhang out with?"; +NOAH_QUIZ_H48 = "I:108"; +NOAH_QUIZ_A48A = "lions"; // Wrong +NOAH_QUIZ_A48B = "gazelles"; // Correct +NOAH_QUIZ_A48C = "koalas"; // Wrong + +NOAH_QUIZ_Q49 = "Why did the hunter go to\nGilgamesh to deal with Enkidu?"; +NOAH_QUIZ_H49 = "I:128"; +NOAH_QUIZ_A49A = "he smelled bad"; // Wrong +NOAH_QUIZ_A49B = "he attacked the hunter"; // Wrong +NOAH_QUIZ_A49C = "he freed animals from traps"; // Correct + +NOAH_QUIZ_Q50 = "How long did Enkidu couple\nwith Shamhat?"; +NOAH_QUIZ_H50 = "I:192"; +NOAH_QUIZ_A50A = "six days and seven nights"; // Correct +NOAH_QUIZ_A50B = "one whole day"; // Wrong +NOAH_QUIZ_A50C = "two minutes"; // Wrong + +NOAH_QUIZ_Q51 = "Enkidu lost his body hair\nafter coupling with Shamhat."; +NOAH_QUIZ_H51 = "I:197"; +NOAH_QUIZ_A51A = "True"; // Wrong +NOAH_QUIZ_A51B = "False"; // Correct + +NOAH_QUIZ_Q52 = "Enkidu wanted to befriend\nGilgamesh."; +NOAH_QUIZ_H52 = "I:212"; +NOAH_QUIZ_A52A = "True"; // Correct +NOAH_QUIZ_A52B = "False"; // Wrong + +NOAH_QUIZ_Q53 = "What did Enkidu gain after\ncoupling with Shamhat?"; +NOAH_QUIZ_H53 = "I:200"; +NOAH_QUIZ_A53A = "wisdom"; // Correct +NOAH_QUIZ_A53B = "ability to run fast"; // Wrong +NOAH_QUIZ_A53C = "being handsome"; // Wrong + +NOAH_QUIZ_Q54 = "What did Gilgamesh dream\nabout that foretold Enkidu's\nfriendship?"; +NOAH_QUIZ_H54 = "I:246"; +NOAH_QUIZ_A54A = "a blade and an axe"; // Wrong +NOAH_QUIZ_A54B = "a meteorite and an axe"; // Correct +NOAH_QUIZ_A54C = "a mortar and a pestle"; // Wrong + +NOAH_QUIZ_Q55 = "What did Enkidu consume\nat the shepherds' camp?"; +NOAH_QUIZ_H55 = "II:44"; +NOAH_QUIZ_A55A = "coke and pizza"; // Wrong +NOAH_QUIZ_A55B = "beer and bread"; // Correct +NOAH_QUIZ_A55C = "wine and cheese"; // Wrong + +NOAH_QUIZ_Q56 = "How did Enkidu help the\nshepherds?"; +NOAH_QUIZ_H56 = "II:60"; +NOAH_QUIZ_A56A = "he herded the sheep"; // Wrong +NOAH_QUIZ_A56B = "he killed the wolves"; // Correct +NOAH_QUIZ_A56C = "he flexed his biceps"; // Wrong + +NOAH_QUIZ_Q57 = "The people of Uruk kissed\nEnkidu's feet."; +NOAH_QUIZ_H57 = "II:107"; +NOAH_QUIZ_A57A = "True"; // Correct +NOAH_QUIZ_A57B = "False"; // Wrong + +NOAH_QUIZ_Q58 = "When Gilgamesh fought\nEnkidu, who won?"; +NOAH_QUIZ_H58 = "II:116"; +NOAH_QUIZ_A58A = "Enkidu"; // Wrong +NOAH_QUIZ_A58B = "Gilgamesh"; // Correct +NOAH_QUIZ_A58C = "It was a tie"; // Wrong + +NOAH_QUIZ_Q59 = "Which god assigned the\nguardian of the cedar forest?"; +NOAH_QUIZ_H59 = "II:219"; +NOAH_QUIZ_A59A = "Shamash"; // Wrong +NOAH_QUIZ_A59B = "Enlil"; // Correct +NOAH_QUIZ_A59C = "Osiris"; // Wrong + +NOAH_QUIZ_Q60 = "Which of these superpowers\ndid Humbaba have?"; +NOAH_QUIZ_H60 = "II:223"; +NOAH_QUIZ_A60A = "seeing things far away"; // Wrong +NOAH_QUIZ_A60B = "hearing things far away"; // Correct +NOAH_QUIZ_A60C = "touching things far away"; // Wrong + +NOAH_QUIZ_Q61 = "What was Egalmah?"; +NOAH_QUIZ_H61 = "III:15"; +NOAH_QUIZ_A61A = "the Great Palm Garden"; // Wrong +NOAH_QUIZ_A61B = "the Great Swimming Pool"; // Wrong +NOAH_QUIZ_A61C = "the Great Palace"; // Correct + +NOAH_QUIZ_Q62 = "Who did Ninsun pray to\nfor helping Gilgamesh\non the cedar forest quest?"; +NOAH_QUIZ_H62 = "III:44"; +NOAH_QUIZ_A62A = "Humbaba"; // Wrong +NOAH_QUIZ_A62B = "Shamash"; // Correct +NOAH_QUIZ_A62C = "Enlil"; // Wrong + +NOAH_QUIZ_Q63 = "Where did Ninsun go in\norder to pray?"; +NOAH_QUIZ_H63 = "III:43"; +NOAH_QUIZ_A63A = "the palace sanctum"; // Wrong +NOAH_QUIZ_A63B = "the palace lavatory"; // Wrong +NOAH_QUIZ_A63C = "the palace roof"; // Correct + +NOAH_QUIZ_Q64 = "What did Gilgamesh use\nas libations to Shamash?"; +NOAH_QUIZ_H64 = "III:8"; +NOAH_QUIZ_A64A = "flour"; // Correct +NOAH_QUIZ_A64B = "wine"; // Wrong +NOAH_QUIZ_A64C = "hot chocolate"; // Wrong + +NOAH_QUIZ_Q65 = "What part of Humbaba did\nGilgamesh take as a trophy?"; +NOAH_QUIZ_H65 = "V:324"; +NOAH_QUIZ_A65A = "the naughty bits"; // Wrong +NOAH_QUIZ_A65B = "the head"; // Correct +NOAH_QUIZ_A65C = "a haunch"; // Wrong + +NOAH_QUIZ_Q66 = "Which city did the god\nEnlil reside in?"; +NOAH_QUIZ_H66 = "V:202"; +NOAH_QUIZ_A66A = "Nippur"; // Correct +NOAH_QUIZ_A66B = "Cleveland"; // Wrong +NOAH_QUIZ_A66C = "Uruk"; // Wrong + +NOAH_QUIZ_Q67 = "What part of the\nBull of Heaven was\nsacrificed to Shamash?"; +NOAH_QUIZ_H67 = "VI:148"; +NOAH_QUIZ_A67A = "the heart"; // Correct +NOAH_QUIZ_A67B = "the head"; // Wrong +NOAH_QUIZ_A67C = "a haunch"; // Wrong + +NOAH_QUIZ_Q68 = "Enkidu was eager to go to\nthe cedar forest."; +NOAH_QUIZ_H68 = "II:216"; +NOAH_QUIZ_A68A = "True"; // Wrong +NOAH_QUIZ_A68B = "False"; // Correct + +NOAH_QUIZ_Q69 = "After his defeat, Humbaba\nbegged for a quick death."; +NOAH_QUIZ_H69 = "V:173"; +NOAH_QUIZ_A69A = "True"; // Wrong +NOAH_QUIZ_A69B = "False"; // Correct + +NOAH_QUIZ_Q70 = "Gilgamesh returned from the\ncedar forest by raft."; +NOAH_QUIZ_H70 = "V:321"; +NOAH_QUIZ_A70A = "True"; // Correct +NOAH_QUIZ_A70B = "False"; // Wrong + +NOAH_QUIZ_Q71 = "What part of the\nBull of Heaven did Enkidu\nthrow at Ishtar?"; +NOAH_QUIZ_H71 = "Gen 9:6"; +NOAH_QUIZ_A71A = "a haunch"; // Correct +NOAH_QUIZ_A71B = "an eye"; // Wrong +NOAH_QUIZ_A71C = "the head"; // Wrong + +NOAH_QUIZ_Q72 = "The Bull of Heaven's horns\nwere made of precious stone."; +NOAH_QUIZ_H72 = "VI:162"; +NOAH_QUIZ_A72A = "True"; // Correct +NOAH_QUIZ_A72B = "False"; // Wrong + +NOAH_QUIZ_Q73 = "What did the inhabitants\nof the underworld eat?"; +NOAH_QUIZ_H73 = "VII:188"; +NOAH_QUIZ_A73A = "chicken tenders"; // Wrong +NOAH_QUIZ_A73B = "dirt"; // Correct +NOAH_QUIZ_A73C = "fire"; // Wrong + +NOAH_QUIZ_Q74 = "Enkidu died from combat\nwounds."; +NOAH_QUIZ_H74 = "VII:267"; +NOAH_QUIZ_A74A = "True"; // Wrong +NOAH_QUIZ_A74B = "False"; // Correct + +NOAH_QUIZ_Q75 = "What did Gilgamesh make to\nhonor Enkidu?"; +NOAH_QUIZ_H75 = "VIII:68" +NOAH_QUIZ_A75A = "a gate"; // Wrong +NOAH_QUIZ_A75B = "a charity song"; // Wrong +NOAH_QUIZ_A75C = "a statue"; // Correct + +NOAH_QUIZ_Q76 = "Utnapishtim brought the\nshipwright on the boat."; +NOAH_QUIZ_H76 = "XI:95"; +NOAH_QUIZ_A76A = "True"; // Wrong +NOAH_QUIZ_A76B = "False"; // Correct + +NOAH_QUIZ_Q77 = "Utnapishtim brought treasure\nonto the boat."; +NOAH_QUIZ_H77 = "XI:81"; +NOAH_QUIZ_A77A = "True"; // Correct +NOAH_QUIZ_A77B = "False"; // Wrong + +NOAH_QUIZ_Q78 = "Which river was Shuruppak\nsituated by?"; +NOAH_QUIZ_H78 = "XI:12"; +NOAH_QUIZ_A78A = "Tigris"; // Wrong +NOAH_QUIZ_A78B = "Mississippi"; // Wrong +NOAH_QUIZ_A78C = "Euphrates"; // Correct + +NOAH_QUIZ_Q79 = "How many decks were in\nUtnapishtim's boat?"; +NOAH_QUIZ_H79 = "XI:61"; +NOAH_QUIZ_A79A = "1"; // Wrong +NOAH_QUIZ_A79B = "6"; // Correct +NOAH_QUIZ_A79C = "10"; // Wrong + +NOAH_QUIZ_Q80 = "Why did the gods cause the\ndeluge?"; +NOAH_QUIZ_H80 = "XI:14"; +NOAH_QUIZ_A80A = "The men were wicked"; // Wrong +NOAH_QUIZ_A80B = "The earth was overpopulated"; // Wrong +NOAH_QUIZ_A80C = "No reason"; // Correct + +NOAH_QUIZ_Q81 = "The gods were distraught\nby the deluge."; +NOAH_QUIZ_H81 = "XI:114"; +NOAH_QUIZ_A81A = "True"; // Correct +NOAH_QUIZ_A81B = "False"; // Wrong + +NOAH_QUIZ_Q82 = "What did Utnapishtim tell\nthe cityfolk his reason\nfor leaving in a boat?"; +NOAH_QUIZ_H82 = "XI:39"; +NOAH_QUIZ_A82A = "Enlil wanted to kill him"; // Correct +NOAH_QUIZ_A82B = "To become a pirate"; // Wrong +NOAH_QUIZ_A82C = "To see the world"; // Wrong + +NOAH_QUIZ_Q83 = "What was Gilgamesh's\ngenealogy?"; +NOAH_QUIZ_H83 = "I:48"; +NOAH_QUIZ_A83A = "half god half human"; // Wrong +NOAH_QUIZ_A83B = "2/3 god, 1/3 human"; // Correct +NOAH_QUIZ_A83C = "half man half hedgehog"; // Wrong + +NOAH_QUIZ_Q84 = "Gilgamesh went to the cedar\nforest with an army."; +NOAH_QUIZ_H84 = "III:220"; +NOAH_QUIZ_A84A = "True"; // Wrong +NOAH_QUIZ_A84B = "False"; // Correct + +NOAH_QUIZ_Q85 = "What did Enkidu make from the\ntallest cedar tree?"; +NOAH_QUIZ_H85 = "V:316"; +NOAH_QUIZ_A85A = "a door"; // Correct +NOAH_QUIZ_A85B = "toothpicks"; // Wrong +NOAH_QUIZ_A85C = "a bed"; // Wrong + +NOAH_QUIZ_Q86 = "After the deluge, Utnapishtim\nsettled at the source of rivers."; +NOAH_QUIZ_H86 = "XI:206"; +NOAH_QUIZ_A86A = "True"; // Wrong +NOAH_QUIZ_A86B = "False"; // Correct + +NOAH_QUIZ_Q87 = "Gilgamesh led the way to\nthe cedar forest."; +NOAH_QUIZ_H87 = "III:220"; +NOAH_QUIZ_A87A = "True"; // Wrong +NOAH_QUIZ_A87B = "False"; // Correct + +NOAH_QUIZ_Q88 = "What did Gilgamesh bring\nback to Uruk from his meeting\nwith Utnapishtim?"; +NOAH_QUIZ_H88 = "XI:306"; +NOAH_QUIZ_A88A = "A loaf of bread"; // Wrong +NOAH_QUIZ_A88B = "Nothing"; // Correct +NOAH_QUIZ_A88C = "The plant of youth"; // Wrong + +NOAH_QUIZ_Q89 = "The boatman leaves Gilgamesh\nbefore the latter\nreturns to Uruk."; +NOAH_QUIZ_H89 = "XI:321"; +NOAH_QUIZ_A89A = "True"; // Wrong +NOAH_QUIZ_A89B = "False"; // Correct + +NOAH_QUIZ_Q90 = "Where did the hunter find\nEnkidu?"; +NOAH_QUIZ_H90 = "I:112"; +NOAH_QUIZ_A90A = "at a water hole"; // Correct +NOAH_QUIZ_A90B = "in the field"; // Wrong +NOAH_QUIZ_A90C = "at the gay bar"; // Wrong + +NOAH_QUIZ_Q91 = "Utnapishtim told Gilgamesh\nabout the plant of youth."; +NOAH_QUIZ_H91 = "XI:280"; +NOAH_QUIZ_A91A = "True"; // Correct +NOAH_QUIZ_A91B = "False"; // Wrong + +NOAH_QUIZ_Q92 = "Which god made Enkidu?"; +NOAH_QUIZ_H92 = "I:99"; +NOAH_QUIZ_A92A = "Anu"; // Wrong +NOAH_QUIZ_A92B = "Aruru"; // Correct +NOAH_QUIZ_A92C = "Anubis"; // Wrong + +NOAH_QUIZ_Q93 = "How many cloaks did\nHumbaba have?"; +NOAH_QUIZ_H93 = "V:99"; +NOAH_QUIZ_A93A = "7"; // Correct +NOAH_QUIZ_A93B = "10 "; // Wrong +NOAH_QUIZ_A93C = "99"; // Wrong + +NOAH_QUIZ_Q94 = "Who was Enkidu's father?"; +NOAH_QUIZ_H94 = "V:117"; +NOAH_QUIZ_A94A = "Enlil"; // Wrong +NOAH_QUIZ_A94B = "no one"; // Correct +NOAH_QUIZ_A94C = "Gilgamesh"; // Wrong + +NOAH_QUIZ_Q95 = "What was the name of the\ntwin mountains?"; +NOAH_QUIZ_H95 = "IX:37"; +NOAH_QUIZ_A95A = "Megiddo"; // Wrong +NOAH_QUIZ_A95B = "Mashu"; // Correct +NOAH_QUIZ_A95C = "Machu Picchu"; // Wrong + +NOAH_QUIZ_Q96 = "When Gilgamesh roamed the\nwilderness he was unarmed."; +NOAH_QUIZ_H96 = "IX:15"; +NOAH_QUIZ_A96A = "True"; // Wrong +NOAH_QUIZ_A96B = "False"; // Correct + +NOAH_QUIZ_Q97 = "Utnapishtim was Gilgamesh's\nancestor."; +NOAH_QUIZ_H97 = "IX:75"; +NOAH_QUIZ_A97A = "True"; // Correct +NOAH_QUIZ_A97B = "False"; // Wrong + +NOAH_QUIZ_Q98 = "Why did Gilgamesh set off\nto roam the wilderness?"; +NOAH_QUIZ_H98 = "IX:5"; +NOAH_QUIZ_A98A = "to look for treasure"; // Wrong +NOAH_QUIZ_A98B = "to seek immortality"; // Correct +NOAH_QUIZ_A98C = "to avenge Enkidu"; // Wrong + +NOAH_QUIZ_Q99 = "Who was having nightmares\nwhile travelling to the\ncedar forest?"; +NOAH_QUIZ_H99 = "IV:14"; +NOAH_QUIZ_A99A = "Enkidu"; // Wrong +NOAH_QUIZ_A99B = "Gilgamesh"; // Correct +NOAH_QUIZ_A99C = "Humbaba"; // Wrong diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/map_objects.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/map_objects.json new file mode 100644 index 00000000..590df249 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/map_objects.json @@ -0,0 +1,453 @@ +{ + "Version": 4, + "MapObjects": [ + { + "Name": "chandelier", + "Pic": { + "Type": "Normal", + "Pic": "chandelier" + }, + "Offset": [-8, -24], + "Health": 0, + "DrawAbove": true, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "pillar2", + "Pic": { + "Type": "Normal", + "Pic": "pillar2" + }, + "Health": 80, + "Flags": ["Inside", "OneOrMoreWalls"] + }, + { + "Name": "pillar", + "Pic": { + "Type": "Normal", + "Pic": "pillar" + }, + "Health": 80, + "Flags": ["Inside", "OneOrMoreWalls"] + }, + { + "Name": "stairs", + "Pic": { + "Type": "Normal", + "Pic": "stairs" + }, + "Offset": [-8, -23], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "pillar_candle", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "pillar_candle", + "TicksPerFrame": 6 + }, + "Health": 80, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "water_pitcher", + "Pic": { + "Type": "Normal", + "Pic": "water_pitcher" + }, + "Size": [8, 6], + "Offset": [-4, -12], + "Wreck": "water_pitcher_wreck", + "Health": 50, + "Flags": ["Inside", "OneOrMoreWalls"] + }, + { + "Name": "water_pitcher_wreck", + "Pic": { + "Type": "Normal", + "Pic": "water_pitcher_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/water", + "FootprintMask": "00000099" + }, + { + "Name": "beam", + "Pic": { + "Type": "Normal", + "Pic": "beam" + }, + "Offset": [-8, -13], + "Health": 0, + "Flags": ["Inside"] + }, + { + "Name": "candle", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "candle", + "TicksPerFrame": 6 + }, + "Offset": [-7, -29], + "Health": 40, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "birdcage", + "Pic": { + "Type": "Normal", + "Pic": "birdcage" + }, + "Offset": [-7, -29], + "Health": 40 + }, + { + "Name": "water_trough", + "Pic": { + "Type": "Normal", + "Pic": "water_trough" + }, + "Health": 80, + "Flags": ["OneOrMoreWalls"] + }, + { + "Name": "well_water", + "Pic": { + "Type": "Normal", + "Pic": "well_water" + }, + "Health": 80, + "Flags": ["Inside", "OneOrMoreWalls"] + }, + { + "Name": "well_feed", + "Pic": { + "Type": "Normal", + "Pic": "well_feed" + }, + "Health": 80, + "Flags": ["Inside", "OneOrMoreWalls"] + }, + { + "Name": "cage", + "Pic": { + "Type": "Normal", + "Pic": "cage" + }, + "Health": 100, + "Flags": ["Inside", "OneOrMoreWalls"] + }, + { + "Name": "shadow", + "Pic": { + "Type": "Normal", + "Pic": "shadow" + }, + "Health": 0, + "DrawBelow": true, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "curtain_yellow", + "Pic": { + "Type": "Normal", + "Pic": "curtain_yellow" + }, + "Offset": [-7, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "curtain_red", + "Pic": { + "Type": "Normal", + "Pic": "curtain_red" + }, + "Offset": [-7, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "curtain_blue", + "Pic": { + "Type": "Normal", + "Pic": "curtain_blue" + }, + "Offset": [-7, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "monkey_portrait", + "Pic": { + "Type": "Normal", + "Pic": "monkey_portrait" + }, + "Offset": [-5, -10], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "noah_portrait", + "Pic": { + "Type": "Normal", + "Pic": "noah_portrait" + }, + "Offset": [-8, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "naamah_portrait", + "Pic": { + "Type": "Normal", + "Pic": "naamah_portrait" + }, + "Offset": [-8, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "duck_picture", + "Pic": { + "Type": "Normal", + "Pic": "duck_picture" + }, + "Offset": [-7, -10], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "noah_flag", + "Pic": { + "Type": "Normal", + "Pic": "noah_flag" + }, + "Offset": [-7, -11], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "wood_slime", + "Pic": { + "Type": "Normal", + "Pic": "wood_slime" + }, + "Offset": [-8, -23], + "Health": 0, + "Flags": ["Outside", "OnWall"] + }, + { + "Name": "wood_color", + "Pic": { + "Type": "Normal", + "Pic": "wood_color" + }, + "Offset": [-8, -11], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "closet", + "Pic": { + "Type": "Normal", + "Pic": "closet" + }, + "Offset": [-8, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "closet_fruit", + "Pic": { + "Type": "Normal", + "Pic": "closet_fruit" + }, + "Offset": [-8, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "closets", + "Pic": { + "Type": "Normal", + "Pic": "closets" + }, + "Offset": [-8, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "lattice_broken", + "Pic": { + "Type": "Normal", + "Pic": "lattice_broken" + }, + "Offset": [-8, -11], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "sheep_sleep", + "Pic": { + "Type": "Animated", + "Sprites": "sheep_sleep", + "TicksPerFrame": 60 + }, + "Health": 0, + "DrawBelow": true, + "DamageSmoke": { + "Particle": "zzz", + "HealthThreshold": 1.0, + "Z": 10, + "Ticks": 20 + } + }, + { + "Name": "goat_sleep", + "Pic": { + "Type": "Animated", + "Sprites": "goat_sleep", + "TicksPerFrame": 60 + }, + "Health": 0, + "DrawBelow": true, + "DamageSmoke": { + "Particle": "zzz", + "HealthThreshold": 1.0, + "Z": 10, + "Ticks": 20 + } + }, + { + "Name": "antelope_sleep", + "Pic": { + "Type": "Animated", + "Sprites": "antelope_sleep", + "TicksPerFrame": 120 + }, + "Health": 0, + "DrawBelow": true, + "DamageSmoke": { + "Particle": "zzz", + "HealthThreshold": 1.0, + "Z": 10, + "Ticks": 35 + } + }, + { + "Name": "ox_sleep", + "Pic": { + "Type": "Animated", + "Sprites": "ox_sleep", + "TicksPerFrame": 150 + }, + "Health": 0, + "DrawBelow": true, + "DamageSmoke": { + "Particle": "zzz", + "HealthThreshold": 1.0, + "Z": 10, + "Ticks": 45 + } + }, + { + "Name": "camel_sleep", + "Pic": { + "Type": "Animated", + "Sprites": "camel_sleep", + "TicksPerFrame": 300 + }, + "Health": 0, + "DrawBelow": true, + "DamageSmoke": { + "Particle": "zzz", + "HealthThreshold": 1.0, + "Z": 10, + "Ticks": 100 + } + }, + { + "Name": "ostrich_sleep", + "Pic": { + "Type": "Animated", + "Sprites": "ostrich_sleep", + "TicksPerFrame": 260 + }, + "Health": 0, + "DrawBelow": true, + "DamageSmoke": { + "Particle": "zzz", + "HealthThreshold": 1.0, + "Z": 10, + "Ticks": 80 + } + }, + { + "Name": "giraffe_sleep", + "Pic": { + "Type": "Animated", + "Sprites": "giraffe_sleep", + "TicksPerFrame": 180 + }, + "Health": 0, + "DrawBelow": true, + "DamageSmoke": { + "Particle": "zzz", + "HealthThreshold": 1.0, + "Z": 10, + "Ticks": 50 + } + }, + { + "Name": "monkey_sleep", + "Pic": { + "Type": "Animated", + "Sprites": "monkey_sleep", + "TicksPerFrame": 75 + }, + "Health": 0, + "DrawBelow": true, + "DamageSmoke": { + "Particle": "zzz", + "HealthThreshold": 1.0, + "Z": 10, + "Ticks": 20 + } + }, + { + "Name": "elephant_sleep", + "Pic": { + "Type": "Animated", + "Sprites": "elephant_sleep", + "TicksPerFrame": 500 + }, + "Health": 0, + "DrawBelow": true, + "DamageSmoke": { + "Particle": "zzz", + "HealthThreshold": 1.0, + "Z": 10, + "Ticks": 200 + } + }, + { + "Name": "bear_sleep", + "Pic": { + "Type": "Animated", + "Sprites": "bear_sleep", + "TicksPerFrame": 400 + }, + "Health": 0, + "DrawBelow": true, + "DamageSmoke": { + "Particle": "zzz", + "HealthThreshold": 1.0, + "Z": 10, + "Ticks": 150 + } + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/missions.json new file mode 100644 index 00000000..9e7084e4 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/missions.json @@ -0,0 +1,834 @@ +{ + "Missions": [{ + "Title": "", + "Description": "", + "Type": "Static", + "Width": 32, + "Height": 27, + "ExitStyle": "hazard", + "KeyStyle": "plain2", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "PickupCounts": [], + "EnemyDensity": 0, + "Weapons": ["Hand Feed"], + "WeaponPersist": false, + "SkipDebrief": false, + "TileClasses": { + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "bd7925ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "1": { + "Name": "door", + "Type": "Door", + "Style": "dungeon2", + "Mask": "f0972cff", + "MaskAlt": "ffe72aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + }, + "10": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "623b0cff", + "MaskAlt": "d7981fff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "11": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "434343ff", + "MaskAlt": "484847ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "12": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "434343ff", + "MaskAlt": "484847ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "13": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "434343ff", + "MaskAlt": "484847ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "14": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "434343ff", + "MaskAlt": "484847ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "15": { + "Name": "wall", + "Type": "Wall", + "Style": "wood2", + "Mask": "d9923cff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "16": { + "Name": "wall", + "Type": "Wall", + "Style": "wood2", + "Mask": "d9923cff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "17": { + "Name": "wall", + "Type": "Wall", + "Style": "wood2", + "Mask": "5f4320ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "18": { + "Name": "wall", + "Type": "Wall", + "Style": "landscape", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "19": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "fac079ff", + "MaskAlt": "ffba65ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "2": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffe72aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + }, + "20": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "fac079ff", + "MaskAlt": "ffba65ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "21": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "f09817ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "22": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "f09817ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "23": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "747474ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "24": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "747474ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "25": { + "Name": "wall", + "Type": "Wall", + "Style": "wood", + "Mask": "ffaf61ff", + "MaskAlt": "bbbbbbff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "26": { + "Name": "wall", + "Type": "Wall", + "Style": "wood", + "Mask": "ffaf61ff", + "MaskAlt": "bbbbbbff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "27": { + "Name": "wall", + "Type": "Wall", + "Style": "support", + "Mask": "ffff00ff", + "MaskAlt": "feff00ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "28": { + "Name": "wall", + "Type": "Wall", + "Style": "support", + "Mask": "ffff00ff", + "MaskAlt": "feff00ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "29": { + "Name": "wall", + "Type": "Wall", + "Style": "support", + "Mask": "ff0000ff", + "MaskAlt": "ff0000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "3": { + "Name": "wall", + "Type": "Wall", + "Style": "wood", + "Mask": "85521eff", + "MaskAlt": "bdbdbdff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "30": { + "Name": "wall", + "Type": "Wall", + "Style": "support", + "Mask": "ff0000ff", + "MaskAlt": "ff0000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "31": { + "Name": "wall", + "Type": "Wall", + "Style": "support", + "Mask": "ff00ffff", + "MaskAlt": "ff00ffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "4": { + "Name": "wall", + "Type": "Wall", + "Style": "wood", + "Mask": "85521eff", + "MaskAlt": "bdbdbdff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "5": { + "Name": "wall", + "Type": "Wall", + "Style": "wood", + "Mask": "85521eff", + "MaskAlt": "bdbdbdff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "6": { + "Name": "wall", + "Type": "Wall", + "Style": "wood", + "Mask": "85521eff", + "MaskAlt": "bdbdbdff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "7": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "623b0cff", + "MaskAlt": "d7981fff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "8": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "623b0cff", + "MaskAlt": "d7981fff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "9": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "623b0cff", + "MaskAlt": "d7981fff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + } + }, + "Tiles": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,3,1,4,1,5,1,6,2,7,0,8,0,9,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,11,0,12,0,13,0,14,0,15,0,16,0,17,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,19,0,20,0,21,0,22,0,23,0,24,0,25,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,27,0,28,0,29,0,30,0,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,256,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "no_sign", + "Positions": [[1, 12]] + }, + { + "MapObject": "bloodstain2", + "Positions": [[1, 8], + [13, 8]] + }, + { + "MapObject": "bloodstain", + "Positions": [[11, 8]] + }, + { + "MapObject": "bloodstain1", + "Positions": [[15, 8]] + }, + { + "MapObject": "map", + "Positions": [[5, 12]] + }, + { + "MapObject": "wall_vent", + "Positions": [[9, 10]] + }, + { + "MapObject": "pool_water", + "Positions": [[17, 1]] + }, + { + "MapObject": "table_and_chairs", + "Positions": [[21, 1]] + }, + { + "MapObject": "shadow", + "Positions": [[25, 3], + [28, 3]] + }, + { + "MapObject": "barrel_wood2", + "Positions": [[23, 1]] + }, + { + "MapObject": "well_water", + "Positions": [[19, 1]] + }, + { + "MapObject": "wood_slime", + "Positions": [[3, 2]] + }, + { + "MapObject": "curtain_yellow", + "Positions": [[5, 2]] + }, + { + "MapObject": "monkey_portrait", + "Positions": [[7, 2]] + }, + { + "MapObject": "noah_portrait", + "Positions": [[11, 2]] + }, + { + "MapObject": "curtain_red", + "Positions": [[13, 2]] + }, + { + "MapObject": "duck_picture", + "Positions": [[15, 2]] + }, + { + "MapObject": "wood_color", + "Positions": [[1, 4]] + }, + { + "MapObject": "lattice_broken", + "Positions": [[3, 4]] + }, + { + "MapObject": "jail_cell_broken", + "Positions": [[7, 4]] + }, + { + "MapObject": "closet", + "Positions": [[11, 4]] + }, + { + "MapObject": "naamah_portrait", + "Positions": [[3, 6]] + }, + { + "MapObject": "noah_flag", + "Positions": [[7, 6]] + }, + { + "MapObject": "curtain_blue", + "Positions": [[11, 6]] + }, + { + "MapObject": "green_relief", + "Positions": [[15, 6]] + }, + { + "MapObject": "closet_fruit", + "Positions": [[3, 8]] + }, + { + "MapObject": "closets", + "Positions": [[7, 8]] + }, + { + "MapObject": "bookshelf2_wreck", + "Positions": [[25, 1]] + }, + { + "MapObject": "well_feed", + "Positions": [[29, 1]] + }, + { + "MapObject": "pillar_candle", + "Positions": [[31, 1]] + }, + { + "MapObject": "pillar2", + "Positions": [[17, 3]] + }, + { + "MapObject": "birdcage", + "Positions": [[19, 3]] + }, + { + "MapObject": "water_pitcher", + "Positions": [[21, 3]] + }, + { + "MapObject": "water_pitcher_wreck", + "Positions": [[23, 3]] + }, + { + "MapObject": "beam", + "Positions": [[25, 3]] + }, + { + "MapObject": "chandelier", + "Positions": [[28, 3]] + }, + { + "MapObject": "water_trough", + "Positions": [[29, 3]] + }, + { + "MapObject": "candle", + "Positions": [[31, 3]] + }, + { + "MapObject": "cage", + "Positions": [[29, 7]] + }, + { + "MapObject": "pillar", + "Positions": [[31, 7]] + }], + "StaticCharacters": [{ + "Index": 0, + "Places": [{ + "Pos": [1, 17], + "Dir": 2 + }] + }, + { + "Index": 13, + "Places": [{ + "Pos": [3, 17], + "Dir": 5 + }] + }, + { + "Index": 14, + "Places": [{ + "Pos": [5, 17], + "Dir": 6 + }] + }, + { + "Index": 15, + "Places": [{ + "Pos": [7, 17], + "Dir": 6 + }] + }, + { + "Index": 1, + "Places": [{ + "Pos": [1, 19], + "Dir": 5 + }] + }, + { + "Index": 2, + "Places": [{ + "Pos": [3, 19], + "Dir": 5 + }] + }, + { + "Index": 3, + "Places": [{ + "Pos": [5, 19], + "Dir": 5 + }] + }, + { + "Index": 4, + "Places": [{ + "Pos": [7, 19], + "Dir": 6 + }] + }, + { + "Index": 5, + "Places": [{ + "Pos": [9, 19], + "Dir": 5 + }] + }, + { + "Index": 6, + "Places": [{ + "Pos": [1, 21], + "Dir": 5 + }] + }, + { + "Index": 7, + "Places": [{ + "Pos": [3, 21], + "Dir": 5 + }] + }, + { + "Index": 8, + "Places": [{ + "Pos": [5, 21], + "Dir": 5 + }] + }, + { + "Index": 9, + "Places": [{ + "Pos": [7, 21], + "Dir": 6 + }] + }, + { + "Index": 10, + "Places": [{ + "Pos": [9, 21], + "Dir": 5 + }] + }, + { + "Index": 11, + "Places": [{ + "Pos": [11, 21], + "Dir": 5 + }] + }, + { + "Index": 12, + "Places": [{ + "Pos": [13, 21], + "Dir": 5 + }] + }], + "StaticObjectives": [], + "StaticKeys": [{ + "Index": 0, + "Positions": [[4, 2], + [4, 2], + [4, 2], + [4, 2], + [17, 5], + [17, 5], + [17, 5]] + }, + { + "Index": 2, + "Positions": [[6, 2], + [6, 2], + [6, 2], + [6, 2], + [19, 5], + [19, 5], + [19, 5]] + }], + "StaticPickups": [{ + "Pickup": "gun_Large Launcher", + "Positions": [[31, 5]] + }, + { + "Pickup": "gun_Super Feeder", + "Positions": [[17, 7]] + }, + { + "Pickup": "heart", + "Positions": [[27, 7]] + }, + { + "Pickup": "scroll", + "Positions": [[27, 1]] + }, + { + "Pickup": "knapsack", + "Positions": [[21, 5]] + }, + { + "Pickup": "large_feed_box", + "Positions": [[23, 5]] + }, + { + "Pickup": "small_bandage", + "Positions": [[25, 5]] + }, + { + "Pickup": "large_bandage", + "Positions": [[27, 5]] + }, + { + "Pickup": "small_feed_box", + "Positions": [[29, 5]] + }, + { + "Pickup": "banana", + "Positions": [[19, 7]] + }, + { + "Pickup": "apple", + "Positions": [[21, 7]] + }, + { + "Pickup": "grapes", + "Positions": [[23, 7]] + }, + { + "Pickup": "orange", + "Positions": [[25, 7]] + }, + { + "Pickup": "gun_Cantaloupe Feeder", + "Positions": [[17, 9]] + }, + { + "Pickup": "ammo_Cantaloupe", + "Positions": [[19, 9]] + }, + { + "Pickup": "ammo_Watermelon", + "Positions": [[21, 9], + [23, 9]] + }, + { + "Pickup": "map", + "Positions": [[25, 9]] + }], + "Start": [0, 0], + "Exits": [{ + "Rect": [27, + 14, + 4, + 2], + "Mission": 1, + "Hidden": false + }], + "AltFloorsEnabled": false + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/particles.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/particles.json new file mode 100644 index 00000000..bbfbaed7 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/particles.json @@ -0,0 +1,23 @@ +{ + "Version": 3, + "Particles": [ + { + "Name": "zzz", + "Type": "Text", + "Text": { + "Value": "z" + }, + "Range": 40, + "GravityFactor": -0.1 + }, + { + "Name": "trail_spit", + "Pic": { + "Type": "Animated", + "Sprites": "particles/trail_spit", + "TicksPerFrame": 2 + }, + "Range": 7 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/pickups.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/pickups.json new file mode 100644 index 00000000..4cf96717 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/pickups.json @@ -0,0 +1,194 @@ +{ + "Version": 3, + "Pickups": [ + { + "Name": "small_bandage", + "Pic": { + "Type": "Normal", + "Pic": "bandage" + }, + "Effects": [{ + "Type": "Health", + "Health": 10 + }], + "Sound": "pickup" + }, + { + "Name": "large_bandage", + "Pic": { + "Type": "Normal", + "Pic": "bandage_big" + }, + "Effects": [{ + "Type": "Health", + "Health": 25 + }], + "Sound": "pickup" + }, + { + "Name": "heart", + "Pic": { + "Type": "Normal", + "Pic": "heart" + }, + "Effects": [{ + "Type": "Health", + "Health": 200 + }, { + "Type": "Ammo", + "Ammo": "Feed", + "Amount": 25 + }, { + "Type": "Lives", + "Lives": 1 + }], + "Sound": "1up" + }, + { + "Name": "grapes", + "Pic": { + "Type": "Normal", + "Pic": "grapes" + }, + "Effects": [{ + "Type": "Score", + "Score": 500 + }], + "Sound": "pickup" + }, + { + "Name": "orange", + "Pic": { + "Type": "Normal", + "Pic": "orange" + }, + "Effects": [{ + "Type": "Score", + "Score": 500 + }], + "Sound": "pickup" + }, + { + "Name": "apple", + "Pic": { + "Type": "Normal", + "Pic": "apple" + }, + "Effects": [{ + "Type": "Score", + "Score": 500 + }], + "Sound": "pickup" + }, + { + "Name": "banana", + "Pic": { + "Type": "Normal", + "Pic": "banana" + }, + "Effects": [{ + "Type": "Score", + "Score": 500 + }], + "Sound": "pickup" + }, + { + "Name": "scroll", + "Pic": { + "Type": "Normal", + "Pic": "scroll" + }, + "Effects": [{ + "Type": "Menu", + "Menu": { + "Text": "This pickup is a template only; the first Item is the correct effects, the second the wrong effects.", + "Items": [{ + "Text": "correct", + "Effects": [{ + "Type": "Score", + "Score": 1000 + }, { + "Type": "Health", + "Health": 25 + }, { + "Type": "Ammo", + "Ammo": "Feed", + "Amount": 10 + }, { + "Type": "Sound", + "Sound": "bonus" + }] + }, { + "Text": "wrong", + "Effects": [{ + "Type": "Health", + "Health": 4 + }, { + "Type": "Sound", + "Sound": "wrong" + }] + }] + } + }], + "Sound": "pickup" + }, + { + "Name": "small_feed_box", + "Pic": { + "Type": "Normal", + "Pic": "small_feed_box" + }, + "Effects": [{ + "Type": "Ammo", + "Ammo": "Feed", + "Amount": 5 + }], + "Sound": "pickup" + }, + { + "Name": "large_feed_box", + "Pic": { + "Type": "Normal", + "Pic": "large_feed_box" + }, + "Effects": [{ + "Type": "Ammo", + "Ammo": "Feed", + "Amount": 25 + }], + "Sound": "pickup" + }, + { + "Name": "knapsack", + "Pic": { + "Type": "Normal", + "Pic": "bag" + }, + "Effects": [{ + "Type": "Ammo", + "Ammo": "Feed", + "Amount": 100 + }, { + "Type": "Ammo", + "Ammo": "Cantaloupe", + "Amount": 28 + }, { + "Type": "Ammo", + "Ammo": "Watermelon", + "Amount": 25 + }], + "Sound": "pickup" + }, + { + "Name": "map", + "Pic": { + "Type": "Normal", + "Pic": "map" + }, + "Effects": [{ + "Type": "ShowMap" + }], + "Sound": "pickup" + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/bow_draw.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/bow_draw.txt new file mode 100644 index 00000000..7c5d6ecd --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/bow_draw.txt @@ -0,0 +1,5 @@ +Adapted from SFX_Bow_&_Arrow_Attacks +By PoundSoundUK +https://freesound.org/people/PoundSoundUK/sounds/717823/ + +https://creativecommons.org/licenses/by/4.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/bow_draw0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/bow_draw0.ogg new file mode 100644 index 00000000..0e0edc96 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/bow_draw0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/bow_draw1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/bow_draw1.ogg new file mode 100644 index 00000000..87b3326a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/bow_draw1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/bow_draw2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/bow_draw2.ogg new file mode 100644 index 00000000..37ee48f2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/bow_draw2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/0.ogg new file mode 100644 index 00000000..cfa2ad50 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/1.ogg new file mode 100644 index 00000000..4f3b99ce Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/2.ogg new file mode 100644 index 00000000..a130ef27 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/3.ogg new file mode 100644 index 00000000..964d8051 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/4.ogg new file mode 100644 index 00000000..9bbf293a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/5.ogg new file mode 100644 index 00000000..eae0e2c4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/6.ogg new file mode 100644 index 00000000..b364b630 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/7.ogg new file mode 100644 index 00000000..cd6bfc01 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/8.ogg new file mode 100644 index 00000000..8f76f4a2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/license.txt new file mode 100644 index 00000000..85d79f0c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/camel/license.txt @@ -0,0 +1,4 @@ +Derived from SFX - Horse - Trot.wav +by MrFizzywig +https://freesound.org/people/MrFizzywig/sounds/581834/ +http://creativecommons.org/publicdomain/zero/1.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/kangaroo/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/kangaroo/0.ogg new file mode 100644 index 00000000..fc102c74 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/kangaroo/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/kangaroo/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/kangaroo/license.txt new file mode 100644 index 00000000..4d1c775e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/kangaroo/license.txt @@ -0,0 +1,4 @@ +Derived from Boing 1 +by magnuswaker +https://freesound.org/people/magnuswaker/sounds/540788/ +http://creativecommons.org/publicdomain/zero/1.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/0.ogg new file mode 100644 index 00000000..37d6747a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/1.ogg new file mode 100644 index 00000000..9d03e646 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/2.ogg new file mode 100644 index 00000000..ec95f99a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/3.ogg new file mode 100644 index 00000000..b7034045 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/4.ogg new file mode 100644 index 00000000..14568cc7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/5.ogg new file mode 100644 index 00000000..5ffd988d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/6.ogg new file mode 100644 index 00000000..8392dedc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/7.ogg new file mode 100644 index 00000000..ece03242 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/8.ogg new file mode 100644 index 00000000..d420a23f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/license.txt new file mode 100644 index 00000000..3e0b64bc --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/footsteps/sheep/license.txt @@ -0,0 +1,4 @@ +Derived from cartoon horse gallop.wav +by martian +https://freesound.org/people/martian/sounds/393857/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/splat0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/splat0.ogg new file mode 100644 index 00000000..fd2729c4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/splat0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/splat0.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/splat0.txt new file mode 100644 index 00000000..069fd6ee --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/splat0.txt @@ -0,0 +1,5 @@ +Adapted from Messy Splat 3 +By FoolBoyMedia +https://freesound.org/people/FoolBoyMedia/sounds/237927/ + +https://creativecommons.org/licenses/by/4.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/splat1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/splat1.ogg new file mode 100644 index 00000000..ac865888 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/splat1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/splat1.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/splat1.txt new file mode 100644 index 00000000..0dd02b6d --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/N3Ddata.cdogscpn/sounds/splat1.txt @@ -0,0 +1,5 @@ +Adapted from Messy Splat 3a +By FoolBoyMedia +https://freesound.org/people/FoolBoyMedia/sounds/237928/ + +https://creativecommons.org/licenses/by/4.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2.cdogscpn/campaign.json new file mode 100644 index 00000000..2c7627bb --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2.cdogscpn/campaign.json @@ -0,0 +1,17 @@ +{ + "Version": 16, + "Title": "Spear of Destiny Mission 2: Return to Danger", + "Author": "FormGen Corporation", + "Description": "", + "Ammo": true, + "WeaponPersist": true, + "SkipWeaponMenu": true, + "RandomPickups": false, + "DoorOpenTicks": 210, + "Lives": 1, + "MaxLives": 9, + "PlayerHP": 0, + "PlayerMaxHP": 0, + "PlayerExcessHP": 0, + "Missions": 0 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2.cdogscpn/characters.json new file mode 100644 index 00000000..af9e4154 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2.cdogscpn/characters.json @@ -0,0 +1,4 @@ +{ + "Version": 13, + "Characters": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2.cdogscpn/missions.json new file mode 100644 index 00000000..61f8fc93 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2.cdogscpn/missions.json @@ -0,0 +1,3 @@ +{ + "Missions": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/ammo.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/ammo.json new file mode 100644 index 00000000..8a06305b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/ammo.json @@ -0,0 +1,15 @@ +{ + "Version": 2, + "Ammo": [ + { + "Name": "Ammo", + "Pic": { + "Type": "Normal", + "Pic": "ammo_clip" + }, + "Sound": "ammo_pickup", + "Amount": 4, + "Max": 99 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/bullets.json new file mode 100644 index 00000000..7525ff81 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/bullets.json @@ -0,0 +1,223 @@ +{ + "Version": 5, + "Bullets": [ + { + "Name": "knife", + "Power": 8, + "Hit": { + "Flesh": { + "Sound": "hits/knife_flesh" + } + }, + "Special": { + "Effect": "Petrify", + "Ticks": 30 + } + }, + { + "Name": "bullet", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail", + "Width": 1.0 + }, + "OutOfRangeSpark": "spark", + "WallMark": "bullet_hole", + "Hit": { + "Flesh": {} + }, + "Speed": 35000, + "Range": 1, + "Power": 21, + "Mass": 0.1, + "Special": { + "Effect": "Petrify", + "Ticks": 30 + } + }, + { + "Name": "bullet_enemy", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail", + "Width": 1.0 + }, + "OutOfRangeSpark": "spark", + "WallMark": "bullet_hole", + "Hit": { + "Flesh": {} + }, + "Speed": 35000, + "Range": 1, + "Power": 16, + "Mass": 0.1 + }, + { + "Name": "bullet_boss", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail", + "Width": 1.5 + }, + "OutOfRangeSpark": "spark", + "WallMark": "bullet_hole", + "Hit": { + "Flesh": {} + }, + "Speed": 35000, + "Range": 1, + "Power": 24, + "Mass": 0.1 + }, + { + "Name": "bullet_quad", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail", + "Width": 1.25 + }, + "OutOfRangeSpark": "spark", + "WallMark": "bullet_hole", + "Hit": { + "Flesh": {} + }, + "Speed": 35000, + "Range": 1, + "Power": 12, + "Mass": 0.1 + }, + { + "Name": "syringe", + "Pic": { + "Type": "Directional", + "Sprites": "syringe" + }, + "ShadowSize": [2, 2], + "Hit": { + "Flesh": { + "Sound": "hits/knife_flesh" + }, + "Wall": { + "Sound": "glass_break" + } + }, + "Speed": 800, + "Range": 70, + "Power": 20, + "Mass": 1, + "Size": [4, 4], + "Spark": "", + "Special": { + "Effect": "Poison", + "Ticks": 15 + } + }, + { + "Name": "rocket", + "Pic": { + "Type": "Directional", + "Sprites": "rocket" + }, + "Trail": { + "Particle": "smoke_trail_small", + "Width": 0, + "TicksPerEmit": 4 + }, + "ShadowSize": [2, 2], + "Hit": { + "Flesh": { + "Sound": "hits/rocket" + }, + "Wall": { + "Sound": "hits/rocket" + } + }, + "Speed": 800, + "Range": 70, + "Power": 45, + "Mass": 15.0, + "Size": [4, 4], + "Spark": "boom" + }, + { + "Name": "dog_bite", + "Power": 11, + "Mass": 1.0, + "Hit": { + "Flesh": { + "Sound": "hits/dog_growl" + } + } + }, + { + "Name": "ghost_drain", + "Power": 3, + "Mass": 0, + "Hit": { + "Flesh": { + "Sound": "hits/gas" + } + } + }, + { + "Name": "fireball", + "Pic": { + "Type": "Animated", + "Sprites": "fireball_small", + "TicksPerFrame": 4 + }, + "Speed": 350, + "Range": 200, + "Power": 15, + "Mass": 18.0, + "Size": [3, 3], + "Special": { + "Effect": "Flame" + }, + "Hit": { + "Flesh": { + "Sound": "hits/fire" + }, + "Wall": { + "Sound": "hits/fire" + } + }, + "Spark": "fireball_hit" + }, + { + "Name": "energy_ball", + "Pic": { + "Type": "Animated", + "Sprites": "fireball_green", + "TicksPerFrame": 4 + }, + "Speed": 625, + "Range": 200, + "Power": 46, + "Mass": 40.0, + "Size": [3, 3], + "Special": "Flame", + "Spark": "fireball_green_hit", + "Hit": { + "Flesh": { + "Sound": "hits/fire" + }, + "Wall": { + "Sound": "hits/fire" + } + } + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/campaign.json new file mode 100644 index 00000000..0a2524fd --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/campaign.json @@ -0,0 +1,11 @@ +{ + "Version": 16, + "Title": "Spear of Destiny Mission 2: Return to Danger", + "Author": "FormGen Corporation", + "Description": "", + "Ammo": true, + "SkipWeaponMenu": true, + "RandomPickups": false, + "DoorOpenTicks": 210, + "Missions": 1 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/character_classes.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/character_classes.json new file mode 100644 index 00000000..8f267216 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/character_classes.json @@ -0,0 +1,198 @@ +{ + "Version": 2, + "Characters": [ + { + "Name": "Guard", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "soldier", + "Sounds": "guard", + "Corpse": "dead_guard" + }, + { + "Name": "Killer Dog", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/dog" + }, + "Body": "dog", + "Sounds": "dog", + "Footsteps": "dog" + }, + { + "Name": "SS", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "soldier", + "Sounds": "ss" + }, + { + "Name": "Officer", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "soldier", + "Sounds": "officer" + }, + { + "Name": "Bat", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/dog" + }, + "Body": "bat", + "Sounds": "mutant", + "BloodColor": "ff0000" + }, + { + "Name": "Hans Grosse", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big", + "Sounds": "hans" + }, + { + "Name": "Dr Schabbs", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big", + "Sounds": "schabbs" + }, + { + "Name": "Fake Hitler", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "wizard", + "Sounds": "fake_hitler", + "BloodColor": "000000" + }, + { + "Name": "Mecha Hitler", + "Vehicle": true, + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "mech", + "DeathSprites": "explosion", + "Sounds": "mecha_hitler", + "BloodColor": "00ffff", + "Footsteps": "mech", + "FootstepsDistancePlus": 0 + }, + { + "Name": "Hitler", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "soldier", + "Sounds": "hitler" + }, + { + "Name": "Otto Giftmacher", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big_soldier", + "Sounds": "otto" + }, + { + "Name": "Gretel Grosse", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big", + "Sounds": "gretel" + }, + { + "Name": "General Fettgesicht", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big_soldier", + "Sounds": "fettgesicht" + }, + { + "Name": "Pacman Ghost", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "none" + }, + { + "Name": "Submarine Willy", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big_soldier", + "Sounds": "trans" + }, + { + "Name": "Professor Quarkblitz", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big", + "Sounds": "bill" + }, + { + "Name": "Hans von Schlieffen", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/skull_big" + }, + "Body": "big", + "Sounds": "ubermutant", + "BloodColor": "ff00ff" + }, + { + "Name": "The Robot", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/robot" + }, + "Body": "big", + "Sounds": "knight" + }, + { + "Name": "Ghost", + "HeadPics": { + "Type": "Directional", + "Sprites": "" + }, + "Body": "none", + "DeathSprites": "", + "Sounds": "ghost", + "BloodColor": "999999", + "Corpse": "ghost_corpse" + }, + { + "Name": "Devil Incarnate", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/madbugeye" + }, + "Body": "angel", + "Sounds": "angel", + "BloodColor": "ffff00" + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/characters.json new file mode 100644 index 00000000..1dde089e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/characters.json @@ -0,0 +1,437 @@ +{ + "Version": 13, + "Characters": [{ + "Class": "Jones", + "PlayerTemplateName": "B.J.Blazkowicz", + "HairType": "flattop", + "Skin": "ffb26aff", + "Arms": "878787ff", + "Body": "918f8fff", + "Legs": "878787ff", + "Hair": "fc7e04ff", + "Feet": "1e1e1eff", + "speed": 256, + "Gun": "Pistol", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }, + { + "Class": "Guard", + "HairType": "combat_helmet", + "Skin": "ff9e40ff", + "Arms": "248704ff", + "Body": "128702ff", + "Legs": "017401ff", + "Hair": "9a9a9aff", + "Feet": "030679ff", + "speed": 193, + "Gun": "Guard Pistol", + "maxHealth": 25, + "flags": 128, + "probabilityToMove": 52, + "probabilityToTrack": 42, + "probabilityToShoot": 13, + "actionDelay": 15 + }, + { + "Class": "Killer Dog", + "Skin": "ad7200ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "00127eff", + "Feet": "404040ff", + "speed": 386, + "Gun": "Dog Bite", + "maxHealth": 1, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 68, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "SS", + "HairType": "beret", + "Skin": "ffa83bff", + "Arms": "5a5a5bff", + "Body": "535356ff", + "Legs": "48484dff", + "Hair": "515158ff", + "Feet": "000362ff", + "speed": 258, + "Gun": "SS Machine Gun", + "maxHealth": 100, + "flags": 128, + "probabilityToMove": 50, + "probabilityToTrack": 41, + "probabilityToShoot": 12, + "actionDelay": 15 + }, + { + "Class": "Bat", + "Skin": "cd8f17ff", + "Arms": "352509ff", + "Body": "003f06ff", + "Legs": "003c08ff", + "Hair": "0e0d0dff", + "Feet": "404040ff", + "speed": 194, + "Gun": "Guard Pistol", + "maxHealth": 55, + "flags": 128, + "probabilityToMove": 50, + "probabilityToTrack": 42, + "probabilityToShoot": 12, + "actionDelay": 5 + }, + { + "Class": "Officer", + "HairType": "peak_cap", + "Skin": "ffa83bff", + "Arms": "ecececff", + "Body": "f8f8ffff", + "Legs": "fcfcfcff", + "Hair": "797979ff", + "Feet": "090c7eff", + "speed": 330, + "Gun": "Guard Pistol", + "maxHealth": 50, + "flags": 128, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 12, + "actionDelay": 15 + }, + { + "Class": "Pacman Ghost", + "HairType": "pacman_ghost", + "Skin": "00ff00ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "ad0000ff", + "Feet": "404040ff", + "speed": 130, + "Gun": "Ghost Drain", + "maxHealth": 40, + "flags": 34087936, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Pacman Ghost", + "HairType": "pacman_ghost", + "Skin": "00ff00ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "fca600ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Ghost Drain", + "maxHealth": 40, + "flags": 34087936, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Pacman Ghost", + "HairType": "pacman_ghost", + "Skin": "00ff00ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "4147fcff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Ghost Drain", + "maxHealth": 40, + "flags": 34087936, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Pacman Ghost", + "HairType": "pacman_ghost", + "Skin": "00ff00ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "ff6c84ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Ghost Drain", + "maxHealth": 40, + "flags": 34087936, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Hans Grosse", + "HairType": "flattop", + "Skin": "ffbf73ff", + "Arms": "0c08f0ff", + "Body": "0016ffff", + "Legs": "0820fcff", + "Hair": "fcfa0aff", + "Feet": "0200f7ff", + "speed": 192, + "Gun": "Chaingun and Machinegun", + "maxHealth": 1000, + "flags": 29824, + "Drop": "keys/plain/yellow", + "probabilityToMove": 30, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Dr Schabbs", + "HairType": "goggles", + "Skin": "ffc785ff", + "Arms": "f7f5f5ff", + "Body": "fffafaff", + "Legs": "fffcfcff", + "Hair": "fcfcfcff", + "Feet": "fffcfcff", + "speed": 192, + "Gun": "Syringes", + "maxHealth": 1250, + "flags": 29824, + "probabilityToMove": 40, + "probabilityToTrack": 30, + "probabilityToShoot": 52, + "actionDelay": 40 + }, + { + "Class": "Fake Hitler", + "HairType": "hitler", + "Skin": "ffb871ff", + "Arms": "ffe841ff", + "Body": "404040ff", + "Legs": "850000ff", + "Hair": "000000ff", + "Feet": "404040ff", + "speed": 192, + "Gun": "Flamethrower", + "maxHealth": 350, + "flags": 9344, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 12, + "actionDelay": 15 + }, + { + "Class": "Mecha Hitler", + "HairType": "hitler", + "Skin": "ffb871ff", + "Arms": "830000ff", + "Body": "007f83ff", + "Legs": "007a7eff", + "Hair": "000000ff", + "Feet": "006a74ff", + "speed": 192, + "Gun": "Quad Chain Gun", + "maxHealth": 1000, + "flags": 25728, + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Hitler", + "HairType": "hitler", + "Skin": "ffb871ff", + "Arms": "d99b3cff", + "Body": "d9a644ff", + "Legs": "d29a2eff", + "Hair": "000000ff", + "Feet": "020100ff", + "speed": 327, + "Gun": "Chaingun and Machinegun", + "maxHealth": 750, + "flags": 25728, + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 80, + "actionDelay": 40 + }, + { + "Class": "Otto Giftmacher", + "HairType": "peak_cap", + "Skin": "ffbb63ff", + "Arms": "ecececff", + "Body": "f8f8ffff", + "Legs": "fcfcfcff", + "Hair": "ffededff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Rocket Launcher", + "maxHealth": 1000, + "flags": 25728, + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Gretel Grosse", + "HairType": "pigtails", + "Skin": "ffbf73ff", + "Arms": "f00d00ff", + "Body": "ff0000ff", + "Legs": "fc0808ff", + "Hair": "fcfa0aff", + "Feet": "f70d00ff", + "speed": 194, + "Gun": "Chaingun and Machinegun", + "maxHealth": 1000, + "flags": 25728, + "Drop": "keys/plain/yellow", + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "General Fettgesicht", + "HairType": "peak_cap", + "Skin": "ffbb63ff", + "Arms": "ffbf5fff", + "Body": "ffc26aff", + "Legs": "ffb965ff", + "Hair": "ffd073ff", + "Feet": "404040ff", + "speed": 192, + "Gun": "Chaingun and Rocket Launcher", + "maxHealth": 1000, + "flags": 25728, + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Submarine Willy", + "HairType": "combat_helmet", + "Skin": "ffbf73ff", + "Arms": "002a87ff", + "Body": "003085ff", + "Legs": "012a87ff", + "Hair": "c9c9c9ff", + "Feet": "00267bff", + "speed": 192, + "Gun": "Chaingun and Machinegun", + "maxHealth": 1000, + "flags": 25728, + "Drop": "keys/plain/yellow", + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Professor Quarkblitz", + "HairType": "mad_doc", + "Skin": "ffbf73ff", + "Arms": "fcfaf8ff", + "Body": "fafafaff", + "Legs": "faf9f8ff", + "Hair": "fffffcff", + "Feet": "012ed9ff", + "speed": 258, + "Gun": "Chaingun and Rocket Launcher", + "maxHealth": 1100, + "flags": 25728, + "Drop": "keys/plain/yellow", + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Hans von Schlieffen", + "Skin": "e9e9e9ff", + "Arms": "0d21ffff", + "Body": "0433ffff", + "Legs": "9f9f9fff", + "Hair": "000000ff", + "Feet": "404040ff", + "speed": 386, + "Gun": "boss_chaingun1", + "maxHealth": 1200, + "flags": 25728, + "Drop": "keys/plain/yellow", + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "The Robot", + "Skin": "73ffebff", + "Arms": "6b6b6bff", + "Body": "0224f0ff", + "Legs": "04e9d6ff", + "Hair": "fa0000ff", + "Feet": "f1f5f5ff", + "speed": 256, + "Gun": "Dual Chaingun and Rocket Launcher", + "maxHealth": 1400, + "flags": 25728, + "Drop": "keys/plain/yellow", + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Ghost", + "HairType": "ghost", + "Skin": "00ff00ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "ad0000ff", + "Feet": "404040ff", + "speed": 102, + "Gun": "Ghost Drain", + "maxHealth": 12, + "flags": 9344, + "probabilityToMove": 90, + "probabilityToTrack": 90, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Devil Incarnate", + "Skin": "0017ffff", + "Arms": "0400ffff", + "Body": "0d09e9ff", + "Legs": "0024f7ff", + "Hair": "000000ff", + "Feet": "0022eeff", + "speed": 192, + "Gun": "Energy Ball", + "maxHealth": 1600, + "flags": 25728, + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/ammo_box.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/ammo_box.png new file mode 100644 index 00000000..8c05d1b1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/ammo_box.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/ammo_box.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/ammo_box.txt new file mode 100644 index 00000000..b935fc5b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/ammo_box.txt @@ -0,0 +1,4 @@ +140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/ammo_clip.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/ammo_clip.png new file mode 100644 index 00000000..780ec6e3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/ammo_clip.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/basket.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/basket.png new file mode 100644 index 00000000..57db9a45 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/basket.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/basket.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/basket.txt new file mode 100644 index 00000000..16fc73fa --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/basket.txt @@ -0,0 +1,4 @@ +Adapted from [16x16] Indoor RPG Tileset by armisius +https://opengameart.org/content/16x16-indoor-rpg-tileset + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chandelier.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chandelier.png new file mode 100644 index 00000000..5d948aa5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chandelier.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/data.json new file mode 100644 index 00000000..f6197593 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/data.json @@ -0,0 +1,45 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "head", "body"], + ["gun_r", "gun_l", "legs", "head", "body"], + ["gun_l", "legs", "body", "head", "gun_r"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "body", "head", "gun_l"], + ["gun_r", "gun_l", "legs", "head", "body"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 10]], + "idle": [[0, 10]], + "run": [ + [0, 11], [0, 10], [0, 9], [0, 10], [0, 11], [0, 10], [0, 9], [0, 10] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 6], [0, 5], [0, 6], [0, 7], [0, 6], [0, 5], [0, 6]] + } + }, + "Dir": { + "Head": [ + [0, -2], [2, -1], [4, 0], [2, 1], [0, 2], [-2, 1], [-4, 0], [-2, -1] + ], + "Gun": [ + [7, -2], [6, 0], [4, 2], [-1, 4], [-6, 2], [-6, -1], [-3, -3], [0, -3] + ] + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/legs_idle_24x24.png new file mode 100644 index 00000000..2792f7dd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/legs_run_24x24.png new file mode 100644 index 00000000..124ea3b3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/src.blend new file mode 100644 index 00000000..bdf0fb46 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/src.txt new file mode 100644 index 00000000..6d424eab --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/src.txt @@ -0,0 +1,4 @@ +Adapted from Sprite Base Model +by Wind astella +http://opengameart.org/content/sprite-base-model +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/upper_idle_24x24.png new file mode 100644 index 00000000..8286091d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/upper_idle_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/upper_idle_dualgun_24x24.png new file mode 100644 index 00000000..d6ac2968 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/upper_idle_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..27679375 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/upper_run_24x24.png new file mode 100644 index 00000000..658e14bb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/upper_run_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/upper_run_dualgun_24x24.png new file mode 100644 index 00000000..7a740afd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/upper_run_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/upper_run_handgun_24x24.png new file mode 100644 index 00000000..730d4339 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/angel/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/data.json new file mode 100644 index 00000000..9770ba88 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/data.json @@ -0,0 +1,37 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "gun_l", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 13]], + "idle": [[0, 13]], + "run": [ + [0, 14], [0, 14], [0, 13], [0, 13], [0, 12], [0, 12], [0, 13], [0, 13] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 7], [0, 6], [0, 6], [0, 5], [0, 5], [0, 6], [0, 6]] + } + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/legs_idle_24x24.png new file mode 100644 index 00000000..361c847e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/legs_run_24x24.png new file mode 100644 index 00000000..2f763bb6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/src.blend new file mode 100644 index 00000000..99666321 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/src.txt new file mode 100644 index 00000000..465cc1a8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/src.txt @@ -0,0 +1,4 @@ +Adapted from Pixel Art Bat Sprites +by PixElthen +https://opengameart.org/content/pixel-art-bat-sprites +https://creativecommons.org/licenses/by/4.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/upper_idle_24x24.png new file mode 100644 index 00000000..2d9e7273 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..81bb1b6f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/upper_run_24x24.png new file mode 100644 index 00000000..b1c783f7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/upper_run_handgun_24x24.png new file mode 100644 index 00000000..337f5aea Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/bat/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/data.json new file mode 100644 index 00000000..f68b9391 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/data.json @@ -0,0 +1,37 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "gun_l", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 16]], + "idle": [[0, 16]], + "run": [ + [0, 17], [0, 16], [0, 15], [0, 16], [0, 17], [0, 16], [0, 15], [0, 16] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 6], [0, 5], [0, 6], [0, 7], [0, 6], [0, 5], [0, 6]] + } + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/legs_idle_24x24.png new file mode 100644 index 00000000..3c50f6c0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/legs_run_24x24.png new file mode 100644 index 00000000..dd2a1972 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/src.blend new file mode 100644 index 00000000..88d5c46f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/src.txt new file mode 100644 index 00000000..6d424eab --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/src.txt @@ -0,0 +1,4 @@ +Adapted from Sprite Base Model +by Wind astella +http://opengameart.org/content/sprite-base-model +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_24x24.png new file mode 100644 index 00000000..52aa5c55 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_dualgun_24x24.png new file mode 100644 index 00000000..e3a57e19 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..ac5f6114 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_24x24.png new file mode 100644 index 00000000..a2d0e00b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_dualgun_24x24.png new file mode 100644 index 00000000..6cfc6a8c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_handgun_24x24.png new file mode 100644 index 00000000..6bd20d57 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/data.json new file mode 100644 index 00000000..8a87ba0c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/data.json @@ -0,0 +1,37 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "gun_l", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 13]], + "idle": [[0, 13]], + "run": [ + [0, 13], [0, 13], [0, 13], [0, 13], [0, 13], [0, 13], [0, 13], [0, 13] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 6], [0, 5], [0, 6], [0, 7], [0, 6], [0, 5], [0, 6]] + } + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/legs_idle_24x24.png new file mode 100644 index 00000000..dd36990b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/legs_run_24x24.png new file mode 100644 index 00000000..6f9902bd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/src.blend new file mode 100644 index 00000000..4df3809e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/src.txt new file mode 100644 index 00000000..6d424eab --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/src.txt @@ -0,0 +1,4 @@ +Adapted from Sprite Base Model +by Wind astella +http://opengameart.org/content/sprite-base-model +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/upper_idle_24x24.png new file mode 100644 index 00000000..5fe6d0a3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/upper_idle_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/upper_idle_dualgun_24x24.png new file mode 100644 index 00000000..0e1a5d7d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/upper_idle_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..c8937073 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/upper_run_24x24.png new file mode 100644 index 00000000..73ebb5ee Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/upper_run_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/upper_run_dualgun_24x24.png new file mode 100644 index 00000000..8b109dfc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/upper_run_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/upper_run_handgun_24x24.png new file mode 100644 index 00000000..92eeb306 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/bodies/wizard/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/guns/pistol_20x20.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/guns/pistol_20x20.png new file mode 100644 index 00000000..12093173 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/guns/pistol_20x20.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/guns/smg_30x22.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/guns/smg_30x22.png new file mode 100644 index 00000000..a729f9ad Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/guns/smg_30x22.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/hairs/ghost.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/hairs/ghost.txt new file mode 100644 index 00000000..039c357b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/hairs/ghost.txt @@ -0,0 +1,3 @@ +Adapted from Grue by Jesse McCarthy +https://opengameart.org/content/grue +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/hairs/ghost_17x30.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/hairs/ghost_17x30.png new file mode 100644 index 00000000..fcfc6f85 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/hairs/ghost_17x30.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/hairs/hitler_10x10.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/hairs/hitler_10x10.png new file mode 100644 index 00000000..a0764a50 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/hairs/hitler_10x10.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/hairs/pacman_ghost.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/hairs/pacman_ghost.txt new file mode 100644 index 00000000..c04e399a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/hairs/pacman_ghost.txt @@ -0,0 +1,3 @@ +Adapted from 20x20 Tileset by drakzlin +https://opengameart.org/content/20x20-tileset +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/hairs/pacman_ghost_18x30.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/hairs/pacman_ghost_18x30.png new file mode 100644 index 00000000..7777f655 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/chars/hairs/pacman_ghost_18x30.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/dead_guard.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/dead_guard.png new file mode 100644 index 00000000..22261ffd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/dead_guard.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/dogfood.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/dogfood.png new file mode 100644 index 00000000..5942847a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/dogfood.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/dogfood.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/dogfood.txt new file mode 100644 index 00000000..f240e6c0 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/dogfood.txt @@ -0,0 +1,4 @@ +Adapted from RPG item set by Jetrel +https://opengameart.org/node/4531 + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/eagle_portrait.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/eagle_portrait.png new file mode 100644 index 00000000..b5b1a405 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/eagle_portrait.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/elevator_entrance.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/elevator_entrance.png new file mode 100644 index 00000000..29a907c3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/elevator_entrance.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/elevator_interior.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/elevator_interior.png new file mode 100644 index 00000000..7bb7590e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/elevator_interior.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/flag.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/flag.png new file mode 100644 index 00000000..a135bbd8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/flag.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/flag.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/flag.txt new file mode 100644 index 00000000..25aca62e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/flag.txt @@ -0,0 +1,5 @@ +Adapted from Kyrodian Legends Overworld Props +By Midi +https://web.archive.org/web/20150319200042/http://opengameart.org/content/kyrodian-legends-overworld-props + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/ghost_corpse.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/ghost_corpse.png new file mode 100644 index 00000000..3617038c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/ghost_corpse.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/gibbet.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/gibbet.png new file mode 100644 index 00000000..a89fbaba Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/gibbet.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/gibbet.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/gibbet.txt new file mode 100644 index 00000000..63908a1d --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/gibbet.txt @@ -0,0 +1,4 @@ +Adapted from Misc. Dark Fantasy Scenery Sprites by ETTiNGRiNDER +https://opengameart.org/content/misc-dark-fantasy-scenery-sprites + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/gibbet_bloody.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/gibbet_bloody.png new file mode 100644 index 00000000..0802630c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/gibbet_bloody.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/gibbet_skeleton.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/gibbet_skeleton.png new file mode 100644 index 00000000..42507457 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/gibbet_skeleton.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/gibbet_skulls.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/gibbet_skulls.png new file mode 100644 index 00000000..6ce30af2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/gibbet_skulls.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/hanging_skeleton.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/hanging_skeleton.png new file mode 100644 index 00000000..601020f8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/hanging_skeleton.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/heart.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/heart.png new file mode 100644 index 00000000..6325b8dc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/heart.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/heart.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/heart.txt new file mode 100644 index 00000000..802e878c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/heart.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/heer_flag.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/heer_flag.png new file mode 100644 index 00000000..13bef9e9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/heer_flag.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/heer_flag.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/heer_flag.txt new file mode 100644 index 00000000..7d574586 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/heer_flag.txt @@ -0,0 +1,4 @@ +Adapted from Dungeon Tileset +By Calciumtrice +https://opengameart.org/content/dungeon-tileset-1 +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/hitler_poster.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/hitler_poster.png new file mode 100644 index 00000000..09168ddf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/hitler_poster.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/iron_cross.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/iron_cross.png new file mode 100644 index 00000000..53de337d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/iron_cross.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/knives.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/knives.png new file mode 100644 index 00000000..ddef8330 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/knives.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/knives.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/knives.txt new file mode 100644 index 00000000..45b47f87 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/knives.txt @@ -0,0 +1,4 @@ +Adapted from Kitchen Assets for #LetsCookJam +By Bluerobin2 +https://opengameart.org/content/kitchen-assets-for-letscookjam +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/meal.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/meal.png new file mode 100644 index 00000000..83c0bd4e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/meal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/meal.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/meal.txt new file mode 100644 index 00000000..89223bff --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/meal.txt @@ -0,0 +1,4 @@ +Adapted from [LPC] Meals +By bluecarrot16 +https://opengameart.org/content/lpc-meals +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/pillar.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/pillar.png new file mode 100644 index 00000000..5b40ee7c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/pillar.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/pillar.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/pillar.txt new file mode 100644 index 00000000..7aec54bc --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/pillar.txt @@ -0,0 +1,4 @@ +Adapted from RPG Indoor Tileset: Expansion 1 by Redshrike +https://opengameart.org/content/rpg-indoor-tileset-expansion-1 + +http://opengameart.org/content/oga-by-30-faq \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/pool_blood.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/pool_blood.png new file mode 100644 index 00000000..9ad09170 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/pool_blood.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/pots.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/pots.png new file mode 100644 index 00000000..f062a77d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/pots.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/pots.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/pots.txt new file mode 100644 index 00000000..adddea06 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/pots.txt @@ -0,0 +1,4 @@ +Adapted from [LPC] House Insides by Lanea Zimmerman (AKA Sharm) +https://opengameart.org/content/lpc-house-insides + +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/shadow.png new file mode 100644 index 00000000..44d301a0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/sink.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/sink.png new file mode 100644 index 00000000..191c78bd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/sink.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/sink.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/sink.txt new file mode 100644 index 00000000..adddea06 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/sink.txt @@ -0,0 +1,4 @@ +Adapted from [LPC] House Insides by Lanea Zimmerman (AKA Sharm) +https://opengameart.org/content/lpc-house-insides + +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/skull_blue.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/skull_blue.png new file mode 100644 index 00000000..ff80f156 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/skull_blue.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/skull_blue.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/skull_blue.txt new file mode 100644 index 00000000..fbd3f3f2 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/skull_blue.txt @@ -0,0 +1,4 @@ +Adapted from Misc. Dark Fantasy Scenery Sprites by Gwes +http://opengameart.org/content/misc-dark-fantasy-scenery-sprites + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/skull_pillar.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/skull_pillar.png new file mode 100644 index 00000000..f7e49ed8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/skull_pillar.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/skull_pillar.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/skull_pillar.txt new file mode 100644 index 00000000..75fc0395 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/skull_pillar.txt @@ -0,0 +1,4 @@ +Adapted from Dungeon Crawl 32x32 tiles by Chris Hamons (maintainer) +https://opengameart.org/content/dungeon-crawl-32x32-tiles + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/smg.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/smg.png new file mode 100644 index 00000000..72993a96 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/smg.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/spear.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/spear.png new file mode 100644 index 00000000..9ef1bfea Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/spear.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/spear.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/spear.txt new file mode 100644 index 00000000..b89fe685 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/spear.txt @@ -0,0 +1,4 @@ +Adapted from Behrs 2,500 Pixel Spears 32x32 Archive +By Behrtron +https://opengameart.org/content/behrs-2500-pixel-spears-32x32-archive +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/spears.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/spears.png new file mode 100644 index 00000000..179b603c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/spears.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/spotlight.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/spotlight.png new file mode 100644 index 00000000..dae0039c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/spotlight.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/sprites.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/sprites.png new file mode 100644 index 00000000..2598b551 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/sprites.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/stove.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/stove.png new file mode 100644 index 00000000..d42bce32 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/stove.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/stove.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/stove.txt new file mode 100644 index 00000000..adddea06 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/stove.txt @@ -0,0 +1,4 @@ +Adapted from [LPC] House Insides by Lanea Zimmerman (AKA Sharm) +https://opengameart.org/content/lpc-house-insides + +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/suit_of_armor.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/suit_of_armor.png new file mode 100644 index 00000000..581cbade Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/suit_of_armor.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/suit_of_armor.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/suit_of_armor.txt new file mode 100644 index 00000000..7aec54bc --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/suit_of_armor.txt @@ -0,0 +1,4 @@ +Adapted from RPG Indoor Tileset: Expansion 1 by Redshrike +https://opengameart.org/content/rpg-indoor-tileset-expansion-1 + +http://opengameart.org/content/oga-by-30-faq \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/swastika_blue.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/swastika_blue.png new file mode 100644 index 00000000..2956b160 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/swastika_blue.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/swastika_relief.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/swastika_relief.png new file mode 100644 index 00000000..52e83766 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/swastika_relief.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/syringe_9x9.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/syringe_9x9.png new file mode 100644 index 00000000..8fb8f824 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/syringe_9x9.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/truck.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/truck.png new file mode 100644 index 00000000..dbba53fe Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/truck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/truck.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/truck.txt new file mode 100644 index 00000000..71fa2c68 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/truck.txt @@ -0,0 +1,4 @@ +Adapted from Post-apocalyptic 16x16 tileset [update1] +By CobraLad +https://opengameart.org/content/post-apocalyptic-16x16-tileset-update1 +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/urn.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/urn.png new file mode 100644 index 00000000..4ded2ebc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/urn.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/urn.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/urn.txt new file mode 100644 index 00000000..4c24b06b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/urn.txt @@ -0,0 +1,4 @@ +Derived from Tiny 16: Basic +by Sharm +https://opengameart.org/content/tiny-16-basic +http://opengameart.org/content/oga-by-30-faq \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/generate.ps1 b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/generate.ps1 new file mode 100644 index 00000000..0561688c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/generate.ps1 @@ -0,0 +1,29 @@ +# Use this script to generate all the other versions of wall tiles, given a complete "o" tile +# Use "plasteel" as a template +param ( + [string]$name, + [int]$m = 1 +) +$w = 16 - $m +$h = 12 - $m +$h2 = 24 - $m +# NESW +Invoke-Expression ("magick $name/o.png -crop 16x{0}+0+0 -colorspace sRGB -gravity North -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/n.png" -f $h) +Invoke-Expression ("magick $name/o.png -crop 16x{0}+0+{1} -colorspace sRGB -gravity South -define distort:viewport=16x24-0-{1} -filter point -distort SRT 0 +repage $name/s.png" -f $h2,$m) +Invoke-Expression ("magick $name/o.png -crop {0}x24+{1}+0 -colorspace sRGB -gravity East -define distort:viewport=16x24-{1}-0 -filter point -distort SRT 0 +repage $name/e.png" -f $w,$m) +Invoke-Expression ("magick $name/o.png -crop {0}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/w.png" -f $w) +# NW, NE, SW, SE +Invoke-Expression ("magick $name/n.png -crop {0}x12+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/nw.png" -f $w) +Invoke-Expression ("magick $name/n.png -crop {0}x12+{1}+0 -colorspace sRGB -gravity East -define distort:viewport=16x12-{1}-0 -filter point -distort SRT 0 +repage $name/ne.png" -f $w,$m) +Invoke-Expression ("magick $name/s.png -crop {0}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/sw.png" -f $w) +Invoke-Expression ("magick $name/s.png -crop {0}x24+{1}+0 -colorspace sRGB -gravity East -define distort:viewport=16x24-{1}-0 -filter point -distort SRT 0 +repage $name/se.png" -f $w,$m) +# NT, ET, ST, WT +Invoke-Expression ("magick $name/nw.png -crop {0}x12+{1}+0 -colorspace sRGB -gravity East -define distort:viewport=16x12-{1}-0 -filter point -distort SRT 0 +repage $name/nt.png" -f $w,$m) +Invoke-Expression ("magick $name/ne.png -crop 16x{1}+0+{2} -colorspace sRGB -gravity South -define distort:viewport=16x12-0-{2} -filter point -distort SRT 0 +repage $name/et.png" -f $w,$h,$m) +Invoke-Expression ("magick $name/se.png -crop {0}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/st.png" -f $w) +Invoke-Expression ("magick $name/sw.png -crop 16x{1}+0+0 -colorspace sRGB -gravity North -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/wt.png" -f $w,$h) +# VH +Invoke-Expression ("magick $name/n.png -crop 16x{1}+0+{2} -colorspace sRGB -gravity South -define distort:viewport=16x12-0-{2} -filter point -distort SRT 0 +repage $name/v.png" -f $w,$h,$m) +Invoke-Expression ("magick $name/e.png -crop {0}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/h.png" -f $w) +# X +Invoke-Expression ("magick $name/et.png -crop {0}x12+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/x.png" -f $w) diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/e.png new file mode 100644 index 00000000..5eace4c9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/et.png new file mode 100644 index 00000000..dca9e384 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/h.png new file mode 100644 index 00000000..70c26261 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/n.png new file mode 100644 index 00000000..3f2dd7af Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/ne.png new file mode 100644 index 00000000..140b467b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/nt.png new file mode 100644 index 00000000..1642d9b6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/nw.png new file mode 100644 index 00000000..aa93f402 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/o.png new file mode 100644 index 00000000..0ea18d0f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/s.png new file mode 100644 index 00000000..a8489c01 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/se.png new file mode 100644 index 00000000..d9bc3897 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/st.png new file mode 100644 index 00000000..a9b4c1f7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/sw.png new file mode 100644 index 00000000..787058e6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/v.png new file mode 100644 index 00000000..ce59cdf8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/w.png new file mode 100644 index 00000000..d705bb0d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/wt.png new file mode 100644 index 00000000..b595d009 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/x.png new file mode 100644 index 00000000..5e85264b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall/landscape/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall_light.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall_light.png new file mode 100644 index 00000000..af374b21 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wall_light.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/well.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/well.png new file mode 100644 index 00000000..7412a6a1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/well.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/well.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/well.txt new file mode 100644 index 00000000..fb09194e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/well.txt @@ -0,0 +1,4 @@ +Roguelike Dungeon/World Tiles +by Joe Williamson (@JoeCreates) +https://opengameart.org/content/roguelike-dungeonworld-tiles +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/well_water.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/well_water.png new file mode 100644 index 00000000..6430f69a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/well_water.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wet_cobble.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wet_cobble.png new file mode 100644 index 00000000..bfc3766c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/graphics/wet_cobble.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/guns.json new file mode 100644 index 00000000..a1157379 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/guns.json @@ -0,0 +1,233 @@ +{ + "Version": 3, + "Guns": [ + { + "Pic": "knife", + "Icon": "knife", + "Name": "Knife", + "Bullet": "knife", + "Cost": 0, + "Lock": 30, + "Sound": "", + "SwitchSound": "knife_switch", + "CanShoot": false, + "Auto": true + }, + { + "Pic": "pistol", + "Name": "Pistol", + "Icon": "pistol", + "Bullet": "bullet", + "Cost": 1, + "Lock": 30, + "Sound": "pistol", + "SwitchSound": "pistol_switch", + "Recoil": 0.1, + "Brass": "brass", + "Ammo": "Ammo" + }, + { + "Pic": "smg", + "Grips": 2, + "Name": "Machine Gun", + "Icon": "smg", + "Bullet": "bullet", + "Cost": 1, + "Lock": 12, + "Sound": "machine_gun", + "SwitchSound": "machine_gun_switch", + "Recoil": 0.17, + "Brass": "brass", + "Ammo": "Ammo" + }, + { + "Pic": "chaingun_blue", + "Name": "Chain Gun", + "Icon": "machine_gun_blue", + "Bullet": "bullet", + "Cost": 1, + "Lock": 6, + "Sound": "chain_gun", + "SwitchSound": "chaingun_pickup", + "Recoil": 0.23, + "Brass": "brass", + "Ammo": "Ammo" + }, + { + "Pic": "pistol", + "Name": "Guard Pistol", + "Icon": "pistol", + "Bullet": "bullet_enemy", + "Cost": 1, + "Lock": 70, + "Sound": "pistol_guard", + "SwitchSound": "pistol_switch", + "Recoil": 0.3, + "Brass": "brass", + "Ammo": "Ammo", + "CanDrop": false + }, + { + "Pic": "smg", + "Grips": 2, + "Name": "SS Machine Gun", + "Icon": "assault_rifle", + "Bullet": "bullet_boss", + "Cost": 1, + "Lock": 70, + "Sound": "machine_gun_burst", + "Recoil": 0.3, + "Brass": "brass", + "Ammo": "Ammo", + "DropGun": "Machine Gun" + }, + { + "Pic": "chaingun_blue", + "Name": "boss_chaingun1", + "Bullet": "bullet_boss", + "Lock": 70, + "Sound": "dual_chain_gun", + "Recoil": 0.3, + "Brass": "brass" + }, + { + "Name": "Chaingun and Machinegun", + "Icon": "machine_gun", + "CanDrop": false, + "Guns": ["boss_chaingun1", "boss_machinegun"], + "Lock": 9 + }, + { + "Name": "Quad Chain Gun", + "Icon": "machine_gun", + "CanDrop": false, + "Guns": ["boss_double_chaingun1", "boss_double_chaingun2"], + "Lock": 9 + }, + { + "Pic": "", + "Name": "Dog Bite", + "Bullet": "dog_bite", + "Cost": 0, + "Lock": 80, + "Sound": "", + "CanShoot": false, + "CanDrop": false + }, + { + "Pic": "", + "Name": "Syringes", + "Bullet": "syringe", + "Cost": 7, + "Lock": 30, + "Sound": "syringe", + "SwitchSound": "molotov_pickup", + "CanDrop": false + }, + { + "Name": "Rocket Launcher", + "Pic": "rocket_blue", + "Icon": "launcher", + "Bullet": "rocket", + "Cost": 9, + "Lock": 40, + "Sound": "rocket", + "SwitchSound": "launcher_switch", + "MuzzleFlashParticle": "muzzle_flash_shotgun", + "CanDrop": false + }, + { + "Pic": "", + "Name": "Ghost Drain", + "Bullet": "ghost_drain", + "Cost": 0, + "Sound": "", + "SoundLockLength": 10, + "CanShoot": false, + "CanDrop": false + }, + { + "Name": "Flamethrower", + "Pic": "", + "Bullet": "fireball", + "Cost": 1, + "Lock": 30, + "Sound": "flamethrower", + "MuzzleFlashParticle": "", + "CanDrop": false + }, + { + "Name": "Chaingun and Rocket Launcher", + "Icon": "akimbo_pistols", + "Guns": ["Rocket Launcher", "boss_chaingun1"], + "CanDrop": false + }, + { + "Name": "Dual Chaingun and Rocket Launcher", + "Icon": "akimbo_pistols", + "Guns": ["dual_chaingun_rocket_launcher1", "dual_chaingun_rocket_launcher2"], + "CanDrop": false + }, + { + "Name": "Energy Ball", + "Pic": "", + "Bullet": "energy_ball", + "Cost": 5, + "Lock": 50, + "Sound": "flamethrower", + "MuzzleFlashParticle": "", + "CanDrop": false + } + ], + "PseudoGuns" : [ + { + "Pic": "pistol", + "Name": "boss_machinegun", + "Bullet": "bullet_boss", + "Lock": 70, + "Sound": "", + "Recoil": 0.3, + "Brass": "brass" + }, + { + "Pic": "quad_chaingun", + "Name": "boss_double_chaingun1", + "Bullet": "bullet_quad", + "Lock": 70, + "Sound": "dual_chain_gun", + "SpreadCount": 2, + "Recoil": 0.3, + "MuzzleHeight": 12, + "Brass": "brass" + }, + { + "Pic": "quad_chaingun", + "Name": "boss_double_chaingun2", + "Bullet": "bullet_quad", + "Lock": 70, + "Sound": "", + "SpreadCount": 2, + "Recoil": 0.3, + "MuzzleHeight": 12, + "Brass": "brass" + }, + { + "Pic": "chaingun_blue", + "Name": "dual_chaingun_rocket_launcher1", + "Bullets": ["bullet_boss", "rocket"], + "Lock": 70, + "Sound": "knight_rocket", + "Recoil": 0.3, + "Brass": "brass" + }, + { + "Pic": "chaingun_blue", + "Name": "dual_chaingun_rocket_launcher2", + "Bullets": ["bullet_boss", "rocket"], + "Lock": 70, + "Sound": "dual_chaingun", + "Recoil": 0.3, + "Brass": "brass" + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/map_objects.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/map_objects.json new file mode 100644 index 00000000..f20ccdf8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/map_objects.json @@ -0,0 +1,391 @@ +{ + "Version": 4, + "MapObjects": [ + { + "Name": "chandelier", + "Pic": { + "Type": "Normal", + "Pic": "chandelier" + }, + "Offset": [-8, -24], + "Health": 0, + "DrawAbove": true, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "hanging_skeleton", + "Pic": { + "Type": "Normal", + "Pic": "hanging_skeleton" + }, + "Offset": [-5, -26], + "Health": 40, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "pillar", + "Pic": { + "Type": "Normal", + "Pic": "pillar" + }, + "Health": 80, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "sink", + "Pic": { + "Type": "Normal", + "Pic": "sink" + }, + "Size": [8, 6], + "Health": 50, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "skull_pillar", + "Pic": { + "Type": "Normal", + "Pic": "skull_pillar" + }, + "Size": [8, 6], + "Offset": [-8, -14], + "Health": 20, + "Flags": ["NoWalls"] + }, + { + "Name": "cowskull_pillar", + "Pic": { + "Type": "Normal", + "Pic": "cowskull_pillar" + }, + "Size": [8, 6], + "Offset": [-8, -14], + "Health": 20, + "Flags": ["NoWalls"] + }, + { + "Name": "urn", + "Pic": { + "Type": "Normal", + "Pic": "urn" + }, + "Size": [10, 8], + "Offset": [-5, -8], + "Health": 30, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "knives", + "Pic": { + "Type": "Normal", + "Pic": "knives" + }, + "Offset": [-5, -13], + "Health": 0, + "Flags": ["Inside", "OneOrMoreWalls"] + }, + { + "Name": "pots", + "Pic": { + "Type": "Normal", + "Pic": "pots" + }, + "Offset": [-8, -13], + "Health": 0, + "Flags": ["Inside", "OneOrMoreWalls"] + }, + { + "Name": "gibbet_bloody", + "Pic": { + "Type": "Normal", + "Pic": "gibbet_bloody" + }, + "Offset": [-7, -33], + "Health": 40, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "suit_of_armor", + "Pic": { + "Type": "Normal", + "Pic": "suit_of_armor" + }, + "Offset": [-7, -20], + "Health": 60, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "gibbet", + "Pic": { + "Type": "Normal", + "Pic": "gibbet" + }, + "Offset": [-7, -33], + "Health": 40, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "gibbet_skeleton", + "Pic": { + "Type": "Normal", + "Pic": "gibbet_skeleton" + }, + "Offset": [-7, -33], + "Health": 40, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "gibbet_skulls", + "Pic": { + "Type": "Normal", + "Pic": "gibbet_skulls" + }, + "Offset": [-7, -33], + "Health": 40, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "basket", + "Pic": { + "Type": "Normal", + "Pic": "basket" + }, + "Size": [6, 6], + "Offset": [-3, -8], + "Health": 0, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "well", + "Pic": { + "Type": "Normal", + "Pic": "well" + }, + "Health": 80, + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "well_water", + "Pic": { + "Type": "Normal", + "Pic": "well_water" + }, + "Health": 80, + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "pool_blood", + "Pic": { + "Type": "Normal", + "Pic": "pool_blood" + }, + "Offset": [-8, -6], + "Health": 0, + "DrawBelow": true + }, + { + "Name": "flag", + "Pic": { + "Type": "Normal", + "Pic": "flag" + }, + "Size": [6, 4], + "Offset": [-4, -21], + "Health": 40, + "Flags": ["Inside", "OneOrMoreWalls"] + }, + { + "Name": "stove", + "Pic": { + "Type": "Normal", + "Pic": "stove" + }, + "Offset": [-8, -21], + "Health": 60, + "Flags": ["Inside", "OnWall", "FreeInFront"] + }, + { + "Name": "spears", + "Pic": { + "Type": "Normal", + "Pic": "spears" + }, + "Offset": [-7, -20], + "Health": 40, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "truck", + "Pic": { + "Type": "Normal", + "Pic": "truck" + }, + "Health": 100, + "Flags": ["Outside"] + }, + { + "Name": "sprites", + "Pic": { + "Type": "Normal", + "Pic": "sprites" + }, + "Health": 0, + "Flags": ["Outside"] + }, + { + "Name": "dead_guard", + "Pic": { + "Type": "Normal", + "Pic": "dead_guard" + }, + "Health": 0, + "DrawBelow": true + }, + { + "Name": "spotlight", + "Pic": { + "Type": "Normal", + "Pic": "spotlight" + }, + "Health": 0, + "DrawBelow": true, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "shadow", + "Pic": { + "Type": "Normal", + "Pic": "shadow" + }, + "Health": 0, + "DrawBelow": true, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "wall_light", + "Pic": { + "Type": "Normal", + "Pic": "wall_light" + }, + "Offset": [-7, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "heer_flag", + "Pic": { + "Type": "Normal", + "Pic": "heer_flag" + }, + "Offset": [-7, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "eagle_portrait", + "Pic": { + "Type": "Normal", + "Pic": "eagle_portrait" + }, + "Offset": [-7, -10], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "elevator_entrance", + "Pic": { + "Type": "Normal", + "Pic": "elevator_entrance" + }, + "Offset": [-5, -9], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "swastika_relief", + "Pic": { + "Type": "Normal", + "Pic": "swastika_relief" + }, + "Offset": [-5, -10], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "wet_cobble", + "Pic": { + "Type": "Normal", + "Pic": "wet_cobble" + }, + "Offset": [-8, -4], + "Health": 0, + "Flags": ["OnWall", "Outside"] + }, + { + "Name": "elevator_interior", + "Pic": { + "Type": "Normal", + "Pic": "elevator_interior" + }, + "Offset": [-6, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "iron_cross", + "Pic": { + "Type": "Normal", + "Pic": "iron_cross" + }, + "Offset": [-7, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "skull_blue", + "Pic": { + "Type": "Normal", + "Pic": "skull_blue" + }, + "Offset": [-3, -9], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "swastika_blue", + "Pic": { + "Type": "Normal", + "Pic": "swastika_blue" + }, + "Offset": [-3, -8], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "hitler_poster", + "Pic": { + "Type": "Normal", + "Pic": "hitler_poster" + }, + "Offset": [-5, -10], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "ghost_corpse", + "Type": "ActorSpawner", + "Pic": { + "Type": "Normal", + "Pic": "ghost_corpse" + }, + "Wreck": { + "Sound": "", + "Bullet": "" + }, + "Offset": [-7, -21], + "Health": 0, + "CharId": 22, + "Counter": 340 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/missions.json new file mode 100644 index 00000000..4c4e25c6 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/missions.json @@ -0,0 +1,1352 @@ +{ + "Missions": [{ + "Title": "", + "Description": "", + "Type": "Static", + "Width": 32, + "Height": 27, + "ExitStyle": "hazard", + "KeyStyle": "plain2", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": [ + "Knife", + "Pistol", + "Machine Gun", + "Chain Gun" + ], + "WeaponPersist": false, + "SkipDebrief": false, + "TileClasses": { + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "cbcbcbff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "1": { + "Name": "door", + "Type": "Door", + "Style": "prison", + "Mask": "808080ff", + "MaskAlt": "000000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "10": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "989898ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "11": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "898a8eff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "12": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "c6c3c3ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "13": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "adaaa5ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "14": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "bfbfbfff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "15": { + "Name": "wall", + "Type": "Wall", + "Style": "bunker", + "Mask": "d2d1ceff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "16": { + "Name": "wall", + "Type": "Wall", + "Style": "stone2", + "Mask": "767777ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "17": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "b7bf1eff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "18": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "19": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "fffcfcff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "2": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "797777ff", + "MaskAlt": "ffe72aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "20": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "fcfafaff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "21": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "ffffffff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "22": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "fc2c04ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "23": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel2", + "Mask": "878585ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "24": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel2", + "Mask": "939292ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "25": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "f50202ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "26": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "04119aff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "27": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "000ca1ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "28": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "00149fff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "29": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "000495ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "3": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "4f4f4fff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "30": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "00009cff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "31": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "030095ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "32": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "0207a1ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "33": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "000e9fff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "34": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "c6c6c6ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "35": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "c2c2c2ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "36": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "c6c6c6ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "37": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "c9c9c9ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "38": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "cdcdcdff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "39": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "c4c4c4ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "0a0098ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "40": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "cbcbcbff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "41": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "d7d7d7ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "42": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "cbcbcbff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "43": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "d0d0d0ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "44": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "dbdad8ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "45": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "d4d4d4ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "46": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "e00101ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "47": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "e00b0bff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "48": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "e01003ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "49": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "808080ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "5": { + "Name": "wall", + "Type": "Wall", + "Style": "colony", + "Mask": "050ba1ff", + "MaskAlt": "040cffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "50": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "d90000ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "51": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "f50202ff", + "MaskAlt": "00fc00ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "52": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "5d5c5cff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "53": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "030ad2ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "54": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "f5f5f5ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "55": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "f30606ff", + "MaskAlt": "0dff0dff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "56": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "fcfcfcff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "57": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "7b7b7bff", + "MaskAlt": "b86500ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "58": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "858585ff", + "MaskAlt": "b61d09ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "59": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "9c9c9cff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "6": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "0110a6ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "60": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "9c9b9bff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "61": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "807f7fff", + "MaskAlt": "ad6700ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "62": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "9f9a9aff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "63": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "6a0087ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "64": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "062affff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "65": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "081afcff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "7": { + "Name": "wall", + "Type": "Wall", + "Style": "hightech", + "Mask": "060effff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "8": { + "Name": "wall", + "Type": "Wall", + "Style": "hightech", + "Mask": "0905d2ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "9": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "0004a3ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + } + }, + "Tiles": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,3,1,4,1,5,1,6,2,7,0,8,0,9,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0", + "0,11,0,12,0,13,0,14,0,15,0,16,0,17,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,19,0,20,0,21,0,22,0,23,0,24,0,25,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,27,0,28,0,29,0,30,0,31,0,32,0,33,0,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,35,0,36,0,37,0,38,0,39,0,40,0,41,0,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0", + "0,43,0,44,0,45,0,46,0,47,0,48,0,49,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,51,0,52,0,53,0,54,0,55,0,56,0,57,0,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,59,0,60,0,61,0,62,0,63,0,64,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,256,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "elevator_interior", + "Positions": [[11, 6], + [9, 6], + [7, 16]] + }, + { + "MapObject": "pool_water", + "Positions": [[17, 1]] + }, + { + "MapObject": "barrel_green", + "Positions": [[19, 1]] + }, + { + "MapObject": "rod_light", + "Positions": [[23, 1]] + }, + { + "MapObject": "spotlight", + "Positions": [[25, 1], + [23, 1], + [30, 9], + [17, 11]] + }, + { + "MapObject": "chandelier", + "Positions": [[25, 1]] + }, + { + "MapObject": "hanging_skeleton", + "Positions": [[27, 1]] + }, + { + "MapObject": "shadow", + "Positions": [[27, 1], + [28, 3], + [30, 3], + [17, 5], + [26, 5]] + }, + { + "MapObject": "pillar", + "Positions": [[29, 1]] + }, + { + "MapObject": "plant", + "Positions": [[17, 3]] + }, + { + "MapObject": "bone_blood", + "Positions": [[19, 3]] + }, + { + "MapObject": "sink", + "Positions": [[20, 3]] + }, + { + "MapObject": "skull_pillar", + "Positions": [[21, 3]] + }, + { + "MapObject": "plant_brown", + "Positions": [[23, 3]] + }, + { + "MapObject": "urn", + "Positions": [[25, 3]] + }, + { + "MapObject": "knives", + "Positions": [[27, 3]] + }, + { + "MapObject": "gibbet_bloody", + "Positions": [[28, 3]] + }, + { + "MapObject": "gibbet", + "Positions": [[30, 3]] + }, + { + "MapObject": "gibbet_skeleton", + "Positions": [[17, 5]] + }, + { + "MapObject": "suit_of_armor", + "Positions": [[29, 3]] + }, + { + "MapObject": "skull", + "Positions": [[19, 5]] + }, + { + "MapObject": "gibbet_skulls", + "Positions": [[26, 5]] + }, + { + "MapObject": "bed", + "Positions": [[25, 5]] + }, + { + "MapObject": "basket", + "Positions": [[27, 5]] + }, + { + "MapObject": "gibs", + "Positions": [[17, 9]] + }, + { + "MapObject": "barrel_wood2", + "Positions": [[19, 9]] + }, + { + "MapObject": "well_water", + "Positions": [[21, 9]] + }, + { + "MapObject": "well", + "Positions": [[23, 9]] + }, + { + "MapObject": "pool_blood", + "Positions": [[25, 9]] + }, + { + "MapObject": "skull2", + "Positions": [[29, 9]] + }, + { + "MapObject": "bones", + "Positions": [[31, 9]] + }, + { + "MapObject": "pots", + "Positions": [[20, 11]] + }, + { + "MapObject": "stove", + "Positions": [[22, 11]] + }, + { + "MapObject": "spears", + "Positions": [[25, 11]] + }, + { + "MapObject": "statue_behemoth", + "Positions": [[26, 11]] + }, + { + "MapObject": "truck", + "Positions": [[17, 13]] + }, + { + "MapObject": "dead_guard", + "Positions": [[21, 13]] + }, + { + "MapObject": "ghost_corpse", + "Positions": [[14, 21]] + }, + { + "MapObject": "wall_light", + "Positions": [[5, 2], + [13, 2], + [7, 4], + [13, 14]] + }, + { + "MapObject": "ship_light", + "Positions": [[15, 2]] + }, + { + "MapObject": "hitler_poster", + "Positions": [[1, 4], + [1, 12]] + }, + { + "MapObject": "swastika_relief", + "Positions": [[3, 4], + [1, 10], + [9, 12]] + }, + { + "MapObject": "elevator_entrance", + "Positions": [[9, 4]] + }, + { + "MapObject": "wall_chart", + "Positions": [[1, 6], + [13, 6]] + }, + { + "MapObject": "wall_nuke_sign", + "Positions": [[3, 6], + [11, 14]] + }, + { + "MapObject": "heer_flag", + "Positions": [[5, 6], + [5, 12]] + }, + { + "MapObject": "no_sign", + "Positions": [[1, 8], + [7, 8], + [9, 10], + [3, 16]] + }, + { + "MapObject": "jail_cell", + "Positions": [[3, 8]] + }, + { + "MapObject": "jail_cell_skeleton", + "Positions": [[5, 8]] + }, + { + "MapObject": "skull_blue", + "Positions": [[11, 8]] + }, + { + "MapObject": "swastika_blue", + "Positions": [[13, 8]] + }, + { + "MapObject": "map", + "Positions": [[5, 10]] + }, + { + "MapObject": "bulletmarks", + "Positions": [[13, 10]] + }, + { + "MapObject": "ship_picture", + "Positions": [[15, 10]] + }, + { + "MapObject": "wall_vent", + "Positions": [[3, 12]] + }, + { + "MapObject": "eagle_portrait", + "Positions": [[11, 12]] + }, + { + "MapObject": "green_relief", + "Positions": [[13, 12]] + }, + { + "MapObject": "scratch", + "Positions": [[15, 12], + [5, 14], + [15, 14]] + }, + { + "MapObject": "wall_goo2", + "Positions": [[1, 14], + [9, 14]] + }, + { + "MapObject": "iron_cross", + "Positions": [[7, 14]] + }, + { + "MapObject": "wet_cobble", + "Positions": [[11, 4]] + }, + { + "MapObject": "rod", + "Positions": [[27, 9]] + }, + { + "MapObject": "barrel", + "Positions": [[23, 11]] + }, + { + "MapObject": "table_and_chairs_red", + "Positions": [[21, 1]] + }, + { + "MapObject": "goo", + "Positions": [[19, 11]] + }, + { + "MapObject": "pillar_blue", + "Positions": [[27, 11]] + }, + { + "MapObject": "sprites", + "Positions": [[29, 11]] + }, + { + "MapObject": "table_plastic", + "Positions": [[26, 3]] + }], + "StaticCharacters": [{ + "Index": 0, + "Places": [{ + "Pos": [1, 17], + "Dir": 2 + }] + }, + { + "Index": 1, + "Places": [{ + "Pos": [3, 17], + "Dir": 1 + }] + }, + { + "Index": 2, + "Places": [{ + "Pos": [5, 17], + "Dir": 7 + }] + }, + { + "Index": 3, + "Places": [{ + "Pos": [7, 17], + "Dir": 6 + }] + }, + { + "Index": 4, + "Places": [{ + "Pos": [9, 17], + "Dir": 0 + }] + }, + { + "Index": 5, + "Places": [{ + "Pos": [11, 17], + "Dir": 6 + }] + }, + { + "Index": 6, + "Places": [{ + "Pos": [13, 17], + "Dir": 0 + }] + }, + { + "Index": 7, + "Places": [{ + "Pos": [15, 17], + "Dir": 7 + }] + }, + { + "Index": 8, + "Places": [{ + "Pos": [1, 19], + "Dir": 5 + }] + }, + { + "Index": 9, + "Places": [{ + "Pos": [3, 19], + "Dir": 6 + }] + }, + { + "Index": 10, + "Places": [{ + "Pos": [5, 19], + "Dir": 0 + }] + }, + { + "Index": 11, + "Places": [{ + "Pos": [7, 19], + "Dir": 0 + }] + }, + { + "Index": 12, + "Places": [{ + "Pos": [9, 19], + "Dir": 2 + }] + }, + { + "Index": 13, + "Places": [{ + "Pos": [11, 19], + "Dir": 0 + }] + }, + { + "Index": 14, + "Places": [{ + "Pos": [13, 19], + "Dir": 5 + }] + }, + { + "Index": 15, + "Places": [{ + "Pos": [15, 19], + "Dir": 1 + }] + }, + { + "Index": 16, + "Places": [{ + "Pos": [1, 21], + "Dir": 5 + }] + }, + { + "Index": 17, + "Places": [{ + "Pos": [3, 21], + "Dir": 1 + }] + }, + { + "Index": 18, + "Places": [{ + "Pos": [5, 21], + "Dir": 7 + }] + }, + { + "Index": 19, + "Places": [{ + "Pos": [7, 21], + "Dir": 0 + }] + }, + { + "Index": 20, + "Places": [{ + "Pos": [9, 21], + "Dir": 3 + }] + }, + { + "Index": 21, + "Places": [{ + "Pos": [11, 21], + "Dir": 0 + }] + }, + { + "Index": 22, + "Places": [{ + "Pos": [13, 21], + "Dir": 6 + }] + }, + { + "Index": 23, + "Places": [{ + "Pos": [15, 21], + "Dir": 7 + }] + }], + "StaticObjectives": [], + "StaticKeys": [{ + "Index": 0, + "Positions": [[4, 2], + [4, 2], + [4, 2], + [4, 2], + [21, 5], + [21, 5], + [21, 5]] + }, + { + "Index": 2, + "Positions": [[6, 2], + [6, 2], + [6, 2], + [6, 2], + [23, 5], + [23, 5]] + }], + "StaticPickups": [{ + "Pickup": "dogfood", + "Positions": [[31, 1]] + }, + { + "Pickup": "meal", + "Positions": [[29, 5]] + }, + { + "Pickup": "health", + "Positions": [[31, 5]] + }, + { + "Pickup": "ammo_Bullets", + "Positions": [[17, 7]] + }, + { + "Pickup": "gun_Machine Gun", + "Positions": [[19, 7]] + }, + { + "Pickup": "gun_Chain Gun", + "Positions": [[21, 7]] + }, + { + "Pickup": "cross", + "Positions": [[23, 7]] + }, + { + "Pickup": "chalice", + "Positions": [[25, 7]] + }, + { + "Pickup": "chest", + "Positions": [[27, 7]] + }, + { + "Pickup": "crown", + "Positions": [[29, 7]] + }, + { + "Pickup": "heart", + "Positions": [[31, 7]] + }, + { + "Pickup": "ammo_box", + "Positions": [[31, 11]] + }, + { + "Pickup": "spear", + "Positions": [[19, 13]] + }], + "Start": [0, 0], + "Exits": [{ + "Rect": [27, + 14, + 4, + 2], + "Mission": 1, + "Hidden": false + }], + "AltFloorsEnabled": false + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/pickups.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/pickups.json new file mode 100644 index 00000000..c4b47fc7 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD2data.cdogscpn/pickups.json @@ -0,0 +1,144 @@ +{ + "Version": 3, + "Pickups": [ + { + "Name": "dogfood", + "Pic": { + "Type": "Normal", + "Pic": "dogfood" + }, + "Effects": [{ + "Type": "Health", + "Health": 4 + }], + "Sound": "health_small" + }, + { + "Name": "meal", + "Pic": { + "Type": "Normal", + "Pic": "meal" + }, + "Effects": [{ + "Type": "Health", + "Health": 10 + }], + "Sound": "health_small" + }, + { + "Name": "medkit", + "Pic": { + "Type": "Normal", + "Pic": "health" + }, + "Effects": [{ + "Type": "Health", + "Health": 25 + }], + "Sound": "health_big" + }, + { + "Name": "heart", + "Pic": { + "Type": "Normal", + "Pic": "heart" + }, + "Effects": [{ + "Type": "Health", + "Health": 100 + }, { + "Type": "Ammo", + "Ammo": "Ammo", + "Amount": 25 + }, { + "Type": "Lives", + "Lives": 1 + }], + "Sound": "1up" + }, + { + "Name": "cross", + "Pic": { + "Type": "Animated", + "Sprites": "radio2", + "TicksPerFrame": 10 + }, + "Effects": [{ + "Type": "Score", + "Score": 100 + }], + "Sound": "pickup_cross" + }, + { + "Name": "chalice", + "Pic": { + "Type": "Normal", + "Pic": "bottle2" + }, + "Effects": [{ + "Type": "Score", + "Score": 500 + }], + "Sound": "pickup_chalice" + }, + { + "Name": "chest", + "Pic": { + "Type": "Normal", + "Pic": "dynamite_pickup" + }, + "Effects": [{ + "Type": "Score", + "Score": 1000 + }], + "Sound": "pickup_chest" + }, + { + "Name": "crown", + "Pic": { + "Type": "Normal", + "Pic": "rockets" + }, + "Effects": [{ + "Type": "Score", + "Score": 5000 + }], + "Sound": "pickup_crown" + }, + { + "Name": "ammo_clip", + "Pic": { + "Type": "Normal", + "Pic": "ammo_clip" + }, + "Effects": [{ + "Type": "Ammo", + "Ammo": "Ammo", + "Amount": 8 + }], + "Sound": "ammo_pickup" + }, + { + "Name": "ammo_box", + "Pic": { + "Type": "Normal", + "Pic": "ammo_box" + }, + "Effects": [{ + "Type": "Ammo", + "Ammo": "Ammo", + "Amount": 25 + }], + "Sound": "ammo_box" + }, + { + "Name": "spear", + "Pic": { + "Type": "Normal", + "Pic": "spear" + }, + "Effects": [], + "Sound": "spear" + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3.cdogscpn/campaign.json new file mode 100644 index 00000000..8a923523 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3.cdogscpn/campaign.json @@ -0,0 +1,17 @@ +{ + "Version": 16, + "Title": "Spear of Destiny Mission 3: Ultimate Challenge", + "Author": "FormGen Corporation", + "Description": "", + "Ammo": true, + "WeaponPersist": true, + "SkipWeaponMenu": true, + "RandomPickups": false, + "DoorOpenTicks": 210, + "Lives": 1, + "MaxLives": 9, + "PlayerHP": 0, + "PlayerMaxHP": 0, + "PlayerExcessHP": 0, + "Missions": 0 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3.cdogscpn/characters.json new file mode 100644 index 00000000..af9e4154 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3.cdogscpn/characters.json @@ -0,0 +1,4 @@ +{ + "Version": 13, + "Characters": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3.cdogscpn/missions.json new file mode 100644 index 00000000..61f8fc93 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3.cdogscpn/missions.json @@ -0,0 +1,3 @@ +{ + "Missions": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/ammo.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/ammo.json new file mode 100644 index 00000000..8a06305b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/ammo.json @@ -0,0 +1,15 @@ +{ + "Version": 2, + "Ammo": [ + { + "Name": "Ammo", + "Pic": { + "Type": "Normal", + "Pic": "ammo_clip" + }, + "Sound": "ammo_pickup", + "Amount": 4, + "Max": 99 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/bullets.json new file mode 100644 index 00000000..7525ff81 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/bullets.json @@ -0,0 +1,223 @@ +{ + "Version": 5, + "Bullets": [ + { + "Name": "knife", + "Power": 8, + "Hit": { + "Flesh": { + "Sound": "hits/knife_flesh" + } + }, + "Special": { + "Effect": "Petrify", + "Ticks": 30 + } + }, + { + "Name": "bullet", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail", + "Width": 1.0 + }, + "OutOfRangeSpark": "spark", + "WallMark": "bullet_hole", + "Hit": { + "Flesh": {} + }, + "Speed": 35000, + "Range": 1, + "Power": 21, + "Mass": 0.1, + "Special": { + "Effect": "Petrify", + "Ticks": 30 + } + }, + { + "Name": "bullet_enemy", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail", + "Width": 1.0 + }, + "OutOfRangeSpark": "spark", + "WallMark": "bullet_hole", + "Hit": { + "Flesh": {} + }, + "Speed": 35000, + "Range": 1, + "Power": 16, + "Mass": 0.1 + }, + { + "Name": "bullet_boss", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail", + "Width": 1.5 + }, + "OutOfRangeSpark": "spark", + "WallMark": "bullet_hole", + "Hit": { + "Flesh": {} + }, + "Speed": 35000, + "Range": 1, + "Power": 24, + "Mass": 0.1 + }, + { + "Name": "bullet_quad", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail", + "Width": 1.25 + }, + "OutOfRangeSpark": "spark", + "WallMark": "bullet_hole", + "Hit": { + "Flesh": {} + }, + "Speed": 35000, + "Range": 1, + "Power": 12, + "Mass": 0.1 + }, + { + "Name": "syringe", + "Pic": { + "Type": "Directional", + "Sprites": "syringe" + }, + "ShadowSize": [2, 2], + "Hit": { + "Flesh": { + "Sound": "hits/knife_flesh" + }, + "Wall": { + "Sound": "glass_break" + } + }, + "Speed": 800, + "Range": 70, + "Power": 20, + "Mass": 1, + "Size": [4, 4], + "Spark": "", + "Special": { + "Effect": "Poison", + "Ticks": 15 + } + }, + { + "Name": "rocket", + "Pic": { + "Type": "Directional", + "Sprites": "rocket" + }, + "Trail": { + "Particle": "smoke_trail_small", + "Width": 0, + "TicksPerEmit": 4 + }, + "ShadowSize": [2, 2], + "Hit": { + "Flesh": { + "Sound": "hits/rocket" + }, + "Wall": { + "Sound": "hits/rocket" + } + }, + "Speed": 800, + "Range": 70, + "Power": 45, + "Mass": 15.0, + "Size": [4, 4], + "Spark": "boom" + }, + { + "Name": "dog_bite", + "Power": 11, + "Mass": 1.0, + "Hit": { + "Flesh": { + "Sound": "hits/dog_growl" + } + } + }, + { + "Name": "ghost_drain", + "Power": 3, + "Mass": 0, + "Hit": { + "Flesh": { + "Sound": "hits/gas" + } + } + }, + { + "Name": "fireball", + "Pic": { + "Type": "Animated", + "Sprites": "fireball_small", + "TicksPerFrame": 4 + }, + "Speed": 350, + "Range": 200, + "Power": 15, + "Mass": 18.0, + "Size": [3, 3], + "Special": { + "Effect": "Flame" + }, + "Hit": { + "Flesh": { + "Sound": "hits/fire" + }, + "Wall": { + "Sound": "hits/fire" + } + }, + "Spark": "fireball_hit" + }, + { + "Name": "energy_ball", + "Pic": { + "Type": "Animated", + "Sprites": "fireball_green", + "TicksPerFrame": 4 + }, + "Speed": 625, + "Range": 200, + "Power": 46, + "Mass": 40.0, + "Size": [3, 3], + "Special": "Flame", + "Spark": "fireball_green_hit", + "Hit": { + "Flesh": { + "Sound": "hits/fire" + }, + "Wall": { + "Sound": "hits/fire" + } + } + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/campaign.json new file mode 100644 index 00000000..0a2524fd --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/campaign.json @@ -0,0 +1,11 @@ +{ + "Version": 16, + "Title": "Spear of Destiny Mission 2: Return to Danger", + "Author": "FormGen Corporation", + "Description": "", + "Ammo": true, + "SkipWeaponMenu": true, + "RandomPickups": false, + "DoorOpenTicks": 210, + "Missions": 1 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/character_classes.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/character_classes.json new file mode 100644 index 00000000..8f267216 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/character_classes.json @@ -0,0 +1,198 @@ +{ + "Version": 2, + "Characters": [ + { + "Name": "Guard", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "soldier", + "Sounds": "guard", + "Corpse": "dead_guard" + }, + { + "Name": "Killer Dog", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/dog" + }, + "Body": "dog", + "Sounds": "dog", + "Footsteps": "dog" + }, + { + "Name": "SS", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "soldier", + "Sounds": "ss" + }, + { + "Name": "Officer", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "soldier", + "Sounds": "officer" + }, + { + "Name": "Bat", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/dog" + }, + "Body": "bat", + "Sounds": "mutant", + "BloodColor": "ff0000" + }, + { + "Name": "Hans Grosse", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big", + "Sounds": "hans" + }, + { + "Name": "Dr Schabbs", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big", + "Sounds": "schabbs" + }, + { + "Name": "Fake Hitler", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "wizard", + "Sounds": "fake_hitler", + "BloodColor": "000000" + }, + { + "Name": "Mecha Hitler", + "Vehicle": true, + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "mech", + "DeathSprites": "explosion", + "Sounds": "mecha_hitler", + "BloodColor": "00ffff", + "Footsteps": "mech", + "FootstepsDistancePlus": 0 + }, + { + "Name": "Hitler", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "soldier", + "Sounds": "hitler" + }, + { + "Name": "Otto Giftmacher", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big_soldier", + "Sounds": "otto" + }, + { + "Name": "Gretel Grosse", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big", + "Sounds": "gretel" + }, + { + "Name": "General Fettgesicht", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big_soldier", + "Sounds": "fettgesicht" + }, + { + "Name": "Pacman Ghost", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "none" + }, + { + "Name": "Submarine Willy", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big_soldier", + "Sounds": "trans" + }, + { + "Name": "Professor Quarkblitz", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big", + "Sounds": "bill" + }, + { + "Name": "Hans von Schlieffen", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/skull_big" + }, + "Body": "big", + "Sounds": "ubermutant", + "BloodColor": "ff00ff" + }, + { + "Name": "The Robot", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/robot" + }, + "Body": "big", + "Sounds": "knight" + }, + { + "Name": "Ghost", + "HeadPics": { + "Type": "Directional", + "Sprites": "" + }, + "Body": "none", + "DeathSprites": "", + "Sounds": "ghost", + "BloodColor": "999999", + "Corpse": "ghost_corpse" + }, + { + "Name": "Devil Incarnate", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/madbugeye" + }, + "Body": "angel", + "Sounds": "angel", + "BloodColor": "ffff00" + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/characters.json new file mode 100644 index 00000000..1dde089e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/characters.json @@ -0,0 +1,437 @@ +{ + "Version": 13, + "Characters": [{ + "Class": "Jones", + "PlayerTemplateName": "B.J.Blazkowicz", + "HairType": "flattop", + "Skin": "ffb26aff", + "Arms": "878787ff", + "Body": "918f8fff", + "Legs": "878787ff", + "Hair": "fc7e04ff", + "Feet": "1e1e1eff", + "speed": 256, + "Gun": "Pistol", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }, + { + "Class": "Guard", + "HairType": "combat_helmet", + "Skin": "ff9e40ff", + "Arms": "248704ff", + "Body": "128702ff", + "Legs": "017401ff", + "Hair": "9a9a9aff", + "Feet": "030679ff", + "speed": 193, + "Gun": "Guard Pistol", + "maxHealth": 25, + "flags": 128, + "probabilityToMove": 52, + "probabilityToTrack": 42, + "probabilityToShoot": 13, + "actionDelay": 15 + }, + { + "Class": "Killer Dog", + "Skin": "ad7200ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "00127eff", + "Feet": "404040ff", + "speed": 386, + "Gun": "Dog Bite", + "maxHealth": 1, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 68, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "SS", + "HairType": "beret", + "Skin": "ffa83bff", + "Arms": "5a5a5bff", + "Body": "535356ff", + "Legs": "48484dff", + "Hair": "515158ff", + "Feet": "000362ff", + "speed": 258, + "Gun": "SS Machine Gun", + "maxHealth": 100, + "flags": 128, + "probabilityToMove": 50, + "probabilityToTrack": 41, + "probabilityToShoot": 12, + "actionDelay": 15 + }, + { + "Class": "Bat", + "Skin": "cd8f17ff", + "Arms": "352509ff", + "Body": "003f06ff", + "Legs": "003c08ff", + "Hair": "0e0d0dff", + "Feet": "404040ff", + "speed": 194, + "Gun": "Guard Pistol", + "maxHealth": 55, + "flags": 128, + "probabilityToMove": 50, + "probabilityToTrack": 42, + "probabilityToShoot": 12, + "actionDelay": 5 + }, + { + "Class": "Officer", + "HairType": "peak_cap", + "Skin": "ffa83bff", + "Arms": "ecececff", + "Body": "f8f8ffff", + "Legs": "fcfcfcff", + "Hair": "797979ff", + "Feet": "090c7eff", + "speed": 330, + "Gun": "Guard Pistol", + "maxHealth": 50, + "flags": 128, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 12, + "actionDelay": 15 + }, + { + "Class": "Pacman Ghost", + "HairType": "pacman_ghost", + "Skin": "00ff00ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "ad0000ff", + "Feet": "404040ff", + "speed": 130, + "Gun": "Ghost Drain", + "maxHealth": 40, + "flags": 34087936, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Pacman Ghost", + "HairType": "pacman_ghost", + "Skin": "00ff00ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "fca600ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Ghost Drain", + "maxHealth": 40, + "flags": 34087936, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Pacman Ghost", + "HairType": "pacman_ghost", + "Skin": "00ff00ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "4147fcff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Ghost Drain", + "maxHealth": 40, + "flags": 34087936, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Pacman Ghost", + "HairType": "pacman_ghost", + "Skin": "00ff00ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "ff6c84ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Ghost Drain", + "maxHealth": 40, + "flags": 34087936, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Hans Grosse", + "HairType": "flattop", + "Skin": "ffbf73ff", + "Arms": "0c08f0ff", + "Body": "0016ffff", + "Legs": "0820fcff", + "Hair": "fcfa0aff", + "Feet": "0200f7ff", + "speed": 192, + "Gun": "Chaingun and Machinegun", + "maxHealth": 1000, + "flags": 29824, + "Drop": "keys/plain/yellow", + "probabilityToMove": 30, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Dr Schabbs", + "HairType": "goggles", + "Skin": "ffc785ff", + "Arms": "f7f5f5ff", + "Body": "fffafaff", + "Legs": "fffcfcff", + "Hair": "fcfcfcff", + "Feet": "fffcfcff", + "speed": 192, + "Gun": "Syringes", + "maxHealth": 1250, + "flags": 29824, + "probabilityToMove": 40, + "probabilityToTrack": 30, + "probabilityToShoot": 52, + "actionDelay": 40 + }, + { + "Class": "Fake Hitler", + "HairType": "hitler", + "Skin": "ffb871ff", + "Arms": "ffe841ff", + "Body": "404040ff", + "Legs": "850000ff", + "Hair": "000000ff", + "Feet": "404040ff", + "speed": 192, + "Gun": "Flamethrower", + "maxHealth": 350, + "flags": 9344, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 12, + "actionDelay": 15 + }, + { + "Class": "Mecha Hitler", + "HairType": "hitler", + "Skin": "ffb871ff", + "Arms": "830000ff", + "Body": "007f83ff", + "Legs": "007a7eff", + "Hair": "000000ff", + "Feet": "006a74ff", + "speed": 192, + "Gun": "Quad Chain Gun", + "maxHealth": 1000, + "flags": 25728, + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Hitler", + "HairType": "hitler", + "Skin": "ffb871ff", + "Arms": "d99b3cff", + "Body": "d9a644ff", + "Legs": "d29a2eff", + "Hair": "000000ff", + "Feet": "020100ff", + "speed": 327, + "Gun": "Chaingun and Machinegun", + "maxHealth": 750, + "flags": 25728, + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 80, + "actionDelay": 40 + }, + { + "Class": "Otto Giftmacher", + "HairType": "peak_cap", + "Skin": "ffbb63ff", + "Arms": "ecececff", + "Body": "f8f8ffff", + "Legs": "fcfcfcff", + "Hair": "ffededff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Rocket Launcher", + "maxHealth": 1000, + "flags": 25728, + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Gretel Grosse", + "HairType": "pigtails", + "Skin": "ffbf73ff", + "Arms": "f00d00ff", + "Body": "ff0000ff", + "Legs": "fc0808ff", + "Hair": "fcfa0aff", + "Feet": "f70d00ff", + "speed": 194, + "Gun": "Chaingun and Machinegun", + "maxHealth": 1000, + "flags": 25728, + "Drop": "keys/plain/yellow", + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "General Fettgesicht", + "HairType": "peak_cap", + "Skin": "ffbb63ff", + "Arms": "ffbf5fff", + "Body": "ffc26aff", + "Legs": "ffb965ff", + "Hair": "ffd073ff", + "Feet": "404040ff", + "speed": 192, + "Gun": "Chaingun and Rocket Launcher", + "maxHealth": 1000, + "flags": 25728, + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Submarine Willy", + "HairType": "combat_helmet", + "Skin": "ffbf73ff", + "Arms": "002a87ff", + "Body": "003085ff", + "Legs": "012a87ff", + "Hair": "c9c9c9ff", + "Feet": "00267bff", + "speed": 192, + "Gun": "Chaingun and Machinegun", + "maxHealth": 1000, + "flags": 25728, + "Drop": "keys/plain/yellow", + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Professor Quarkblitz", + "HairType": "mad_doc", + "Skin": "ffbf73ff", + "Arms": "fcfaf8ff", + "Body": "fafafaff", + "Legs": "faf9f8ff", + "Hair": "fffffcff", + "Feet": "012ed9ff", + "speed": 258, + "Gun": "Chaingun and Rocket Launcher", + "maxHealth": 1100, + "flags": 25728, + "Drop": "keys/plain/yellow", + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Hans von Schlieffen", + "Skin": "e9e9e9ff", + "Arms": "0d21ffff", + "Body": "0433ffff", + "Legs": "9f9f9fff", + "Hair": "000000ff", + "Feet": "404040ff", + "speed": 386, + "Gun": "boss_chaingun1", + "maxHealth": 1200, + "flags": 25728, + "Drop": "keys/plain/yellow", + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "The Robot", + "Skin": "73ffebff", + "Arms": "6b6b6bff", + "Body": "0224f0ff", + "Legs": "04e9d6ff", + "Hair": "fa0000ff", + "Feet": "f1f5f5ff", + "speed": 256, + "Gun": "Dual Chaingun and Rocket Launcher", + "maxHealth": 1400, + "flags": 25728, + "Drop": "keys/plain/yellow", + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Ghost", + "HairType": "ghost", + "Skin": "00ff00ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "ad0000ff", + "Feet": "404040ff", + "speed": 102, + "Gun": "Ghost Drain", + "maxHealth": 12, + "flags": 9344, + "probabilityToMove": 90, + "probabilityToTrack": 90, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Devil Incarnate", + "Skin": "0017ffff", + "Arms": "0400ffff", + "Body": "0d09e9ff", + "Legs": "0024f7ff", + "Hair": "000000ff", + "Feet": "0022eeff", + "speed": 192, + "Gun": "Energy Ball", + "maxHealth": 1600, + "flags": 25728, + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/ammo_box.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/ammo_box.png new file mode 100644 index 00000000..8c05d1b1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/ammo_box.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/ammo_box.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/ammo_box.txt new file mode 100644 index 00000000..b935fc5b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/ammo_box.txt @@ -0,0 +1,4 @@ +140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/ammo_clip.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/ammo_clip.png new file mode 100644 index 00000000..780ec6e3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/ammo_clip.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/basket.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/basket.png new file mode 100644 index 00000000..57db9a45 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/basket.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/basket.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/basket.txt new file mode 100644 index 00000000..16fc73fa --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/basket.txt @@ -0,0 +1,4 @@ +Adapted from [16x16] Indoor RPG Tileset by armisius +https://opengameart.org/content/16x16-indoor-rpg-tileset + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chandelier.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chandelier.png new file mode 100644 index 00000000..5d948aa5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chandelier.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/data.json new file mode 100644 index 00000000..f6197593 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/data.json @@ -0,0 +1,45 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "head", "body"], + ["gun_r", "gun_l", "legs", "head", "body"], + ["gun_l", "legs", "body", "head", "gun_r"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "body", "head", "gun_l"], + ["gun_r", "gun_l", "legs", "head", "body"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 10]], + "idle": [[0, 10]], + "run": [ + [0, 11], [0, 10], [0, 9], [0, 10], [0, 11], [0, 10], [0, 9], [0, 10] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 6], [0, 5], [0, 6], [0, 7], [0, 6], [0, 5], [0, 6]] + } + }, + "Dir": { + "Head": [ + [0, -2], [2, -1], [4, 0], [2, 1], [0, 2], [-2, 1], [-4, 0], [-2, -1] + ], + "Gun": [ + [7, -2], [6, 0], [4, 2], [-1, 4], [-6, 2], [-6, -1], [-3, -3], [0, -3] + ] + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/legs_idle_24x24.png new file mode 100644 index 00000000..2792f7dd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/legs_run_24x24.png new file mode 100644 index 00000000..124ea3b3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/src.blend new file mode 100644 index 00000000..bdf0fb46 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/src.txt new file mode 100644 index 00000000..6d424eab --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/src.txt @@ -0,0 +1,4 @@ +Adapted from Sprite Base Model +by Wind astella +http://opengameart.org/content/sprite-base-model +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/upper_idle_24x24.png new file mode 100644 index 00000000..8286091d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/upper_idle_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/upper_idle_dualgun_24x24.png new file mode 100644 index 00000000..d6ac2968 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/upper_idle_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..27679375 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/upper_run_24x24.png new file mode 100644 index 00000000..658e14bb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/upper_run_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/upper_run_dualgun_24x24.png new file mode 100644 index 00000000..7a740afd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/upper_run_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/upper_run_handgun_24x24.png new file mode 100644 index 00000000..730d4339 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/angel/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/data.json new file mode 100644 index 00000000..9770ba88 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/data.json @@ -0,0 +1,37 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "gun_l", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 13]], + "idle": [[0, 13]], + "run": [ + [0, 14], [0, 14], [0, 13], [0, 13], [0, 12], [0, 12], [0, 13], [0, 13] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 7], [0, 6], [0, 6], [0, 5], [0, 5], [0, 6], [0, 6]] + } + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/legs_idle_24x24.png new file mode 100644 index 00000000..9e30f196 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/legs_run_24x24.png new file mode 100644 index 00000000..f91b94b4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/src.blend new file mode 100644 index 00000000..99666321 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/src.txt new file mode 100644 index 00000000..465cc1a8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/src.txt @@ -0,0 +1,4 @@ +Adapted from Pixel Art Bat Sprites +by PixElthen +https://opengameart.org/content/pixel-art-bat-sprites +https://creativecommons.org/licenses/by/4.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/upper_idle_24x24.png new file mode 100644 index 00000000..b27e79c7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..e3374a22 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/upper_run_24x24.png new file mode 100644 index 00000000..c910cb3e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/upper_run_handgun_24x24.png new file mode 100644 index 00000000..d7a9acf8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/bat/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/data.json new file mode 100644 index 00000000..f68b9391 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/data.json @@ -0,0 +1,37 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "gun_l", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 16]], + "idle": [[0, 16]], + "run": [ + [0, 17], [0, 16], [0, 15], [0, 16], [0, 17], [0, 16], [0, 15], [0, 16] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 6], [0, 5], [0, 6], [0, 7], [0, 6], [0, 5], [0, 6]] + } + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/legs_idle_24x24.png new file mode 100644 index 00000000..3c50f6c0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/legs_run_24x24.png new file mode 100644 index 00000000..dd2a1972 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/src.blend new file mode 100644 index 00000000..88d5c46f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/src.txt new file mode 100644 index 00000000..6d424eab --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/src.txt @@ -0,0 +1,4 @@ +Adapted from Sprite Base Model +by Wind astella +http://opengameart.org/content/sprite-base-model +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_24x24.png new file mode 100644 index 00000000..52aa5c55 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_dualgun_24x24.png new file mode 100644 index 00000000..e3a57e19 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..ac5f6114 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_24x24.png new file mode 100644 index 00000000..a2d0e00b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_dualgun_24x24.png new file mode 100644 index 00000000..6cfc6a8c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_handgun_24x24.png new file mode 100644 index 00000000..6bd20d57 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/data.json new file mode 100644 index 00000000..8a87ba0c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/data.json @@ -0,0 +1,37 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "gun_l", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 13]], + "idle": [[0, 13]], + "run": [ + [0, 13], [0, 13], [0, 13], [0, 13], [0, 13], [0, 13], [0, 13], [0, 13] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 6], [0, 5], [0, 6], [0, 7], [0, 6], [0, 5], [0, 6]] + } + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/legs_idle_24x24.png new file mode 100644 index 00000000..dd36990b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/legs_run_24x24.png new file mode 100644 index 00000000..6f9902bd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/src.blend new file mode 100644 index 00000000..4df3809e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/src.txt new file mode 100644 index 00000000..6d424eab --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/src.txt @@ -0,0 +1,4 @@ +Adapted from Sprite Base Model +by Wind astella +http://opengameart.org/content/sprite-base-model +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/upper_idle_24x24.png new file mode 100644 index 00000000..5fe6d0a3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/upper_idle_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/upper_idle_dualgun_24x24.png new file mode 100644 index 00000000..0e1a5d7d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/upper_idle_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..c8937073 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/upper_run_24x24.png new file mode 100644 index 00000000..73ebb5ee Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/upper_run_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/upper_run_dualgun_24x24.png new file mode 100644 index 00000000..8b109dfc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/upper_run_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/upper_run_handgun_24x24.png new file mode 100644 index 00000000..92eeb306 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/bodies/wizard/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/guns/pistol_20x20.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/guns/pistol_20x20.png new file mode 100644 index 00000000..12093173 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/guns/pistol_20x20.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/guns/smg_30x22.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/guns/smg_30x22.png new file mode 100644 index 00000000..a729f9ad Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/guns/smg_30x22.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/hairs/ghost_17x30.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/hairs/ghost_17x30.png new file mode 100644 index 00000000..4d0b4351 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/hairs/ghost_17x30.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/hairs/hitler_10x10.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/hairs/hitler_10x10.png new file mode 100644 index 00000000..a0764a50 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/hairs/hitler_10x10.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/hairs/pacman_ghost.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/hairs/pacman_ghost.txt new file mode 100644 index 00000000..c04e399a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/hairs/pacman_ghost.txt @@ -0,0 +1,3 @@ +Adapted from 20x20 Tileset by drakzlin +https://opengameart.org/content/20x20-tileset +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/hairs/pacman_ghost_18x30.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/hairs/pacman_ghost_18x30.png new file mode 100644 index 00000000..7777f655 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/chars/hairs/pacman_ghost_18x30.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/dead_guard.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/dead_guard.png new file mode 100644 index 00000000..22261ffd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/dead_guard.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/dogfood.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/dogfood.png new file mode 100644 index 00000000..5942847a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/dogfood.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/dogfood.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/dogfood.txt new file mode 100644 index 00000000..f240e6c0 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/dogfood.txt @@ -0,0 +1,4 @@ +Adapted from RPG item set by Jetrel +https://opengameart.org/node/4531 + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/eagle_portrait.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/eagle_portrait.png new file mode 100644 index 00000000..b5b1a405 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/eagle_portrait.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/elevator_entrance.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/elevator_entrance.png new file mode 100644 index 00000000..29a907c3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/elevator_entrance.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/elevator_interior.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/elevator_interior.png new file mode 100644 index 00000000..7bb7590e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/elevator_interior.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/flag.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/flag.png new file mode 100644 index 00000000..a135bbd8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/flag.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/flag.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/flag.txt new file mode 100644 index 00000000..25aca62e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/flag.txt @@ -0,0 +1,5 @@ +Adapted from Kyrodian Legends Overworld Props +By Midi +https://web.archive.org/web/20150319200042/http://opengameart.org/content/kyrodian-legends-overworld-props + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/ghost_corpse.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/ghost_corpse.png new file mode 100644 index 00000000..dc7833bf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/ghost_corpse.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/gibbet.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/gibbet.png new file mode 100644 index 00000000..c0f925e8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/gibbet.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/gibbet.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/gibbet.txt new file mode 100644 index 00000000..63908a1d --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/gibbet.txt @@ -0,0 +1,4 @@ +Adapted from Misc. Dark Fantasy Scenery Sprites by ETTiNGRiNDER +https://opengameart.org/content/misc-dark-fantasy-scenery-sprites + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/gibbet_bloody.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/gibbet_bloody.png new file mode 100644 index 00000000..c413f992 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/gibbet_bloody.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/gibbet_skeleton.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/gibbet_skeleton.png new file mode 100644 index 00000000..8ca968f1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/gibbet_skeleton.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/gibbet_skulls.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/gibbet_skulls.png new file mode 100644 index 00000000..c3f62a47 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/gibbet_skulls.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/hanging_skeleton.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/hanging_skeleton.png new file mode 100644 index 00000000..601020f8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/hanging_skeleton.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/heart.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/heart.png new file mode 100644 index 00000000..6325b8dc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/heart.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/heart.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/heart.txt new file mode 100644 index 00000000..802e878c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/heart.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/heer_flag.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/heer_flag.png new file mode 100644 index 00000000..13bef9e9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/heer_flag.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/heer_flag.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/heer_flag.txt new file mode 100644 index 00000000..7d574586 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/heer_flag.txt @@ -0,0 +1,4 @@ +Adapted from Dungeon Tileset +By Calciumtrice +https://opengameart.org/content/dungeon-tileset-1 +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/hitler_poster.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/hitler_poster.png new file mode 100644 index 00000000..09168ddf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/hitler_poster.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/iron_cross.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/iron_cross.png new file mode 100644 index 00000000..53de337d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/iron_cross.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/knives.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/knives.png new file mode 100644 index 00000000..ddef8330 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/knives.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/knives.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/knives.txt new file mode 100644 index 00000000..45b47f87 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/knives.txt @@ -0,0 +1,4 @@ +Adapted from Kitchen Assets for #LetsCookJam +By Bluerobin2 +https://opengameart.org/content/kitchen-assets-for-letscookjam +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/meal.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/meal.png new file mode 100644 index 00000000..83c0bd4e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/meal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/meal.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/meal.txt new file mode 100644 index 00000000..89223bff --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/meal.txt @@ -0,0 +1,4 @@ +Adapted from [LPC] Meals +By bluecarrot16 +https://opengameart.org/content/lpc-meals +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/pillar.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/pillar.png new file mode 100644 index 00000000..5b40ee7c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/pillar.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/pillar.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/pillar.txt new file mode 100644 index 00000000..7aec54bc --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/pillar.txt @@ -0,0 +1,4 @@ +Adapted from RPG Indoor Tileset: Expansion 1 by Redshrike +https://opengameart.org/content/rpg-indoor-tileset-expansion-1 + +http://opengameart.org/content/oga-by-30-faq \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/pool_blood.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/pool_blood.png new file mode 100644 index 00000000..9ad09170 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/pool_blood.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/pots.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/pots.png new file mode 100644 index 00000000..f062a77d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/pots.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/pots.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/pots.txt new file mode 100644 index 00000000..adddea06 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/pots.txt @@ -0,0 +1,4 @@ +Adapted from [LPC] House Insides by Lanea Zimmerman (AKA Sharm) +https://opengameart.org/content/lpc-house-insides + +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/shadow.png new file mode 100644 index 00000000..44d301a0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/sink.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/sink.png new file mode 100644 index 00000000..191c78bd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/sink.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/sink.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/sink.txt new file mode 100644 index 00000000..adddea06 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/sink.txt @@ -0,0 +1,4 @@ +Adapted from [LPC] House Insides by Lanea Zimmerman (AKA Sharm) +https://opengameart.org/content/lpc-house-insides + +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/skull_blue.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/skull_blue.png new file mode 100644 index 00000000..ff80f156 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/skull_blue.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/skull_blue.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/skull_blue.txt new file mode 100644 index 00000000..fbd3f3f2 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/skull_blue.txt @@ -0,0 +1,4 @@ +Adapted from Misc. Dark Fantasy Scenery Sprites by Gwes +http://opengameart.org/content/misc-dark-fantasy-scenery-sprites + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/skull_pillar.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/skull_pillar.png new file mode 100644 index 00000000..f7e49ed8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/skull_pillar.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/skull_pillar.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/skull_pillar.txt new file mode 100644 index 00000000..75fc0395 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/skull_pillar.txt @@ -0,0 +1,4 @@ +Adapted from Dungeon Crawl 32x32 tiles by Chris Hamons (maintainer) +https://opengameart.org/content/dungeon-crawl-32x32-tiles + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/skull_wall.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/skull_wall.png new file mode 100644 index 00000000..461112b9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/skull_wall.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/smg.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/smg.png new file mode 100644 index 00000000..9c0929cd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/smg.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/spear.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/spear.png new file mode 100644 index 00000000..9ef1bfea Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/spear.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/spear.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/spear.txt new file mode 100644 index 00000000..b89fe685 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/spear.txt @@ -0,0 +1,4 @@ +Adapted from Behrs 2,500 Pixel Spears 32x32 Archive +By Behrtron +https://opengameart.org/content/behrs-2500-pixel-spears-32x32-archive +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/spears.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/spears.png new file mode 100644 index 00000000..179b603c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/spears.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/spotlight.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/spotlight.png new file mode 100644 index 00000000..dae0039c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/spotlight.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/sprites.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/sprites.png new file mode 100644 index 00000000..0aa964a4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/sprites.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/stove.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/stove.png new file mode 100644 index 00000000..d42bce32 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/stove.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/stove.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/stove.txt new file mode 100644 index 00000000..adddea06 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/stove.txt @@ -0,0 +1,4 @@ +Adapted from [LPC] House Insides by Lanea Zimmerman (AKA Sharm) +https://opengameart.org/content/lpc-house-insides + +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/suit_of_armor.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/suit_of_armor.png new file mode 100644 index 00000000..581cbade Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/suit_of_armor.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/suit_of_armor.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/suit_of_armor.txt new file mode 100644 index 00000000..7aec54bc --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/suit_of_armor.txt @@ -0,0 +1,4 @@ +Adapted from RPG Indoor Tileset: Expansion 1 by Redshrike +https://opengameart.org/content/rpg-indoor-tileset-expansion-1 + +http://opengameart.org/content/oga-by-30-faq \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/swastika_blue.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/swastika_blue.png new file mode 100644 index 00000000..2956b160 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/swastika_blue.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/swastika_relief.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/swastika_relief.png new file mode 100644 index 00000000..52e83766 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/swastika_relief.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/swastika_wall.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/swastika_wall.png new file mode 100644 index 00000000..4919d701 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/swastika_wall.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/syringe_9x9.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/syringe_9x9.png new file mode 100644 index 00000000..8fb8f824 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/syringe_9x9.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/truck.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/truck.png new file mode 100644 index 00000000..dbba53fe Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/truck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/truck.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/truck.txt new file mode 100644 index 00000000..71fa2c68 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/truck.txt @@ -0,0 +1,4 @@ +Adapted from Post-apocalyptic 16x16 tileset [update1] +By CobraLad +https://opengameart.org/content/post-apocalyptic-16x16-tileset-update1 +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/urn.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/urn.png new file mode 100644 index 00000000..4ded2ebc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/urn.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/urn.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/urn.txt new file mode 100644 index 00000000..4c24b06b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/urn.txt @@ -0,0 +1,4 @@ +Derived from Tiny 16: Basic +by Sharm +https://opengameart.org/content/tiny-16-basic +http://opengameart.org/content/oga-by-30-faq \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/generate.ps1 b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/generate.ps1 new file mode 100644 index 00000000..0561688c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/generate.ps1 @@ -0,0 +1,29 @@ +# Use this script to generate all the other versions of wall tiles, given a complete "o" tile +# Use "plasteel" as a template +param ( + [string]$name, + [int]$m = 1 +) +$w = 16 - $m +$h = 12 - $m +$h2 = 24 - $m +# NESW +Invoke-Expression ("magick $name/o.png -crop 16x{0}+0+0 -colorspace sRGB -gravity North -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/n.png" -f $h) +Invoke-Expression ("magick $name/o.png -crop 16x{0}+0+{1} -colorspace sRGB -gravity South -define distort:viewport=16x24-0-{1} -filter point -distort SRT 0 +repage $name/s.png" -f $h2,$m) +Invoke-Expression ("magick $name/o.png -crop {0}x24+{1}+0 -colorspace sRGB -gravity East -define distort:viewport=16x24-{1}-0 -filter point -distort SRT 0 +repage $name/e.png" -f $w,$m) +Invoke-Expression ("magick $name/o.png -crop {0}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/w.png" -f $w) +# NW, NE, SW, SE +Invoke-Expression ("magick $name/n.png -crop {0}x12+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/nw.png" -f $w) +Invoke-Expression ("magick $name/n.png -crop {0}x12+{1}+0 -colorspace sRGB -gravity East -define distort:viewport=16x12-{1}-0 -filter point -distort SRT 0 +repage $name/ne.png" -f $w,$m) +Invoke-Expression ("magick $name/s.png -crop {0}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/sw.png" -f $w) +Invoke-Expression ("magick $name/s.png -crop {0}x24+{1}+0 -colorspace sRGB -gravity East -define distort:viewport=16x24-{1}-0 -filter point -distort SRT 0 +repage $name/se.png" -f $w,$m) +# NT, ET, ST, WT +Invoke-Expression ("magick $name/nw.png -crop {0}x12+{1}+0 -colorspace sRGB -gravity East -define distort:viewport=16x12-{1}-0 -filter point -distort SRT 0 +repage $name/nt.png" -f $w,$m) +Invoke-Expression ("magick $name/ne.png -crop 16x{1}+0+{2} -colorspace sRGB -gravity South -define distort:viewport=16x12-0-{2} -filter point -distort SRT 0 +repage $name/et.png" -f $w,$h,$m) +Invoke-Expression ("magick $name/se.png -crop {0}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/st.png" -f $w) +Invoke-Expression ("magick $name/sw.png -crop 16x{1}+0+0 -colorspace sRGB -gravity North -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/wt.png" -f $w,$h) +# VH +Invoke-Expression ("magick $name/n.png -crop 16x{1}+0+{2} -colorspace sRGB -gravity South -define distort:viewport=16x12-0-{2} -filter point -distort SRT 0 +repage $name/v.png" -f $w,$h,$m) +Invoke-Expression ("magick $name/e.png -crop {0}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/h.png" -f $w) +# X +Invoke-Expression ("magick $name/et.png -crop {0}x12+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/x.png" -f $w) diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/e.png new file mode 100644 index 00000000..5eace4c9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/et.png new file mode 100644 index 00000000..dca9e384 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/h.png new file mode 100644 index 00000000..70c26261 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/n.png new file mode 100644 index 00000000..3f2dd7af Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/ne.png new file mode 100644 index 00000000..140b467b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/nt.png new file mode 100644 index 00000000..1642d9b6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/nw.png new file mode 100644 index 00000000..aa93f402 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/o.png new file mode 100644 index 00000000..0ea18d0f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/s.png new file mode 100644 index 00000000..a8489c01 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/se.png new file mode 100644 index 00000000..d9bc3897 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/st.png new file mode 100644 index 00000000..a9b4c1f7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/sw.png new file mode 100644 index 00000000..787058e6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/v.png new file mode 100644 index 00000000..ce59cdf8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/w.png new file mode 100644 index 00000000..d705bb0d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/wt.png new file mode 100644 index 00000000..b595d009 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/x.png new file mode 100644 index 00000000..5e85264b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall/landscape/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall_light.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall_light.png new file mode 100644 index 00000000..af374b21 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wall_light.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/well.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/well.png new file mode 100644 index 00000000..7412a6a1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/well.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/well.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/well.txt new file mode 100644 index 00000000..fb09194e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/well.txt @@ -0,0 +1,4 @@ +Roguelike Dungeon/World Tiles +by Joe Williamson (@JoeCreates) +https://opengameart.org/content/roguelike-dungeonworld-tiles +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/well_water.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/well_water.png new file mode 100644 index 00000000..6430f69a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/well_water.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wet_cobble.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wet_cobble.png new file mode 100644 index 00000000..bfc3766c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/graphics/wet_cobble.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/guns.json new file mode 100644 index 00000000..a1157379 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/guns.json @@ -0,0 +1,233 @@ +{ + "Version": 3, + "Guns": [ + { + "Pic": "knife", + "Icon": "knife", + "Name": "Knife", + "Bullet": "knife", + "Cost": 0, + "Lock": 30, + "Sound": "", + "SwitchSound": "knife_switch", + "CanShoot": false, + "Auto": true + }, + { + "Pic": "pistol", + "Name": "Pistol", + "Icon": "pistol", + "Bullet": "bullet", + "Cost": 1, + "Lock": 30, + "Sound": "pistol", + "SwitchSound": "pistol_switch", + "Recoil": 0.1, + "Brass": "brass", + "Ammo": "Ammo" + }, + { + "Pic": "smg", + "Grips": 2, + "Name": "Machine Gun", + "Icon": "smg", + "Bullet": "bullet", + "Cost": 1, + "Lock": 12, + "Sound": "machine_gun", + "SwitchSound": "machine_gun_switch", + "Recoil": 0.17, + "Brass": "brass", + "Ammo": "Ammo" + }, + { + "Pic": "chaingun_blue", + "Name": "Chain Gun", + "Icon": "machine_gun_blue", + "Bullet": "bullet", + "Cost": 1, + "Lock": 6, + "Sound": "chain_gun", + "SwitchSound": "chaingun_pickup", + "Recoil": 0.23, + "Brass": "brass", + "Ammo": "Ammo" + }, + { + "Pic": "pistol", + "Name": "Guard Pistol", + "Icon": "pistol", + "Bullet": "bullet_enemy", + "Cost": 1, + "Lock": 70, + "Sound": "pistol_guard", + "SwitchSound": "pistol_switch", + "Recoil": 0.3, + "Brass": "brass", + "Ammo": "Ammo", + "CanDrop": false + }, + { + "Pic": "smg", + "Grips": 2, + "Name": "SS Machine Gun", + "Icon": "assault_rifle", + "Bullet": "bullet_boss", + "Cost": 1, + "Lock": 70, + "Sound": "machine_gun_burst", + "Recoil": 0.3, + "Brass": "brass", + "Ammo": "Ammo", + "DropGun": "Machine Gun" + }, + { + "Pic": "chaingun_blue", + "Name": "boss_chaingun1", + "Bullet": "bullet_boss", + "Lock": 70, + "Sound": "dual_chain_gun", + "Recoil": 0.3, + "Brass": "brass" + }, + { + "Name": "Chaingun and Machinegun", + "Icon": "machine_gun", + "CanDrop": false, + "Guns": ["boss_chaingun1", "boss_machinegun"], + "Lock": 9 + }, + { + "Name": "Quad Chain Gun", + "Icon": "machine_gun", + "CanDrop": false, + "Guns": ["boss_double_chaingun1", "boss_double_chaingun2"], + "Lock": 9 + }, + { + "Pic": "", + "Name": "Dog Bite", + "Bullet": "dog_bite", + "Cost": 0, + "Lock": 80, + "Sound": "", + "CanShoot": false, + "CanDrop": false + }, + { + "Pic": "", + "Name": "Syringes", + "Bullet": "syringe", + "Cost": 7, + "Lock": 30, + "Sound": "syringe", + "SwitchSound": "molotov_pickup", + "CanDrop": false + }, + { + "Name": "Rocket Launcher", + "Pic": "rocket_blue", + "Icon": "launcher", + "Bullet": "rocket", + "Cost": 9, + "Lock": 40, + "Sound": "rocket", + "SwitchSound": "launcher_switch", + "MuzzleFlashParticle": "muzzle_flash_shotgun", + "CanDrop": false + }, + { + "Pic": "", + "Name": "Ghost Drain", + "Bullet": "ghost_drain", + "Cost": 0, + "Sound": "", + "SoundLockLength": 10, + "CanShoot": false, + "CanDrop": false + }, + { + "Name": "Flamethrower", + "Pic": "", + "Bullet": "fireball", + "Cost": 1, + "Lock": 30, + "Sound": "flamethrower", + "MuzzleFlashParticle": "", + "CanDrop": false + }, + { + "Name": "Chaingun and Rocket Launcher", + "Icon": "akimbo_pistols", + "Guns": ["Rocket Launcher", "boss_chaingun1"], + "CanDrop": false + }, + { + "Name": "Dual Chaingun and Rocket Launcher", + "Icon": "akimbo_pistols", + "Guns": ["dual_chaingun_rocket_launcher1", "dual_chaingun_rocket_launcher2"], + "CanDrop": false + }, + { + "Name": "Energy Ball", + "Pic": "", + "Bullet": "energy_ball", + "Cost": 5, + "Lock": 50, + "Sound": "flamethrower", + "MuzzleFlashParticle": "", + "CanDrop": false + } + ], + "PseudoGuns" : [ + { + "Pic": "pistol", + "Name": "boss_machinegun", + "Bullet": "bullet_boss", + "Lock": 70, + "Sound": "", + "Recoil": 0.3, + "Brass": "brass" + }, + { + "Pic": "quad_chaingun", + "Name": "boss_double_chaingun1", + "Bullet": "bullet_quad", + "Lock": 70, + "Sound": "dual_chain_gun", + "SpreadCount": 2, + "Recoil": 0.3, + "MuzzleHeight": 12, + "Brass": "brass" + }, + { + "Pic": "quad_chaingun", + "Name": "boss_double_chaingun2", + "Bullet": "bullet_quad", + "Lock": 70, + "Sound": "", + "SpreadCount": 2, + "Recoil": 0.3, + "MuzzleHeight": 12, + "Brass": "brass" + }, + { + "Pic": "chaingun_blue", + "Name": "dual_chaingun_rocket_launcher1", + "Bullets": ["bullet_boss", "rocket"], + "Lock": 70, + "Sound": "knight_rocket", + "Recoil": 0.3, + "Brass": "brass" + }, + { + "Pic": "chaingun_blue", + "Name": "dual_chaingun_rocket_launcher2", + "Bullets": ["bullet_boss", "rocket"], + "Lock": 70, + "Sound": "dual_chaingun", + "Recoil": 0.3, + "Brass": "brass" + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/map_objects.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/map_objects.json new file mode 100644 index 00000000..cda9d8f9 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/map_objects.json @@ -0,0 +1,411 @@ +{ + "Version": 4, + "MapObjects": [ + { + "Name": "chandelier", + "Pic": { + "Type": "Normal", + "Pic": "chandelier" + }, + "Offset": [-8, -24], + "Health": 0, + "DrawAbove": true, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "hanging_skeleton", + "Pic": { + "Type": "Normal", + "Pic": "hanging_skeleton" + }, + "Offset": [-5, -26], + "Health": 40, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "pillar", + "Pic": { + "Type": "Normal", + "Pic": "pillar" + }, + "Health": 80, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "sink", + "Pic": { + "Type": "Normal", + "Pic": "sink" + }, + "Size": [8, 6], + "Health": 50, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "skull_pillar", + "Pic": { + "Type": "Normal", + "Pic": "skull_pillar" + }, + "Size": [8, 6], + "Offset": [-8, -14], + "Health": 20, + "Flags": ["NoWalls"] + }, + { + "Name": "cowskull_pillar", + "Pic": { + "Type": "Normal", + "Pic": "cowskull_pillar" + }, + "Size": [8, 6], + "Offset": [-8, -14], + "Health": 20, + "Flags": ["NoWalls"] + }, + { + "Name": "urn", + "Pic": { + "Type": "Normal", + "Pic": "urn" + }, + "Size": [10, 8], + "Offset": [-5, -8], + "Health": 30, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "knives", + "Pic": { + "Type": "Normal", + "Pic": "knives" + }, + "Offset": [-5, -13], + "Health": 0, + "Flags": ["Inside", "OneOrMoreWalls"] + }, + { + "Name": "pots", + "Pic": { + "Type": "Normal", + "Pic": "pots" + }, + "Offset": [-8, -13], + "Health": 0, + "Flags": ["Inside", "OneOrMoreWalls"] + }, + { + "Name": "gibbet_bloody", + "Pic": { + "Type": "Normal", + "Pic": "gibbet_bloody" + }, + "Offset": [-7, -33], + "Health": 40, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "suit_of_armor", + "Pic": { + "Type": "Normal", + "Pic": "suit_of_armor" + }, + "Offset": [-7, -20], + "Health": 60, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "gibbet", + "Pic": { + "Type": "Normal", + "Pic": "gibbet" + }, + "Offset": [-7, -33], + "Health": 40, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "gibbet_skeleton", + "Pic": { + "Type": "Normal", + "Pic": "gibbet_skeleton" + }, + "Offset": [-7, -33], + "Health": 40, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "gibbet_skulls", + "Pic": { + "Type": "Normal", + "Pic": "gibbet_skulls" + }, + "Offset": [-7, -33], + "Health": 40, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "basket", + "Pic": { + "Type": "Normal", + "Pic": "basket" + }, + "Size": [6, 6], + "Offset": [-3, -8], + "Health": 0, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "well", + "Pic": { + "Type": "Normal", + "Pic": "well" + }, + "Health": 80, + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "well_water", + "Pic": { + "Type": "Normal", + "Pic": "well_water" + }, + "Health": 80, + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "pool_blood", + "Pic": { + "Type": "Normal", + "Pic": "pool_blood" + }, + "Offset": [-8, -6], + "Health": 0, + "DrawBelow": true + }, + { + "Name": "flag", + "Pic": { + "Type": "Normal", + "Pic": "flag" + }, + "Size": [6, 4], + "Offset": [-4, -21], + "Health": 40, + "Flags": ["Inside", "OneOrMoreWalls"] + }, + { + "Name": "stove", + "Pic": { + "Type": "Normal", + "Pic": "stove" + }, + "Offset": [-8, -21], + "Health": 60, + "Flags": ["Inside", "OnWall", "FreeInFront"] + }, + { + "Name": "spears", + "Pic": { + "Type": "Normal", + "Pic": "spears" + }, + "Offset": [-7, -20], + "Health": 40, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "truck", + "Pic": { + "Type": "Normal", + "Pic": "truck" + }, + "Health": 100, + "Flags": ["Outside"] + }, + { + "Name": "sprites", + "Pic": { + "Type": "Normal", + "Pic": "sprites" + }, + "Health": 0, + "Flags": ["Outside"] + }, + { + "Name": "dead_guard", + "Pic": { + "Type": "Normal", + "Pic": "dead_guard" + }, + "Health": 0, + "DrawBelow": true + }, + { + "Name": "spotlight", + "Pic": { + "Type": "Normal", + "Pic": "spotlight" + }, + "Health": 0, + "DrawBelow": true, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "shadow", + "Pic": { + "Type": "Normal", + "Pic": "shadow" + }, + "Health": 0, + "DrawBelow": true, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "wall_light", + "Pic": { + "Type": "Normal", + "Pic": "wall_light" + }, + "Offset": [-7, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "heer_flag", + "Pic": { + "Type": "Normal", + "Pic": "heer_flag" + }, + "Offset": [-7, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "eagle_portrait", + "Pic": { + "Type": "Normal", + "Pic": "eagle_portrait" + }, + "Offset": [-7, -10], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "elevator_entrance", + "Pic": { + "Type": "Normal", + "Pic": "elevator_entrance" + }, + "Offset": [-5, -9], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "swastika_relief", + "Pic": { + "Type": "Normal", + "Pic": "swastika_relief" + }, + "Offset": [-5, -10], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "wet_cobble", + "Pic": { + "Type": "Normal", + "Pic": "wet_cobble" + }, + "Offset": [-8, -4], + "Health": 0, + "Flags": ["OnWall", "Outside"] + }, + { + "Name": "elevator_interior", + "Pic": { + "Type": "Normal", + "Pic": "elevator_interior" + }, + "Offset": [-6, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "iron_cross", + "Pic": { + "Type": "Normal", + "Pic": "iron_cross" + }, + "Offset": [-7, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "skull_blue", + "Pic": { + "Type": "Normal", + "Pic": "skull_blue" + }, + "Offset": [-3, -9], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "skull_wall", + "Pic": { + "Type": "Normal", + "Pic": "skull_wall" + }, + "Offset": [-3, -9], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "swastika_blue", + "Pic": { + "Type": "Normal", + "Pic": "swastika_blue" + }, + "Offset": [-3, -8], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "swastika_wall", + "Pic": { + "Type": "Normal", + "Pic": "swastika_wall" + }, + "Offset": [-3, -8], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "hitler_poster", + "Pic": { + "Type": "Normal", + "Pic": "hitler_poster" + }, + "Offset": [-5, -10], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "ghost_corpse", + "Type": "ActorSpawner", + "Pic": { + "Type": "Normal", + "Pic": "ghost_corpse" + }, + "Wreck": { + "Sound": "", + "Bullet": "" + }, + "Offset": [-7, -21], + "Health": 0, + "CharId": 22, + "Counter": 340 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/missions.json new file mode 100644 index 00000000..f07fc2b8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/missions.json @@ -0,0 +1,1357 @@ +{ + "Missions": [{ + "Title": "", + "Description": "", + "Type": "Static", + "Width": 32, + "Height": 27, + "ExitStyle": "hazard", + "KeyStyle": "plain2", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": [ + "Knife", + "Pistol", + "Machine Gun", + "Chain Gun" + ], + "WeaponPersist": false, + "SkipDebrief": false, + "TileClasses": { + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "cbcbcbff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "1": { + "Name": "door", + "Type": "Door", + "Style": "prison", + "Mask": "808080ff", + "MaskAlt": "000000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "10": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "b6b4b4ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "11": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "666666ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "12": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "c6c3c3ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "13": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "696868ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "14": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "666666ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "15": { + "Name": "wall", + "Type": "Wall", + "Style": "bunker", + "Mask": "d2d1ceff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "16": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "767777ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "17": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "747474ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "18": { + "Name": "wall", + "Type": "Wall", + "Style": "carbon", + "Mask": "7b7b7bff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "19": { + "Name": "wall", + "Type": "Wall", + "Style": "carbon", + "Mask": "7e7e7eff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "2": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "797777ff", + "MaskAlt": "ffe72aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "20": { + "Name": "wall", + "Type": "Wall", + "Style": "carbon", + "Mask": "808080ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "21": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "fc2b2bff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "22": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "fc2c04ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "23": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel2", + "Mask": "878585ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "24": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "777777ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "25": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "f50202ff", + "MaskAlt": "0bec08ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "26": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "f70202ff", + "MaskAlt": "0dfa0dff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "27": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "fa1c11ff", + "MaskAlt": "19f708ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "28": { + "Name": "wall", + "Type": "Wall", + "Style": "carbon", + "Mask": "00149fff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "29": { + "Name": "wall", + "Type": "Wall", + "Style": "carbon", + "Mask": "000495ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "3": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "c2c2c2ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "30": { + "Name": "wall", + "Type": "Wall", + "Style": "carbon", + "Mask": "00009cff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "31": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "0400d9ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "32": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "0008e2ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "33": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "93939aff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "34": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "0106b1ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "35": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "000d98ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "36": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "c6c6c6ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "37": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "c9c9c9ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "38": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "0013d4ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "39": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "0012cbff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "c2c2c2ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "40": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "0108cdff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "41": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "0011c9ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "42": { + "Name": "wall", + "Type": "Wall", + "Style": "carbon", + "Mask": "0007cbff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "43": { + "Name": "wall", + "Type": "Wall", + "Style": "stone2", + "Mask": "918f8fff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "44": { + "Name": "wall", + "Type": "Wall", + "Style": "stone2", + "Mask": "0505d0ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "45": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "a605e2ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "46": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "002de0ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "47": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "5f5f5fff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "48": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "afadadff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "49": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "b1b1b1ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "5": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "7d7d7eff", + "MaskAlt": "040cffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "50": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "bbbbbbff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "51": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "adadadff", + "MaskAlt": "00fc00ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "52": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "b4b4b4ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "53": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "f70000ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "54": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "e90606ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "55": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "f30606ff", + "MaskAlt": "0dff0dff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "56": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "777676ff", + "MaskAlt": "c27300ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "57": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "7b7b7bff", + "MaskAlt": "b86500ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "58": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "858585ff", + "MaskAlt": "b61d09ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "59": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "9c9c9cff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "6": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "c9c9cbff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "60": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "9c9b9bff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "61": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "807f7fff", + "MaskAlt": "ad6700ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "62": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "707070ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "63": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "f30404ff", + "MaskAlt": "0afc0aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "64": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "777777ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "65": { + "Name": "wall", + "Type": "Wall", + "Style": "support", + "Mask": "cd7100ff", + "MaskAlt": "646464ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "7": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "ff1c00ff", + "MaskAlt": "01d901ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "8": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "b8b8b8ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "9": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "b9b9bbff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + } + }, + "Tiles": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,3,1,4,1,5,1,6,2,7,0,8,0,9,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0", + "0,11,0,12,0,13,0,14,0,15,0,16,0,17,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,19,0,20,0,21,0,22,0,23,0,24,0,25,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,27,0,28,0,29,0,30,0,31,0,32,0,33,0,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,35,0,36,0,37,0,38,0,39,0,40,0,41,0,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0", + "0,43,0,44,0,45,0,46,0,47,0,48,0,49,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,51,0,52,0,53,0,54,0,55,0,56,0,57,0,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,59,0,60,0,61,0,62,0,63,0,64,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,256,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,256,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "elevator_interior", + "Positions": [[11, 6], + [9, 6], + [7, 16]] + }, + { + "MapObject": "pool_water", + "Positions": [[17, 1]] + }, + { + "MapObject": "barrel_green", + "Positions": [[19, 1]] + }, + { + "MapObject": "rod_light", + "Positions": [[23, 1]] + }, + { + "MapObject": "spotlight", + "Positions": [[25, 1], + [23, 1], + [30, 9], + [17, 11]] + }, + { + "MapObject": "chandelier", + "Positions": [[25, 1]] + }, + { + "MapObject": "hanging_skeleton", + "Positions": [[27, 1]] + }, + { + "MapObject": "shadow", + "Positions": [[27, 1], + [28, 3], + [30, 3], + [17, 5], + [26, 5]] + }, + { + "MapObject": "pillar", + "Positions": [[29, 1]] + }, + { + "MapObject": "plant", + "Positions": [[17, 3]] + }, + { + "MapObject": "bone_blood", + "Positions": [[19, 3]] + }, + { + "MapObject": "sink", + "Positions": [[20, 3]] + }, + { + "MapObject": "skull_pillar", + "Positions": [[21, 3]] + }, + { + "MapObject": "plant_brown", + "Positions": [[23, 3]] + }, + { + "MapObject": "urn", + "Positions": [[25, 3]] + }, + { + "MapObject": "knives", + "Positions": [[27, 3]] + }, + { + "MapObject": "gibbet_bloody", + "Positions": [[28, 3]] + }, + { + "MapObject": "gibbet", + "Positions": [[30, 3]] + }, + { + "MapObject": "gibbet_skeleton", + "Positions": [[17, 5]] + }, + { + "MapObject": "suit_of_armor", + "Positions": [[29, 3]] + }, + { + "MapObject": "skull", + "Positions": [[19, 5]] + }, + { + "MapObject": "gibbet_skulls", + "Positions": [[26, 5]] + }, + { + "MapObject": "bed", + "Positions": [[25, 5]] + }, + { + "MapObject": "basket", + "Positions": [[27, 5]] + }, + { + "MapObject": "gibs", + "Positions": [[17, 9]] + }, + { + "MapObject": "barrel_wood2", + "Positions": [[19, 9]] + }, + { + "MapObject": "well_water", + "Positions": [[21, 9]] + }, + { + "MapObject": "well", + "Positions": [[23, 9]] + }, + { + "MapObject": "pool_blood", + "Positions": [[25, 9]] + }, + { + "MapObject": "skull2", + "Positions": [[29, 9]] + }, + { + "MapObject": "bones", + "Positions": [[31, 9]] + }, + { + "MapObject": "pots", + "Positions": [[20, 11]] + }, + { + "MapObject": "stove", + "Positions": [[22, 11]] + }, + { + "MapObject": "spears", + "Positions": [[25, 11]] + }, + { + "MapObject": "statue_behemoth", + "Positions": [[26, 11]] + }, + { + "MapObject": "truck", + "Positions": [[17, 13]] + }, + { + "MapObject": "dead_guard", + "Positions": [[21, 13]] + }, + { + "MapObject": "ghost_corpse", + "Positions": [[14, 21]] + }, + { + "MapObject": "wall_light", + "Positions": [[5, 2], + [13, 14], + [3, 2], + [5, 4], + [1, 10], + [3, 10], + [5, 10]] + }, + { + "MapObject": "hitler_poster", + "Positions": [[7, 4], + [1, 14]] + }, + { + "MapObject": "swastika_relief", + "Positions": [[3, 4], + [11, 2], + [7, 6], + [11, 8], + [7, 14]] + }, + { + "MapObject": "elevator_entrance", + "Positions": [[9, 4]] + }, + { + "MapObject": "no_sign", + "Positions": [[9, 10], + [7, 2], + [13, 4], + [15, 10]] + }, + { + "MapObject": "skull_blue", + "Positions": [[7, 8]] + }, + { + "MapObject": "swastika_blue", + "Positions": [[5, 8]] + }, + { + "MapObject": "map", + "Positions": [[13, 2]] + }, + { + "MapObject": "eagle_portrait", + "Positions": [[15, 2], + [9, 14]] + }, + { + "MapObject": "wall_goo2", + "Positions": [[9, 2], + [13, 6], + [15, 6], + [1, 8], + [9, 16]] + }, + { + "MapObject": "rod", + "Positions": [[27, 9]] + }, + { + "MapObject": "barrel", + "Positions": [[23, 11]] + }, + { + "MapObject": "table_and_chairs_red", + "Positions": [[21, 1]] + }, + { + "MapObject": "goo", + "Positions": [[19, 11]] + }, + { + "MapObject": "pillar_blue", + "Positions": [[27, 11]] + }, + { + "MapObject": "sprites", + "Positions": [[29, 11]] + }, + { + "MapObject": "table_plastic", + "Positions": [[26, 3]] + }, + { + "MapObject": "swastika_wall", + "Positions": [[3, 6]] + }, + { + "MapObject": "skull_wall", + "Positions": [[1, 6]] + }, + { + "MapObject": "jail_cell", + "Positions": [[11, 10]] + }, + { + "MapObject": "jail_cell_skeleton", + "Positions": [[13, 10]] + }, + { + "MapObject": "wet_cobble", + "Positions": [[1, 12], + [3, 12]] + }, + { + "MapObject": "wscreen1", + "Positions": [[9, 12]] + }, + { + "MapObject": "wall_vent", + "Positions": [[13, 12]] + }, + { + "MapObject": "bulletmarks", + "Positions": [[15, 12]] + }, + { + "MapObject": "ship_picture", + "Positions": [[3, 14]] + }, + { + "MapObject": "green_relief", + "Positions": [[15, 14]] + }, + { + "MapObject": "red_relief", + "Positions": [[1, 16]] + }, + { + "MapObject": "blue_relief", + "Positions": [[3, 16]] + }, + { + "MapObject": "wscreen2", + "Positions": [[5, 16]] + }], + "StaticCharacters": [{ + "Index": 0, + "Places": [{ + "Pos": [1, 17], + "Dir": 2 + }] + }, + { + "Index": 1, + "Places": [{ + "Pos": [3, 17], + "Dir": 1 + }] + }, + { + "Index": 2, + "Places": [{ + "Pos": [5, 17], + "Dir": 7 + }] + }, + { + "Index": 3, + "Places": [{ + "Pos": [7, 17], + "Dir": 6 + }] + }, + { + "Index": 4, + "Places": [{ + "Pos": [9, 17], + "Dir": 0 + }] + }, + { + "Index": 5, + "Places": [{ + "Pos": [11, 17], + "Dir": 6 + }] + }, + { + "Index": 6, + "Places": [{ + "Pos": [13, 17], + "Dir": 0 + }] + }, + { + "Index": 7, + "Places": [{ + "Pos": [15, 17], + "Dir": 7 + }] + }, + { + "Index": 8, + "Places": [{ + "Pos": [1, 19], + "Dir": 5 + }] + }, + { + "Index": 9, + "Places": [{ + "Pos": [3, 19], + "Dir": 6 + }] + }, + { + "Index": 10, + "Places": [{ + "Pos": [5, 19], + "Dir": 0 + }] + }, + { + "Index": 11, + "Places": [{ + "Pos": [7, 19], + "Dir": 0 + }] + }, + { + "Index": 12, + "Places": [{ + "Pos": [9, 19], + "Dir": 2 + }] + }, + { + "Index": 13, + "Places": [{ + "Pos": [11, 19], + "Dir": 0 + }] + }, + { + "Index": 14, + "Places": [{ + "Pos": [13, 19], + "Dir": 5 + }] + }, + { + "Index": 15, + "Places": [{ + "Pos": [15, 19], + "Dir": 1 + }] + }, + { + "Index": 16, + "Places": [{ + "Pos": [1, 21], + "Dir": 5 + }] + }, + { + "Index": 17, + "Places": [{ + "Pos": [3, 21], + "Dir": 1 + }] + }, + { + "Index": 18, + "Places": [{ + "Pos": [5, 21], + "Dir": 7 + }] + }, + { + "Index": 19, + "Places": [{ + "Pos": [7, 21], + "Dir": 0 + }] + }, + { + "Index": 20, + "Places": [{ + "Pos": [9, 21], + "Dir": 3 + }] + }, + { + "Index": 21, + "Places": [{ + "Pos": [11, 21], + "Dir": 0 + }] + }, + { + "Index": 22, + "Places": [{ + "Pos": [13, 21], + "Dir": 6 + }] + }, + { + "Index": 23, + "Places": [{ + "Pos": [15, 21], + "Dir": 7 + }] + }], + "StaticObjectives": [], + "StaticKeys": [{ + "Index": 0, + "Positions": [[4, 2], + [4, 2], + [4, 2], + [4, 2], + [21, 5], + [21, 5], + [21, 5]] + }, + { + "Index": 2, + "Positions": [[6, 2], + [6, 2], + [6, 2], + [6, 2], + [23, 5], + [23, 5]] + }], + "StaticPickups": [{ + "Pickup": "dogfood", + "Positions": [[31, 1]] + }, + { + "Pickup": "meal", + "Positions": [[29, 5]] + }, + { + "Pickup": "health", + "Positions": [[31, 5]] + }, + { + "Pickup": "ammo_Bullets", + "Positions": [[17, 7]] + }, + { + "Pickup": "gun_Machine Gun", + "Positions": [[19, 7]] + }, + { + "Pickup": "gun_Chain Gun", + "Positions": [[21, 7]] + }, + { + "Pickup": "cross", + "Positions": [[23, 7]] + }, + { + "Pickup": "chalice", + "Positions": [[25, 7]] + }, + { + "Pickup": "chest", + "Positions": [[27, 7]] + }, + { + "Pickup": "crown", + "Positions": [[29, 7]] + }, + { + "Pickup": "heart", + "Positions": [[31, 7]] + }, + { + "Pickup": "ammo_box", + "Positions": [[31, 11]] + }, + { + "Pickup": "spear", + "Positions": [[19, 13]] + }], + "Start": [0, 0], + "Exits": [{ + "Rect": [27, + 14, + 4, + 2], + "Mission": 1, + "Hidden": false + }], + "AltFloorsEnabled": false + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/pickups.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/pickups.json new file mode 100644 index 00000000..c4b47fc7 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SD3data.cdogscpn/pickups.json @@ -0,0 +1,144 @@ +{ + "Version": 3, + "Pickups": [ + { + "Name": "dogfood", + "Pic": { + "Type": "Normal", + "Pic": "dogfood" + }, + "Effects": [{ + "Type": "Health", + "Health": 4 + }], + "Sound": "health_small" + }, + { + "Name": "meal", + "Pic": { + "Type": "Normal", + "Pic": "meal" + }, + "Effects": [{ + "Type": "Health", + "Health": 10 + }], + "Sound": "health_small" + }, + { + "Name": "medkit", + "Pic": { + "Type": "Normal", + "Pic": "health" + }, + "Effects": [{ + "Type": "Health", + "Health": 25 + }], + "Sound": "health_big" + }, + { + "Name": "heart", + "Pic": { + "Type": "Normal", + "Pic": "heart" + }, + "Effects": [{ + "Type": "Health", + "Health": 100 + }, { + "Type": "Ammo", + "Ammo": "Ammo", + "Amount": 25 + }, { + "Type": "Lives", + "Lives": 1 + }], + "Sound": "1up" + }, + { + "Name": "cross", + "Pic": { + "Type": "Animated", + "Sprites": "radio2", + "TicksPerFrame": 10 + }, + "Effects": [{ + "Type": "Score", + "Score": 100 + }], + "Sound": "pickup_cross" + }, + { + "Name": "chalice", + "Pic": { + "Type": "Normal", + "Pic": "bottle2" + }, + "Effects": [{ + "Type": "Score", + "Score": 500 + }], + "Sound": "pickup_chalice" + }, + { + "Name": "chest", + "Pic": { + "Type": "Normal", + "Pic": "dynamite_pickup" + }, + "Effects": [{ + "Type": "Score", + "Score": 1000 + }], + "Sound": "pickup_chest" + }, + { + "Name": "crown", + "Pic": { + "Type": "Normal", + "Pic": "rockets" + }, + "Effects": [{ + "Type": "Score", + "Score": 5000 + }], + "Sound": "pickup_crown" + }, + { + "Name": "ammo_clip", + "Pic": { + "Type": "Normal", + "Pic": "ammo_clip" + }, + "Effects": [{ + "Type": "Ammo", + "Ammo": "Ammo", + "Amount": 8 + }], + "Sound": "ammo_pickup" + }, + { + "Name": "ammo_box", + "Pic": { + "Type": "Normal", + "Pic": "ammo_box" + }, + "Effects": [{ + "Type": "Ammo", + "Ammo": "Ammo", + "Amount": 25 + }], + "Sound": "ammo_box" + }, + { + "Name": "spear", + "Pic": { + "Type": "Normal", + "Pic": "spear" + }, + "Effects": [], + "Sound": "spear" + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SOD.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SOD.cdogscpn/campaign.json new file mode 100644 index 00000000..d46187c9 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SOD.cdogscpn/campaign.json @@ -0,0 +1,17 @@ +{ + "Version": 16, + "Title": "Spear of Destiny", + "Author": "id Software", + "Description": "", + "Ammo": true, + "WeaponPersist": true, + "SkipWeaponMenu": true, + "RandomPickups": false, + "DoorOpenTicks": 210, + "Lives": 1, + "MaxLives": 9, + "PlayerHP": 0, + "PlayerMaxHP": 0, + "PlayerExcessHP": 0, + "Missions": 0 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SOD.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SOD.cdogscpn/characters.json new file mode 100644 index 00000000..af9e4154 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SOD.cdogscpn/characters.json @@ -0,0 +1,4 @@ +{ + "Version": 13, + "Characters": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SOD.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SOD.cdogscpn/missions.json new file mode 100644 index 00000000..61f8fc93 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/SOD.cdogscpn/missions.json @@ -0,0 +1,3 @@ +{ + "Missions": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/WL1.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/WL1.cdogscpn/campaign.json new file mode 100644 index 00000000..731279f8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/WL1.cdogscpn/campaign.json @@ -0,0 +1,17 @@ +{ + "Version": 16, + "Title": "Wolfenstein 2D (episode 1)", + "Author": "id Software", + "Description": "", + "Ammo": true, + "WeaponPersist": true, + "SkipWeaponMenu": true, + "RandomPickups": false, + "DoorOpenTicks": 210, + "Lives": 1, + "MaxLives": 9, + "PlayerHP": 0, + "PlayerMaxHP": 0, + "PlayerExcessHP": 0, + "Missions": 0 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/WL1.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/WL1.cdogscpn/characters.json new file mode 100644 index 00000000..af9e4154 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/WL1.cdogscpn/characters.json @@ -0,0 +1,4 @@ +{ + "Version": 13, + "Characters": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/WL1.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/WL1.cdogscpn/missions.json new file mode 100644 index 00000000..61f8fc93 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/WL1.cdogscpn/missions.json @@ -0,0 +1,3 @@ +{ + "Missions": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/WL6.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/WL6.cdogscpn/campaign.json new file mode 100644 index 00000000..1f21e231 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/WL6.cdogscpn/campaign.json @@ -0,0 +1,17 @@ +{ + "Version": 16, + "Title": "Wolfenstein 2D", + "Author": "id Software", + "Description": "", + "Ammo": true, + "WeaponPersist": true, + "SkipWeaponMenu": true, + "RandomPickups": false, + "DoorOpenTicks": 210, + "Lives": 1, + "MaxLives": 9, + "PlayerHP": 0, + "PlayerMaxHP": 0, + "PlayerExcessHP": 0, + "Missions": 0 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/WL6.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/WL6.cdogscpn/characters.json new file mode 100644 index 00000000..af9e4154 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/WL6.cdogscpn/characters.json @@ -0,0 +1,4 @@ +{ + "Version": 13, + "Characters": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/WL6.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/WL6.cdogscpn/missions.json new file mode 100644 index 00000000..61f8fc93 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/WL6.cdogscpn/missions.json @@ -0,0 +1,3 @@ +{ + "Missions": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/ammo.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/ammo.json new file mode 100644 index 00000000..8a06305b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/ammo.json @@ -0,0 +1,15 @@ +{ + "Version": 2, + "Ammo": [ + { + "Name": "Ammo", + "Pic": { + "Type": "Normal", + "Pic": "ammo_clip" + }, + "Sound": "ammo_pickup", + "Amount": 4, + "Max": 99 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/bullets.json new file mode 100644 index 00000000..7525ff81 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/bullets.json @@ -0,0 +1,223 @@ +{ + "Version": 5, + "Bullets": [ + { + "Name": "knife", + "Power": 8, + "Hit": { + "Flesh": { + "Sound": "hits/knife_flesh" + } + }, + "Special": { + "Effect": "Petrify", + "Ticks": 30 + } + }, + { + "Name": "bullet", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail", + "Width": 1.0 + }, + "OutOfRangeSpark": "spark", + "WallMark": "bullet_hole", + "Hit": { + "Flesh": {} + }, + "Speed": 35000, + "Range": 1, + "Power": 21, + "Mass": 0.1, + "Special": { + "Effect": "Petrify", + "Ticks": 30 + } + }, + { + "Name": "bullet_enemy", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail", + "Width": 1.0 + }, + "OutOfRangeSpark": "spark", + "WallMark": "bullet_hole", + "Hit": { + "Flesh": {} + }, + "Speed": 35000, + "Range": 1, + "Power": 16, + "Mass": 0.1 + }, + { + "Name": "bullet_boss", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail", + "Width": 1.5 + }, + "OutOfRangeSpark": "spark", + "WallMark": "bullet_hole", + "Hit": { + "Flesh": {} + }, + "Speed": 35000, + "Range": 1, + "Power": 24, + "Mass": 0.1 + }, + { + "Name": "bullet_quad", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail", + "Width": 1.25 + }, + "OutOfRangeSpark": "spark", + "WallMark": "bullet_hole", + "Hit": { + "Flesh": {} + }, + "Speed": 35000, + "Range": 1, + "Power": 12, + "Mass": 0.1 + }, + { + "Name": "syringe", + "Pic": { + "Type": "Directional", + "Sprites": "syringe" + }, + "ShadowSize": [2, 2], + "Hit": { + "Flesh": { + "Sound": "hits/knife_flesh" + }, + "Wall": { + "Sound": "glass_break" + } + }, + "Speed": 800, + "Range": 70, + "Power": 20, + "Mass": 1, + "Size": [4, 4], + "Spark": "", + "Special": { + "Effect": "Poison", + "Ticks": 15 + } + }, + { + "Name": "rocket", + "Pic": { + "Type": "Directional", + "Sprites": "rocket" + }, + "Trail": { + "Particle": "smoke_trail_small", + "Width": 0, + "TicksPerEmit": 4 + }, + "ShadowSize": [2, 2], + "Hit": { + "Flesh": { + "Sound": "hits/rocket" + }, + "Wall": { + "Sound": "hits/rocket" + } + }, + "Speed": 800, + "Range": 70, + "Power": 45, + "Mass": 15.0, + "Size": [4, 4], + "Spark": "boom" + }, + { + "Name": "dog_bite", + "Power": 11, + "Mass": 1.0, + "Hit": { + "Flesh": { + "Sound": "hits/dog_growl" + } + } + }, + { + "Name": "ghost_drain", + "Power": 3, + "Mass": 0, + "Hit": { + "Flesh": { + "Sound": "hits/gas" + } + } + }, + { + "Name": "fireball", + "Pic": { + "Type": "Animated", + "Sprites": "fireball_small", + "TicksPerFrame": 4 + }, + "Speed": 350, + "Range": 200, + "Power": 15, + "Mass": 18.0, + "Size": [3, 3], + "Special": { + "Effect": "Flame" + }, + "Hit": { + "Flesh": { + "Sound": "hits/fire" + }, + "Wall": { + "Sound": "hits/fire" + } + }, + "Spark": "fireball_hit" + }, + { + "Name": "energy_ball", + "Pic": { + "Type": "Animated", + "Sprites": "fireball_green", + "TicksPerFrame": 4 + }, + "Speed": 625, + "Range": 200, + "Power": 46, + "Mass": 40.0, + "Size": [3, 3], + "Special": "Flame", + "Spark": "fireball_green_hit", + "Hit": { + "Flesh": { + "Sound": "hits/fire" + }, + "Wall": { + "Sound": "hits/fire" + } + } + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/campaign.json new file mode 100644 index 00000000..78e60baf --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/campaign.json @@ -0,0 +1,16 @@ +{ + "Version": 16, + "Title": "", + "Author": "id Software", + "Description": "", + "Ammo": true, + "SkipWeaponMenu": true, + "RandomPickups": false, + "DoorOpenTicks": 210, + "Lives": 1, + "MaxLives": 9, + "PlayerHP": 0, + "PlayerMaxHP": 0, + "PlayerExcessHP": 0, + "Missions": 0 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/character_classes.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/character_classes.json new file mode 100644 index 00000000..8763d1b6 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/character_classes.json @@ -0,0 +1,198 @@ +{ + "Version": 2, + "Characters": [ + { + "Name": "Guard", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "soldier", + "Sounds": "guard", + "Corpse": "dead_guard" + }, + { + "Name": "Killer Dog", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/dog" + }, + "Body": "dog", + "Sounds": "dog", + "Footsteps": "dog" + }, + { + "Name": "SS", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "soldier", + "Sounds": "ss" + }, + { + "Name": "Officer", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "soldier", + "Sounds": "officer" + }, + { + "Name": "Mutant", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/cyborg" + }, + "Body": "mutant", + "Sounds": "mutant", + "BloodColor": "ff00ff" + }, + { + "Name": "Hans Grosse", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big", + "Sounds": "hans" + }, + { + "Name": "Dr Schabbs", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big", + "Sounds": "schabbs" + }, + { + "Name": "Fake Hitler", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "wizard", + "Sounds": "fake_hitler", + "BloodColor": "000000" + }, + { + "Name": "Mecha Hitler", + "Vehicle": true, + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "mech", + "DeathSprites": "explosion", + "Sounds": "mecha_hitler", + "BloodColor": "00ffff", + "Footsteps": "mech", + "FootstepsDistancePlus": 0 + }, + { + "Name": "Hitler", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "soldier", + "Sounds": "hitler" + }, + { + "Name": "Otto Giftmacher", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big_soldier", + "Sounds": "otto" + }, + { + "Name": "Gretel Grosse", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big", + "Sounds": "gretel" + }, + { + "Name": "General Fettgesicht", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big_soldier", + "Sounds": "fettgesicht" + }, + { + "Name": "Pacman Ghost", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "none" + }, + { + "Name": "Trans Grosse", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big", + "Sounds": "trans" + }, + { + "Name": "Barnacle Wilhelm", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "big", + "Sounds": "bill" + }, + { + "Name": "Ubermutant", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/cyborg" + }, + "Body": "big_mutant", + "Sounds": "ubermutant", + "BloodColor": "ff00ff" + }, + { + "Name": "Death Knight", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "mech", + "Sounds": "knight" + }, + { + "Name": "Ghost", + "HeadPics": { + "Type": "Directional", + "Sprites": "" + }, + "Body": "none", + "DeathSprites": "", + "Sounds": "ghost", + "BloodColor": "999999", + "Corpse": "ghost_corpse" + }, + { + "Name": "Angel of Death", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/madbugeye" + }, + "Body": "angel", + "Sounds": "angel", + "BloodColor": "ffff00" + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/characters.json new file mode 100644 index 00000000..c84a2e84 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/characters.json @@ -0,0 +1,440 @@ +{ + "Version": 13, + "Characters": [{ + "Class": "Jones", + "PlayerTemplateName": "B.J.Blazkowicz", + "HairType": "flattop", + "Skin": "ffb26aff", + "Arms": "878787ff", + "Body": "918f8fff", + "Legs": "878787ff", + "Hair": "fc7e04ff", + "Feet": "1e1e1eff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }, + { + "Class": "Guard", + "HairType": "combat_helmet", + "Skin": "ff9e40ff", + "Arms": "db9642ff", + "Body": "de9b4bff", + "Legs": "e2964dff", + "Hair": "9a9a9aff", + "Feet": "353787ff", + "speed": 193, + "Gun": "Guard Pistol", + "maxHealth": 25, + "flags": 128, + "probabilityToMove": 52, + "probabilityToTrack": 42, + "probabilityToShoot": 13, + "actionDelay": 15 + }, + { + "Class": "Killer Dog", + "Skin": "d9822dff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "565555ff", + "Feet": "404040ff", + "speed": 386, + "Gun": "Dog Bite", + "maxHealth": 1, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 68, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "SS", + "HairType": "beret", + "Skin": "ffa83bff", + "Arms": "0b2effff", + "Body": "041af5ff", + "Legs": "0c06fcff", + "Hair": "181effff", + "Feet": "404040ff", + "speed": 258, + "Gun": "SS Machine Gun", + "maxHealth": 100, + "flags": 128, + "probabilityToMove": 50, + "probabilityToTrack": 41, + "probabilityToShoot": 12, + "actionDelay": 15 + }, + { + "Class": "Mutant", + "HairType": "flattop", + "Skin": "e9e9e9ff", + "Arms": "093f00ff", + "Body": "003f06ff", + "Legs": "003c08ff", + "Hair": "000000ff", + "Feet": "404040ff", + "speed": 194, + "Gun": "Guard Pistol", + "maxHealth": 55, + "flags": 128, + "probabilityToMove": 50, + "probabilityToTrack": 42, + "probabilityToShoot": 12, + "actionDelay": 5 + }, + { + "Class": "Officer", + "HairType": "peak_cap", + "Skin": "ffa83bff", + "Arms": "ecececff", + "Body": "f8f8ffff", + "Legs": "fcfcfcff", + "Hair": "ff1709ff", + "Feet": "404040ff", + "speed": 330, + "Gun": "Guard Pistol", + "maxHealth": 50, + "flags": 128, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 12, + "actionDelay": 15 + }, + { + "Class": "Pacman Ghost", + "HairType": "pacman_ghost", + "Skin": "00ff00ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "ad0000ff", + "Feet": "404040ff", + "speed": 130, + "Gun": "Ghost Drain", + "maxHealth": 40, + "flags": 34087936, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Pacman Ghost", + "HairType": "pacman_ghost", + "Skin": "00ff00ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "fca600ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Ghost Drain", + "maxHealth": 40, + "flags": 34087936, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Pacman Ghost", + "HairType": "pacman_ghost", + "Skin": "00ff00ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "4147fcff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Ghost Drain", + "maxHealth": 40, + "flags": 34087936, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Pacman Ghost", + "HairType": "pacman_ghost", + "Skin": "00ff00ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "ff6c84ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Ghost Drain", + "maxHealth": 40, + "flags": 34087936, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Hans Grosse", + "HairType": "flattop", + "Skin": "ffbf73ff", + "Arms": "0c08f0ff", + "Body": "0016ffff", + "Legs": "0820fcff", + "Hair": "fcfa0aff", + "Feet": "0200f7ff", + "speed": 192, + "Gun": "Dual Chain Gun", + "maxHealth": 1000, + "flags": 29824, + "Drop": "keys/plain/yellow", + "probabilityToMove": 30, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Dr Schabbs", + "HairType": "goggles", + "Skin": "ffc785ff", + "Arms": "f7f5f5ff", + "Body": "fffafaff", + "Legs": "fffcfcff", + "Hair": "fcfcfcff", + "Feet": "fffcfcff", + "speed": 192, + "Gun": "Syringes", + "maxHealth": 1250, + "flags": 29824, + "probabilityToMove": 40, + "probabilityToTrack": 30, + "probabilityToShoot": 52, + "actionDelay": 40 + }, + { + "Class": "Fake Hitler", + "HairType": "hitler", + "Skin": "ffb871ff", + "Arms": "ffe841ff", + "Body": "404040ff", + "Legs": "850000ff", + "Hair": "000000ff", + "Feet": "404040ff", + "speed": 192, + "Gun": "Flamethrower", + "maxHealth": 350, + "flags": 9344, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 12, + "actionDelay": 15 + }, + { + "Class": "Mecha Hitler", + "HairType": "hitler", + "Skin": "ffb871ff", + "Arms": "830000ff", + "Body": "007f83ff", + "Legs": "007a7eff", + "Hair": "000000ff", + "Feet": "006a74ff", + "speed": 192, + "Gun": "Quad Chain Gun", + "maxHealth": 1000, + "flags": 25728, + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Hitler", + "HairType": "hitler", + "Skin": "ffb871ff", + "Arms": "d99b3cff", + "Body": "d9a644ff", + "Legs": "d29a2eff", + "Hair": "000000ff", + "Feet": "020100ff", + "speed": 327, + "Gun": "Dual Chain Gun", + "maxHealth": 750, + "flags": 25728, + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 80, + "actionDelay": 40 + }, + { + "Class": "Otto Giftmacher", + "HairType": "peak_cap", + "Skin": "ffbb63ff", + "Arms": "ecececff", + "Body": "f8f8ffff", + "Legs": "fcfcfcff", + "Hair": "ffededff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Rocket Launcher", + "maxHealth": 1000, + "flags": 25728, + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Gretel Grosse", + "HairType": "pigtails", + "Skin": "ffbf73ff", + "Arms": "f00d00ff", + "Body": "ff0000ff", + "Legs": "fc0808ff", + "Hair": "fcfa0aff", + "Feet": "f70d00ff", + "speed": 194, + "Gun": "Dual Chain Gun", + "maxHealth": 1000, + "flags": 25728, + "Drop": "keys/plain/yellow", + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "General Fettgesicht", + "HairType": "peak_cap", + "Skin": "ffbb63ff", + "Arms": "ffbf5fff", + "Body": "ffc26aff", + "Legs": "ffb965ff", + "Hair": "ffd073ff", + "Feet": "404040ff", + "speed": 192, + "Gun": "Chaingun and Rocket Launcher", + "maxHealth": 1000, + "flags": 25728, + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Trans Grosse", + "HairType": "flattop", + "Skin": "ffbf73ff", + "Arms": "368700ff", + "Body": "00850cff", + "Legs": "028707ff", + "Hair": "c47300ff", + "Feet": "027b0cff", + "speed": 192, + "Gun": "Dual Chain Gun", + "maxHealth": 1000, + "flags": 25728, + "Drop": "keys/plain/yellow", + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Barnacle Wilhelm", + "HairType": "donut", + "Skin": "ffbf73ff", + "Arms": "ffc368ff", + "Body": "2c53ffff", + "Legs": "04ff0bff", + "Hair": "fcf678ff", + "Feet": "00187bff", + "speed": 258, + "Gun": "Chaingun and Rocket Launcher", + "maxHealth": 1100, + "flags": 25728, + "Drop": "keys/plain/yellow", + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Ubermutant", + "HairType": "flattop", + "Skin": "e9e9e9ff", + "Arms": "093f00ff", + "Body": "003f06ff", + "Legs": "003c08ff", + "Hair": "000000ff", + "Feet": "404040ff", + "speed": 386, + "Gun": "boss_chaingun1", + "maxHealth": 1200, + "flags": 25728, + "Drop": "keys/plain/yellow", + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Death Knight", + "HairType": "helmet", + "Skin": "ffbf73ff", + "Arms": "bf2424ff", + "Body": "4f4f4fff", + "Legs": "3e3f3eff", + "Hair": "4f4f4fff", + "Feet": "494a4aff", + "speed": 256, + "Gun": "Dual Chaingun and Rocket Launcher", + "maxHealth": 1400, + "flags": 25728, + "Drop": "keys/plain/yellow", + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }, + { + "Class": "Ghost", + "HairType": "ghost", + "Skin": "00ff00ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "ad0000ff", + "Feet": "404040ff", + "speed": 102, + "Gun": "Ghost Drain", + "maxHealth": 12, + "flags": 9344, + "probabilityToMove": 90, + "probabilityToTrack": 90, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Angel of Death", + "Skin": "ff0000ff", + "Arms": "ff0000ff", + "Body": "e90a0aff", + "Legs": "f70000ff", + "Hair": "000000ff", + "Feet": "ee0000ff", + "speed": 192, + "Gun": "Energy Ball", + "maxHealth": 1600, + "flags": 25728, + "probabilityToMove": 40, + "probabilityToTrack": 20, + "probabilityToShoot": 42, + "actionDelay": 40 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/ammo_box.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/ammo_box.png new file mode 100644 index 00000000..93e4b631 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/ammo_box.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/ammo_box.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/ammo_box.txt new file mode 100644 index 00000000..b935fc5b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/ammo_box.txt @@ -0,0 +1,4 @@ +140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/ammo_clip.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/ammo_clip.png new file mode 100644 index 00000000..780ec6e3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/ammo_clip.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/basket.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/basket.png new file mode 100644 index 00000000..4e8a7a19 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/basket.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/basket.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/basket.txt new file mode 100644 index 00000000..16fc73fa --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/basket.txt @@ -0,0 +1,4 @@ +Adapted from [16x16] Indoor RPG Tileset by armisius +https://opengameart.org/content/16x16-indoor-rpg-tileset + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/brick_color.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/brick_color.png new file mode 100644 index 00000000..7d880d8a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/brick_color.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/brick_color.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/brick_color.txt new file mode 100644 index 00000000..76b2e9f3 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/brick_color.txt @@ -0,0 +1,4 @@ +Derived from Dawnblocker Ortho +By Buch +http://opengameart.org/content/dawnblocker-ortho +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/brick_eagle.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/brick_eagle.png new file mode 100644 index 00000000..7c8acf34 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/brick_eagle.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chalice.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chalice.png new file mode 100644 index 00000000..d4680038 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chalice.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chalice.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chalice.txt new file mode 100644 index 00000000..91382e35 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chalice.txt @@ -0,0 +1,4 @@ +Adapted from Gold treasure icons 16x16 by Bonsaiheldin +https://opengameart.org/content/gold-treasure-icons-16x16 + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chandelier.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chandelier.png new file mode 100644 index 00000000..099dbc94 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chandelier.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/data.json new file mode 100644 index 00000000..f6197593 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/data.json @@ -0,0 +1,45 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "head", "body"], + ["gun_r", "gun_l", "legs", "head", "body"], + ["gun_l", "legs", "body", "head", "gun_r"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "body", "head", "gun_l"], + ["gun_r", "gun_l", "legs", "head", "body"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 10]], + "idle": [[0, 10]], + "run": [ + [0, 11], [0, 10], [0, 9], [0, 10], [0, 11], [0, 10], [0, 9], [0, 10] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 6], [0, 5], [0, 6], [0, 7], [0, 6], [0, 5], [0, 6]] + } + }, + "Dir": { + "Head": [ + [0, -2], [2, -1], [4, 0], [2, 1], [0, 2], [-2, 1], [-4, 0], [-2, -1] + ], + "Gun": [ + [7, -2], [6, 0], [4, 2], [-1, 4], [-6, 2], [-6, -1], [-3, -3], [0, -3] + ] + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/legs_idle_24x24.png new file mode 100644 index 00000000..aca76ad5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/legs_run_24x24.png new file mode 100644 index 00000000..635ca94f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/src.blend new file mode 100644 index 00000000..bdf0fb46 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/src.txt new file mode 100644 index 00000000..6d424eab --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/src.txt @@ -0,0 +1,4 @@ +Adapted from Sprite Base Model +by Wind astella +http://opengameart.org/content/sprite-base-model +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/upper_idle_24x24.png new file mode 100644 index 00000000..222b5b0d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/upper_idle_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/upper_idle_dualgun_24x24.png new file mode 100644 index 00000000..f9f41f1e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/upper_idle_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..f3c1305b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/upper_run_24x24.png new file mode 100644 index 00000000..a03e6234 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/upper_run_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/upper_run_dualgun_24x24.png new file mode 100644 index 00000000..498aebe7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/upper_run_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/upper_run_handgun_24x24.png new file mode 100644 index 00000000..7f08bf3b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/angel/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/data.json new file mode 100644 index 00000000..f68b9391 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/data.json @@ -0,0 +1,37 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "gun_l", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 16]], + "idle": [[0, 16]], + "run": [ + [0, 17], [0, 16], [0, 15], [0, 16], [0, 17], [0, 16], [0, 15], [0, 16] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 6], [0, 5], [0, 6], [0, 7], [0, 6], [0, 5], [0, 6]] + } + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/legs_idle_24x24.png new file mode 100644 index 00000000..bcbd4f0c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/legs_run_24x24.png new file mode 100644 index 00000000..04edca86 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/src.blend new file mode 100644 index 00000000..88d5c46f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/src.txt new file mode 100644 index 00000000..6d424eab --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/src.txt @@ -0,0 +1,4 @@ +Adapted from Sprite Base Model +by Wind astella +http://opengameart.org/content/sprite-base-model +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_24x24.png new file mode 100644 index 00000000..1f14a638 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_dualgun_24x24.png new file mode 100644 index 00000000..e27a4bcf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..5f22913a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_24x24.png new file mode 100644 index 00000000..eda7ec8f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_dualgun_24x24.png new file mode 100644 index 00000000..54e29397 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_handgun_24x24.png new file mode 100644 index 00000000..399e9c6d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/big_mutant/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/data.json new file mode 100644 index 00000000..fe3a7805 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/data.json @@ -0,0 +1,37 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "gun_l", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 13]], + "idle": [[0, 13]], + "run": [ + [0, 14], [0, 13], [0, 12], [0, 13], [0, 14], [0, 13], [0, 12], [0, 13] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 6], [0, 5], [0, 6], [0, 7], [0, 6], [0, 5], [0, 6]] + } + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/legs_idle_24x24.png new file mode 100644 index 00000000..f60aefdd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/legs_run_24x24.png new file mode 100644 index 00000000..d9af3c0a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/src.blend new file mode 100644 index 00000000..99666321 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/src.txt new file mode 100644 index 00000000..6d424eab --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/src.txt @@ -0,0 +1,4 @@ +Adapted from Sprite Base Model +by Wind astella +http://opengameart.org/content/sprite-base-model +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/upper_idle_24x24.png new file mode 100644 index 00000000..869bf802 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..061163be Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/upper_run_24x24.png new file mode 100644 index 00000000..11983fe3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/upper_run_handgun_24x24.png new file mode 100644 index 00000000..a273bad4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/mutant/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/data.json new file mode 100644 index 00000000..8a87ba0c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/data.json @@ -0,0 +1,37 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "gun_l", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 13]], + "idle": [[0, 13]], + "run": [ + [0, 13], [0, 13], [0, 13], [0, 13], [0, 13], [0, 13], [0, 13], [0, 13] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 6], [0, 5], [0, 6], [0, 7], [0, 6], [0, 5], [0, 6]] + } + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/legs_idle_24x24.png new file mode 100644 index 00000000..02aae5d0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/legs_run_24x24.png new file mode 100644 index 00000000..95b46bdf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/src.blend new file mode 100644 index 00000000..4df3809e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/src.txt new file mode 100644 index 00000000..6d424eab --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/src.txt @@ -0,0 +1,4 @@ +Adapted from Sprite Base Model +by Wind astella +http://opengameart.org/content/sprite-base-model +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/upper_idle_24x24.png new file mode 100644 index 00000000..5fe6d0a3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/upper_idle_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/upper_idle_dualgun_24x24.png new file mode 100644 index 00000000..0e1a5d7d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/upper_idle_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..c8937073 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/upper_run_24x24.png new file mode 100644 index 00000000..73ebb5ee Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/upper_run_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/upper_run_dualgun_24x24.png new file mode 100644 index 00000000..8b109dfc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/upper_run_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/upper_run_handgun_24x24.png new file mode 100644 index 00000000..92eeb306 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/bodies/wizard/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/guns/smg_30x22.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/guns/smg_30x22.png new file mode 100644 index 00000000..52eea50e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/guns/smg_30x22.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/hairs/ghost.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/hairs/ghost.txt new file mode 100644 index 00000000..039c357b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/hairs/ghost.txt @@ -0,0 +1,3 @@ +Adapted from Grue by Jesse McCarthy +https://opengameart.org/content/grue +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/hairs/ghost_17x30.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/hairs/ghost_17x30.png new file mode 100644 index 00000000..86760ca4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/hairs/ghost_17x30.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/hairs/hitler_10x10.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/hairs/hitler_10x10.png new file mode 100644 index 00000000..708b359f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/hairs/hitler_10x10.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/hairs/pacman_ghost.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/hairs/pacman_ghost.txt new file mode 100644 index 00000000..c04e399a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/hairs/pacman_ghost.txt @@ -0,0 +1,3 @@ +Adapted from 20x20 Tileset by drakzlin +https://opengameart.org/content/20x20-tileset +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/hairs/pacman_ghost_18x30.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/hairs/pacman_ghost_18x30.png new file mode 100644 index 00000000..7777f655 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chars/hairs/pacman_ghost_18x30.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chest.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chest.png new file mode 100644 index 00000000..39558fcb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chest.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chest.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chest.txt new file mode 100644 index 00000000..91382e35 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/chest.txt @@ -0,0 +1,4 @@ +Adapted from Gold treasure icons 16x16 by Bonsaiheldin +https://opengameart.org/content/gold-treasure-icons-16x16 + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/coat_of_arms_flag.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/coat_of_arms_flag.png new file mode 100644 index 00000000..cf76b7ce Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/coat_of_arms_flag.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/cobble_moss.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/cobble_moss.png new file mode 100644 index 00000000..f1d19b17 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/cobble_moss.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/cowskull_pillar.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/cowskull_pillar.png new file mode 100644 index 00000000..c801f9cd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/cowskull_pillar.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/cross.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/cross.png new file mode 100644 index 00000000..0b4e4f29 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/cross.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/crown.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/crown.png new file mode 100644 index 00000000..c5eaffdc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/crown.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/crown.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/crown.txt new file mode 100644 index 00000000..91382e35 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/crown.txt @@ -0,0 +1,4 @@ +Adapted from Gold treasure icons 16x16 by Bonsaiheldin +https://opengameart.org/content/gold-treasure-icons-16x16 + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/dead_guard.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/dead_guard.png new file mode 100644 index 00000000..aada6392 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/dead_guard.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/dogfood.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/dogfood.png new file mode 100644 index 00000000..f6bc09af Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/dogfood.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/dogfood.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/dogfood.txt new file mode 100644 index 00000000..f240e6c0 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/dogfood.txt @@ -0,0 +1,4 @@ +Adapted from RPG item set by Jetrel +https://opengameart.org/node/4531 + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/eagle_portrait.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/eagle_portrait.png new file mode 100644 index 00000000..b5b1a405 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/eagle_portrait.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/elevator_entrance.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/elevator_entrance.png new file mode 100644 index 00000000..29a907c3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/elevator_entrance.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/elevator_interior.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/elevator_interior.png new file mode 100644 index 00000000..7bb7590e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/elevator_interior.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/flag.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/flag.png new file mode 100644 index 00000000..fdf6c9d8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/flag.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/flag.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/flag.txt new file mode 100644 index 00000000..25aca62e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/flag.txt @@ -0,0 +1,5 @@ +Adapted from Kyrodian Legends Overworld Props +By Midi +https://web.archive.org/web/20150319200042/http://opengameart.org/content/kyrodian-legends-overworld-props + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/ghost_corpse.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/ghost_corpse.png new file mode 100644 index 00000000..4eb679cd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/ghost_corpse.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/gibbet.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/gibbet.png new file mode 100644 index 00000000..0d70f6b6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/gibbet.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/gibbet.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/gibbet.txt new file mode 100644 index 00000000..63908a1d --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/gibbet.txt @@ -0,0 +1,4 @@ +Adapted from Misc. Dark Fantasy Scenery Sprites by ETTiNGRiNDER +https://opengameart.org/content/misc-dark-fantasy-scenery-sprites + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/gibbet_bloody.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/gibbet_bloody.png new file mode 100644 index 00000000..c3faa54a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/gibbet_bloody.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/gibbet_skeleton.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/gibbet_skeleton.png new file mode 100644 index 00000000..120a476d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/gibbet_skeleton.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/gibbet_skulls.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/gibbet_skulls.png new file mode 100644 index 00000000..a0706dfd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/gibbet_skulls.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/grass.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/grass.png new file mode 100644 index 00000000..d8a36817 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/grass.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/grass.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/grass.txt new file mode 100644 index 00000000..f5e9d072 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/grass.txt @@ -0,0 +1,4 @@ +Adapted from Flowers by SpiderDave +https://opengameart.org/content/flowers + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/hanging_skeleton.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/hanging_skeleton.png new file mode 100644 index 00000000..601020f8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/hanging_skeleton.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/heer_flag.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/heer_flag.png new file mode 100644 index 00000000..ff6295f4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/heer_flag.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/heer_flag.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/heer_flag.txt new file mode 100644 index 00000000..7d574586 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/heer_flag.txt @@ -0,0 +1,4 @@ +Adapted from Dungeon Tileset +By Calciumtrice +https://opengameart.org/content/dungeon-tileset-1 +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/hitler_glass.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/hitler_glass.png new file mode 100644 index 00000000..6af81742 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/hitler_glass.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/hitler_portrait.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/hitler_portrait.png new file mode 100644 index 00000000..c7e501d9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/hitler_portrait.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/hitler_poster.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/hitler_poster.png new file mode 100644 index 00000000..09168ddf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/hitler_poster.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/iron_cross.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/iron_cross.png new file mode 100644 index 00000000..53de337d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/iron_cross.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/knives.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/knives.png new file mode 100644 index 00000000..9101aeab Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/knives.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/knives.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/knives.txt new file mode 100644 index 00000000..45b47f87 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/knives.txt @@ -0,0 +1,4 @@ +Adapted from Kitchen Assets for #LetsCookJam +By Bluerobin2 +https://opengameart.org/content/kitchen-assets-for-letscookjam +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/meal.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/meal.png new file mode 100644 index 00000000..088f59cc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/meal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/meal.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/meal.txt new file mode 100644 index 00000000..89223bff --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/meal.txt @@ -0,0 +1,4 @@ +Adapted from [LPC] Meals +By bluecarrot16 +https://opengameart.org/content/lpc-meals +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/panel.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/panel.png new file mode 100644 index 00000000..74dec297 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/panel.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/pillar.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/pillar.png new file mode 100644 index 00000000..6da048aa Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/pillar.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/pillar.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/pillar.txt new file mode 100644 index 00000000..7aec54bc --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/pillar.txt @@ -0,0 +1,4 @@ +Adapted from RPG Indoor Tileset: Expansion 1 by Redshrike +https://opengameart.org/content/rpg-indoor-tileset-expansion-1 + +http://opengameart.org/content/oga-by-30-faq \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/pillar_brown.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/pillar_brown.png new file mode 100644 index 00000000..4e563f39 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/pillar_brown.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/pool_blood.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/pool_blood.png new file mode 100644 index 00000000..92269385 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/pool_blood.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/pots.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/pots.png new file mode 100644 index 00000000..6ef74a88 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/pots.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/pots.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/pots.txt new file mode 100644 index 00000000..adddea06 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/pots.txt @@ -0,0 +1,4 @@ +Adapted from [LPC] House Insides by Lanea Zimmerman (AKA Sharm) +https://opengameart.org/content/lpc-house-insides + +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/shadow.png new file mode 100644 index 00000000..ea400727 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/sink.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/sink.png new file mode 100644 index 00000000..07b69e28 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/sink.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/sink.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/sink.txt new file mode 100644 index 00000000..adddea06 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/sink.txt @@ -0,0 +1,4 @@ +Adapted from [LPC] House Insides by Lanea Zimmerman (AKA Sharm) +https://opengameart.org/content/lpc-house-insides + +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/skull_blue.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/skull_blue.png new file mode 100644 index 00000000..629933dc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/skull_blue.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/skull_blue.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/skull_blue.txt new file mode 100644 index 00000000..fbd3f3f2 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/skull_blue.txt @@ -0,0 +1,4 @@ +Adapted from Misc. Dark Fantasy Scenery Sprites by Gwes +http://opengameart.org/content/misc-dark-fantasy-scenery-sprites + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/skull_pillar.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/skull_pillar.png new file mode 100644 index 00000000..38a5e889 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/skull_pillar.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/skull_pillar.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/skull_pillar.txt new file mode 100644 index 00000000..75fc0395 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/skull_pillar.txt @@ -0,0 +1,4 @@ +Adapted from Dungeon Crawl 32x32 tiles by Chris Hamons (maintainer) +https://opengameart.org/content/dungeon-crawl-32x32-tiles + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/smg.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/smg.png new file mode 100644 index 00000000..7a0294fe Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/smg.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/spear.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/spear.png new file mode 100644 index 00000000..1880d1e4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/spear.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/spear.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/spear.txt new file mode 100644 index 00000000..b89fe685 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/spear.txt @@ -0,0 +1,4 @@ +Adapted from Behrs 2,500 Pixel Spears 32x32 Archive +By Behrtron +https://opengameart.org/content/behrs-2500-pixel-spears-32x32-archive +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/spears.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/spears.png new file mode 100644 index 00000000..207fd9ac Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/spears.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/spotlight.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/spotlight.png new file mode 100644 index 00000000..2aeac1af Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/spotlight.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/stone_color.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/stone_color.png new file mode 100644 index 00000000..6e8ee286 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/stone_color.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/stone_color.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/stone_color.txt new file mode 100644 index 00000000..8bb03b95 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/stone_color.txt @@ -0,0 +1,4 @@ +Derived from Pixel Blocks +by Zush Design +https://opengameart.org/content/pixel-blocks +https://creativecommons.org/licenses/by/4.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/stove.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/stove.png new file mode 100644 index 00000000..4a77fd76 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/stove.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/stove.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/stove.txt new file mode 100644 index 00000000..adddea06 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/stove.txt @@ -0,0 +1,4 @@ +Adapted from [LPC] House Insides by Lanea Zimmerman (AKA Sharm) +https://opengameart.org/content/lpc-house-insides + +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/suit_of_armor.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/suit_of_armor.png new file mode 100644 index 00000000..0efcb7c8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/suit_of_armor.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/suit_of_armor.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/suit_of_armor.txt new file mode 100644 index 00000000..7aec54bc --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/suit_of_armor.txt @@ -0,0 +1,4 @@ +Adapted from RPG Indoor Tileset: Expansion 1 by Redshrike +https://opengameart.org/content/rpg-indoor-tileset-expansion-1 + +http://opengameart.org/content/oga-by-30-faq \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/swastika_blue.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/swastika_blue.png new file mode 100644 index 00000000..2956b160 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/swastika_blue.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/swastika_wreath.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/swastika_wreath.png new file mode 100644 index 00000000..4d41be7c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/swastika_wreath.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/syringe_9x9.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/syringe_9x9.png new file mode 100644 index 00000000..8fb8f824 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/syringe_9x9.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/truck.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/truck.png new file mode 100644 index 00000000..c9a49191 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/truck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/truck.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/truck.txt new file mode 100644 index 00000000..71fa2c68 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/truck.txt @@ -0,0 +1,4 @@ +Adapted from Post-apocalyptic 16x16 tileset [update1] +By CobraLad +https://opengameart.org/content/post-apocalyptic-16x16-tileset-update1 +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/urn.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/urn.png new file mode 100644 index 00000000..cc62b5c7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/urn.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/urn.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/urn.txt new file mode 100644 index 00000000..4c24b06b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/urn.txt @@ -0,0 +1,4 @@ +Derived from Tiny 16: Basic +by Sharm +https://opengameart.org/content/tiny-16-basic +http://opengameart.org/content/oga-by-30-faq \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/generate.ps1 b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/generate.ps1 new file mode 100644 index 00000000..0561688c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/generate.ps1 @@ -0,0 +1,29 @@ +# Use this script to generate all the other versions of wall tiles, given a complete "o" tile +# Use "plasteel" as a template +param ( + [string]$name, + [int]$m = 1 +) +$w = 16 - $m +$h = 12 - $m +$h2 = 24 - $m +# NESW +Invoke-Expression ("magick $name/o.png -crop 16x{0}+0+0 -colorspace sRGB -gravity North -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/n.png" -f $h) +Invoke-Expression ("magick $name/o.png -crop 16x{0}+0+{1} -colorspace sRGB -gravity South -define distort:viewport=16x24-0-{1} -filter point -distort SRT 0 +repage $name/s.png" -f $h2,$m) +Invoke-Expression ("magick $name/o.png -crop {0}x24+{1}+0 -colorspace sRGB -gravity East -define distort:viewport=16x24-{1}-0 -filter point -distort SRT 0 +repage $name/e.png" -f $w,$m) +Invoke-Expression ("magick $name/o.png -crop {0}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/w.png" -f $w) +# NW, NE, SW, SE +Invoke-Expression ("magick $name/n.png -crop {0}x12+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/nw.png" -f $w) +Invoke-Expression ("magick $name/n.png -crop {0}x12+{1}+0 -colorspace sRGB -gravity East -define distort:viewport=16x12-{1}-0 -filter point -distort SRT 0 +repage $name/ne.png" -f $w,$m) +Invoke-Expression ("magick $name/s.png -crop {0}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/sw.png" -f $w) +Invoke-Expression ("magick $name/s.png -crop {0}x24+{1}+0 -colorspace sRGB -gravity East -define distort:viewport=16x24-{1}-0 -filter point -distort SRT 0 +repage $name/se.png" -f $w,$m) +# NT, ET, ST, WT +Invoke-Expression ("magick $name/nw.png -crop {0}x12+{1}+0 -colorspace sRGB -gravity East -define distort:viewport=16x12-{1}-0 -filter point -distort SRT 0 +repage $name/nt.png" -f $w,$m) +Invoke-Expression ("magick $name/ne.png -crop 16x{1}+0+{2} -colorspace sRGB -gravity South -define distort:viewport=16x12-0-{2} -filter point -distort SRT 0 +repage $name/et.png" -f $w,$h,$m) +Invoke-Expression ("magick $name/se.png -crop {0}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/st.png" -f $w) +Invoke-Expression ("magick $name/sw.png -crop 16x{1}+0+0 -colorspace sRGB -gravity North -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/wt.png" -f $w,$h) +# VH +Invoke-Expression ("magick $name/n.png -crop 16x{1}+0+{2} -colorspace sRGB -gravity South -define distort:viewport=16x12-0-{2} -filter point -distort SRT 0 +repage $name/v.png" -f $w,$h,$m) +Invoke-Expression ("magick $name/e.png -crop {0}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/h.png" -f $w) +# X +Invoke-Expression ("magick $name/et.png -crop {0}x12+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/x.png" -f $w) diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/e.png new file mode 100644 index 00000000..5eace4c9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/et.png new file mode 100644 index 00000000..f457fcab Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/h.png new file mode 100644 index 00000000..70c26261 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/n.png new file mode 100644 index 00000000..3f2dd7af Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/ne.png new file mode 100644 index 00000000..79c7ac2f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/nt.png new file mode 100644 index 00000000..01ac3394 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/nw.png new file mode 100644 index 00000000..24204e45 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/o.png new file mode 100644 index 00000000..0ea18d0f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/s.png new file mode 100644 index 00000000..a8489c01 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/se.png new file mode 100644 index 00000000..d9bc3897 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/st.png new file mode 100644 index 00000000..a9b4c1f7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/sw.png new file mode 100644 index 00000000..787058e6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/v.png new file mode 100644 index 00000000..42d8ed47 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/w.png new file mode 100644 index 00000000..d705bb0d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/wt.png new file mode 100644 index 00000000..b595d009 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/x.png new file mode 100644 index 00000000..a79c9b9f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/wall/landscape/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/well.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/well.png new file mode 100644 index 00000000..f8369e1f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/well.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/well.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/well.txt new file mode 100644 index 00000000..fb09194e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/well.txt @@ -0,0 +1,4 @@ +Roguelike Dungeon/World Tiles +by Joe Williamson (@JoeCreates) +https://opengameart.org/content/roguelike-dungeonworld-tiles +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/well_blood.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/well_blood.png new file mode 100644 index 00000000..fcab5e7e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/well_blood.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/well_water.png b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/well_water.png new file mode 100644 index 00000000..bf5bd501 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/graphics/well_water.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/guns.json new file mode 100644 index 00000000..5eeb6fb7 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/guns.json @@ -0,0 +1,234 @@ +{ + "Version": 3, + "Guns": [ + { + "Pic": "knife", + "Icon": "knife", + "Name": "Knife", + "Bullet": "knife", + "Cost": 0, + "Lock": 30, + "Sound": "", + "SwitchSound": "knife_switch", + "CanShoot": false, + "Auto": true + }, + { + "Pic": "pistol", + "Name": "Pistol", + "Icon": "pistol", + "Bullet": "bullet", + "Cost": 1, + "Lock": 30, + "Sound": "pistol", + "SwitchSound": "pistol_switch", + "Recoil": 0.1, + "Brass": "brass", + "Ammo": "Ammo" + }, + { + "Pic": "smg", + "Grips": 2, + "Name": "Machine Gun", + "Icon": "smg", + "Bullet": "bullet", + "Prerequisite": "Pistol", + "Cost": 1, + "Lock": 12, + "Sound": "machine_gun", + "SwitchSound": "machine_gun_switch", + "Recoil": 0.17, + "Brass": "brass", + "Ammo": "Ammo" + }, + { + "Pic": "chaingun", + "Name": "Chain Gun", + "Icon": "machine_gun", + "Bullet": "bullet", + "Cost": 1, + "Lock": 6, + "Sound": "chain_gun", + "SwitchSound": "chaingun_pickup", + "Recoil": 0.23, + "Brass": "brass", + "Ammo": "Ammo" + }, + { + "Pic": "pistol", + "Name": "Guard Pistol", + "Icon": "pistol", + "Bullet": "bullet_enemy", + "Cost": 1, + "Lock": 70, + "Sound": "pistol_guard", + "SwitchSound": "pistol_switch", + "Recoil": 0.3, + "Brass": "brass", + "Ammo": "Ammo", + "CanDrop": false + }, + { + "Pic": "smg", + "Grips": 2, + "Name": "SS Machine Gun", + "Icon": "assault_rifle", + "Bullet": "bullet_boss", + "Cost": 1, + "Lock": 70, + "Sound": "machine_gun_burst", + "Recoil": 0.3, + "Brass": "brass", + "Ammo": "Ammo", + "DropGun": "Machine Gun" + }, + { + "Pic": "chaingun", + "Name": "boss_chaingun1", + "Bullet": "bullet_boss", + "Lock": 70, + "Sound": "dual_chain_gun", + "Recoil": 0.3, + "Brass": "brass" + }, + { + "Name": "Dual Chain Gun", + "Icon": "machine_gun", + "CanDrop": false, + "Guns": ["boss_chaingun1", "boss_chaingun2"], + "Lock": 9 + }, + { + "Name": "Quad Chain Gun", + "Icon": "machine_gun", + "CanDrop": false, + "Guns": ["boss_double_chaingun1", "boss_double_chaingun2"], + "Lock": 9 + }, + { + "Pic": "", + "Name": "Dog Bite", + "Bullet": "dog_bite", + "Cost": 0, + "Lock": 80, + "Sound": "", + "CanShoot": false, + "CanDrop": false + }, + { + "Pic": "", + "Name": "Syringes", + "Bullet": "syringe", + "Cost": 7, + "Lock": 30, + "Sound": "syringe", + "SwitchSound": "molotov_pickup", + "CanDrop": false + }, + { + "Name": "Rocket Launcher", + "Pic": "rocket_blue", + "Icon": "launcher", + "Bullet": "rocket", + "Cost": 9, + "Lock": 40, + "Sound": "rocket", + "SwitchSound": "launcher_switch", + "MuzzleFlashParticle": "muzzle_flash_shotgun", + "CanDrop": false + }, + { + "Pic": "", + "Name": "Ghost Drain", + "Bullet": "ghost_drain", + "Cost": 0, + "Sound": "", + "SoundLockLength": 10, + "CanShoot": false, + "CanDrop": false + }, + { + "Name": "Flamethrower", + "Pic": "", + "Bullet": "fireball", + "Cost": 1, + "Lock": 30, + "Sound": "flamethrower", + "MuzzleFlashParticle": "", + "CanDrop": false + }, + { + "Name": "Chaingun and Rocket Launcher", + "Icon": "akimbo_pistols", + "Guns": ["Rocket Launcher", "boss_chaingun1"], + "CanDrop": false + }, + { + "Name": "Dual Chaingun and Rocket Launcher", + "Icon": "akimbo_pistols", + "Guns": ["dual_chaingun_rocket_launcher1", "dual_chaingun_rocket_launcher2"], + "CanDrop": false + }, + { + "Name": "Energy Ball", + "Pic": "", + "Bullet": "energy_ball", + "Cost": 5, + "Lock": 50, + "Sound": "flamethrower", + "MuzzleFlashParticle": "", + "CanDrop": false + } + ], + "PseudoGuns" : [ + { + "Pic": "chaingun", + "Name": "boss_chaingun2", + "Bullet": "bullet_boss", + "Lock": 70, + "Sound": "", + "Recoil": 0.3, + "Brass": "brass" + }, + { + "Pic": "quad_chaingun", + "Name": "boss_double_chaingun1", + "Bullet": "bullet_quad", + "Lock": 70, + "Sound": "dual_chain_gun", + "SpreadCount": 2, + "Recoil": 0.3, + "MuzzleHeight": 12, + "Brass": "brass" + }, + { + "Pic": "quad_chaingun", + "Name": "boss_double_chaingun2", + "Bullet": "bullet_quad", + "Lock": 70, + "Sound": "", + "SpreadCount": 2, + "Recoil": 0.3, + "MuzzleHeight": 12, + "Brass": "brass" + }, + { + "Pic": "chaingun", + "Name": "dual_chaingun_rocket_launcher1", + "Bullets": ["bullet_boss", "rocket"], + "Lock": 70, + "Sound": "knight_rocket", + "Recoil": 0.3, + "Brass": "brass" + }, + { + "Pic": "chaingun", + "Name": "dual_chaingun_rocket_launcher2", + "Bullets": ["bullet_boss", "rocket"], + "Lock": 70, + "Sound": "dual_chaingun", + "Recoil": 0.3, + "Brass": "brass" + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/map_objects.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/map_objects.json new file mode 100644 index 00000000..eb40952f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/map_objects.json @@ -0,0 +1,469 @@ +{ + "Version": 4, + "MapObjects": [ + { + "Name": "chandelier", + "Pic": { + "Type": "Normal", + "Pic": "chandelier" + }, + "Offset": [-8, -24], + "Health": 0, + "DrawAbove": true, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "hanging_skeleton", + "Pic": { + "Type": "Normal", + "Pic": "hanging_skeleton" + }, + "Offset": [-5, -26], + "Health": 40, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "pillar", + "Pic": { + "Type": "Normal", + "Pic": "pillar" + }, + "Health": 80, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "pillar_brown", + "Pic": { + "Type": "Normal", + "Pic": "pillar_brown" + }, + "Health": 80, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "sink", + "Pic": { + "Type": "Normal", + "Pic": "sink" + }, + "Size": [8, 6], + "Health": 50, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "skull_pillar", + "Pic": { + "Type": "Normal", + "Pic": "skull_pillar" + }, + "Size": [8, 6], + "Offset": [-8, -14], + "Health": 20, + "Flags": ["NoWalls"] + }, + { + "Name": "cowskull_pillar", + "Pic": { + "Type": "Normal", + "Pic": "cowskull_pillar" + }, + "Size": [8, 6], + "Offset": [-8, -14], + "Health": 20, + "Flags": ["NoWalls"] + }, + { + "Name": "urn", + "Pic": { + "Type": "Normal", + "Pic": "urn" + }, + "Size": [10, 8], + "Offset": [-5, -8], + "Health": 30, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "knives", + "Pic": { + "Type": "Normal", + "Pic": "knives" + }, + "Offset": [-5, -13], + "Health": 0, + "Flags": ["Inside", "OneOrMoreWalls"] + }, + { + "Name": "pots", + "Pic": { + "Type": "Normal", + "Pic": "pots" + }, + "Offset": [-8, -13], + "Health": 0, + "Flags": ["Inside", "OneOrMoreWalls"] + }, + { + "Name": "gibbet_bloody", + "Pic": { + "Type": "Normal", + "Pic": "gibbet_bloody" + }, + "Offset": [-7, -33], + "Health": 40, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "suit_of_armor", + "Pic": { + "Type": "Normal", + "Pic": "suit_of_armor" + }, + "Offset": [-7, -20], + "Health": 60, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "gibbet", + "Pic": { + "Type": "Normal", + "Pic": "gibbet" + }, + "Offset": [-7, -33], + "Health": 40, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "gibbet_skeleton", + "Pic": { + "Type": "Normal", + "Pic": "gibbet_skeleton" + }, + "Offset": [-7, -33], + "Health": 40, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "gibbet_skulls", + "Pic": { + "Type": "Normal", + "Pic": "gibbet_skulls" + }, + "Offset": [-7, -33], + "Health": 40, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "basket", + "Pic": { + "Type": "Normal", + "Pic": "basket" + }, + "Size": [6, 6], + "Offset": [-3, -8], + "Health": 0, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "well", + "Pic": { + "Type": "Normal", + "Pic": "well" + }, + "Health": 80, + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "well_water", + "Pic": { + "Type": "Normal", + "Pic": "well_water" + }, + "Health": 80, + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "well_blood", + "Pic": { + "Type": "Normal", + "Pic": "well_blood" + }, + "Health": 80, + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "pool_blood", + "Pic": { + "Type": "Normal", + "Pic": "pool_blood" + }, + "Offset": [-8, -6], + "Health": 0, + "DrawBelow": true + }, + { + "Name": "flag", + "Pic": { + "Type": "Normal", + "Pic": "flag" + }, + "Size": [6, 4], + "Offset": [-4, -21], + "Health": 40, + "Flags": ["Inside", "OneOrMoreWalls"] + }, + { + "Name": "stove", + "Pic": { + "Type": "Normal", + "Pic": "stove" + }, + "Offset": [-8, -21], + "Health": 60, + "Flags": ["Inside", "OnWall", "FreeInFront"] + }, + { + "Name": "spears", + "Pic": { + "Type": "Normal", + "Pic": "spears" + }, + "Offset": [-7, -20], + "Health": 40, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "truck", + "Pic": { + "Type": "Normal", + "Pic": "truck" + }, + "Health": 100, + "Flags": ["Outside"] + }, + { + "Name": "grass", + "Pic": { + "Type": "Normal", + "Pic": "grass" + }, + "Health": 0, + "Flags": ["Outside"] + }, + { + "Name": "dead_guard", + "Pic": { + "Type": "Normal", + "Pic": "dead_guard" + }, + "Health": 0, + "DrawBelow": true + }, + { + "Name": "spotlight", + "Pic": { + "Type": "Normal", + "Pic": "spotlight" + }, + "Health": 0, + "DrawBelow": true, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "shadow", + "Pic": { + "Type": "Normal", + "Pic": "shadow" + }, + "Health": 0, + "DrawBelow": true, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "heer_flag", + "Pic": { + "Type": "Normal", + "Pic": "heer_flag" + }, + "Offset": [-7, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "hitler_portrait", + "Pic": { + "Type": "Normal", + "Pic": "hitler_portrait" + }, + "Offset": [-5, -10], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "brick_eagle", + "Pic": { + "Type": "Normal", + "Pic": "brick_eagle" + }, + "Offset": [-8, -11], + "Health": 0, + "Flags": ["Outside", "OnWall"] + }, + { + "Name": "eagle_portrait", + "Pic": { + "Type": "Normal", + "Pic": "eagle_portrait" + }, + "Offset": [-7, -10], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "elevator_entrance", + "Pic": { + "Type": "Normal", + "Pic": "elevator_entrance" + }, + "Offset": [-5, -9], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "swastika_wreath", + "Pic": { + "Type": "Normal", + "Pic": "swastika_wreath" + }, + "Offset": [-5, -11], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "coat_of_arms_flag", + "Pic": { + "Type": "Normal", + "Pic": "coat_of_arms_flag" + }, + "Offset": [-7, -11], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "elevator_interior", + "Pic": { + "Type": "Normal", + "Pic": "elevator_interior" + }, + "Offset": [-6, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "iron_cross", + "Pic": { + "Type": "Normal", + "Pic": "iron_cross" + }, + "Offset": [-7, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "cobble_moss", + "Pic": { + "Type": "Normal", + "Pic": "cobble_moss" + }, + "Offset": [-8, -23], + "Health": 0, + "Flags": ["Outside", "OnWall"] + }, + { + "Name": "hitler_glass", + "Pic": { + "Type": "Normal", + "Pic": "hitler_glass" + }, + "Offset": [-6, -11], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "skull_blue", + "Pic": { + "Type": "Normal", + "Pic": "skull_blue" + }, + "Offset": [-3, -9], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "swastika_blue", + "Pic": { + "Type": "Normal", + "Pic": "swastika_blue" + }, + "Offset": [-3, -8], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "brick_color", + "Pic": { + "Type": "Normal", + "Pic": "brick_color" + }, + "Offset": [-8, -11], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "panel", + "Pic": { + "Type": "Normal", + "Pic": "panel" + }, + "Offset": [-6, -10], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "hitler_poster", + "Pic": { + "Type": "Normal", + "Pic": "hitler_poster" + }, + "Offset": [-5, -10], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "stone_color", + "Pic": { + "Type": "Normal", + "Pic": "stone_color" + }, + "Offset": [-8, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "ghost_corpse", + "Type": "ActorSpawner", + "Pic": { + "Type": "Normal", + "Pic": "ghost_corpse" + }, + "Wreck": { + "Sound": "", + "Bullet": "" + }, + "Offset": [-7, -21], + "Health": 0, + "CharId": 22, + "Counter": 340 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/missions.json new file mode 100644 index 00000000..08b487cb --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/missions.json @@ -0,0 +1,1355 @@ +{ + "Missions": [{ + "Title": "", + "Description": "", + "Type": "Static", + "Width": 32, + "Height": 27, + "ExitStyle": "hazard", + "KeyStyle": "plain2", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": [ + "Knife", + "Pistol", + "Machine Gun", + "Chain Gun" + ], + "WeaponPersist": false, + "SkipDebrief": false, + "TileClasses": { + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "cbcbcbff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "1": { + "Name": "door", + "Type": "Door", + "Style": "prison", + "Mask": "00ffffff", + "MaskAlt": "ffe72aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "10": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "060effff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "11": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "060effff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "12": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "bb8e37ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "13": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "bb8e37ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "14": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "bb8e37ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "15": { + "Name": "wall", + "Type": "Wall", + "Style": "bunker", + "Mask": "d2d1ceff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "16": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "06e9fcff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "17": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "06e9fcff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "18": { + "Name": "wall", + "Type": "Wall", + "Style": "landscape", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "19": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "fc2c04ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "2": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffe72aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "20": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "fc2c04ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "21": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "b801b6ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "22": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "fc2c04ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "23": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "ffffffff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "24": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "ffffffff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "25": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "bb8e37ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "26": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "ffffffff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "27": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "b801b6ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "28": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "ffffffff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "29": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "ffffffff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "3": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "ffffffff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "30": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "ffffffff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "31": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "f09c49ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "32": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "f09c49ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "33": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "f09c49ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "34": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "f09c49ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "35": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "ffffffff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "36": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "060effff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "37": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "ffffffff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "38": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "060effff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "39": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "ffffffff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "ffffffff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "40": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "fc2c04ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "41": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "ffffffff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "42": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "060effff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "43": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "060effff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "44": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "f09c49ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "45": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "ffffffff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "46": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "ffbe3bff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "47": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "ffbe3bff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "48": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "f09c49ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "49": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "f09c49ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "5": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "ffffffff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "50": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "bb8e37ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "51": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "ffffffff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "52": { + "Name": "wall", + "Type": "Wall", + "Style": "stone2", + "Mask": "a8a8a8ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "53": { + "Name": "wall", + "Type": "Wall", + "Style": "stone2", + "Mask": "a8a8a8ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "54": { + "Name": "wall", + "Type": "Wall", + "Style": "stone2", + "Mask": "a8a8a8ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "55": { + "Name": "wall", + "Type": "Wall", + "Style": "stone2", + "Mask": "a8a8a8ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "56": { + "Name": "wall", + "Type": "Wall", + "Style": "stone2", + "Mask": "adadadff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "57": { + "Name": "wall", + "Type": "Wall", + "Style": "stone2", + "Mask": "b4b4b4ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "58": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "a10000ff", + "MaskAlt": "b61d09ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "59": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "9c9c9cff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "6": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "ffffffff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "60": { + "Name": "wall", + "Type": "Wall", + "Style": "stone2", + "Mask": "a8a8a8ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "61": { + "Name": "wall", + "Type": "Wall", + "Style": "stone2", + "Mask": "a8a8a8ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "62": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "ffffffff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "63": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "fffbfaff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "64": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "b66b09ff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "65": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "ff00ffff", + "MaskAlt": "9c682aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "7": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "060effff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "8": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "ffffffff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "9": { + "Name": "wall", + "Type": "Wall", + "Style": "cobble", + "Mask": "060effff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + } + }, + "Tiles": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,3,1,4,1,5,1,6,2,7,0,8,0,9,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0", + "0,11,0,12,0,13,0,14,0,15,0,16,0,17,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,19,0,20,0,21,0,22,0,23,0,24,0,25,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,27,0,28,0,29,0,30,0,31,0,32,0,33,0,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,35,0,36,0,37,0,38,0,39,0,40,0,41,0,42,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0", + "0,43,0,44,0,45,0,46,0,47,0,48,0,49,0,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,51,0,52,0,53,0,54,0,55,0,56,0,57,0,58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,59,0,60,0,60,0,62,0,63,0,64,0,65,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,256,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "jail_cell", + "Positions": [[9, 2]] + }, + { + "MapObject": "jail_cell_skeleton", + "Positions": [[13, 2]] + }, + { + "MapObject": "no_sign", + "Positions": [[7, 8], + [1, 12], + [11, 4]] + }, + { + "MapObject": "bloodstain2", + "Positions": [[1, 8], + [13, 8]] + }, + { + "MapObject": "bloodstain", + "Positions": [[11, 8]] + }, + { + "MapObject": "bloodstain1", + "Positions": [[15, 8]] + }, + { + "MapObject": "map", + "Positions": [[5, 12]] + }, + { + "MapObject": "wall_vent", + "Positions": [[9, 10]] + }, + { + "MapObject": "heer_flag", + "Positions": [[5, 2], + [13, 12], + [7, 14]] + }, + { + "MapObject": "hitler_portrait", + "Positions": [[7, 2], + [5, 4]] + }, + { + "MapObject": "brick_eagle", + "Positions": [[11, 2]] + }, + { + "MapObject": "eagle_portrait", + "Positions": [[3, 4]] + }, + { + "MapObject": "elevator_entrance", + "Positions": [[9, 4]] + }, + { + "MapObject": "swastika_wreath", + "Positions": [[3, 6], + [9, 14]] + }, + { + "MapObject": "coat_of_arms_flag", + "Positions": [[7, 6]] + }, + { + "MapObject": "elevator_interior", + "Positions": [[11, 6], + [9, 6], + [7, 16]] + }, + { + "MapObject": "iron_cross", + "Positions": [[13, 6]] + }, + { + "MapObject": "cobble_moss", + "Positions": [[15, 6], + [3, 8]] + }, + { + "MapObject": "hitler_glass", + "Positions": [[1, 10]] + }, + { + "MapObject": "skull_blue", + "Positions": [[3, 10]] + }, + { + "MapObject": "swastika_blue", + "Positions": [[7, 10]] + }, + { + "MapObject": "brick_color", + "Positions": [[11, 10]] + }, + { + "MapObject": "hitler_poster", + "Positions": [[1, 14]] + }, + { + "MapObject": "stone_color", + "Positions": [[3, 16], + [5, 16], + [3, 14], + [5, 14]] + }, + { + "MapObject": "panel", + "Positions": [[15, 12]] + }, + { + "MapObject": "pool_water", + "Positions": [[17, 1]] + }, + { + "MapObject": "barrel_green", + "Positions": [[19, 1]] + }, + { + "MapObject": "table_and_chairs", + "Positions": [[21, 1]] + }, + { + "MapObject": "rod_light", + "Positions": [[23, 1]] + }, + { + "MapObject": "spotlight", + "Positions": [[25, 1], + [23, 1], + [30, 9]] + }, + { + "MapObject": "chandelier", + "Positions": [[25, 1]] + }, + { + "MapObject": "hanging_skeleton", + "Positions": [[27, 1]] + }, + { + "MapObject": "shadow", + "Positions": [[27, 1], + [28, 3], + [30, 3], + [17, 5], + [26, 5]] + }, + { + "MapObject": "pillar", + "Positions": [[29, 1]] + }, + { + "MapObject": "plant", + "Positions": [[17, 3]] + }, + { + "MapObject": "bone_blood", + "Positions": [[19, 3]] + }, + { + "MapObject": "sink", + "Positions": [[20, 3]] + }, + { + "MapObject": "skull_pillar", + "Positions": [[21, 3]] + }, + { + "MapObject": "plant_brown", + "Positions": [[23, 3]] + }, + { + "MapObject": "urn", + "Positions": [[25, 3]] + }, + { + "MapObject": "knives", + "Positions": [[27, 3]] + }, + { + "MapObject": "gibbet_bloody", + "Positions": [[28, 3]] + }, + { + "MapObject": "gibbet", + "Positions": [[30, 3]] + }, + { + "MapObject": "gibbet_skeleton", + "Positions": [[17, 5]] + }, + { + "MapObject": "suit_of_armor", + "Positions": [[29, 3]] + }, + { + "MapObject": "skull", + "Positions": [[19, 5]] + }, + { + "MapObject": "gibbet_skulls", + "Positions": [[26, 5]] + }, + { + "MapObject": "bed", + "Positions": [[25, 5]] + }, + { + "MapObject": "basket", + "Positions": [[27, 5]] + }, + { + "MapObject": "gibs", + "Positions": [[17, 9]] + }, + { + "MapObject": "barrel_wood2", + "Positions": [[19, 9]] + }, + { + "MapObject": "well_water", + "Positions": [[21, 9]] + }, + { + "MapObject": "well", + "Positions": [[23, 9]] + }, + { + "MapObject": "pool_blood", + "Positions": [[25, 9]] + }, + { + "MapObject": "flag", + "Positions": [[27, 9]] + }, + { + "MapObject": "skull2", + "Positions": [[29, 9]] + }, + { + "MapObject": "bones", + "Positions": [[31, 9]] + }, + { + "MapObject": "bones2", + "Positions": [[17, 11]] + }, + { + "MapObject": "bones3", + "Positions": [[19, 11]] + }, + { + "MapObject": "pots", + "Positions": [[20, 11]] + }, + { + "MapObject": "cowskull_pillar", + "Positions": [[21, 11]] + }, + { + "MapObject": "stove", + "Positions": [[22, 11]] + }, + { + "MapObject": "well_blood", + "Positions": [[23, 11]] + }, + { + "MapObject": "spears", + "Positions": [[25, 11]] + }, + { + "MapObject": "statue_behemoth", + "Positions": [[26, 11]] + }, + { + "MapObject": "grass", + "Positions": [[27, 11]] + }, + { + "MapObject": "pillar_brown", + "Positions": [[28, 11]] + }, + { + "MapObject": "truck", + "Positions": [[17, 13]] + }, + { + "MapObject": "dead_guard", + "Positions": [[21, 13]] + }, + { + "MapObject": "ghost_corpse", + "Positions": [[14, 21]] + }], + "StaticCharacters": [{ + "Index": 0, + "Places": [{ + "Pos": [1, 17], + "Dir": 2 + }] + }, + { + "Index": 1, + "Places": [{ + "Pos": [3, 17], + "Dir": 1 + }] + }, + { + "Index": 2, + "Places": [{ + "Pos": [5, 17], + "Dir": 7 + }] + }, + { + "Index": 3, + "Places": [{ + "Pos": [7, 17], + "Dir": 6 + }] + }, + { + "Index": 4, + "Places": [{ + "Pos": [9, 17], + "Dir": 0 + }] + }, + { + "Index": 5, + "Places": [{ + "Pos": [11, 17], + "Dir": 6 + }] + }, + { + "Index": 6, + "Places": [{ + "Pos": [13, 17], + "Dir": 0 + }] + }, + { + "Index": 7, + "Places": [{ + "Pos": [15, 17], + "Dir": 7 + }] + }, + { + "Index": 8, + "Places": [{ + "Pos": [1, 19], + "Dir": 5 + }] + }, + { + "Index": 9, + "Places": [{ + "Pos": [3, 19], + "Dir": 6 + }] + }, + { + "Index": 10, + "Places": [{ + "Pos": [5, 19], + "Dir": 0 + }] + }, + { + "Index": 11, + "Places": [{ + "Pos": [7, 19], + "Dir": 0 + }] + }, + { + "Index": 12, + "Places": [{ + "Pos": [9, 19], + "Dir": 2 + }] + }, + { + "Index": 13, + "Places": [{ + "Pos": [11, 19], + "Dir": 0 + }] + }, + { + "Index": 14, + "Places": [{ + "Pos": [13, 19], + "Dir": 5 + }] + }, + { + "Index": 15, + "Places": [{ + "Pos": [15, 19], + "Dir": 1 + }] + }, + { + "Index": 16, + "Places": [{ + "Pos": [1, 21], + "Dir": 5 + }] + }, + { + "Index": 17, + "Places": [{ + "Pos": [3, 21], + "Dir": 1 + }] + }, + { + "Index": 18, + "Places": [{ + "Pos": [5, 21], + "Dir": 7 + }] + }, + { + "Index": 19, + "Places": [{ + "Pos": [7, 21], + "Dir": 0 + }] + }, + { + "Index": 20, + "Places": [{ + "Pos": [9, 21], + "Dir": 3 + }] + }, + { + "Index": 21, + "Places": [{ + "Pos": [11, 21], + "Dir": 0 + }] + }, + { + "Index": 22, + "Places": [{ + "Pos": [13, 21], + "Dir": 6 + }] + }, + { + "Index": 23, + "Places": [{ + "Pos": [15, 21], + "Dir": 7 + }] + }], + "StaticObjectives": [], + "StaticKeys": [{ + "Index": 0, + "Positions": [[4, 2], + [4, 2], + [4, 2], + [4, 2], + [21, 5], + [21, 5], + [21, 5]] + }, + { + "Index": 2, + "Positions": [[6, 2], + [6, 2], + [6, 2], + [6, 2], + [23, 5], + [23, 5]] + }], + "StaticPickups": [{ + "Pickup": "dogfood", + "Positions": [[31, 1]] + }, + { + "Pickup": "meal", + "Positions": [[29, 5]] + }, + { + "Pickup": "health", + "Positions": [[31, 5]] + }, + { + "Pickup": "ammo_Bullets", + "Positions": [[17, 7]] + }, + { + "Pickup": "gun_Machine Gun", + "Positions": [[19, 7]] + }, + { + "Pickup": "gun_Chain Gun", + "Positions": [[21, 7]] + }, + { + "Pickup": "cross", + "Positions": [[23, 7]] + }, + { + "Pickup": "chalice", + "Positions": [[25, 7]] + }, + { + "Pickup": "chest", + "Positions": [[27, 7]] + }, + { + "Pickup": "crown", + "Positions": [[29, 7]] + }, + { + "Pickup": "heart", + "Positions": [[31, 7]] + }, + { + "Pickup": "ammo_box", + "Positions": [[31, 11]] + }, + { + "Pickup": "spear", + "Positions": [[19, 13]] + }], + "Start": [0, 0], + "Exits": [{ + "Rect": [27, + 14, + 4, + 2], + "Mission": 1, + "Hidden": false + }], + "AltFloorsEnabled": false + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/pickups.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/pickups.json new file mode 100644 index 00000000..66f6cbbb --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/.wolf3d/common.cdogscpn/pickups.json @@ -0,0 +1,143 @@ +{ + "Version": 3, + "Pickups": [ + { + "Name": "dogfood", + "Pic": { + "Type": "Normal", + "Pic": "dogfood" + }, + "Effects": [{ + "Type": "Health", + "Health": 4 + }], + "Sound": "health_small" + }, + { + "Name": "meal", + "Pic": { + "Type": "Normal", + "Pic": "meal" + }, + "Effects": [{ + "Type": "Health", + "Health": 10 + }], + "Sound": "health_small" + }, + { + "Name": "medkit", + "Pic": { + "Type": "Normal", + "Pic": "health" + }, + "Effects": [{ + "Type": "Health", + "Health": 25 + }], + "Sound": "health_big" + }, + { + "Name": "heart", + "Pic": { + "Type": "Normal", + "Pic": "heart" + }, + "Effects": [{ + "Type": "Health", + "Health": 200 + }, { + "Type": "Ammo", + "Ammo": "Ammo", + "Amount": 25 + }, { + "Type": "Lives", + "Lives": 1 + }], + "Sound": "1up" + }, + { + "Name": "cross", + "Pic": { + "Type": "Normal", + "Pic": "cross" + }, + "Effects": [{ + "Type": "Score", + "Score": 100 + }], + "Sound": "pickup_cross" + }, + { + "Name": "chalice", + "Pic": { + "Type": "Normal", + "Pic": "chalice" + }, + "Effects": [{ + "Type": "Score", + "Score": 500 + }], + "Sound": "pickup_chalice" + }, + { + "Name": "chest", + "Pic": { + "Type": "Normal", + "Pic": "chest" + }, + "Effects": [{ + "Type": "Score", + "Score": 1000 + }], + "Sound": "pickup_chest" + }, + { + "Name": "crown", + "Pic": { + "Type": "Normal", + "Pic": "crown" + }, + "Effects": [{ + "Type": "Score", + "Score": 5000 + }], + "Sound": "pickup_crown" + }, + { + "Name": "ammo_clip", + "Pic": { + "Type": "Normal", + "Pic": "ammo_clip" + }, + "Effects": [{ + "Type": "Ammo", + "Ammo": "Ammo", + "Amount": 8 + }], + "Sound": "ammo_pickup" + }, + { + "Name": "ammo_box", + "Pic": { + "Type": "Normal", + "Pic": "ammo_box" + }, + "Effects": [{ + "Type": "Ammo", + "Ammo": "Ammo", + "Amount": 25 + }], + "Sound": "ammo_box" + }, + { + "Name": "spear", + "Pic": { + "Type": "Normal", + "Pic": "spear" + }, + "Effects": [], + "Sound": "spear" + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/ammo.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/ammo.json new file mode 100644 index 00000000..db005490 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/ammo.json @@ -0,0 +1,137 @@ +{ + "Version": 2, + "Ammo": [ + { + "Name": "Bullets", + "Pic": { + "Type": "Normal", + "Pic": "bullet_pickup" + }, + "Sound": "bullet_pickup", + "Amount": 30, + "Max": 300 + }, + { + "Name": "Grenades", + "Pic": { + "Type": "Normal", + "Pic": "grenade_pickup" + }, + "Sound": "grenade_pickup", + "Amount": 2, + "Max": 10 + }, + { + "Name": "Gas tank", + "Pic": { + "Type": "Normal", + "Pic": "gas_tank" + }, + "Sound": "gas_tank_pickup", + "Amount": 50, + "Max": 500 + }, + { + "Name": "Shells", + "Pic": { + "Type": "Normal", + "Pic": "shells" + }, + "Sound": "shells_pickup", + "Amount": 5, + "Max": 50 + }, + { + "Name": "Cells", + "Pic": { + "Type": "Animated", + "Sprites": "particles/cells", + "TicksPerFrame": 10 + }, + "Sound": "cells_pickup", + "Amount": 10, + "Max": 200 + }, + { + "Name": "Frag grenades", + "Pic": { + "Type": "Normal", + "Pic": "frag_grenade_pickup" + }, + "Sound": "grenade_pickup", + "Amount": 2, + "Max": 10 + }, + { + "Name": "Molotovs", + "Pic": { + "Type": "Normal", + "Pic": "molotov_pickup" + }, + "Sound": "molotov_pickup", + "Amount": 3, + "Max": 15 + }, + { + "Name": "Mines", + "Pic": { + "Type": "Normal", + "Pic": "mine_pickup" + }, + "Sound": "package_pickup", + "Amount": 2, + "Max": 10 + }, + { + "Name": "Dynamite", + "Pic": { + "Type": "Normal", + "Pic": "dynamite_pickup" + }, + "Sound": "package_pickup", + "Amount": 3, + "Max": 15 + }, + { + "Name": "Gas bombs", + "Pic": { + "Type": "Normal", + "Pic": "gas_grenade_pickup" + }, + "Sound": "grenade_pickup", + "Amount": 5, + "Max": 30 + }, + { + "Name": "Confusion bombs", + "Pic": { + "Type": "Normal", + "Pic": "confusion_grenade" + }, + "Sound": "grenade_pickup", + "Amount": 5, + "Max": 30 + }, + { + "Name": "Mini cells", + "Pic": { + "Type": "Animated", + "Sprites": "particles/mini_cells", + "TicksPerFrame": 10 + }, + "Sound": "mini_cells_pickup", + "Amount": 40, + "Max": 500 + }, + { + "Name": "Rockets", + "Pic": { + "Type": "Normal", + "Pic": "rockets" + }, + "Sound": "grenade_pickup", + "Amount": 5, + "Max": 40 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/bullets.json new file mode 100644 index 00000000..c59f6cd5 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/bullets.json @@ -0,0 +1,755 @@ +{ + "Version": 5, + "DefaultBullet": { + "Pic": { + "Type": "Directional", + "Sprites": "bullet" + }, + "Spark": "spark", + "Hit": { + "Object": { + "Sound": "hits/hard" + }, + "Flesh": { + "Sound": "hits/flesh" + }, + "Wall": { + "Sound": "ricochet" + } + }, + "Falling": { + "Bounces": true + }, + "SeekFactor": -1 + }, + "Bullets": [ + { + "Name": "knife", + "Power": 2, + "Hit": { + "Object": { + "Sound": "hits/knife_hard" + }, + "Flesh": { + "Sound": "hits/knife_flesh" + } + } + }, + { + "Name": "fist", + "Power": 10, + "Mass": 1.5, + "Hit": { + "Object": { + "Sound": "hits/knife_hard" + }, + "Flesh": { + "Sound": "hits/fist_flesh" + } + } + }, + { + "Name": "mg", + "WallMark": "bullet_hole", + "Speed": 768, + "Range": 60, + "Power": 10, + "Mass": 10.0 + }, + { + "Name": "shotgun", + "Pic": { + "Type": "Normal", + "Pic": "bullet_ball" + }, + "WallMark": "bullet_hole", + "Speed": 640, + "Range": 50, + "Power": 15, + "Mass": 15.0 + }, + { + "Name": "flame", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "flame", + "TicksPerFrame": 4 + }, + "Speed": 384, + "Range": 30, + "Power": 12, + "Mass": 1.0, + "Size": [10, 10], + "Special": { + "Effect": "Flame" + }, + "Spark": "", + "Hit": { + "Object": { + "Sound": "hits/fire" + }, + "Flesh": { + "Sound": "hits/fire" + }, + "Wall": { + "Sound": "hits/fire" + } + }, + "WallBounces": true + }, + { + "Name": "laser", + "Pic": { + "Type": "Directional", + "Sprites": "particles/beam" + }, + "Spark": "spark_red", + "Speed": 1024, + "Range": 90, + "Power": 20, + "Mass": 20.0, + "Size": [4, 4] + }, + { + "Name": "sniper", + "Pic": { + "Type": "Directional", + "Sprites": "particles/beam_bright" + }, + "Spark": "spark_blue", + "Speed": 1024, + "Range": 90, + "Power": 50, + "Mass": 50.0, + "Size": [4, 4] + }, + { + "Name": "frag", + "WallMark": "bullet_hole", + "Speed": 640, + "Range": 50, + "Power": 40, + "Mass": 40.0, + "HurtAlways": true + }, + { + "Name": "grenade", + "Pic": { + "Type": "Animated", + "Sprites": "grenade", + "TicksPerFrame": 2 + }, + "ShadowSize": [6, 4], + "Speed": 384, + "Range": 100, + "Spark": "", + "Hit": { + "Wall": { + "Sound": "bounce" + } + }, + "WallBounces": true, + "Falling": { + "GravityFactor": 1 + }, + "OutOfRangeGuns": [ + "explosion1", + "explosion2", + "explosion3" + ] + }, + { + "Name": "shrapnelbomb", + "Pic": { + "Type": "Animated", + "Sprites": "grenade", + "TicksPerFrame": 2, + "Mask": "808080" + }, + "ShadowSize": [6, 4], + "Speed": 384, + "Range": 100, + "Spark": "", + "Hit": { + "Wall": { + "Sound": "bounce" + } + }, + "WallBounces": true, + "Falling": { + "GravityFactor": 1 + }, + "OutOfRangeGuns": [ + "frag_explosion" + ] + }, + { + "Name": "molotov", + "Pic": { + "Type": "Normal", + "Pic": "molotov" + }, + "ShadowSize": [6, 4], + "Speed": 384, + "Range": 100, + "Spark": "", + "Hit": { + "Wall": { + "Sound": "" + } + }, + "Falling": { + "GravityFactor": 1, + "DestroyOnDrop": true, + "DropGuns": [ + "molotov_explosion" + ] + }, + "OutOfRangeGuns": [ + "molotov_explosion" + ], + "HitGuns": [ + "molotov_explosion" + ] + }, + { + "Name": "gasbomb", + "Pic": { + "Type": "Animated", + "Sprites": "grenade", + "TicksPerFrame": 2, + "Mask": "00ff00" + }, + "ShadowSize": [6, 4], + "Speed": 384, + "Range": 100, + "Spark": "", + "Hit": { + "Wall": { + "Sound": "bounce" + } + }, + "WallBounces": true, + "Falling": { + "GravityFactor": 1 + }, + "OutOfRangeGuns": [ + "gas_poison_explosion" + ] + }, + { + "Name": "confusebomb", + "Pic": { + "Type": "Animated", + "Sprites": "grenade", + "TicksPerFrame": 2, + "Mask": "c000c0" + }, + "ShadowSize": [6, 4], + "Speed": 384, + "Range": 100, + "Spark": "", + "Hit": { + "Wall": { + "Sound": "bounce" + } + }, + "WallBounces": true, + "Falling": { + "GravityFactor": 1 + }, + "OutOfRangeGuns": [ + "gas_confuse_explosion" + ] + }, + { + "Name": "gas", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "gas_cloud", + "TicksPerFrame": 4, + "Mask": "99ff9940" + }, + "Speed": 384, + "Friction": 4, + "Range": 35, + "Size": [20, 20], + "Special": { + "Effect": "Poison" + }, + "Persists": true, + "Spark": "", + "Hit": { + "Object": {}, + "Flesh": { + "Sound": "hits/gas" + }, + "Wall": { + "Sound": "hits/gas" + } + }, + "WallBounces": true + }, + { + "Name": "pulse", + "Pic": { + "Type": "Directional", + "Sprites": "particles/pulse" + }, + "Spark": "spark_blue", + "Speed": 1280, + "Range": 25, + "Power": 6, + "Mass": 1.0 + }, + { + "Name": "heatseeker", + "Pic": { + "Type": "Directional", + "Sprites": "rocket" + }, + "Trail": { + "Particle": "smoke_trail_small", + "Width": 0, + "TicksPerEmit": 4 + }, + "Speed": 512, + "Range": 60, + "Power": 20, + "Mass": 40.0, + "Size": [6, 6], + "Spark": "boom", + "Hit": { + "Object": { + "Sound": "boom" + }, + "Flesh": { + "Sound": "boom" + }, + "Wall": { + "Sound": "boom" + } + }, + "SeekFactor": 20 + }, + { + "Name": "rapid", + "Pic": { + "Type": "Directional", + "Sprites": "rapid" + }, + "Spark": "spark_blue", + "Speed": 768, + "Range": 45, + "Power": 15, + "Mass": 15.0, + "Erratic": true + }, + { + "Name": "petrifier", + "Pic": { + "Type": "Normal", + "Pic": "molotov", + "Tint": [-1.0, 1.0, 0.75] + }, + "Spark": "spark_blue", + "Speed": 768, + "Range": 45, + "Size": [10, 10], + "Special": { + "Effect": "Petrify" + }, + "Hit": { + "Object": { + "Sound": "hits/petrify" + }, + "Flesh": { + "Sound": "hits/petrify" + }, + "Wall": { + "Sound": "" + } + } + }, + { + "Name": "proxmine", + "Pic": { + "Type": "Normal", + "Pic": "mine_inactive" + }, + "Speed": 0, + "Range": 140, + "Persists": true, + "Hit": {}, + "OutOfRangeGuns": [ + "activemine" + ] + }, + { + "Name": "dynamite", + "Pic": { + "Type": "Animated", + "Sprites": "dynamite_active", + "TicksPerFrame": 15 + }, + "Speed": 0, + "Range": 210, + "Persists": true, + "Hit": {}, + "OutOfRangeGuns": [ + "explosion1", + "explosion2", + "explosion3" + ] + }, + { + "Name": "swarmer", + "Pic": { + "Type": "Directional", + "Sprites": "swarmer" + }, + "Trail": { + "Particle": "smoke_trail_small", + "Width": 0, + "TicksPerEmit": 4 + }, + "Speed": 700, + "Range": 70, + "Power": 12, + "Mass": 15.0, + "Size": [4, 4], + "Spark": "boom", + "Hit": { + "Object": { + "Sound": "boom" + }, + "Flesh": { + "Sound": "boom" + }, + "Wall": { + "Sound": "boom" + } + }, + "SeekFactor": 30 + }, + { + "Name": "fireball_wreck", + "Pic": { + "Type": "Animated", + "Sprites": "fireball", + "Count": 10, + "TicksPerFrame": 4 + }, + "Delay": -10, + "Speed": 0, + "Range": 53, + "Size": [14, 10], + "Persists": true, + "Spark": "", + "Hit": {} + }, + { + "Name": "fireball1", + "Pic": { + "Type": "Animated", + "Sprites": "fireball", + "TicksPerFrame": 4 + }, + "Speed": 256, + "Range": 53, + "Power": 5, + "Mass": 5.0, + "Size": [14, 10], + "HurtAlways": true, + "Persists": true, + "WallBounces": true, + "Spark": "", + "Hit": { + "Object": { + "Sound": "hits/gas" + }, + "Flesh": { + "Sound": "hits/gas" + }, + "Wall": { + "Sound": "" + } + }, + "Falling": { + "GravityFactor": 1, + "FallsDown": false + } + }, + { + "Name": "fireball2", + "Pic": { + "Type": "Animated", + "Sprites": "fireball", + "Count": -8, + "TicksPerFrame": 4 + }, + "Delay": 8, + "Speed": 192, + "Range": 71, + "Power": 5, + "Mass": 5.0, + "Size": [14, 10], + "HurtAlways": true, + "Persists": true, + "WallBounces": true, + "Spark": "", + "Hit": { + "Object": { + "Sound": "hits/gas" + }, + "Flesh": { + "Sound": "hits/gas" + }, + "Wall": { + "Sound": "" + } + }, + "Falling": { + "GravityFactor": 1, + "FallsDown": false + } + }, + { + "Name": "fireball3", + "Pic": { + "Type": "Animated", + "Sprites": "fireball", + "Count": -16, + "TicksPerFrame": 4 + }, + "Delay": 16, + "Speed": 128, + "Range": 79, + "Power": 5, + "Mass": 5.0, + "Size": [14, 10], + "HurtAlways": true, + "Persists": true, + "WallBounces": true, + "Spark": "", + "Hit": { + "Object": { + "Sound": "hits/gas" + }, + "Flesh": { + "Sound": "hits/gas" + }, + "Wall": { + "Sound": "" + } + }, + "Falling": { + "GravityFactor": 1, + "FallsDown": false + } + }, + { + "Name": "molotov_flame", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "flame", + "TicksPerFrame": 4 + }, + "SpeedLow": -256, + "SpeedHigh": 256, + "SpeedScale": true, + "Friction": 4, + "RangeLow": 120, + "RangeHigh": 148, + "Power": 2, + "Size": [10, 10], + "Special": { + "Effect": "Flame" + }, + "HurtAlways": true, + "Persists": true, + "WallBounces": true, + "Spark": "", + "Hit": { + "Object": { + "Sound": "hits/fire" + }, + "Flesh": { + "Sound": "hits/fire" + }, + "Wall": { + "Sound": "" + } + }, + "Falling": { + "GravityFactor": 4, + "Bounces": false + } + }, + { + "Name": "gas_cloud_poison", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "gas_cloud", + "TicksPerFrame": 4, + "Mask": "99ff9940" + }, + "SpeedLow": 0, + "SpeedHigh": 255, + "Friction": 4, + "RangeLow": 155, + "RangeHigh": 191, + "Size": [20, 20], + "Special": { + "Effect": "Poison" + }, + "HurtAlways": true, + "Persists": true, + "WallBounces": true, + "Spark": "", + "Hit": { + "Flesh": { + "Sound": "hits/gas" + }, + "Wall": { + "Sound": "" + } + } + }, + { + "Name": "gas_cloud_confuse", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "gas_cloud", + "TicksPerFrame": 4, + "Mask": "40004080" + }, + "SpeedLow": 0, + "SpeedHigh": 255, + "Friction": 4, + "RangeLow": 155, + "RangeHigh": 191, + "Size": [20, 20], + "Special": { + "Effect": "Confuse" + }, + "Persists": true, + "WallBounces": true, + "Spark": "", + "Hit": { + "Flesh": { + "Sound": "hits/gas" + }, + "Wall": { + "Sound": "" + } + } + }, + { + "Name": "activemine", + "Pic": { + "Type": "Normal", + "Pic": "mine_active" + }, + "Speed": 0, + "Range": -1, + "Persists": true, + "Hit": {}, + "ProximityGuns": [ + "triggeredmine" + ] + }, + { + "Name": "triggeredmine", + "Pic": { + "Type": "Normal", + "Pic": "mine_active" + }, + "Speed": 0, + "Range": 5, + "Persists": true, + "Hit": {}, + "OutOfRangeGuns": [ + "explosion1", + "explosion2", + "explosion3" + ] + }, + { + "Name": "explosion_small", + "Pic": { + "Type": "Animated", + "Sprites": "particles/explosion_small", + "TicksPerFrame": 4 + }, + "Speed": 0, + "Range": 27, + "Power": 3, + "Mass": 10.0, + "Size": [64, 64], + "Persists": true, + "Spark": "", + "Hit": { + "Object": { + "Sound": "hits/gas" + }, + "Flesh": { + "Sound": "hits/gas" + } + } + }, + { + "Name": "rocket", + "Pic": { + "Type": "Directional", + "Sprites": "rocket_blue" + }, + "Trail": { + "Particle": "smoke_trail", + "Width": 0, + "TicksPerEmit": 4 + }, + "ShadowSize": [4, 3], + "Speed": 250, + "Friction": -9, + "Range": 120, + "Power": 1, + "Size": [16, 16], + "Spark": "", + "Hit": { + "Object": { + "Sound": "" + }, + "Flesh": { + "Sound": "" + }, + "Wall": { + "Sound": "" + } + }, + "OutOfRangeGuns": [ + "explosion_small" + ], + "HitGuns": [ + "explosion_small" + ] + }, + { + "Name": "9mm", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail", + "Width": 1.0 + }, + "OutOfRangeSpark": "spark", + "WallMark": "bullet_hole", + "Speed": 25000, + "Range": 1, + "Power": 12, + "Mass": 0.2 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/character_classes.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/character_classes.json new file mode 100644 index 00000000..1b4260af --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/character_classes.json @@ -0,0 +1,124 @@ +{ + "Version": 2, + "Characters": [ + { + "Name": "Jones", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Sounds": "man" + }, + { + "Name": "Soldier", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "soldier", + "Sounds": "man" + }, + { + "Name": "Ogre", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/ogre" + }, + "Sounds": "ogre", + "BloodColor": "333333" + }, + { + "Name": "Bug-eye", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/bugeye" + }, + "Sounds": "alien", + "BloodColor": "00ff00", + "HasHair": false, + "HasFacehair": false, + "HasGlasses": false + }, + { + "Name": "Mad bug-eye", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/madbugeye" + }, + "Sounds": "alien", + "BloodColor": "00ff00", + "HasHair": false, + "HasFacehair": false, + "HasGlasses": false + }, + { + "Name": "Robot", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/robot" + }, + "Sounds": "alien", + "BloodColor": "0000ff", + "HasHair": false, + "HasFacehair": false, + "HasGlasses": false + }, + { + "Name": "Lady", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/lady" + }, + "Sounds": "woman" + }, + { + "Name": "Cyborg", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/cyborg" + }, + "Sounds": "zombie", + "BloodColor": "ff00ff" + }, + { + "Name": "Bones", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/skull" + }, + "Body": "skinny", + "Sounds": "zombie", + "Footsteps": "bones", + "BloodColor": "ffffff", + "HasHair": false, + "HasFacehair": false + }, + { + "Name": "Big Bones", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/skull_big" + }, + "Body": "big_skinny", + "Sounds": "zombie", + "Footsteps": "bones", + "BloodColor": "ffffff", + "HasHair": false, + "HasFacehair": false, + "HasHat": false, + "HasGlasses": false + }, + { + "Name": "Dog", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/dog" + }, + "Sounds": "dog", + "HasHair": false, + "HasFacehair": false, + "HasHat": false, + "HasGlasses": false + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/gamecontrollerbuttondb.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/gamecontrollerbuttondb.txt new file mode 100644 index 00000000..dbdcc3d0 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/gamecontrollerbuttondb.txt @@ -0,0 +1,14 @@ +# Columns are: GUID, Joystick Name, button:name:r:g:b (repeated) +# If button name is blank, use default name +# Note: for ease of parsing, all tokens must end with comma + +# Windows +6d0416c2000000000000504944564944,Logitech Dual Action,a:2:244:244:244,b:3:244:244:244,back:9:64:64:64,dpdown::64:64:64,dpleft::64:64:64,dpright::64:64:64,dpup::64:64:64,leftshoulder:5:64:64:64,leftstick::64:64:64,lefttrigger:7:64:64:64,leftx::64:64:64,lefty::64:64:64,rightshoulder:6:64:64:64,rightstick::64:64:64,righttrigger:8:64:64:64,rightx::64:64:64,righty::64:64:64,start:10:64:64:64,x:1:244:244:244,y:4:244:244:244,platform:Windows, + +# OS X +6d0400000000000016c2000000000000,Logitech Dual Action,a:2:244:244:244,b:3:244:244:244,back:9:64:64:64,dpdown::64:64:64,dpleft::64:64:64,dpright::64:64:64,dpup::64:64:64,leftshoulder:5:64:64:64,leftstick::64:64:64,lefttrigger:7:64:64:64,leftx::64:64:64,lefty::64:64:64,rightshoulder:6:64:64:64,rightstick::64:64:64,righttrigger:8:64:64:64,rightx::64:64:64,righty::64:64:64,start:10:64:64:64,x:1:244:244:244,y:4:244:244:244,platform:Mac OS X, +030000004c050000cc09000000016800,PS4 Controller,a:X:140:182:228,b:O:248:114:125,back:SHARE:60:60:60,guide:PS:222:233:240,dpdown::60:60:60,dpleft::60:60:60,dpright::60:60:60,dpup::60:60:60,leftshoulder::60:60:60,leftstick::60:60:60,lefttrigger::60:60:60,leftx::60:60:60,lefty::60:60:60,rightshoulder::60:60:60,rightstick::60:60:60,righttrigger::60:60:60,rightx::60:60:60,righty::60:60:60,start:OPTIONS:60:60:60,x:square:211:166:211,y:triangle:0:213:219,platform:Mac OS X +5e040000000000008e02000000000000,Xbox One Wired Controller,a::64:160:64,b::192:32:40,back:View:8:8:8,guide:Xbox:255:255:255,dpdown::8:8:8,dpleft::8:8:8,dpright::8:8:8,dpup::8:8:8,leftshoulder::8:8:8,leftstick::8:8:8,lefttrigger::8:8:8,leftx::8:8:8,lefty::8:8:8,rightshoulder::8:8:8,rightstick::8:8:8,righttrigger::8:8:8,rightx::8:8:8,righty::8:8:8,start:Menu:8:8:8,x::0:128:192,y::240:208:40,platform:Mac OS X + +# Linux +030000006d04000016c2000010010000,Logitech Logitech Dual Action,a:2:244:244:244,b:3:244:244:244,back:9:64:64:64,dpdown::64:64:64,dpleft::64:64:64,dpright::64:64:64,dpup::64:64:64,leftshoulder:5:64:64:64,leftstick::64:64:64,lefttrigger:7:64:64:64,leftx::64:64:64,lefty::64:64:64,rightshoulder:6:64:64:64,rightstick::64:64:64,righttrigger:8:64:64:64,rightx::64:64:64,righty::64:64:64,start:10:64:64:64,x:1:244:244:244,y:4:244:244:244,platform:Linux, diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/gamecontrollerdb.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/gamecontrollerdb.txt new file mode 100644 index 00000000..857e1c39 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/gamecontrollerdb.txt @@ -0,0 +1,100 @@ +# Windows - DINPUT +8f0e1200000000000000504944564944,Acme,platform:Windows,x:b2,a:b0,b:b1,y:b3,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b5,rightshoulder:b6,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a3,righty:a2, +341a3608000000000000504944564944,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +ffff0000000000000000504944564944,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +6d0416c2000000000000504944564944,Generic DirectInput Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +6d0419c2000000000000504944564944,Logitech F710 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +88880803000000000000504944564944,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.8,dpleft:h0.4,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b9,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b0,y:b3,platform:Windows, +4c056802000000000000504944564944,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Windows, +25090500000000000000504944564944,PS3 DualShock,a:b2,b:b1,back:b9,dpdown:h0.8,dpleft:h0.4,dpright:h0.2,dpup:h0.1,guide:,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b0,y:b3,platform:Windows, +4c05c405000000000000504944564944,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +6d0418c2000000000000504944564944,Logitech RumblePad 2 USB,platform:Windows,x:b0,a:b1,b:b2,y:b3,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3, +36280100000000000000504944564944,OUYA Controller,platform:Windows,a:b0,b:b3,y:b2,x:b1,start:b14,guide:b15,leftstick:b6,rightstick:b7,leftshoulder:b4,rightshoulder:b5,dpup:b8,dpleft:b10,dpdown:b9,dpright:b11,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:b12,righttrigger:b13, +4f0400b3000000000000504944564944,Thrustmaster Firestorm Dual Power,a:b0,b:b2,y:b3,x:b1,start:b10,guide:b8,back:b9,leftstick:b11,rightstick:b12,leftshoulder:b4,rightshoulder:b6,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b5,righttrigger:b7,platform:Windows, +00f00300000000000000504944564944,RetroUSB.com RetroPad,a:b1,b:b5,x:b0,y:b4,back:b2,start:b3,leftshoulder:b6,rightshoulder:b7,leftx:a0,lefty:a1,platform:Windows, +00f0f100000000000000504944564944,RetroUSB.com Super RetroPort,a:b1,b:b5,x:b0,y:b4,back:b2,start:b3,leftshoulder:b6,rightshoulder:b7,leftx:a0,lefty:a1,platform:Windows, +28040140000000000000504944564944,GamePad Pro USB,platform:Windows,a:b1,b:b2,x:b0,y:b3,back:b8,start:b9,leftshoulder:b4,rightshoulder:b5,leftx:a0,lefty:a1,lefttrigger:b6,righttrigger:b7, +ff113133000000000000504944564944,SVEN X-PAD,platform:Windows,a:b2,b:b3,y:b1,x:b0,start:b5,back:b4,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a4,lefttrigger:b8,righttrigger:b9, +8f0e0300000000000000504944564944,Piranha xtreme,platform:Windows,x:b3,a:b2,b:b1,y:b0,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a3,righty:a2, +8f0e0d31000000000000504944564944,Multilaser JS071 USB,platform:Windows,a:b1,b:b2,y:b3,x:b0,start:b9,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7, +10080300000000000000504944564944,PS2 USB,platform:Windows,a:b2,b:b1,y:b0,x:b3,start:b9,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a4,righty:a2,lefttrigger:b4,righttrigger:b5, +79000600000000000000504944564944,G-Shark GS-GP702,a:b2,b:b1,x:b3,y:b0,back:b8,start:b9,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a4,lefttrigger:b6,righttrigger:b7,platform:Windows, +4b12014d000000000000504944564944,NYKO AIRFLO,a:b0,b:b1,x:b2,y:b3,back:b8,guide:b10,start:b9,leftstick:a0,rightstick:a2,leftshoulder:a3,rightshoulder:b5,dpup:h0.1,dpdown:h0.0,dpleft:h0.8,dpright:h0.2,leftx:h0.6,lefty:h0.12,rightx:h0.9,righty:h0.4,lefttrigger:b6,righttrigger:b7,platform:Windows, +d6206dca000000000000504944564944,PowerA Pro Ex,a:b1,b:b2,x:b0,y:b3,back:b8,guide:b12,start:b9,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.0,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,platform:Windows, +a3060cff000000000000504944564944,Saitek P2500,a:b2,b:b3,y:b1,x:b0,start:b4,guide:b10,back:b5,leftstick:b8,rightstick:b9,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,platform:Windows, +8f0e0300000000000000504944564944,Trust GTX 28,a:b2,b:b1,y:b0,x:b3,start:b9,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,platform:Windows, +4f0415b3000000000000504944564944,Thrustmaster Dual Analog 3.2,platform:Windows,x:b1,a:b0,b:b2,y:b3,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b5,rightshoulder:b6,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3, +6f0e1e01000000000000504944564944,Rock Candy Gamepad for PS3,platform:Windows,a:b1,b:b2,x:b0,y:b3,back:b8,start:b9,guide:b12,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2, +83056020000000000000504944564944,iBuffalo USB 2-axis 8-button Gamepad,a:b1,b:b0,y:b2,x:b3,start:b7,back:b6,leftshoulder:b4,rightshoulder:b5,leftx:a0,lefty:a1,platform:Windows, + +# OS X +0500000047532047616d657061640000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +6d0400000000000016c2000000000000,Logitech F310 Gamepad (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +6d0400000000000018c2000000000000,Logitech F510 Gamepad (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +6d040000000000001fc2000000000000,Logitech F710 Gamepad (XInput),a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +6d0400000000000019c2000000000000,Logitech Wireless Gamepad (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +4c050000000000006802000000000000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Mac OS X, +4c05000000000000c405000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,Platform:Mac OS X, +5e040000000000008e02000000000000,X360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +891600000000000000fd000000000000,Razer Onza Tournament,a:b0,b:b1,y:b3,x:b2,start:b8,guide:b10,back:b9,leftstick:b6,rightstick:b7,leftshoulder:b4,rightshoulder:b5,dpup:b11,dpleft:b13,dpdown:b12,dpright:b14,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5,platform:Mac OS X, +4f0400000000000000b3000000000000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,y:b3,x:b1,start:b10,guide:b8,back:b9,leftstick:b11,rightstick:,leftshoulder:b4,rightshoulder:b6,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b5,righttrigger:b7,platform:Mac OS X, +8f0e0000000000000300000000000000,Piranha xtreme,platform:Mac OS X,x:b3,a:b2,b:b1,y:b0,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a3,righty:a2, +0d0f0000000000004d00000000000000,HORI Gem Pad 3,platform:Mac OS X,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7, +79000000000000000600000000000000,G-Shark GP-702,a:b2,b:b1,x:b3,y:b0,back:b8,start:b9,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:b6,righttrigger:b7,platform:Mac OS X, +4f0400000000000015b3000000000000,Thrustmaster Dual Analog 3.2,platform:Mac OS X,x:b1,a:b0,b:b2,y:b3,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b5,rightshoulder:b6,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3, +AD1B00000000000001F9000000000000,Gamestop BB-070 X360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +050000005769696d6f74652028303000,Wii Remote,a:b4,b:b5,y:b9,x:b10,start:b6,guide:b8,back:b7,dpup:b2,dpleft:b0,dpdown:b3,dpright:b1,leftx:a0,lefty:a1,lefttrigger:b12,righttrigger:,leftshoulder:b11,platform:Mac OS X, + +# Linux +0500000047532047616d657061640000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +03000000ba2200002010000001010000,Jess Technology USB Game Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux, +030000006d04000019c2000010010000,Logitech Cordless RumblePad 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006d0400001dc2000014400000,Logitech F310 Gamepad (XInput),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006d0400001ec2000020200000,Logitech F510 Gamepad (XInput),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006d04000019c2000011010000,Logitech F710 Gamepad (DInput),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006d0400001fc2000005030000,Logitech F710 Gamepad (XInput),a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000004c0500006802000011010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux, +030000004c050000c405000011010000,Sony DualShock 4,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a5,lefttrigger:b6,righttrigger:b7,platform:Linux, +030000006f0e00003001000001010000,EA Sports PS3 Controller,platform:Linux,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7, +03000000de280000ff11000001000000,Valve Streaming Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000014010000,X360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000010010000,X360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400001907000000010000,X360 Wireless Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000100800000100000010010000,Twin USB PS2 Adapter,a:b2,b:b1,y:b0,x:b3,start:b9,guide:,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a2,lefttrigger:b4,righttrigger:b5,platform:Linux, +03000000a306000023f6000011010000,Saitek Cyborg V.1 Game Pad,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a4,lefttrigger:b6,righttrigger:b7,platform:Linux, +030000004f04000020b3000010010000,Thrustmaster 2 in 1 DT,a:b0,b:b2,y:b3,x:b1,start:b9,guide:,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b6,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b5,righttrigger:b7,platform:Linux, +030000004f04000023b3000000010000,Thrustmaster Dual Trigger 3-in-1,platform:Linux,x:b0,a:b1,b:b2,y:b3,back:b8,start:b9,dpleft:h0.8,dpdown:h0.0,dpdown:h0.4,dpright:h0.0,dpright:h0.2,dpup:h0.0,dpup:h0.1,leftshoulder:h0.0,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a5, +030000008f0e00000300000010010000,GreenAsia Inc. USB Joystick ,platform:Linux,x:b3,a:b2,b:b1,y:b0,back:b8,start:b9,dpleft:h0.8,dpdown:h0.0,dpdown:h0.4,dpright:h0.0,dpright:h0.2,dpup:h0.0,dpup:h0.1,leftshoulder:h0.0,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a3,righty:a2, +030000008f0e00001200000010010000,GreenAsia Inc. USB Joystick ,platform:Linux,x:b2,a:b0,b:b1,y:b3,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b5,rightshoulder:b6,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a3,righty:a2, +030000005e0400009102000007010000,X360 Wireless Controller,a:b0,b:b1,y:b3,x:b2,start:b7,guide:b8,back:b6,leftstick:b9,rightstick:b10,leftshoulder:b4,rightshoulder:b5,dpup:b13,dpleft:b11,dpdown:b14,dpright:b12,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5,platform:Linux, +030000006d04000016c2000010010000,Logitech Logitech Dual Action,platform:Linux,x:b0,a:b1,b:b2,y:b3,back:b8,start:b9,dpleft:h0.8,dpdown:h0.0,dpdown:h0.4,dpright:h0.0,dpright:h0.2,dpup:h0.0,dpup:h0.1,leftshoulder:h0.0,dpup:h0.1,leftshoulder:h0.0,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3, +03000000260900008888000000010000,GameCube {WiseGroup USB box},a:b0,b:b2,y:b3,x:b1,start:b7,leftshoulder:,rightshoulder:b6,dpup:h0.1,dpleft:h0.8,rightstick:,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a4,righttrigger:a5,platform:Linux, +030000006d04000011c2000010010000,Logitech WingMan Cordless RumblePad,a:b0,b:b1,y:b4,x:b3,start:b8,guide:b5,back:b2,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:b9,righttrigger:b10,platform:Linux, +030000006d04000018c2000010010000,Logitech Logitech RumblePad 2 USB,platform:Linux,x:b0,a:b1,b:b2,y:b3,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3, +05000000d6200000ad0d000001000000,Moga Pro,platform:Linux,a:b0,b:b1,y:b3,x:b2,start:b6,leftstick:b7,rightstick:b8,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a5,righttrigger:a4, +030000004f04000009d0000000010000,Thrustmaster Run N Drive Wireless PS3,platform:Linux,a:b1,b:b2,x:b0,y:b3,start:b9,guide:b12,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7, +030000004f04000008d0000000010000,Thrustmaster Run N Drive Wireless,platform:Linux,a:b1,b:b2,x:b0,y:b3,start:b9,back:b8,leftstick:b10,rightstick:b11,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a5,lefttrigger:b6,righttrigger:b7, +0300000000f000000300000000010000,RetroUSB.com RetroPad,a:b1,b:b5,x:b0,y:b4,back:b2,start:b3,leftshoulder:b6,rightshoulder:b7,leftx:a0,lefty:a1,platform:Linux, +0300000000f00000f100000000010000,RetroUSB.com Super RetroPort,a:b1,b:b5,x:b0,y:b4,back:b2,start:b3,leftshoulder:b6,rightshoulder:b7,leftx:a0,lefty:a1,platform:Linux, +030000006f0e00001f01000000010000,Generic X-Box pad,platform:Linux,x:b2,a:b0,b:b1,y:b3,back:b6,guide:b8,start:b7,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4, +03000000280400000140000000010000,Gravis GamePad Pro USB ,platform:Linux,x:b0,a:b1,b:b2,y:b3,back:b8,start:b9,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftx:a0,lefty:a1, +030000005e0400008902000021010000,Microsoft X-Box pad v2 (US),platform:Linux,x:b3,a:b0,b:b1,y:b4,back:b6,start:b7,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b5,lefttrigger:a2,rightshoulder:b2,righttrigger:a5,leftstick:b8,rightstick:b9,leftx:a0,lefty:a1,rightx:a3,righty:a4, +030000006f0e00001e01000011010000,Rock Candy Gamepad for PS3,platform:Linux,a:b1,b:b2,x:b0,y:b3,back:b8,start:b9,guide:b12,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2, +03000000250900000500000000010000,Sony PS2 pad with SmartJoy adapter,platform:Linux,a:b2,b:b1,y:b0,x:b3,start:b8,back:b9,leftstick:b10,rightstick:b11,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b4,righttrigger:b5, +030000008916000000fd000024010000,Razer Onza Tournament,a:b0,b:b1,y:b3,x:b2,start:b7,guide:b8,back:b6,leftstick:b9,rightstick:b10,leftshoulder:b4,rightshoulder:b5,dpup:b13,dpleft:b11,dpdown:b14,dpright:b12,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5,platform:Linux, +030000004f04000000b3000010010000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,y:b3,x:b1,start:b10,guide:b8,back:b9,leftstick:b11,rightstick:b12,leftshoulder:b4,rightshoulder:b6,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b5,righttrigger:b7,platform:Linux, +03000000ad1b000001f5000033050000,Hori Pad EX Turbo 2,a:b0,b:b1,y:b3,x:b2,start:b7,guide:b8,back:b6,leftstick:b9,rightstick:b10,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5,platform:Linux, +050000004c050000c405000000010000,PS4 Controller (Bluetooth),a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +060000004c0500006802000000010000,PS3 Controller (Bluetooth),a:b14,b:b13,y:b12,x:b15,start:b3,guide:b16,back:b0,leftstick:b1,rightstick:b2,leftshoulder:b10,rightshoulder:b11,dpup:b4,dpleft:b7,dpdown:b6,dpright:b5,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b8,righttrigger:b9,platform:Linux, +03000000790000000600000010010000,DragonRise Inc. Generic USB Joystick ,platform:Linux,x:b3,a:b2,b:b1,y:b0,back:b8,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a3,righty:a4, +03000000666600000488000000010000,Super Joy Box 5 Pro,platform:Linux,a:b2,b:b1,x:b3,y:b0,back:b9,start:b8,leftshoulder:b6,rightshoulder:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b4,righttrigger:b5,dpup:b12,dpleft:b15,dpdown:b14,dpright:b13, +05000000362800000100000002010000,OUYA Game Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,platform:Linux,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b2, +05000000362800000100000003010000,OUYA Game Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,platform:Linux,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b2, +030000008916000001fd000024010000,Razer Onza Classic Edition,platform:Linux,x:b2,a:b0,b:b1,y:b3,back:b6,guide:b8,start:b7,dpleft:b11,dpdown:b14,dpright:b12,dpup:b13,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4, +030000005e040000d102000001010000,Microsoft X-Box One pad,platform:Linux,x:b2,a:b0,b:b1,y:b3,back:b6,guide:b8,start:b7,dpleft:h0.8,dpdown:h0.0,dpdown:h0.4,dpright:h0.0,dpright:h0.2,dpup:h0.0,dpup:h0.1,leftshoulder:h0.0,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4, +03000000790000001100000010010000,RetroLink Saturn Classic Controller,platform:Linux,x:b3,a:b0,b:b1,y:b4,back:b5,guide:b2,start:b8,leftshoulder:b6,rightshoulder:b7,leftx:a0,lefty:a1, +050000007e0500003003000001000000,Nintendo Wii U Pro Controller,platform:Linux,a:b0,b:b1,x:b3,y:b2,back:b8,start:b9,guide:b10,leftshoulder:b4,rightshoulder:b5,leftstick:b11,rightstick:b12,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7,dpup:b13,dpleft:b15,dpdown:b14,dpright:b16, +030000005e0400008e02000004010000,Microsoft X-Box 360 pad,platform:Linux,a:b0,b:b1,x:b2,y:b3,back:b6,start:b7,guide:b8,leftshoulder:b4,rightshoulder:b5,leftstick:b9,rightstick:b10,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2, +030000000d0f00002200000011010000,HORI CO.,LTD. REAL ARCADE Pro.V3,platform:Linux,x:b0,a:b1,b:b2,y:b3,back:b8,guide:b12,start:b9,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1, +030000000d0f00001000000011010000,HORI CO.,LTD. FIGHTING STICK 3,platform:Linux,x:b0,a:b1,b:b2,y:b3,back:b8,guide:b12,start:b9,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7 +03000000f0250000c183000010010000,Goodbetterbest Ltd USB Controller,platform:Linux,x:b0,a:b1,b:b2,y:b3,back:b8,guide:b12,start:b9,dpleft:h0.8,dpdown:h0.0,dpdown:h0.4,dpright:h0.0,dpright:h0.2,dpup:h0.0,dpup:h0.1,leftshoulder:h0.0,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3, diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/guns.json new file mode 100644 index 00000000..32f32fd3 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/guns.json @@ -0,0 +1,467 @@ +{ + "Version": 3, + "Guns": [ + { + "Index": 0, + "Pic": "knife", + "Icon": "knife", + "Name": "Knife", + "Description": "A melee weapon. This weapon is used automatically. Simply walk into and an enemy to slash and cause damage. You will also damage objects when you walk into them, unless they are explosives. Using the attack key just makes you hold your position.\n\nDamage: 2\nAttack rate: 420 slashes/minute\nCost: 0", + "Bullet": "knife", + "Cost": 0, + "Sound": "", + "SwitchSound": "knife_switch", + "SoundLockLength": 10, + "CanShoot": false + }, + { + "Pic": "", + "Icon": "fist", + "Name": "Fists", + "Description": "A melee weapon of last resort", + "Bullet": "fist", + "Cost": 0, + "Lock": 30, + "Sound": "", + "SwitchSound": "knuckles", + "CanShoot": false, + "CanDrop": false + }, + { + "Index": 1, + "Pic": "chaingun", + "Name": "Machine gun", + "Icon": "machine_gun", + "Description": "A rapidly firing bullet hose. Its bullets have a medium range, and the gun has a slight spread.\n\nDamage: 10\nRate of fire: 700 round/min\nLifespan: 0.85s\nSpeed: 768\nCost: 1", + "Bullet": "mg", + "Cost": 1, + "Lock": 6, + "Sound": "mg", + "SwitchSound": "mg_switch", + "Recoil": 0.17, + "MuzzleFlashParticle": "muzzle_flash_mg", + "Brass": "brass_big", + "Ammo": "Bullets" + }, + { + "Index": 2, + "Pic": "", + "IsGrenade": true, + "Name": "Grenades", + "Description": "Throw timed grenades which will bounce off the ground, walls and enemies. Each grenade causes a big explosion after the end of its lifespan. It is very damaging to anyone caught by it - including the thrower! Grenades are quite expensive, so use sparingly if you aim for a high score.\n\nDamage: Large explosion\nRate of fire: 140 round/min\nRange: Medium\nLifespan: 1.42s\nSpeed: 384\nCost: 20", + "Bullet": "grenade", + "Cost": 20, + "Lock": 30, + "Sound": "launch", + "SwitchSound": "grenade_pickup", + "Elevation": 24, + "Ammo": "Grenades" + }, + { + "Index": 3, + "Pic": "flamer", + "Grips": 2, + "Name": "Flamer", + "Icon": "flamer", + "Description": "This short-range tactical flamethrower releases flames which burn enemies, causing high damage. The flames can also be reflected by walls. The flamer can be a deadly weapon when used by a skilled close quarters fighter.\n\nDamage: 12\nRate of fire: 700 round/min\nLifespan: 0.42s\nSpeed: 1024\nCost: 1", + "Bullet": "flame", + "Cost": 1, + "Lock": 6, + "Sound": "flamer", + "SwitchSound": "flamer_switch", + "SoundLockLength": 36, + "MuzzleFlashParticle": "muzzle_flash_flamer", + "Ammo": "Gas tank" + }, + { + "Index": 4, + "Pic": "shotgun", + "Grips": 2, + "Name": "Shotgun", + "Icon": "shotgun", + "Description": "The shotgun is slow and only has a short range, but it fires 5 bullets per shot in a large spread. The shotgun is most effective in close quarters combat but difficult to use in long range.\n\nDamage: 15 per bullet (max. 75)\nRate of fire: 84 round/min\nLifespan: 0.71s\nSpeed: 640\nCost: 5", + "Bullet": "shotgun", + "Cost": 5, + "Lock": 50, + "ReloadLead": 10, + "Sound": "shotgun", + "ReloadSound": "shotgun_r", + "SwitchSound": "shotgun_r", + "SpreadCount": 5, + "SpreadWidth": 0.2, + "MuzzleFlashParticle": "muzzle_flash_shotgun", + "Brass": "shotshell", + "Ammo": "Shells" + }, + { + "Index": 5, + "Name": "Powergun", + "Icon": "powergun", + "Description": "This futuristic gun fires very fast and long range energy lasers. The powergun always fires in a perfectly straight line.\n\nDamage: 20\nRate of fire: 210 round/min\nLifespan: 1.28s\nSpeed: 768\nCost: 2", + "Bullet": "laser", + "Cost": 2, + "Lock": 20, + "Sound": "fusion", + "SwitchSound": "powergun_switch", + "MuzzleFlashParticle": "muzzle_flash_powergun", + "Ammo": "Cells" + }, + { + "Index": 6, + "Pic": "", + "IsGrenade": true, + "Name": "Shrapnel bombs", + "Description": "A throwable timed weapon which bounces around for a while. When its lifespan is over, the shrapnel bomb will release 16 dangerous bullets in a circle pattern.\n\nDamage: 40 per bullet (max. 640)\nRate of fire: 140 round/min\nRange of bomb: Medium\nLifespan of bomb: 1.42s\nSpeed of bomb: 384\nCost: 20", + "Bullet": "shrapnelbomb", + "Cost": 20, + "Lock": 30, + "Sound": "launch", + "SwitchSound": "grenade_pickup", + "Elevation": 24, + "Ammo": "Frag grenades" + }, + { + "Index": 7, + "Pic": "", + "IsGrenade": true, + "Name": "Molotovs", + "Description": "A throwable weapon which will burst into fire when it hits the ground, at wall or an enemy. The flames are very hot, so use the molotovs with care!\n\nDamage: Fire\nRate of fire: 140 round/min\nRange: Short\nSpeed: 384\nCost: 20", + "Bullet": "molotov", + "Cost": 20, + "Lock": 30, + "Sound": "launch", + "SwitchSound": "molotov_pickup", + "Elevation": 24, + "Ammo": "Molotovs" + }, + { + "Index": 8, + "Pic": "rifle", + "Grips": 2, + "Name": "Sniper rifle", + "Icon": "sniper", + "Description": "A tactical weapon which fires a strong long-range projectile which makes 50 damage on a hit. Its reload time is rather long. The sniper rifle always fires in a perfecly straight line.\n\nDamage: 50\nRate of fire: 42 round/min\nLifespan: 0.42s\nSpeed: 1024\nCost: 5", + "Bullet": "sniper", + "Cost": 5, + "Lock": 100, + "ReloadLead": 15, + "Sound": "powergun", + "ReloadSound": "powergun_r", + "SwitchSound": "powergun_r", + "MuzzleFlashSprite": "muzzle_flash_big", + "MuzzleFlashColor": "00ffff", + "MuzzleFlashDuration": 10, + "Ammo": "Cells", + "Shake": { + "Amount": 10, + "CameraSubjectOnly": true + } + }, + { + "Index": 9, + "Pic": "", + "IsGrenade": true, + "Name": "Prox. mine", + "Description": "Proximity mine. You will place a mine on the ground which will become active after 2 seconds. When the mine is active, it will explode as soon as any player (including the placer) is careless enough to walk in proximity to it. So don't wait for too long after you placed a mine.\n\nDamage: Large explosion\nRate of fire: 42 round/min\nCost: 10", + "Bullet": "proxmine", + "Cost": 10, + "Lock": 100, + "ReloadLead": 15, + "Sound": "hahaha", + "ReloadSound": "package_r", + "SwitchSound": "mine_switch", + "MuzzleHeight": 0, + "Ammo": "Mines" + }, + { + "Index": 10, + "Pic": "", + "IsGrenade": true, + "Name": "Dynamite", + "Description": "You will light and place a stick of dynamite on the ground, which will burst in a large explosion after 3 seconds.\n\nDamage: Large explosion\nRate of fire: 42 round/min\nLifespan: 3.00s\nCost: 7", + "Bullet": "dynamite", + "Cost": 7, + "Lock": 100, + "ReloadLead": 15, + "Sound": "hahaha", + "ReloadSound": "package_r", + "SwitchSound": "package_r", + "MuzzleHeight": 0, + "Ammo": "Dynamite" + }, + { + "Index": 11, + "Pic": "", + "IsGrenade": true, + "Name": "Chemo bombs", + "Description": "A bouncing grenade that bursts into a cloud of poison gas. Poisoned players lose health constantly for a while.\n\nDamage: Poison\nRate of fire: 140 round/min\nRange: Medium\nLifespan: 1.42s\nSpeed: 384\nCost: 7", + "Bullet": "gasbomb", + "Cost": 7, + "Lock": 30, + "Sound": "launch", + "SwitchSound": "grenade_pickup", + "Elevation": 24, + "Ammo": "Gas bombs" + }, + { + "Index": 12, + "Pic": "blaster_white", + "Name": "Petrify gun", + "Icon": "petrifier", + "Description": "This gun fires projectiles that turn enemies into stone for short time, making them unable to walk and shoot. This gun has no spread.\n\nDamage: 0\nRate of fire: 42 round/min\nLifespan: 0.64s\nSpeed: 768\nCost: 10", + "Bullet": "petrifier", + "Cost": 10, + "Lock": 100, + "ReloadLead": 15, + "Sound": "powergun", + "ReloadSound": "powergun_r", + "SwitchSound": "powergun_r", + "MuzzleFlashParticle": "muzzle_flash_petrifier", + "Ammo": "Cells" + }, + { + "Index": 13, + "Pic": "zapper", + "Name": "Browny gun", + "Icon": "browny_gun", + "Description": "A weapon of alien origins. As soon as you pull the trigger, a projectile will be released which will take a completely unpredictable path. Hitting something with this strange gun is largely luck-based. It is more likely to hit something when the browny gun is used in close quarters combat.\n\nDamage: 15\nRate of fire: 140 round/min\nLifespan: 0.64s\nSpeed: 768\nCost: 5", + "Bullet": "rapid", + "Cost": 5, + "Lock": 30, + "Sound": "fusion", + "SwitchSound": "powergun_r", + "MuzzleFlashParticle": "muzzle_flash_browny", + "Ammo": "Cells" + }, + { + "Index": 14, + "Pic": "", + "IsGrenade": true, + "Name": "Confusion bombs", + "Description": "A throwable weapon which bounces and bursts in a cloud of confusion gas after its lifespan. Players affected by confusion gas walk in the opposite direction they intended to and the effect wears off after a while.\n\nDamage: 0\nRate of fire: 140 round/min\nRange: Medium\nLifespan: 1.42s\nSpeed: 384\nCost: 10", + "Bullet": "confusebomb", + "Cost": 10, + "Lock": 30, + "Sound": "launch", + "SwitchSound": "grenade_pickup", + "Elevation": 24, + "Ammo": "Confusion bombs" + }, + { + "Index": 15, + "Pic": "chemogun", + "Grips": 2, + "Name": "Chemo gun", + "Icon": "chemo_gun", + "Description": "This weapon releases a short line of poison gas clouds. Players which walk into poison clouds will be poisoned and start to constantly health for a short time.\n\nDamage: Poison\nRate of fire: 700 round/min\nLifespan: 0.5s\nSpeed: 384\nCost: 1", + "Bullet": "gas", + "Cost": 1, + "Lock": 6, + "Sound": "flamer", + "SwitchSound": "flamer_switch", + "SoundLockLength": 36, + "MuzzleFlashParticle": "muzzle_flash_gasgun", + "Ammo": "Gas tank" + }, + { + "Index": 16, + "Pic": "pulserifle", + "Grips": 2, + "Name": "Pulse rifle", + "Icon": "pulse_rifle", + "Description": "The pulse rifle fires pulse balls with a stunningly high rate of fire, but in a rather short range and also with a large spread.\n\nDamage: 6\nRate of fire: 1050 round/min\nLifespan: 0.35s\nSpeed: 1280\nCost: 1", + "Bullet": "pulse", + "Cost": 1, + "Lock": 4, + "Sound": "pulse", + "SwitchSound": "pulse_switch", + "Recoil": 0.37, + "MuzzleFlashParticle": "muzzle_flash_pulse", + "Ammo": "Mini cells" + }, + { + "Index": 17, + "Pic": "rocket_red", + "Name": "Heatseeker", + "Icon": "heatseeker", + "Description": "This is a rocket launcher which fires a slow heat-seeking rocket which will follow nearby enemies. The rocket can't make turns very quickly and may easily miss a target, so you still have to aim.\n\nDamage: 20\nRate of fire: 140 round/min\nLifespan: 0.85s\nSpeed: 512\nCost: 7", + "Bullet": "heatseeker", + "Cost": 7, + "Lock": 30, + "Sound": "swell", + "SwitchSound": "heatseeker_switch", + "MuzzleFlashParticle": "muzzle_flash_heatseeker", + "Ammo": "Rockets" + }, + { + "Name": "Swarmer", + "Pic": "rocket_green", + "Icon": "swarmer_gun", + "Description": "The swarmer fires four fast heat-seeking rockets in one shot. They will follow enemies and cause direct damage on impact. The rockets are able to turn around quickly which may make it easier to hit targets.\n\nDamage: 12 per rocket (max. 48)\nRate of fire: 70 round/min\nLifespan: 1.00s\nSpeed: 700\nCost: 15", + "Bullet": "swarmer", + "Cost": 15, + "Lock": 60, + "Recoil": 0.2, + "SpreadCount": 4, + "SpreadWidth": 0.4, + "Sound": "swarmer", + "SwitchSound": "swarmer_switch", + "MuzzleFlashParticle": "muzzle_flash_heatseeker", + "Ammo": "Rockets" + }, + { + "Name": "Launcher", + "Pic": "rocket_blue", + "Icon": "launcher", + "Description": "A rocket launcher. It fires a single rocket which is slow at the beginning but it will accellerate rapidly. The rocket causes a small but highly damaging explosion on impact.\n\nDamage: Small explosion\nRate of fire: 60 round/min\nLifespan: 1.71s\nInitial speed: 120 (rocket will accellerate)\nCost: 15", + "Bullet": "rocket", + "Cost": 15, + "Lock": 70, + "Sound": "rocket_launch", + "SwitchSound": "launcher_switch", + "MuzzleFlashParticle": "muzzle_flash_shotgun", + "Ammo": "Rockets", + "Shake": { + "Amount": 8, + "CameraSubjectOnly": true + } + }, + { + "Pic": "pistol", + "Name": "Pistol", + "Icon": "pistol", + "Description": "A short range, medium rate of fire weapon, the pistol has fast moving bullets for hit-and-run tactics.\nIts 0-cost-per-shot makes this a versatile yet economical weapon, great for picking off lone targets.\n\nDamage: 12\nRate of fire: 232 round/min\nLifespan: 0.38s\nSpeed: 1100\nCost: 0", + "Bullet": "9mm", + "Cost": 0, + "Lock": 18, + "Sound": "pistol", + "SwitchSound": "pistol_switch", + "Recoil": 0.1, + "Brass": "brass" + }, + { + "Name": "Akimbo Pistols", + "Prerequisite": "Pistol", + "Icon": "akimbo_pistols", + "SwitchSound": "pistol_switch", + "Guns": ["akimbo_pistol", "akimbo_pistol"], + "Lock": 9 + } + ], + "PseudoGuns" : [ + { + "Pic": "", + "Name": "fire_explosion", + "Bullet": "molotov_flame", + "Recoil": 6.28, + "SpreadCount": 16, + "ElevationLow": 22, + "ElevationHigh": 30 + }, + { + "Pic": "", + "Name": "molotov_explosion", + "Bullet": "molotov_flame", + "Sound": "glass_break", + "Recoil": 6.28, + "SpreadCount": 16, + "ElevationLow": 22, + "ElevationHigh": 30 + }, + { + "Pic": "", + "Name": "gas_poison_explosion", + "Bullet": "gas_cloud_poison", + "Recoil": 6.28, + "SpreadCount": 8, + "Sound": "gas_leak" + }, + { + "Pic": "", + "Name": "gas_confuse_explosion", + "Bullet": "gas_cloud_confuse", + "Recoil": 6.28, + "SpreadCount": 8, + "Sound": "gas_leak" + }, + { + "Pic": "", + "Name": "explosion1", + "Bullet": "fireball1", + "Sound": "explosion", + "SpreadCount": 8, + "SpreadWidth": 0.79, + "AngleOffset": 0.39, + "Shake": { + "Amount": 15 + } + }, + { + "Pic": "", + "Name": "explosion2", + "Bullet": "fireball2", + "Sound": "", + "SpreadCount": 8, + "SpreadWidth": 0.79, + "ElevationLow": 15, + "ElevationHigh": 17 + }, + { + "Pic": "", + "Name": "explosion3", + "Bullet": "fireball3", + "Sound": "", + "SpreadCount": 8, + "SpreadWidth": 0.79, + "AngleOffset": 0.39, + "Elevation": 21 + }, + { + "Pic": "", + "Name": "frag_explosion", + "Bullet": "frag", + "SpreadCount": 16, + "SpreadWidth": 0.39, + "AngleOffset": 0.2, + "Shake": { + "Amount": 10 + } + }, + { + "Pic": "", + "Name": "activemine", + "Bullet": "activemine", + "Sound": "mine_arm" + }, + { + "Pic": "", + "Name": "triggeredmine", + "Bullet": "triggeredmine", + "Sound": "mine_trigger" + }, + { + "Pic": "", + "Name": "explosion_small", + "Bullet": "explosion_small", + "Sound": "explosion_small" + }, + { + "Pic": "", + "Name": "big_quake", + "Sound": "", + "Shake": { + "Amount": 22 + } + }, + { + "Pic": "pistol", + "Name": "akimbo_pistol", + "Bullet": "9mm", + "Cost": 1, + "Lock": 18, + "Sound": "pistol", + "Recoil": 0.15, + "Brass": "brass" + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/map_objects.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/map_objects.json new file mode 100644 index 00000000..71968466 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/map_objects.json @@ -0,0 +1,2051 @@ +{ + "Version": 3, + "MapObjects": [ + { + "Name": "barrel_blue", + "Pic": { + "Type": "Normal", + "Pic": "barrel_blue" + }, + "Wreck": "barrel_blue_wreck", + "Health": 40, + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "barrel_blue_wreck", + "Pic": { + "Type": "Normal", + "Pic": "barrel_blue_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "barrel_blue2", + "Pic": { + "Type": "Normal", + "Pic": "barrel_blue2" + }, + "Wreck": "barrel_blue2_wreck", + "Health": 40, + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "barrel_blue2_wreck", + "Pic": { + "Type": "Normal", + "Pic": "barrel_blue2_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "barrel_green", + "Pic": { + "Type": "Normal", + "Pic": "barrel_green" + }, + "Wreck": "barrel_green_wreck", + "Health": 40, + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "barrel_green_wreck", + "Pic": { + "Type": "Normal", + "Pic": "barrel_green_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "box", + "Pic": { + "Type": "Normal", + "Pic": "box" + }, + "Wreck": "box_wreck", + "Health": 20, + "Flags": ["Outside", "NoWalls"], + "DestroySpawn": [ + { + "Type": "Ammo", + "SpawnChance": 0.1 + }, + { + "Type": "Health", + "SpawnChance": 0.2 + } + ] + }, + { + "Name": "box2", + "Pic": { + "Type": "Normal", + "Pic": "box2" + }, + "Wreck": "box_wreck", + "Health": 20, + "Flags": ["Outside", "NoWalls"], + "DestroySpawn": [ + { + "Type": "Ammo", + "SpawnChance": 0.1 + }, + { + "Type": "Health", + "SpawnChance": 0.2 + } + ] + }, + { + "Name": "box_wreck", + "Pic": { + "Type": "Normal", + "Pic": "box_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "crate", + "Pic": { + "Type": "Normal", + "Pic": "crate" + }, + "Wreck": "crate_wreck", + "Health": 20, + "Flags": ["Outside", "NoWalls"], + "DestroySpawn": [ + { + "Type": "Ammo", + "SpawnChance": 0.1 + }, + { + "Type": "Gun", + "SpawnChance": 0.05 + } + ] + }, + { + "Name": "crate_wreck", + "Pic": { + "Type": "Normal", + "Pic": "crate_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "crate2", + "Pic": { + "Type": "Normal", + "Pic": "crate2" + }, + "Wreck": "crate2_wreck", + "Health": 20, + "Flags": ["Outside", "NoWalls"], + "DestroySpawn": [ + { + "Type": "Ammo", + "SpawnChance": 0.1 + }, + { + "Type": "Gun", + "SpawnChance": 0.05 + } + ] + }, + { + "Name": "crate2_wreck", + "Pic": { + "Type": "Normal", + "Pic": "crate2_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "cabinet", + "Pic": { + "Type": "Normal", + "Pic": "cabinet" + }, + "Wreck": "cabinet_wreck", + "Health": 20, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"], + "DestroySpawn": [ + { + "Type": "Gun", + "SpawnChance": 0.05 + } + ] + }, + { + "Name": "cabinet_wreck", + "Pic": { + "Type": "Normal", + "Pic": "cabinet_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "cabinet_server", + "Pic": { + "Type": "Animated", + "Sprites": "cabinet_server", + "TicksPerFrame": 20 + }, + "Wreck": "cabinet_server_wreck", + "Health": 20, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"], + "DestroySpawn": [ + { + "Type": "Gun", + "SpawnChance": 0.05 + } + ], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "cabinet_server_wreck", + "Pic": { + "Type": "Normal", + "Pic": "cabinet_server_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "plant", + "Pic": { + "Type": "Normal", + "Pic": "plant" + }, + "Wreck": "plant_wreck", + "Size": [8, 6], + "Health": 20, + "Flags": ["Inside", "OneOrMoreWalls"], + "DestroySpawn": [ + { + "Type": "Health", + "SpawnChance": 0.2 + } + ] + }, + { + "Name": "plant_wreck", + "Pic": { + "Type": "Normal", + "Pic": "plant_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/grass", + "Flags": ["Inside", "OneOrMoreWalls"] + }, + { + "Name": "flower", + "Pic": { + "Type": "Normal", + "Pic": "flower" + }, + "Wreck": "flower_wreck", + "Size": [8, 6], + "Health": 20, + "Flags": ["Inside", "OneOrMoreWalls"], + "DestroySpawn": [ + { + "Type": "Health", + "SpawnChance": 0.2 + } + ] + }, + { + "Name": "flower_wreck", + "Pic": { + "Type": "Normal", + "Pic": "flower_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/grass", + "Flags": ["Inside", "OneOrMoreWalls"] + }, + { + "Name": "plant_brown", + "Pic": { + "Type": "Normal", + "Pic": "plant_brown" + }, + "Wreck": "plant_brown_wreck", + "Size": [8, 6], + "Offset": [-4, -12], + "Health": 20, + "Flags": ["Inside", "OneOrMoreWalls"], + "DestroySpawn": [ + { + "Type": "Health", + "SpawnChance": 0.2 + } + ] + }, + { + "Name": "plant_brown_wreck", + "Pic": { + "Type": "Normal", + "Pic": "plant_brown_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/grass", + "Flags": ["Inside", "OneOrMoreWalls"] + }, + { + "Name": "bench", + "Pic": { + "Type": "Normal", + "Pic": "bench" + }, + "Wreck": "bench_wreck", + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "bench_wreck", + "Pic": { + "Type": "Normal", + "Pic": "bench_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table", + "Pic": { + "Type": "Normal", + "Pic": "table" + }, + "Wreck": "table_wreck", + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_wreck", + "Pic": { + "Type": "Normal", + "Pic": "table_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_wood", + "Pic": { + "Type": "Normal", + "Pic": "table_wood" + }, + "Wreck": "table_wood_wreck", + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_wood_candle", + "Pic": { + "Type": "Normal", + "Pic": "table_wood_candle" + }, + "Wreck": "table_wood_wreck", + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_clothed", + "Pic": { + "Type": "Normal", + "Pic": "table_clothed" + }, + "Wreck": "table_wood_wreck", + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_wood_round", + "Pic": { + "Type": "Normal", + "Pic": "table_wood_round" + }, + "Wreck": "table_wood_round_wreck", + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_wood_round_candle", + "Pic": { + "Type": "Normal", + "Pic": "table_wood_round_candle" + }, + "Wreck": "table_wood_round_wreck", + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_wood_round_wreck", + "Pic": { + "Type": "Normal", + "Pic": "table_wood_round_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_wood_round_clothed", + "Pic": { + "Type": "Normal", + "Pic": "table_wood_round_clothed" + }, + "Wreck": "table_wood_round_clothed_wreck", + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_wood_round_clothed_wreck", + "Pic": { + "Type": "Normal", + "Pic": "table_wood_round_clothed_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_wood_round_terminal", + "Pic": { + "Type": "Normal", + "Pic": "table_wood_round_terminal" + }, + "Wreck": "table_wood_round_terminal_wreck", + "Health": 40, + "Flags": ["Inside", "NoWalls"], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "table_wood_round_terminal_wreck", + "Pic": { + "Type": "Normal", + "Pic": "table_wood_round_terminal_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_and_chairs", + "Pic": { + "Type": "Normal", + "Pic": "table_and_chairs" + }, + "Wreck": "table_wood_round_wreck", + "Health": 30, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_and_chairs_red", + "Pic": { + "Type": "Normal", + "Pic": "table_and_chairs_red" + }, + "Wreck": "table_wood_round_wreck", + "Health": 30, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_steel", + "Pic": { + "Type": "Normal", + "Pic": "table_steel" + }, + "Wreck": "safe_wreck", + "Health": 30, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_plastic", + "Pic": { + "Type": "Normal", + "Pic": "table_plastic" + }, + "Wreck": "table_plastic_wreck", + "Health": 30, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_plastic_wreck", + "Pic": { + "Type": "Normal", + "Pic": "table_plastic_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "chair", + "Pic": { + "Type": "Normal", + "Pic": "chair" + }, + "Wreck": "chair_wreck", + "Size": [8, 6], + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "chair_wreck", + "Pic": { + "Type": "Normal", + "Pic": "chair_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "chair_dining_left", + "Pic": { + "Type": "Normal", + "Pic": "chair_dining_left" + }, + "Wreck": "table_wood_round_wreck", + "Size": [8, 6], + "Offset": [-4, -10], + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "chair_dining_right", + "Pic": { + "Type": "Normal", + "Pic": "chair_dining_right" + }, + "Wreck": "table_wood_round_wreck", + "Size": [8, 6], + "Offset": [-4, -10], + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "chair_dining_top", + "Pic": { + "Type": "Normal", + "Pic": "chair_dining_top" + }, + "Wreck": "table_wood_round_wreck", + "Size": [8, 6], + "Offset": [-4, -10], + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "chair_task", + "Pic": { + "Type": "Normal", + "Pic": "chair_task" + }, + "Wreck": "chair_task_wreck", + "Size": [8, 6], + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "chair_task_wreck", + "Pic": { + "Type": "Normal", + "Pic": "chair_task_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "bed", + "Pic": { + "Type": "Normal", + "Pic": "bed" + }, + "Wreck": "safe_wreck", + "Health": 50, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "column", + "Pic": { + "Type": "Normal", + "Pic": "column" + }, + "Wreck": "cabinet_wreck", + "Size": [8, 6], + "Health": 60, + "Flags": ["Outside", "NoWalls"], + "DestroySpawn": [ + { + "Type": "Ammo", + "SpawnChance": 0.1 + }, + { + "Type": "Health", + "SpawnChance": 0.2 + } + ], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "cabinet_wreck", + "Pic": { + "Type": "Normal", + "Pic": "cabinet_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["NoWalls"] + }, + { + "Name": "rod", + "Pic": { + "Type": "Normal", + "Pic": "rod" + }, + "Wreck": "rod_wreck", + "Size": [8, 6], + "Health": 60, + "Flags": ["Outside", "NoWalls"], + "DestroySpawn": [ + { + "Type": "Ammo", + "SpawnChance": 0.1 + }, + { + "Type": "Health", + "SpawnChance": 0.2 + } + ], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "rod_wreck", + "Pic": { + "Type": "Normal", + "Pic": "rod_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "rod_light", + "Pic": { + "Type": "Normal", + "Pic": "rod_light" + }, + "Wreck": "rod_light_wreck", + "Size": [8, 6], + "Offset": [-4, -18], + "Health": 60, + "Flags": ["Outside", "NoWalls"], + "DestroySpawn": [ + { + "Type": "Ammo", + "SpawnChance": 0.1 + }, + { + "Type": "Health", + "SpawnChance": 0.2 + } + ], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "rod_light_wreck", + "Pic": { + "Type": "Normal", + "Pic": "rod_light_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "barrel_wood", + "Pic": { + "Type": "Normal", + "Pic": "barrel_wood" + }, + "Wreck": "barrel_wood_wreck", + "Health": 40, + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "barrel_wood2", + "Pic": { + "Type": "Normal", + "Pic": "barrel_wood2" + }, + "Wreck": "barrel_wood2_wreck", + "Health": 40, + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "barrel_wood2_wreck", + "Pic": { + "Type": "Normal", + "Pic": "barrel_wood2_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "box_gray", + "Pic": { + "Type": "Normal", + "Pic": "box_gray" + }, + "Wreck": "table_wood_wreck", + "Health": 20, + "Flags": ["Outside", "OneWall"], + "DestroySpawn": [ + { + "Type": "Ammo", + "SpawnChance": 0.1 + }, + { + "Type": "Health", + "SpawnChance": 0.2 + }, + { + "Type": "Gun", + "SpawnChance": 0.05 + } + ] + }, + { + "Name": "box_green", + "Pic": { + "Type": "Normal", + "Pic": "box_green" + }, + "Wreck": "table_wood_wreck", + "Health": 20, + "Flags": ["Outside", "OneWall"], + "DestroySpawn": [ + { + "Type": "Ammo", + "SpawnChance": 0.1 + }, + { + "Type": "Health", + "SpawnChance": 0.2 + }, + { + "Type": "Gun", + "SpawnChance": 0.05 + } + ] + }, + { + "Name": "box_wood", + "Pic": { + "Type": "Normal", + "Pic": "box_wood" + }, + "Wreck": "table_wood_wreck", + "Health": 20, + "Flags": ["Outside", "OneWall"], + "DestroySpawn": [ + { + "Type": "Ammo", + "SpawnChance": 0.1 + }, + { + "Type": "Health", + "SpawnChance": 0.2 + }, + { + "Type": "Gun", + "SpawnChance": 0.05 + } + ] + }, + { + "Name": "box3_gray", + "Pic": { + "Type": "Normal", + "Pic": "box3_gray" + }, + "Wreck": "box3_gray_wreck", + "Health": 20, + "Flags": ["Outside", "OneWall"], + "DestroySpawn": [ + { + "Type": "Ammo", + "SpawnChance": 0.1 + }, + { + "Type": "Health", + "SpawnChance": 0.2 + }, + { + "Type": "Gun", + "SpawnChance": 0.05 + } + ] + }, + { + "Name": "box3_gray_wreck", + "Pic": { + "Type": "Normal", + "Pic": "box3_gray_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "box3_green", + "Pic": { + "Type": "Normal", + "Pic": "box3_green" + }, + "Wreck": "box3_green_wreck", + "Health": 20, + "Flags": ["Outside", "OneWall"], + "DestroySpawn": [ + { + "Type": "Ammo", + "SpawnChance": 0.1 + }, + { + "Type": "Health", + "SpawnChance": 0.2 + }, + { + "Type": "Gun", + "SpawnChance": 0.05 + } + ] + }, + { + "Name": "box3_green_wreck", + "Pic": { + "Type": "Normal", + "Pic": "box3_green_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "floor_console", + "Pic": { + "Type": "Normal", + "Pic": "floor_console" + }, + "Wreck": "floor_console_wreck", + "Health": 20, + "Flags": ["Outside", "OneWall"], + "DestroySpawn": [ + { + "Type": "Ammo", + "SpawnChance": 0.1 + }, + { + "Type": "Gun", + "SpawnChance": 0.05 + } + ], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "floor_console_wreck", + "Pic": { + "Type": "Normal", + "Pic": "floor_console_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "bookshelf", + "Pic": { + "Type": "Normal", + "Pic": "bookshelf" + }, + "Offset": [-8, -15], + "Wreck": "table_wood_wreck", + "Size": [16, 6], + "Health": 20, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"], + "DestroySpawn": [ + { + "Type": "Ammo", + "SpawnChance": 0.1 + } + ] + }, + { + "Name": "bookshelf2", + "Pic": { + "Type": "Normal", + "Pic": "bookshelf2" + }, + "Offset": [-8, -15], + "Wreck": "bookshelf2_wreck", + "Size": [16, 6], + "Health": 20, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"], + "DestroySpawn": [ + { + "Type": "Ammo", + "SpawnChance": 0.1 + } + ] + }, + { + "Name": "bookshelf2_wreck", + "Pic": { + "Type": "Normal", + "Pic": "bookshelf2_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "terminal", + "Pic": { + "Type": "Animated", + "Sprites": "terminal", + "TicksPerFrame": 8 + }, + "Wreck": "table_wood_wreck", + "Health": 40, + "Flags": ["Inside", "NoWalls"], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "safe", + "Pic": { + "Type": "Normal", + "Pic": "safe" + }, + "Wreck": "safe_wreck", + "Health": 100, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"], + "DestroySpawn": [ + { + "Type": "Ammo", + "SpawnChance": 0.5 + }, + { + "Type": "Health", + "SpawnChance": 0.5 + }, + { + "Type": "Gun", + "SpawnChance": 0.2 + } + ] + }, + { + "Name": "safe2", + "Pic": { + "Type": "Normal", + "Pic": "safe2" + }, + "Wreck": "safe2_wreck", + "Health": 100, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"], + "DestroySpawn": [ + { + "Type": "Ammo", + "SpawnChance": 0.5 + }, + { + "Type": "Health", + "SpawnChance": 0.5 + }, + { + "Type": "Gun", + "SpawnChance": 0.2 + } + ], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "safe2_wreck", + "Pic": { + "Type": "Normal", + "Pic": "safe2_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "statue_ogre", + "Pic": { + "Type": "Normal", + "Pic": "statue_ogre" + }, + "Wreck": "safe_wreck", + "Health": 80, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"], + "DestroySpawn": [ + { + "Type": "Gun", + "SpawnChance": 0.8 + } + ] + }, + { + "Name": "statue_behemoth", + "Pic": { + "Type": "Normal", + "Pic": "statue_behemoth" + }, + "Wreck": "safe_wreck", + "Health": 80, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"], + "DestroySpawn": [ + { + "Type": "Gun", + "SpawnChance": 0.8 + } + ] + }, + { + "Name": "egg", + "Pic": { + "Type": "Animated", + "Sprites": "egg", + "TicksPerFrame": 20 + }, + "Wreck": "egg_wreck", + "Health": 30, + "DestroySpawn": [ + { + "Type": "Health", + "SpawnChance": 0.2 + } + ] + }, + { + "Name": "egg_wreck", + "Pic": { + "Type": "Animated", + "Sprites": "egg_wreck", + "TicksPerFrame": 20 + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/water", + "FootprintMask": "00ac00" + }, + { + "Name": "egg2", + "Pic": { + "Type": "Animated", + "Sprites": "egg2", + "TicksPerFrame": 20 + }, + "Wreck": "egg2_wreck", + "Health": 30, + "DestroySpawn": [ + { + "Type": "Health", + "SpawnChance": 0.2 + } + ] + }, + { + "Name": "egg2_wreck", + "Pic": { + "Type": "Normal", + "Pic": "egg2_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/water", + "FootprintMask": "6c5820" + }, + { + "Name": "tree", + "Pic": { + "Type": "Animated", + "Sprites": "tree", + "TicksPerFrame": 10 + }, + "Wreck": "tree_wreck", + "Size": [8, 6], + "Health": 40, + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "tree_wreck", + "Pic": { + "Type": "Normal", + "Pic": "tree_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/grass", + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "tree_dead", + "Pic": { + "Type": "Normal", + "Pic": "tree_dead" + }, + "Wreck": "tree_dead_wreck", + "Size": [8, 6], + "Health": 40, + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "tree_dead_wreck", + "Pic": { + "Type": "Normal", + "Pic": "tree_dead_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/grass", + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "tree_autumn", + "Pic": { + "Type": "Animated", + "Sprites": "tree_autumn", + "TicksPerFrame": 10 + }, + "Wreck": "tree_autumn_wreck", + "Size": [8, 6], + "Health": 40, + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "tree_autumn_wreck", + "Pic": { + "Type": "Normal", + "Pic": "tree_autumn_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/grass", + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "barrel", + "Pic": { + "Type": "Normal", + "Pic": "barrel" + }, + "Wreck": "barrel_wood_wreck", + "Health": 40, + "DestroyGuns": ["fire_explosion"], + "Flags": ["Outside", "OneWall"], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "barrel_flame", + "Pic": { + "Type": "Normal", + "Pic": "barrel_flame" + }, + "Wreck": "barrel_flame_wreck", + "Health": 40, + "DestroyGuns": ["fire_explosion"], + "Flags": ["Outside", "OneWall"], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "barrel_flame_wreck", + "Pic": { + "Type": "Normal", + "Pic": "barrel_flame_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "barrel_skull", + "Pic": { + "Type": "Normal", + "Pic": "barrel_skull" + }, + "Wreck": "barrel_wood_wreck", + "Health": 40, + "DestroyGuns": [ + "explosion1", + "explosion2", + "explosion3" + ], + "Flags": ["Outside", "OneWall"], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "barrel_wood_wreck", + "Pic": { + "Type": "Normal", + "Pic": "barrel_wood_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "barrel_skull2", + "Pic": { + "Type": "Normal", + "Pic": "barrel_skull2" + }, + "Wreck": "barrel_wood2_wreck", + "Health": 40, + "DestroyGuns": [ + "explosion1", + "explosion2", + "explosion3" + ], + "Flags": ["Outside", "OneWall"], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "barrel_wood2_wreck", + "Pic": { + "Type": "Normal", + "Pic": "barrel_wood2_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "box_metal_green", + "Pic": { + "Type": "Normal", + "Pic": "box_metal_green" + }, + "Wreck": "box_metal_green_wreck", + "Health": 40, + "DestroyGuns": [ + "big_quake", + "explosion1", + "explosion2", + "explosion3" + ], + "Flags": ["Outside", "OneWall"], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "box_metal_green_wreck", + "Pic": { + "Type": "Normal", + "Pic": "box_metal_green_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "box3_gas", + "Pic": { + "Type": "Animated", + "Sprites": "box3_gas", + "TicksPerFrame": 16 + }, + "Wreck": "box3", + "Health": 20, + "DestroyGuns": [ + "gas_poison_explosion" + ], + "Flags": ["Outside", "OneWall"], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "box3", + "Pic": { + "Type": "Normal", + "Pic": "box3" + }, + "Wreck": "box3_gray_wreck", + "Health": 40, + "DestroyGuns": [ + "big_quake", + "explosion1", + "explosion2", + "explosion3" + ], + "Flags": ["Outside", "OneWall"], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "box3_gray_wreck", + "Pic": { + "Type": "Normal", + "Pic": "box3_gray_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "box_red", + "Pic": { + "Type": "Normal", + "Pic": "box_red" + }, + "Wreck": "table_wood_wreck", + "Health": 40, + "DestroyGuns": ["fire_explosion"], + "Flags": ["Outside", "OneWall"], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "table_wood_wreck", + "Pic": { + "Type": "Normal", + "Pic": "table_wood_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel" + }, + { + "Name": "box3_red", + "Pic": { + "Type": "Normal", + "Pic": "box3_red" + }, + "Wreck": "box3_red_wreck", + "Health": 40, + "DestroyGuns": ["fire_explosion"], + "Flags": ["Outside", "OneWall"], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "box3_red_wreck", + "Pic": { + "Type": "Normal", + "Pic": "box3_red_wreck" + }, + "Wreck": "table_wood_wreck", + "Health": 40, + "DestroyGuns": ["fire_explosion"], + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "table_lab", + "Pic": { + "Type": "Normal", + "Pic": "table_lab" + }, + "Wreck": "safe_wreck", + "Health": 60, + "DestroyGuns": ["gas_poison_explosion"], + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"], + "DestroySpawn": [ + { + "Type": "Health", + "SpawnChance": 0.5 + } + ], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "safe_wreck", + "Pic": { + "Type": "Normal", + "Pic": "safe_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Inside"] + }, + { + "Name": "table_plastic_lab", + "Pic": { + "Type": "Normal", + "Pic": "table_plastic_lab" + }, + "Wreck": "table_plastic_lab_wreck", + "Health": 60, + "DestroyGuns": ["gas_poison_explosion"], + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"], + "DestroySpawn": [ + { + "Type": "Health", + "SpawnChance": 0.5 + } + ], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "table_plastic_lab_wreck", + "Pic": { + "Type": "Normal", + "Pic": "table_plastic_lab_wreck" + }, + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/gravel", + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "rocket", + "Pic": { + "Type": "Normal", + "Pic": "rocket" + }, + "Wreck": "rocket_wreck", + "Health": 40, + "DestroyGuns": [ + "big_quake", + "explosion1", + "explosion2", + "explosion3" + ], + "Flags": ["Outside", "OneWall"], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "rocket2", + "Pic": { + "Type": "Normal", + "Pic": "rocket2" + }, + "Wreck": "rocket_wreck", + "Health": 40, + "DestroyGuns": [ + "big_quake", + "explosion1", + "explosion2", + "explosion3" + ], + "Flags": ["Outside", "OneWall"], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "pillar_blue", + "Pic": { + "Type": "Normal", + "Pic": "pillar_blue" + }, + "Size": [10, 8], + "Offset": [-5, -20], + "Wreck": "cabinet_server_wreck", + "Health": 100, + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "rocket_wreck", + "Pic": { + "Type": "Normal", + "Pic": "rocket_wreck" + }, + "Health": 0, + "DrawBelow": true, + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "bloodstain", + "Pic": { + "Type": "Normal", + "Pic": "bloodstain" + }, + "Offset": [-6, -11], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "bloodstain1", + "Pic": { + "Type": "Normal", + "Pic": "bloodstain1" + }, + "Offset": [-6, -11], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "bloodstain2", + "Pic": { + "Type": "Normal", + "Pic": "bloodstain2" + }, + "Offset": [-6, -11], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "wall_skull", + "Pic": { + "Type": "Normal", + "Pic": "wall_skull" + }, + "Offset": [-4, -11], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "wall_skull2", + "Pic": { + "Type": "Normal", + "Pic": "wall_skull2" + }, + "Offset": [-4, -11], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "ship_light", + "Pic": { + "Type": "Normal", + "Pic": "ship_light" + }, + "Offset": [-2, -10], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "wall_chart", + "Pic": { + "Type": "Normal", + "Pic": "wall_chart" + }, + "Offset": [-5, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "wall_nuke_sign", + "Pic": { + "Type": "Normal", + "Pic": "wall_nuke_sign" + }, + "Offset": [-5, -10], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "bulletmarks", + "Pic": { + "Type": "Normal", + "Pic": "bulletmarks" + }, + "Offset": [-5, -10], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "scratch", + "Pic": { + "Type": "Normal", + "Pic": "scratch" + }, + "Offset": [-5, -10], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "wall_stuff", + "Pic": { + "Type": "Normal", + "Pic": "wall_stuff" + }, + "Offset": [-4, -14], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "wall_goo", + "Pic": { + "Type": "Normal", + "Pic": "wall_goo" + }, + "Offset": [-5, -11], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "wall_goo2", + "Pic": { + "Type": "Normal", + "Pic": "wall_goo2" + }, + "Offset": [-5, -11], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "jail_cell", + "Pic": { + "Type": "Normal", + "Pic": "jail_cell" + }, + "Offset": [-6, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "jail_cell_skeleton", + "Pic": { + "Type": "Normal", + "Pic": "jail_cell_skeleton" + }, + "Offset": [-6, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "jail_cell_broken", + "Pic": { + "Type": "Normal", + "Pic": "jail_cell_broken" + }, + "Offset": [-6, -11], + "Health": 0, + "Flags": ["Inside", "OnWall"] + }, + { + "Name": "no_sign", + "Pic": { + "Type": "Normal", + "Pic": "no_sign" + }, + "Offset": [-5, -9], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "map", + "Pic": { + "Type": "Normal", + "Pic": "map" + }, + "Offset": [-6, -10], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "ship_picture", + "Pic": { + "Type": "Normal", + "Pic": "ship_picture" + }, + "Offset": [-6, -10], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "green_relief", + "Pic": { + "Type": "Normal", + "Pic": "green_relief" + }, + "Offset": [-6, -10], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "red_relief", + "Pic": { + "Type": "Normal", + "Pic": "red_relief" + }, + "Offset": [-6, -10], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "blue_relief", + "Pic": { + "Type": "Normal", + "Pic": "blue_relief" + }, + "Offset": [-6, -10], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "wall_vent", + "Pic": { + "Type": "Normal", + "Pic": "wall_vent" + }, + "Offset": [-4, -3], + "Health": 0, + "Flags": ["OnWall", "Outside"] + }, + { + "Name": "bone_blood", + "Pic": { + "Type": "Normal", + "Pic": "bone_blood" + }, + "Offset": [-6, -3], + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/water", + "FootprintMask": "340000" + }, + { + "Name": "bones", + "Pic": { + "Type": "Normal", + "Pic": "bones" + }, + "Health": 0, + "DrawBelow": true + }, + { + "Name": "bones2", + "Pic": { + "Type": "Normal", + "Pic": "bones2" + }, + "Health": 0, + "DrawBelow": true + }, + { + "Name": "bones3", + "Pic": { + "Type": "Normal", + "Pic": "bones3" + }, + "Health": 0, + "DrawBelow": true + }, + { + "Name": "gibs", + "Pic": { + "Type": "Normal", + "Pic": "gibs" + }, + "Offset": [-6, -3], + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/water", + "FootprintMask": "ac0000" + }, + { + "Name": "skull", + "Pic": { + "Type": "Normal", + "Pic": "skull" + }, + "Offset": [-6, -4], + "Health": 0, + "DrawBelow": true + }, + { + "Name": "skull2", + "Pic": { + "Type": "Normal", + "Pic": "skull2" + }, + "Offset": [-6, -4], + "Health": 0, + "DrawBelow": true + }, + { + "Name": "blood0", + "Pic": { + "Type": "Normal", + "Pic": "particles/blood0", + "Mask": "ff0000" + }, + "Offset": [-8, -3], + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/water", + "FootprintMask": "330000" + }, + { + "Name": "blood1", + "Pic": { + "Type": "Normal", + "Pic": "particles/blood1", + "Mask": "ff0000" + }, + "Offset": [-8, -3], + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/water", + "FootprintMask": "330000" + }, + { + "Name": "blood2", + "Pic": { + "Type": "Normal", + "Pic": "particles/blood2", + "Mask": "ff0000" + }, + "Offset": [-8, -3], + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/water", + "FootprintMask": "330000" + }, + { + "Name": "blood3", + "Pic": { + "Type": "Normal", + "Pic": "particles/blood3", + "Mask": "ff0000" + }, + "Offset": [-8, -3], + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/water", + "FootprintMask": "330000" + }, + { + "Name": "blood4", + "Pic": { + "Type": "Normal", + "Pic": "particles/blood4", + "Mask": "ff0000" + }, + "Offset": [-8, -3], + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/water", + "FootprintMask": "330000" + }, + { + "Name": "goo", + "Pic": { + "Type": "Normal", + "Pic": "goo" + }, + "Offset": [-8, -6], + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/water", + "FootprintMask": "207020" + }, + { + "Name": "drain0", + "Pic": { + "Type": "Normal", + "Pic": "drain0" + }, + "Offset": [-8, -6], + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/metal", + "DamageSmoke": { + "HealthThreshold": 1.0 + } + }, + { + "Name": "drain1", + "Pic": { + "Type": "Normal", + "Pic": "drain1" + }, + "Offset": [-8, -6], + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/metal", + "DamageSmoke": { + "HealthThreshold": 1.0 + } + }, + { + "Name": "drain2", + "Pic": { + "Type": "Normal", + "Pic": "drain2" + }, + "Offset": [-8, -6], + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/metal", + "DamageSmoke": { + "HealthThreshold": 1.0 + } + }, + { + "Name": "pool_water", + "Pic": { + "Type": "Normal", + "Pic": "pool_water" + }, + "Offset": [-8, -6], + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/water", + "FootprintMask": "00000099" + }, + { + "Name": "health spawner", + "Pic": { + "Type": "Animated", + "Sprites": "spawn_pad", + "TicksPerFrame": 8 + }, + "Offset": [-8, -6], + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/tile", + "Type": "PickupSpawner", + "Pickup": "health" + }, + { + "Name": "fan", + "Pic": { + "Type": "Animated", + "Sprites": "fan", + "TicksPerFrame": 4 + }, + "Offset": [-8, -6], + "Health": 0, + "DrawBelow": true, + "FootstepSound": "footsteps/metal" + }, + { + "Name": "wscreen1", + "Pic": { + "Type": "Animated", + "Sprites": "wscreen1", + "TicksPerFrame": 10 + }, + "Size": [14, 1], + "PosOffset": [0, 2], + "Offset": [-7, -11], + "Wreck": "wscreen1_wreck", + "Health": 10, + "Flags": ["OnWall"], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "wscreen2", + "Pic": { + "Type": "Animated", + "Sprites": "wscreen2", + "TicksPerFrame": 10 + }, + "Size": [14, 1], + "PosOffset": [0, 2], + "Offset": [-7, -11], + "Wreck": "wscreen1_wreck", + "Health": 10, + "Flags": ["OnWall"], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + }, + { + "Name": "wscreen1_wreck", + "Pic": { + "Type": "Normal", + "Pic": "wscreen1_broken" + }, + "Offset": [-7, -11], + "Health": 0, + "Flags": ["OnWall"] + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/particles.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/particles.json new file mode 100644 index 00000000..b37fa738 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/particles.json @@ -0,0 +1,420 @@ +{ + "Version": 2, + "Particles": [ + { + "Name": "spark", + "Pic": { + "Type": "Normal", + "Pic": "particles/spark" + } + }, + { + "Name": "spark_blue", + "Pic": { + "Type": "Normal", + "Pic": "particles/spark_classic", + "Mask": "00ffff" + }, + "Range": 2 + }, + { + "Name": "spark_red", + "Pic": { + "Type": "Normal", + "Pic": "particles/spark_classic", + "Mask": "ff0000" + }, + "Range": 2 + }, + { + "Name": "spark_green", + "Pic": { + "Type": "Normal", + "Pic": "particles/spark_classic", + "Mask": "00ff00" + }, + "Range": 2 + }, + { + "Name": "spark_yellow", + "Pic": { + "Type": "Normal", + "Pic": "particles/spark_classic", + "Mask": "ffff00" + }, + "Range": 2 + }, + { + "Name": "bullet_hole", + "Pic": { + "Type": "Normal", + "Pic": "particles/bullet_hole" + }, + "RangeLow": 10000, + "RangeHigh": 11000 + }, + { + "Name": "boom", + "Pic": { + "Type": "Animated", + "Sprites": "particles/boom", + "TicksPerFrame": 1 + }, + "Range": 7 + }, + { + "Name": "muzzle_flash_default", + "Pic": { + "Type": "Directional", + "Sprites": "particles/muzzle_flash", + "Mask": "ffff80" + }, + "Range": 3 + }, + { + "Name": "muzzle_flash_mg", + "Pic": { + "Type": "Directional", + "Sprites": "particles/muzzle_flash", + "Mask": "ffff80" + }, + "Range": 2 + }, + { + "Name": "muzzle_flash_flamer", + "Pic": { + "Type": "Directional", + "Sprites": "particles/muzzle_flash", + "Mask": "ff0000" + }, + "Range": 3 + }, + { + "Name": "muzzle_flash_shotgun", + "Pic": { + "Type": "Directional", + "Sprites": "particles/muzzle_flash_big", + "Mask": "ffff80" + }, + "Range": 7 + }, + { + "Name": "muzzle_flash_powergun", + "Pic": { + "Type": "Directional", + "Sprites": "particles/muzzle_flash", + "Mask": "ff0000" + }, + "Range": 5 + }, + { + "Name": "muzzle_flash_petrifier", + "Pic": { + "Type": "Directional", + "Sprites": "particles/muzzle_flash_big" + }, + "Range": 10 + }, + { + "Name": "muzzle_flash_browny", + "Pic": { + "Type": "Directional", + "Sprites": "particles/muzzle_flash", + "Mask": "00ffff" + }, + "Range": 5 + }, + { + "Name": "muzzle_flash_gasgun", + "Pic": { + "Type": "Directional", + "Sprites": "particles/muzzle_flash", + "Mask": "00ff00" + }, + "Range": 3 + }, + { + "Name": "muzzle_flash_pulse", + "Pic": { + "Type": "Directional", + "Sprites": "particles/muzzle_flash_big", + "Mask": "00ffff" + }, + "Range": 2 + }, + { + "Name": "muzzle_flash_heatseeker", + "Pic": { + "Type": "Directional", + "Sprites": "particles/muzzle_flash_big", + "Mask": "ff0000" + }, + "Range": 5 + }, + { + "Name": "brass", + "Pic": { + "Type": "Directional", + "Sprites": "particles/brass" + }, + "RangeLow": 10000, + "RangeHigh": 11000, + "GravityFactor": 1, + "HitsWalls": true, + "ZDarken": true + }, + { + "Name": "brass_big", + "Pic": { + "Type": "Directional", + "Sprites": "particles/brass_big" + }, + "RangeLow": 10000, + "RangeHigh": 11000, + "GravityFactor": 1, + "HitsWalls": true, + "ZDarken": true + }, + { + "Name": "shotshell", + "Pic": { + "Type": "Directional", + "Sprites": "particles/shotshell" + }, + "RangeLow": 10000, + "RangeHigh": 11000, + "GravityFactor": 1, + "HitsWalls": true, + "ZDarken": true + }, + { + "Name": "smoke", + "Pic": { + "Type": "Animated", + "Sprites": "particles/smoke", + "TicksPerFrame": 6 + }, + "Range": 100 + }, + { + "Name": "smoke_big", + "Pic": { + "Type": "Animated", + "Sprites": "particles/smoke_big", + "TicksPerFrame": 6 + }, + "Range": 100 + }, + { + "Name": "smoke_trail", + "Pic": { + "Type": "Animated", + "Sprites": "particles/smoke_trail", + "TicksPerFrame": 7 + }, + "Range": 34 + }, + { + "Name": "smoke_trail_small", + "Pic": { + "Type": "Animated", + "Sprites": "particles/smoke_trail_small", + "TicksPerFrame": 7 + }, + "Range": 27 + }, + { + "Name": "explosion_small", + "Pic": { + "Type": "Animated", + "Sprites": "particles/explosion_small", + "TicksPerFrame": 4 + }, + "Range": 7 + }, + { + "Name": "fireball_hit", + "Pic": { + "Type": "Animated", + "Sprites": "fireball_hit", + "TicksPerFrame": 4 + }, + "Range": 4 + }, + { + "Name": "fireball_green_hit", + "Pic": { + "Type": "Animated", + "Sprites": "fireball_green_hit", + "TicksPerFrame": 4 + }, + "Range": 4 + }, + { + "Name": "blood1", + "Pic": { + "Type": "Animated", + "Sprites": "particles/blood1" + }, + "RangeLow": 10000, + "RangeHigh": 11000, + "GravityFactor": 1, + "HitsWalls": true, + "Bounces": false, + "WallBounces": false + }, + { + "Name": "blood2", + "Pic": { + "Type": "Animated", + "Sprites": "particles/blood2" + }, + "RangeLow": 10000, + "RangeHigh": 11000, + "GravityFactor": 1, + "HitsWalls": true, + "Bounces": false, + "WallBounces": false, + "ZDarken": true + }, + { + "Name": "blood3", + "Pic": { + "Type": "Animated", + "Sprites": "particles/blood3" + }, + "RangeLow": 10000, + "RangeHigh": 11000, + "GravityFactor": 1, + "HitsWalls": true, + "Bounces": false, + "WallBounces": false, + "ZDarken": true + }, + { + "Name": "spall1", + "Pic": { + "Type": "Normal", + "Pic": "particles/spall1" + }, + "RangeLow": 10000, + "RangeHigh": 11000, + "GravityFactor": 1, + "HitsWalls": true, + "BounceFriction": 0.4, + "ZDarken": true + }, + { + "Name": "spall2", + "Pic": { + "Type": "Animated", + "Sprites": "particles/spall2" + }, + "RangeLow": 10000, + "RangeHigh": 11000, + "GravityFactor": 1, + "HitsWalls": true, + "BounceFriction": 0.4, + "ZDarken": true + }, + { + "Name": "spall3", + "Pic": { + "Type": "Animated", + "Sprites": "particles/spall3" + }, + "RangeLow": 10000, + "RangeHigh": 11000, + "GravityFactor": 1, + "HitsWalls": true, + "BounceFriction": 0.4, + "ZDarken": true + }, + { + "Name": "health_plus", + "Pic": { + "Type": "Animated", + "Sprites": "particles/health_plus", + "TicksPerFrame": 10 + }, + "Range": 70, + "GravityFactor": -0.2 + }, + { + "Name": "ammo_text", + "Type": "Text", + "TextMask": "ffff00", + "Range": 100, + "GravityFactor": 2, + "Bounces": true, + "DrawAbove": true + }, + { + "Name": "key_text", + "Type": "Text", + "Range": 140, + "GravityFactor": 2, + "Bounces": true, + "DrawAbove": true + }, + { + "Name": "locked_text", + "Type": "Text", + "TextMask": "ff0000", + "Range": 40, + "GravityFactor": 0, + "DrawAbove": true + }, + { + "Name": "heal_text", + "Type": "Text", + "TextMask": "00ff00", + "Range": 40, + "GravityFactor": 0, + "DrawAbove": true + }, + { + "Name": "damage_text", + "Type": "Text", + "TextMask": "ff0000", + "Range": 40, + "GravityFactor": 0, + "DrawAbove": true + }, + { + "Name": "score_text", + "Type": "Text", + "TextMask": "ffff00", + "Range": 40, + "GravityFactor": 0, + "DrawAbove": true + }, + { + "Name": "lives_text", + "Type": "Text", + "TextMask": "00ffff", + "Range": 120, + "GravityFactor": 0, + "DrawAbove": true + }, + { + "Name": "trail", + "Pic": { + "Type": "Animated", + "Sprites": "particles/trail", + "TicksPerFrame": 2 + }, + "Range": 7 + }, + { + "Name": "footprint", + "Pic": { + "Type": "Normal", + "Pic": "particles/footprint" + }, + "RangeLow": 10000, + "RangeHigh": 11000, + "DrawBelow": true + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/pickups.json b/bios/Game Engines/C-Dogs SDL/cdogs/data/pickups.json new file mode 100644 index 00000000..21c516fd --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/pickups.json @@ -0,0 +1,225 @@ +{ + "Version": 2, + "Pickups": [ + { + "Name": "folder", + "Pic": { + "Type": "Normal", + "Pic": "folder" + }, + "Type": "Score" + }, + { + "Name": "folder2", + "Pic": { + "Type": "Normal", + "Pic": "folder2" + }, + "Type": "Score" + }, + { + "Name": "chip1", + "Pic": { + "Type": "Normal", + "Pic": "chip1" + }, + "Type": "Score" + }, + { + "Name": "chip2", + "Pic": { + "Type": "Normal", + "Pic": "chip2" + }, + "Type": "Score" + }, + { + "Name": "chip3", + "Pic": { + "Type": "Normal", + "Pic": "chip3" + }, + "Type": "Score" + }, + { + "Name": "disk1", + "Pic": { + "Type": "Normal", + "Pic": "disk1" + }, + "Type": "Score" + }, + { + "Name": "disk2", + "Pic": { + "Type": "Normal", + "Pic": "disk2" + }, + "Type": "Score" + }, + { + "Name": "disk3", + "Pic": { + "Type": "Normal", + "Pic": "disk3" + }, + "Type": "Score" + }, + { + "Name": "blueprint", + "Pic": { + "Type": "Normal", + "Pic": "blueprint" + }, + "Type": "Score" + }, + { + "Name": "starmap", + "Pic": { + "Type": "Normal", + "Pic": "starmap" + }, + "Type": "Score" + }, + { + "Name": "bd", + "Pic": { + "Type": "Normal", + "Pic": "bd" + }, + "Type": "Score" + }, + { + "Name": "cd", + "Pic": { + "Type": "Normal", + "Pic": "cd" + }, + "Type": "Score" + }, + { + "Name": "bag", + "Pic": { + "Type": "Normal", + "Pic": "bag" + }, + "Type": "Score" + }, + { + "Name": "sack", + "Pic": { + "Type": "Normal", + "Pic": "sack" + }, + "Type": "Score" + }, + { + "Name": "holo", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "holo", + "TicksPerFrame": 1 + }, + "Type": "Score" + }, + { + "Name": "plasma_globe", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "plasma_globe", + "TicksPerFrame": 10 + }, + "Type": "Score" + }, + { + "Name": "bottle", + "Pic": { + "Type": "Normal", + "Pic": "bottle" + }, + "Type": "Score" + }, + { + "Name": "bottle_orange", + "Pic": { + "Type": "Normal", + "Pic": "bottle_orange" + }, + "Type": "Score" + }, + { + "Name": "bottle2", + "Pic": { + "Type": "Normal", + "Pic": "bottle2" + }, + "Type": "Score" + }, + { + "Name": "radio", + "Pic": { + "Type": "Animated", + "Sprites": "radio", + "TicksPerFrame": 10 + }, + "Type": "Score" + }, + { + "Name": "radio2", + "Pic": { + "Type": "Animated", + "Sprites": "radio2", + "TicksPerFrame": 10 + }, + "Type": "Score" + }, + { + "Name": "circuit", + "Pic": { + "Type": "Normal", + "Pic": "circuit" + }, + "Type": "Score" + }, + { + "Name": "pci_card", + "Pic": { + "Type": "Normal", + "Pic": "pci_card" + }, + "Type": "Score" + }, + { + "Name": "paper", + "Pic": { + "Type": "Normal", + "Pic": "paper" + }, + "Type": "Score" + }, + { + "Name": "paper2", + "Pic": { + "Type": "Normal", + "Pic": "paper2" + }, + "Type": "Score" + }, + { + "Name": "teddy", + "Pic": { + "Type": "Normal", + "Pic": "teddy" + }, + "Type": "Score" + }, + { + "Name": "health", + "Pic": { + "Type": "Normal", + "Pic": "health" + }, + "Type": "Health" + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/prefixes.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/prefixes.txt new file mode 100644 index 00000000..c06888ad --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/prefixes.txt @@ -0,0 +1,99 @@ +Acid +Aeon +Alpha +Alt +Apoc +Augur +Auto +Bad +Bio +Bit +Black +Blade +Burn +C- +Cipher +Con +Control +Crash +Crypto +Cryo +Cyber +Cyto +Dark +Data +Delta +Demo +Dev +Dex +Digi +Doctor +Dozer +Dyna +Electro +Execu +Gamma +Gene +Ghost +Giga +Hacker +Hex +Hyper +Ice +Infra +Inter +Jam +Laser +Macro +Mag +Master +Mega +Metal +Micro +Mini +Mono +Nano +Neo +Neon +Neuro +Nexus +Omega +Omni +Over +Phantom +Phrack +Plague +Plas +Plasma +Proto +Psy +Psycho +Quad +Quantum +Re +Retro +Rez +Rip +Robo +Root +Servo +Shadow +Sky +Speed +Sub +Switch +Synchro +System +T- +Tank +Tech +Techno +Tetra +Tri +Turbo +Ultra +War +Ware +X- +Z- +Zero diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/suffixes.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/suffixes.txt new file mode 100644 index 00000000..f9069fb0 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/suffixes.txt @@ -0,0 +1,86 @@ +arc +boot +bot +brid +burn +cat +cell +chaos +con +chrome +claw +crash +cron +cycle +dex +dog +dome +droid +drome +factor +flash +flux +forge +fury +gear +grid +gun +hack +hax +hex +hunter +jack +killer +kine +kinetic +laser +light +link +lite +lith +logic +lux +machine +man +mancer +master +maton +mech +mod +net +netic +next +nexus +nox +phase +plasma +pulse +punk +ray +ripper +runner +seeker +shock +slayer +spec +sphere +spider +steel +sys +tech +tex +trance +trix +tron +type +war +web +wolf +V +viper +visor +X +Z +zero +zine +zone diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/data/suffixnames.txt b/bios/Game Engines/C-Dogs SDL/cdogs/data/suffixnames.txt new file mode 100644 index 00000000..6f07cc26 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/data/suffixnames.txt @@ -0,0 +1,48 @@ ++ +13 +1337 +2000 +2600 +42 +47 +Agent +Alpha +Assassin +Blade +Burn +Circuit +Commando +Cyborg +DX +Element +Elite +Factory +Ghost +Hacker +Icarus +Jester +Lightning +Matrix +Max +Napalm +Null +One +Override +Phantom +Phoenix +Plus +Prime +Psion +Queen +Rider +Shadow +Snake +Steel +Stingray +Storm +Synapse +Ultima +Vector +X +Z +Zero diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/doc/CREDITS b/bios/Game Engines/C-Dogs SDL/cdogs/doc/CREDITS new file mode 100644 index 00000000..c2c75885 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/doc/CREDITS @@ -0,0 +1,60 @@ +Visit the C-Dogs SDL Homepage! + http://cxong.github.io/cdogs-sdl/ + +Ronny Wester + That's me! I designed and coded this game and I did all the graphics too +Lucas Martin-King + He procrastinated about releasing C-Dogs SDL! ...and cleaned up after Jeremy +Jeremy Chin + He did all the hard porting work! ;) +Cong Xu + Enhancements and new features +Zombie + Created Campaign Dogs, the website to share custom campaigns +Tobias Johansson + Made the Android port +Clemens Hackenberg + Testing and bug reports, campaigns +David Knight + Made the GCW-Zero port +Justin Jacobs + Made the emscripten port +Wuzzy + Gun descriptions, testing, campaigns +Vadim Barkov + Automatic Windows and macOS deployment +meZee + Travis CI deployment + +Joey Lau + My love. Although I had to alter the knife rating to survive the dogfights ;-) +Jan-Olof Hendig + A friend with whom I've spent far too much time on the phone far too late +Joakim Johansson + Friend and colleague. We keep each other sane...or is it the other way around? +Victor Putz + Kindred spirit and a great guy to brainstorm with +Ken Gorley + Found the 1st bug in the release: didn't work with a single joystick +Adrian Stacey + Most helpful in tracking down the vsync bug +Antti Hukkanen + Helped locate a bug when using maximum number of characters in a mission +Tim McEvoy + Instrumental in getting the 1.05 crash bug fixed +Daniel Jansson + Friend and fellow aikido instructor +Chilok Lau + Joey's brother and a relentless game-player +Niklas Wester + My LITTLE brother...yeah, I know he is taller...mumble, grumble... +Anneli Löfgren + My mother. Hi Ma! Sorry, no launcher this time... +Otto Chrons + Author of the DSMI sound and music library +Ethan Brodsky + Author of free SB stuff. Helped me out when I got started +Tech support at DPT + The best support staff I've ever come across. Kudos! +Cyberdogs fans wherever + Thanks! Without your support this program would never have come about diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/cubicle.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/cubicle.cdogscpn/campaign.json new file mode 100644 index 00000000..2ae05f63 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/cubicle.cdogscpn/campaign.json @@ -0,0 +1,7 @@ +{ + "Version": 5, + "Title": "Cubicle wars", + "Author": "", + "Description": "", + "Missions": 1 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/cubicle.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/cubicle.cdogscpn/characters.json new file mode 100644 index 00000000..04823ad3 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/cubicle.cdogscpn/characters.json @@ -0,0 +1,3 @@ +{ + "Characters": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/cubicle.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/cubicle.cdogscpn/missions.json new file mode 100644 index 00000000..f237be83 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/cubicle.cdogscpn/missions.json @@ -0,0 +1,91 @@ +{ + "Missions": [{ + "Title": "", + "Description": "", + "Type": "Classic", + "Width": 64, + "Height": 64, + "WallStyle": 0, + "FloorStyle": 3, + "RoomStyle": 8, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 10 + }, + { + "MapObject": "box", + "Density": 10 + }, + { + "MapObject": "box2", + "Density": 10 + }, + { + "MapObject": "cabinet", + "Density": 10 + }, + { + "MapObject": "plant", + "Density": 10 + }, + { + "MapObject": "table", + "Density": 10 + }, + { + "MapObject": "chair", + "Density": 10 + }, + { + "MapObject": "rod", + "Density": 10 + }], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "WallMask": "004800", + "FloorMask": "480000", + "RoomMask": "840084", + "AltMask": "007000", + "Walls": 50, + "WallLength": 50, + "CorridorWidth": 1, + "Rooms": { + "Count": 10, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 3, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/de_dust.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/de_dust.cdogscpn/campaign.json new file mode 100644 index 00000000..dd0cdd50 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/de_dust.cdogscpn/campaign.json @@ -0,0 +1,10 @@ +{ + "Version": 15, + "Title": "de_dust", + "Author": "Cong", + "Description": "", + "Ammo": false, + "WeaponPersist": false, + "SkipWeaponMenu": true, + "Missions": 1 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/de_dust.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/de_dust.cdogscpn/characters.json new file mode 100644 index 00000000..af9e4154 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/de_dust.cdogscpn/characters.json @@ -0,0 +1,4 @@ +{ + "Version": 13, + "Characters": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/de_dust.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/de_dust.cdogscpn/missions.json new file mode 100644 index 00000000..fba2da57 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/de_dust.cdogscpn/missions.json @@ -0,0 +1,416 @@ +{ + "Missions": [{ + "Title": "", + "Description": "", + "Type": "Static", + "Width": 58, + "Height": 88, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", "Pistol"], + "Song": "", + "TileClasses": { + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "847024ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "stone", + "Mask": "848484ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "94802cff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,4,3,3,4,4,4,3,3,4,4,4,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,4,3,3,4,0,0,0,0,0,0,0,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,4,3,3,4,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,4,3,3,4,0,1,1,1,1,1,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,4,4,4,4,4,3,3,4,0,1,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,3,3,4,0,1,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,3,3,4,0,1,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,3,3,4,0,1,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,3,3,4,0,1,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,3,3,4,0,1,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,3,3,0,0,1,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,3,3,0,0,1,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,3,3,0,0,1,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,3,3,0,0,1,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,3,3,0,0,1,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,3,3,0,0,1,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,0,0,0,3,3,0,0,1,1,1,1,1,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,0,3,3,1,1,1,0,0,1,1,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,0,1,0,0,0,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,0,1,0,0,0,0,0,3,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,0,1,0,0,0,0,0,3,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,0,1,0,0,0,0,0,3,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,3,3,0,1,1,1,1,1,1,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,3,0,0,4,4,4,3,4,4,4,4,4,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,3,0,3,0,3,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,3,0,3,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,3,0,3,0,3,3,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,3,0,3,3,0,3,0,3,3,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,3,0,3,0,3,0,3,0,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,4,4,4,3,4,0,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,3,4,4,4,4,4,4,4,4,4,4,0,0,0,0,1,1,1,1,1,1,3,3,1,1,1,1,1,1,1,1,1,1,0,4,0,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,1,1,1,1,1,1,3,3,1,1,1,1,1,1,1,1,1,1,0,4,0,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,1,1,1,1,1,1,3,3,1,1,1,1,1,1,1,1,1,1,0,4,0,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,4,0,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,4,0,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,4,0,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,0,4,0,3,3,0,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,0,4,0,3,3,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,1,1,1,0,3,3,3,3,3,3,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,1,4,1,0,3,3,3,3,3,3,3,3,3,3,0,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,1,4,1,0,3,3,3,3,3,3,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,4,4,1,0,0,0,0,0,0,0,0,0,0,3,0,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,4,4,1,0,0,0,0,0,0,0,0,0,0,3,0,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,4,4,1,1,1,1,1,1,1,1,1,1,0,0,3,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,3,3,3,1,1,1,1,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,0,0,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,0,0,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,0,3,0,0,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,3,3,0,3,0,0,1,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,3,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,0,3,0,0,3,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,0,0,0,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,3,3,0,0,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,3,3,3,0,0,1,1,1,1,4,4,4,4,4", + "4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,1,4,4,4,4,4", + "4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,1,4,4,4,4,4", + "4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,4,4,4,4,4", + "4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4", + "4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4", + "4,4,4,4,4,4,1,0,0,0,0,0,3,0,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4", + "4,4,4,4,4,4,1,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,4,4,4,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "box", + "Positions": [[22, 5], + [25, 1], + [24, 5], + [24, 22], + [39, 31], + [12, 85], + [13, 85], + [16, 76], + [36, 71], + [21, 57], + [35, 57], + [42, 65], + [48, 68], + [46, 62], + [45, 61], + [55, 63], + [55, 64], + [54, 64], + [54, 63], + [53, 64], + [53, 65], + [52, 65], + [52, 64], + [22, 30], + [23, 30], + [24, 39], + [13, 30], + [7, 30], + [8, 31], + [9, 31], + [8, 37], + [1, 43], + [2, 46], + [2, 45], + [6, 46], + [24, 46], + [36, 43], + [42, 53]] + }, + { + "MapObject": "box2", + "Positions": [[22, 6], + [25, 8], + [24, 1], + [27, 1], + [24, 23], + [7, 82], + [16, 75], + [18, 76], + [38, 71], + [37, 72], + [22, 57], + [34, 57], + [45, 62], + [48, 67], + [1, 42], + [1, 46], + [5, 46], + [8, 30], + [9, 30], + [9, 37], + [10, 37], + [18, 40], + [31, 52], + [40, 53], + [39, 39]] + }, + { + "MapObject": "Launcher spawner", + "Positions": [[23, 3]] + }, + { + "MapObject": "Rockets ammo spawner", + "Positions": [[35, 3], + [30, 3]] + }, + { + "MapObject": "Swarmer spawner", + "Positions": [[22, 22]] + }, + { + "MapObject": "box_gray", + "Positions": [[8, 83]] + }, + { + "MapObject": "rod", + "Positions": [[30, 44]] + }, + { + "MapObject": "Powergun spawner", + "Positions": [[1, 44]] + }, + { + "MapObject": "Sniper rifle spawner", + "Positions": [[6, 31]] + }, + { + "MapObject": "Cells ammo spawner", + "Positions": [[7, 37], + [19, 31], + [13, 44]] + }, + { + "MapObject": "Shotgun spawner", + "Positions": [[56, 64]] + }, + { + "MapObject": "Shells ammo spawner", + "Positions": [[56, 63], + [50, 60], + [50, 63]] + }, + { + "MapObject": "Machine gun spawner", + "Positions": [[7, 83]] + }, + { + "MapObject": "Bullets ammo spawner", + "Positions": [[30, 82], + [8, 72], + [15, 83], + [36, 72]] + }, + { + "MapObject": "Pulse rifle spawner", + "Positions": [[30, 46]] + }, + { + "MapObject": "Mini cells ammo spawner", + "Positions": [[27, 36], + [37, 46], + [30, 52], + [22, 45]] + }, + { + "MapObject": "health spawner", + "Positions": [[38, 15], + [50, 77]] + }, + { + "MapObject": "tree_wreck", + "Positions": [[50, 59], + [50, 61], + [42, 64], + [44, 65], + [46, 65], + [48, 64], + [35, 72], + [34, 74], + [32, 72], + [31, 71], + [30, 72], + [29, 71], + [28, 71], + [26, 72], + [41, 58], + [40, 57], + [39, 59], + [18, 30], + [25, 31], + [23, 32], + [25, 34], + [26, 34], + [27, 33], + [28, 35]] + }], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [], + "Start": [0, 0], + "Exit": { + "Start": [0, 0], + "End": [0, 0] + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/bullets.json new file mode 100644 index 00000000..203b1a3c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/bullets.json @@ -0,0 +1,37 @@ +{ + "Version": 2, + "Bullets": [ + { + "Name": "10mm", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail", + "Width": 1.0 + }, + "WallMark": "bullet_hole", + "Speed": 35000, + "Range": 1, + "Power": 10, + "Mass": 0.2 + }, + { + "Name": "pellet", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail", + "Width": 1.0 + }, + "WallMark": "bullet_hole", + "Speed": 25000, + "Range": 1, + "Power": 10, + "Mass": 0.2 + } + ] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/campaign.json new file mode 100644 index 00000000..f8f29f61 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/campaign.json @@ -0,0 +1,10 @@ +{ + "Version": 15, + "Title": "Doom", + "Author": "Cong", + "Description": "Stuck on Mars for insubordination, you are a marine who has just arrived at the dullest assignment in the system. They say your employer, UAC, are performing secret experiments to do with teleportation, but what could go wrong with that?", + "Ammo": true, + "WeaponPersist": false, + "SkipWeaponMenu": true, + "Missions": 1 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/characters.json new file mode 100644 index 00000000..af9e4154 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/characters.json @@ -0,0 +1,4 @@ +{ + "Version": 13, + "Characters": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/graphics/armor_bonus.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/graphics/armor_bonus.png new file mode 100644 index 00000000..cf8f5f76 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/graphics/armor_bonus.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/graphics/armor_bonus.txt b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/graphics/armor_bonus.txt new file mode 100644 index 00000000..9f743dd4 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/graphics/armor_bonus.txt @@ -0,0 +1,6 @@ +Derived from Dungeon Crawl 32x32 tiles +by Chris Hamons (maintainer) +http://opengameart.org/content/dungeon-crawl-32x32-tiles +http://creativecommons.org/publicdomain/zero/1.0/ + +Part of (or All) the graphic tiles used in this program is the Public domain roguelike tileset "RLTiles". Some of the tiles have been modified by Cong Xu. You can find the original tileset at: http://rltiles.sf.net You can find Dungeon Crawl Stone Soup modified tilesets at: http://code.google.com/p/crawl-tiles/downloads/list \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/graphics/health_bonus.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/graphics/health_bonus.png new file mode 100644 index 00000000..4c689ab4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/graphics/health_bonus.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/graphics/health_bonus.txt b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/graphics/health_bonus.txt new file mode 100644 index 00000000..9f743dd4 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/graphics/health_bonus.txt @@ -0,0 +1,6 @@ +Derived from Dungeon Crawl 32x32 tiles +by Chris Hamons (maintainer) +http://opengameart.org/content/dungeon-crawl-32x32-tiles +http://creativecommons.org/publicdomain/zero/1.0/ + +Part of (or All) the graphic tiles used in this program is the Public domain roguelike tileset "RLTiles". Some of the tiles have been modified by Cong Xu. You can find the original tileset at: http://rltiles.sf.net You can find Dungeon Crawl Stone Soup modified tilesets at: http://code.google.com/p/crawl-tiles/downloads/list \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/graphics/stimpack.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/graphics/stimpack.png new file mode 100644 index 00000000..ef2cc6b1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/graphics/stimpack.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/graphics/stimpack.txt b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/graphics/stimpack.txt new file mode 100644 index 00000000..7ddf0e9c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/graphics/stimpack.txt @@ -0,0 +1,5 @@ +Adapted from Various inventory 24 pixel icon set +By OceansDream +http://opengameart.org/content/various-inventory-24-pixel-icon-set + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/guns.json new file mode 100644 index 00000000..1a5fe7d5 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/guns.json @@ -0,0 +1,50 @@ +{ + "Version": 2, + "Guns": [ + { + "Pic": "pistol", + "Name": "Marine Pistol", + "Icon": "pistol", + "Description": "Standard issue sidearm, low rate of fire and damage. Recommend engaging at a distance.", + "Bullet": "10mm", + "Cost": 0, + "Lock": 18, + "Sound": "pistol", + "Recoil": 0.05, + "Brass": "brass", + "Ammo": "Bullets" + }, + { + "Pic": "shotgun", + "Grips": 2, + "Name": "Marine Shotgun", + "Icon": "shotgun", + "Bullet": "pellet", + "Cost": 5, + "Lock": 70, + "ReloadLead": 10, + "Sound": "marine_shotgun", + "ReloadSound": "shotgun_r", + "SwitchSound": "shotgun_r", + "SpreadCount": 7, + "SpreadWidth": 0.1, + "MuzzleFlashParticle": "muzzle_flash_shotgun", + "Brass": "shotshell", + "Ammo": "Shells" + }, + { + "Pic": "chaingun", + "Name": "Chaingun", + "Icon": "machine_gun", + "Bullet": "10mm", + "Cost": 1, + "Lock": 8, + "Sound": "mg", + "SwitchSound": "mg_switch", + "Recoil": 0.3, + "MuzzleFlashParticle": "muzzle_flash_mg", + "Brass": "brass_big", + "Ammo": "Bullets" + } + ] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/map_objects.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/map_objects.json new file mode 100644 index 00000000..7e688a58 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/map_objects.json @@ -0,0 +1,41 @@ +{ + "Version": 3, + "MapObjects": [ + { + "Name": "health bonus", + "Pic": { + "Type": "Animated", + "Sprites": "spawn_pad", + "TicksPerFrame": 8 + }, + "Offset": [-8, -6], + "Health": 0, + "Type": "PickupSpawner", + "Pickup": "health_bonus" + }, + { + "Name": "stimpack spawner", + "Pic": { + "Type": "Animated", + "Sprites": "spawn_pad", + "TicksPerFrame": 8 + }, + "Offset": [-8, -6], + "Health": 0, + "Type": "PickupSpawner", + "Pickup": "stimpack" + }, + { + "Name": "armor bonus", + "Pic": { + "Type": "Animated", + "Sprites": "spawn_pad", + "TicksPerFrame": 8 + }, + "Offset": [-8, -6], + "Health": 0, + "Type": "PickupSpawner", + "Pickup": "armor_bonus" + } + ] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/missions.json new file mode 100644 index 00000000..2802a530 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/missions.json @@ -0,0 +1,422 @@ +{ + "Missions": [{ + "Title": "Hangar", + "Description": "", + "Type": "Static", + "Width": 100, + "Height": 95, + "ExitStyle": "hazard", + "KeyStyle": "dungeon", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", "Marine Pistol"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "alien", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "004848ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "biggrid", + "Mask": "343448ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "847024ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,1,1,1,1,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,1,1,1,1,3,3,3,3,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,1,1,4,4,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,1,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,3,3,1,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,1,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,1,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,3,3,3,3,3,0,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,1,1,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,4,1,3,3,3,3,3,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,1,4,4,4,4,1,1,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,1,1,1,1,3,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,1,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,0,0,1,4,4,4,4,4,4,1,1,1,1,1,4,4,4,4,4,4", + "4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,1,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,1,1,4,4,4,4,1,1,3,3,3,1,1,4,4,4,4,4", + "4,4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,3,3,1,4,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,0,0,1,4,4,4,4,1,3,3,3,3,3,1,4,4,4,4,4", + "4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,3,3,3,3,3,3,3,3,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,0,0,0,1,4,4,4,4,1,3,3,3,3,3,1,1,4,4,4,4", + "4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,3,3,3,3,3,3,3,3,3,3,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,1,1,4,1,1,3,3,3,3,3,3,1,4,4,4,4", + "4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,1,1,3,3,3,3,3,3,3,1,4,4,4,4", + "4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,1,3,3,1,1,3,3,3,1,1,4,4,4", + "4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,3,3,3,3,3,3,3,1,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1,1,3,3,3,3,1,4,4,4", + "4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,3,3,3,3,3,1,3,3,3,1,1,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,3,3,3,1,4,4,4", + "4,4,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,3,3,3,3,3,3,3,3,3,3,3,1,4,1,1,1,3,3,3,3,1,3,3,3,3,3,1,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,1,3,3,3,1,1,4,4", + "4,4,1,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,1,1,3,3,3,1,4,4", + "4,4,1,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,1,3,3,3,1,1,4", + "4,4,1,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4,1,1,3,3,3,1,4", + "4,4,1,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,1,3,3,3,1,4", + "4,4,1,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,1,1,3,3,3,1,4", + "4,4,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,1,3,3,3,1,1,4", + "4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,1,1,3,3,3,1,4,4", + "4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,3,3,3,3,3,1,3,3,3,3,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,1,3,3,3,1,1,4,4", + "4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,3,3,3,3,3,3,3,3,1,4,4,4,1,3,3,3,3,1,3,3,3,3,3,1,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,1,3,3,3,1,4,4,4", + "4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,3,3,3,3,3,3,1,1,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,1,3,3,3,1,4,4,4", + "4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,1,1,1,1,1,1,1,1,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,1,3,3,3,1,4,4,4", + "4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,3,3,3,1,4,4,4", + "4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1,1,3,3,3,1,4,4,4", + "4,4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,3,3,3,3,3,3,3,3,3,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1,1,3,3,3,1,4,4,4", + "4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,3,3,3,3,3,3,3,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,3,3,3,1,3,3,3,1,4,4,4", + "4,4,4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,3,3,3,3,3,1,1,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,2,2,2,1,3,3,3,1,4,4,4", + "4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,3,3,1,1,1,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,4,4,4,1,3,3,3,1,3,3,3,1,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,4,4,4,4,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,4,4,1,0,0,1,4,4,4,4,4,1,3,3,3,1,3,3,3,1,1,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,4,4,1,0,0,1,4,4,4,4,1,1,3,3,3,1,1,3,3,3,1,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,1,1,1,4,4,4,1,0,0,1,4,4,1,1,1,3,3,3,3,1,1,3,3,3,1,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,4,1,3,3,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,4,4,1,3,3,3,3,3,3,1,1,3,3,3,1,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,1,1,1,1,1,1,1,4,1,1,3,3,3,3,3,2,0,0,1,4,4,1,3,3,3,3,3,3,1,1,3,3,3,1,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,1,4,4,4,4,4,4,1,1,3,3,3,3,3,3,2,0,0,1,4,4,1,3,3,3,3,3,3,1,3,3,3,1,1,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,1,4,4,4,4,4,1,1,3,3,3,3,3,3,3,2,0,0,1,4,4,1,3,3,3,3,3,3,2,3,3,3,1,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,1,4,4,4,4,1,1,3,3,3,3,3,3,3,3,2,0,0,1,4,4,1,3,3,3,3,3,3,2,3,1,1,1,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,1,4,4,4,1,1,3,3,3,3,1,1,1,1,1,1,0,0,1,4,4,1,3,3,3,3,3,1,1,1,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,1,1,4,1,1,3,3,3,3,1,1,4,4,4,4,1,0,0,1,4,4,1,3,3,3,1,1,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,1,1,1,3,3,3,3,1,1,4,4,4,4,4,1,0,0,1,4,4,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,1,1,1,4,4,4,4,4,4,1,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,3,3,3,3,3,3,1,1,4,4,4,4,4,4,4,4,1,2,2,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,3,3,3,3,1,1,4,4,4,4,4,4,4,4,4,1,0,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,1,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,0,0,0,0,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,0,0,0,0,1,1,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,4,0,0,0,0,4,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,4,0,0,0,0,4,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,4,0,0,0,0,4,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,4,0,0,0,0,4,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,4,0,0,0,0,4,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,4,0,0,0,0,4,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,0,0,0,0,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,0,0,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,2,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "barrel_skull", + "Positions": [[37, 44], + [46, 41], + [43, 30], + [79, 75], + [84, 73], + [77, 73], + [34, 34], + [35, 33], + [36, 32]] + }, + { + "MapObject": "blood0", + "Positions": [[41, 41], + [16, 40], + [57, 5], + [63, 23], + [69, 11], + [82, 48], + [80, 59], + [80, 73], + [86, 81], + [66, 66]] + }, + { + "MapObject": "bone_blood", + "Positions": [[41, 31], + [49, 16], + [65, 16], + [76, 32]] + }, + { + "MapObject": "rod", + "Positions": [[31, 38], + [31, 42], + [76, 34], + [86, 34], + [75, 77], + [86, 77], + [79, 71], + [82, 71]] + }, + { + "MapObject": "tree_dead", + "Positions": [[79, 82], + [82, 82]] + }, + { + "MapObject": "Bullets ammo spawner", + "Positions": [[76, 70], + [75, 70], + [85, 71], + [86, 70], + [89, 50], + [72, 61], + [68, 65], + [79, 74], + [81, 90]] + }, + { + "MapObject": "Shells ammo spawner", + "Positions": [[80, 64], + [76, 50], + [76, 31], + [86, 60], + [94, 54], + [64, 65], + [48, 50], + [48, 46], + [48, 42]] + }, + { + "MapObject": "Rockets ammo spawner", + "Positions": [[59, 54], + [65, 54], + [62, 43]] + }, + { + "MapObject": "health bonus", + "Positions": [[46, 48], + [34, 48], + [22, 34], + [21, 35], + [21, 43], + [22, 44], + [66, 11], + [77, 21], + [76, 23], + [75, 71], + [77, 70], + [86, 78], + [86, 71], + [84, 71]] + }, + { + "MapObject": "armor bonus", + "Positions": [[35, 32], + [27, 45], + [27, 34], + [19, 39], + [17, 39], + [39, 30], + [55, 5], + [64, 11], + [64, 17], + [66, 17], + [65, 8], + [69, 63], + [75, 79], + [75, 73], + [80, 88], + [82, 88], + [80, 92], + [82, 92], + [93, 59], + [94, 46], + [96, 41], + [95, 37], + [94, 34], + [93, 31], + [89, 32], + [91, 30]] + }, + { + "MapObject": "health spawner", + "Positions": [[14, 39], + [60, 43], + [66, 65], + [78, 78], + [86, 58]] + }, + { + "MapObject": "stimpack spawner", + "Positions": [[82, 90]] + }, + { + "MapObject": "Launcher spawner", + "Positions": [[58, 43]] + }, + { + "MapObject": "Chaingun spawner", + "Positions": [[85, 70]] + }, + { + "MapObject": "Marine Shotgun spawner", + "Positions": [[86, 62], + [34, 32]] + }], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [], + "Start": [40, 52], + "Exit": { + "Start": [80, 88], + "End": [82, 93] + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/pickups.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/pickups.json new file mode 100644 index 00000000..1c14b1ef --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/doom_e1m1.cdogscpn/pickups.json @@ -0,0 +1,25 @@ +{ + "Version": 1, + "Pickups": [ + { + "Name": "health_bonus", + "Pic": "health_bonus", + "Type": "Health", + "Health": 1, + "ExceedMax": true + }, + { + "Name": "stimpack", + "Pic": "stimpack", + "Type": "Health", + "Health": 10 + }, + { + "Name": "armor_bonus", + "Pic": "armor_bonus", + "Type": "Health", + "Health": 1, + "ExceedMax": true + } + ] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dungeon.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dungeon.cdogscpn/campaign.json new file mode 100644 index 00000000..f7c05aa0 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dungeon.cdogscpn/campaign.json @@ -0,0 +1,7 @@ +{ + "Version": 5, + "Title": "Dogfight in the dungeon", + "Author": "", + "Description": "", + "Missions": 1 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dungeon.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dungeon.cdogscpn/characters.json new file mode 100644 index 00000000..04823ad3 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dungeon.cdogscpn/characters.json @@ -0,0 +1,3 @@ +{ + "Characters": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dungeon.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dungeon.cdogscpn/missions.json new file mode 100644 index 00000000..8c3a84ba --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dungeon.cdogscpn/missions.json @@ -0,0 +1,91 @@ +{ + "Missions": [{ + "Title": "", + "Description": "", + "Type": "Classic", + "Width": 32, + "Height": 32, + "WallStyle": 4, + "FloorStyle": 6, + "RoomStyle": 7, + "ExitStyle": 0, + "KeyStyle": 1, + "DoorStyle": 1, + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "barrel_skull", + "Density": 10 + }, + { + "MapObject": "barrel_wood", + "Density": 10 + }, + { + "MapObject": "box_gray", + "Density": 10 + }, + { + "MapObject": "box_green", + "Density": 10 + }, + { + "MapObject": "statue_ogre", + "Density": 10 + }, + { + "MapObject": "table_wood_candle", + "Density": 10 + }, + { + "MapObject": "table_wood", + "Density": 10 + }, + { + "MapObject": "tree_dead", + "Density": 10 + }], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "WallMask": "484848", + "FloorMask": "707070", + "RoomMask": "703800", + "AltMask": "700000", + "Walls": 50, + "WallLength": 25, + "CorridorWidth": 1, + "Rooms": { + "Count": 4, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 2, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/awake10_megaWall.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/awake10_megaWall.ogg new file mode 100644 index 00000000..e0ef767e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/awake10_megaWall.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/bullets.json new file mode 100644 index 00000000..128438a7 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/bullets.json @@ -0,0 +1,85 @@ +{ + "Version": 2, + "Bullets": [ + { + "Name": "10mm", + "Trail": { + "Particle": "trail", + "Width": 1.0 + }, + "WallMark": "bullet_hole", + "Speed": 35000, + "Range": 1, + "Power": 10, + "Mass": 0.2 + }, + { + "Name": "sshotgun", + "Trail": { + "Particle": "trail", + "Width": 1.0 + }, + "WallMark": "bullet_hole", + "Speed": 25000, + "Range": 1, + "Power": 10, + "Mass": 0.2 + }, + { + "Name": "bfg", + "Pic": { + "Type": "Directional", + "Sprites": "bfg_plasma" + }, + "Speed": 550, + "Range": 200, + "Power": 50, + "Mass": 50, + "Size": [8, 8], + "Spark": "", + "HitSounds": { + "Object": "bfg_hit", + "Flesh": "bfg_hit", + "Wall": "bfg_hit" + }, + "HitGuns": [ + "explosion_bfg" + ] + }, + { + "Name": "bfg_tracer", + "Pic": { + "Type": "Normal", + "Pic": "bfg_spark" + }, + "Speed": 1280, + "Range": 15, + "Power": 25, + "Mass": 25, + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "" + } + }, + { + "Name": "chainsaw", + "Power": 3, + "HitSounds": { + "Object": "chainsaw", + "Flesh": "chainsaw" + } + }, + { + "Name": "plasma", + "Pic": { + "Type": "Directional", + "Sprites": "particles/pulse" + }, + "Speed": 1280, + "Range": 40, + "Power": 20, + "Mass": 20 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/campaign.json new file mode 100644 index 00000000..f6675644 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/campaign.json @@ -0,0 +1,10 @@ +{ + "Version": 15, + "Title": "Map01", + "Author": "Cong", + "Description": "", + "Ammo": false, + "WeaponPersist": false, + "SkipWeaponMenu": true, + "Missions": 1 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/characters.json new file mode 100644 index 00000000..af9e4154 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/characters.json @@ -0,0 +1,4 @@ +{ + "Version": 13, + "Characters": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/graphics/armor_bonus.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/graphics/armor_bonus.png new file mode 100644 index 00000000..cf8f5f76 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/graphics/armor_bonus.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/graphics/bfg.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/graphics/bfg.png new file mode 100644 index 00000000..d3f49ed8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/graphics/bfg.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/graphics/bfg_plasma_20x20.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/graphics/bfg_plasma_20x20.png new file mode 100644 index 00000000..41466858 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/graphics/bfg_plasma_20x20.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/graphics/bfg_spark.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/graphics/bfg_spark.png new file mode 100644 index 00000000..0dcce8c1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/graphics/bfg_spark.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/graphics/health_bonus.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/graphics/health_bonus.png new file mode 100644 index 00000000..4c689ab4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/graphics/health_bonus.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/graphics/stimpack.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/graphics/stimpack.png new file mode 100644 index 00000000..ef2cc6b1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/graphics/stimpack.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/guns.json new file mode 100644 index 00000000..14a50f49 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/guns.json @@ -0,0 +1,97 @@ +{ + "Version": 2, + "Guns": [ + { + "Pic": "pistol", + "Name": "Marine Pistol", + "Icon": "pistol", + "Description": "Standard issue sidearm, low rate of fire and damage. Recommend engaging at a distance.", + "Bullet": "10mm", + "Cost": 0, + "Lock": 18, + "Sound": "pistol", + "Recoil": 0.05, + "Brass": "brass", + "Ammo": "Bullets" + }, + { + "Name": "Super shotgun", + "Icon": "shotgun", + "Description": "The super shotgun is very slow firing, but fires a big burst of lead.", + "Bullet": "sshotgun", + "Cost": 10, + "Lock": 114, + "ReloadLead": 50, + "Sound": "sshotgun", + "ReloadSound": "sshotgun_r", + "SpreadCount": 10, + "SpreadWidth": 0.05, + "MuzzleFlashParticle": "muzzle_flash_shotgun", + "Brass": "shotshell", + "Ammo": "Shells" + }, + { + "Name": "BFG 9000", + "Icon": "bfg", + "Description": "An experimental energy weapon, the BFG unleashes giant balls of green plasma that will melt anything within a large radius.", + "Bullet": "bfg", + "Cost": 20, + "Lock": 80, + "ReloadLead": 15, + "Sound": "bfg", + "ReloadSound": "powergun_r", + "MuzzleFlashSprite": "muzzle_flash_big", + "MuzzleFlashColor": "00ff00", + "MuzzleFlashDuration": 20, + "Ammo": "Cells" + }, + { + "Pic": "chainsaw", + "Icon": "chainsaw", + "Name": "Chainsaw", + "Description": "What's a chainsaw doing on Mars? Who cares, as long as your enemy is ripped to pieces!", + "Bullet": "chainsaw", + "Cost": 0, + "Sound": "", + "SwitchSound": "chainsaw_switch", + "SoundLockLength": 50, + "CanShoot": false, + "Auto": true + }, + { + "Name": "Plasma gun", + "Icon": "pulse_rifle", + "Description": "A futuristic energy weapon, fires a rapid stream of hot plasma.", + "Bullet": "plasma", + "Cost": 2, + "Lock": 6, + "Sound": "pulse", + "Recoil": 0.17, + "MuzzleFlashParticle": "muzzle_flash_pulse", + "Ammo": "Mini cells" + }, + { + "Pic": "chaingun", + "Name": "Chaingun", + "Icon": "machine_gun", + "Bullet": "10mm", + "Cost": 1, + "Lock": 8, + "Sound": "mg", + "SwitchSound": "mg_switch", + "Recoil": 0.3, + "MuzzleFlashParticle": "muzzle_flash_mg", + "Brass": "brass_big", + "Ammo": "Bullets" + } + ], + "PseudoGuns" : [ + { + "Pic": "", + "Name": "explosion_bfg", + "Bullet": "bfg_tracer", + "SpreadCount": 20, + "SpreadWidth": 0.31 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/licenses.txt b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/licenses.txt new file mode 100644 index 00000000..4a59ea95 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/licenses.txt @@ -0,0 +1,38 @@ +graphics/armor_bonus.png +graphics/health_bonus.png +Derived from Dungeon Crawl 32x32 tiles +by Chris Hamons (maintainer) +http://opengameart.org/content/dungeon-crawl-32x32-tiles +http://creativecommons.org/publicdomain/zero/1.0/ + +graphics/bfg_plasma_20x20.png +graphics/bfg_spark.png +Derived 2D Shooter Effects (Alpha version) +by Tatermand +http://opengameart.org/content/2d-shooter-effects-alpha-version +http://creativecommons.org/publicdomain/zero/1.0/ + +graphics/stimpack.png +Adapted from Various inventory 24 pixel icon set +By OceansDream +http://opengameart.org/content/various-inventory-24-pixel-icon-set +http://creativecommons.org/licenses/by/3.0/ + +sounds/bfg.ogg +x_explosion.wav +by cubicApocalypse +http://freesound.org/people/cubicApocalypse/sounds/256658/ +http://creativecommons.org/licenses/by/4.0/ + +sounds/bfg_hit.ogg +DSRXPLOD.WAV +by wildweasel +http://freesound.org/people/wildweasel/sounds/39020/ +http://creativecommons.org/licenses/by/4.0/ + +sounds/sshotgun.ogg +sounds/sshotgun_r.ogg +Chaingun, pistol, rifle, shotgun shots +by Michel Baradari +http://opengameart.org/content/chaingun-pistol-rifle-shotgun-shots +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/map_objects.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/map_objects.json new file mode 100644 index 00000000..7e688a58 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/map_objects.json @@ -0,0 +1,41 @@ +{ + "Version": 3, + "MapObjects": [ + { + "Name": "health bonus", + "Pic": { + "Type": "Animated", + "Sprites": "spawn_pad", + "TicksPerFrame": 8 + }, + "Offset": [-8, -6], + "Health": 0, + "Type": "PickupSpawner", + "Pickup": "health_bonus" + }, + { + "Name": "stimpack spawner", + "Pic": { + "Type": "Animated", + "Sprites": "spawn_pad", + "TicksPerFrame": 8 + }, + "Offset": [-8, -6], + "Health": 0, + "Type": "PickupSpawner", + "Pickup": "stimpack" + }, + { + "Name": "armor bonus", + "Pic": { + "Type": "Animated", + "Sprites": "spawn_pad", + "TicksPerFrame": 8 + }, + "Offset": [-8, -6], + "Health": 0, + "Type": "PickupSpawner", + "Pickup": "armor_bonus" + } + ] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/missions.json new file mode 100644 index 00000000..d56f9a86 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/missions.json @@ -0,0 +1,318 @@ +{ + "Missions": [{ + "Title": "", + "Description": "", + "Type": "Static", + "Width": 58, + "Height": 78, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Marine Pistol"], + "Song": "awake10_megaWall.ogg", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "alien", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "004800ff", + "MaskAlt": "707070ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "847024ff", + "MaskAlt": "707070ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "008400ff", + "MaskAlt": "707070ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,1,4,4,4,4,4,4,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,1,4,4,4,4,4,1,1,3,3,3,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,3,3,3,3,3,1,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,1,1,1,1,1,1,1,3,3,3,1,1,3,3,3,3,3,1,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,4,4,4,4,4,4,1,3,3,3,1,1,1,3,3,3,1,1,1,1,3,3,3,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,4,4,4,4,4,4,1,3,3,3,1,4,1,1,1,1,1,4,4,1,3,3,3,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,4,4,4,4,4,4,1,3,3,3,1,4,4,4,4,4,4,4,4,1,3,3,3,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,4,4,4,4,4,4,1,3,3,3,1,4,4,4,4,4,4,4,4,1,3,3,3,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,4,4,4,4,4,4,1,3,3,3,1,4,4,4,4,4,4,4,4,1,3,3,3,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,3,3,3,3,1,1,1,1,1,1,4,1,3,3,3,1,4,4,4,4,4,4,4,4,1,3,3,3,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,1,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,1,4,4,4,4,4,4,4,4,1,3,3,3,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,0,0,0,1,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,1,4,4,4,4,4,4,4,4,1,3,3,3,1,4,4,4,4,4,4,4,4,4", + "4,4,4,0,0,0,0,0,0,0,0,0,1,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,1,4,4,4,4,4,4,4,4,1,3,3,3,1,4,4,4,4,4,4,4,4,4", + "0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,1,4,4,4,4,4,4,4,4,1,3,3,3,1,4,4,4,4,4,4,4,4,4", + "0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,1,4,4,4,4,4,4,4,4,1,3,3,3,1,4,4,4,4,4,4,4,4,4", + "0,0,0,0,0,0,0,0,0,0,0,3,1,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,1,4,4,4,4,4,4,4,4,1,3,3,3,1,4,4,4,4,4,4,4,4,4", + "0,0,0,0,0,0,0,0,0,0,3,3,1,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,1,4,4,4,4,4,4,4,4,1,3,3,3,1,4,4,4,4,4,4,4,4,4", + "0,0,0,0,0,0,0,0,0,3,3,3,1,4,4,1,3,1,1,3,3,3,3,3,3,1,1,3,3,1,4,1,3,3,3,1,4,4,4,1,1,1,1,1,1,3,3,3,1,4,4,4,4,4,4,4,4,4", + "0,0,0,0,0,0,0,0,3,3,3,3,1,4,4,1,3,1,1,3,3,3,3,3,3,1,1,3,3,1,4,1,3,3,3,1,1,1,1,1,3,3,3,3,1,3,3,3,1,1,1,4,4,4,4,4,4,4", + "0,0,0,0,0,0,0,0,3,3,3,3,1,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,4,4,4,4,4", + "0,0,0,0,0,0,0,0,3,3,3,3,1,4,4,1,3,3,3,3,3,3,3,3,3,3,3,1,3,1,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1", + "0,0,0,0,0,0,0,0,3,3,3,3,1,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,1", + "0,0,0,0,0,0,0,0,3,3,3,3,1,3,4,1,1,1,1,3,3,3,3,3,3,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,1", + "0,0,0,0,0,0,0,0,3,3,3,3,1,1,1,1,1,1,1,3,3,3,3,3,3,1,1,1,1,1,1,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,1", + "0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,1", + "0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,1", + "0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,1,1,1,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,1", + "0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,1,1,1,1,1,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,1,1,1,1,1,1,1,3,3,3,3,3,1,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,1,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,3,3,1,1,1,1,1", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,1,1,3,3,3,3,3,1,1,3,3,3,3,1,4,4,4,4", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,1,1,1,3,3,3,3,3,3,3,1,1,3,3,3,3,3,1,3,3,3,3,3,1,4,4,4,4", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,1,1,1,1,2,2,1,1,1,1,1,2,2,2,2,2,1,3,3,3,3,3,1,4,4,4,4", + "4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1", + "4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,0,0,0,3,3,0,3,0,3,3,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0", + "4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,0,0,0,0,0", + "4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,0,0,0", + "4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "health spawner", + "Positions": [[39, 1], + [35, 64]] + }, + { + "MapObject": "stimpack spawner", + "Positions": [[36, 1], + [39, 3], + [32, 20], + [39, 30], + [42, 47], + [39, 59], + [56, 56], + [57, 65], + [26, 74], + [7, 64], + [9, 41], + [16, 46]] + }, + { + "MapObject": "Super shotgun spawner", + "Positions": [[17, 53], + [41, 30], + [32, 48], + [55, 63], + [20, 60], + [38, 65], + [21, 30], + [21, 22]] + }, + { + "MapObject": "armor bonus", + "Positions": [[43, 28], + [43, 29], + [43, 30], + [43, 31], + [44, 28], + [44, 29], + [44, 30], + [45, 29], + [45, 30], + [46, 30]] + }, + { + "MapObject": "Chaingun spawner", + "Positions": [[46, 37]] + }, + { + "MapObject": "BFG 9000 spawner", + "Positions": [[55, 50]] + }, + { + "MapObject": "Launcher spawner", + "Positions": [[44, 60], + [1, 51]] + }, + { + "MapObject": "Rockets ammo spawner", + "Positions": [[43, 62]] + }, + { + "MapObject": "Bullets ammo spawner", + "Positions": [[11, 58]] + }, + { + "MapObject": "Shells ammo spawner", + "Positions": [[32, 65], + [28, 46], + [20, 20]] + }, + { + "MapObject": "Chainsaw spawner", + "Positions": [[11, 40]] + }, + { + "MapObject": "Plasma gun spawner", + "Positions": [[30, 58]] + }], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [], + "Start": [0, 0], + "Exit": { + "Start": [0, 0], + "End": [0, 0] + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/pickups.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/pickups.json new file mode 100644 index 00000000..1c14b1ef --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/pickups.json @@ -0,0 +1,25 @@ +{ + "Version": 1, + "Pickups": [ + { + "Name": "health_bonus", + "Pic": "health_bonus", + "Type": "Health", + "Health": 1, + "ExceedMax": true + }, + { + "Name": "stimpack", + "Pic": "stimpack", + "Type": "Health", + "Health": 10 + }, + { + "Name": "armor_bonus", + "Pic": "armor_bonus", + "Type": "Health", + "Health": 1, + "ExceedMax": true + } + ] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/sounds/bfg.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/sounds/bfg.ogg new file mode 100644 index 00000000..25d5348d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/sounds/bfg.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/sounds/bfg_hit.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/sounds/bfg_hit.ogg new file mode 100644 index 00000000..0f1b8c1a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/sounds/bfg_hit.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/sounds/sshotgun.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/sounds/sshotgun.ogg new file mode 100644 index 00000000..1a7214a3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/sounds/sshotgun.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/sounds/sshotgun_r.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/sounds/sshotgun_r.ogg new file mode 100644 index 00000000..b699a6e5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/dwango5_map01.cdogscpn/sounds/sshotgun_r.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/bullets.json new file mode 100644 index 00000000..128438a7 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/bullets.json @@ -0,0 +1,85 @@ +{ + "Version": 2, + "Bullets": [ + { + "Name": "10mm", + "Trail": { + "Particle": "trail", + "Width": 1.0 + }, + "WallMark": "bullet_hole", + "Speed": 35000, + "Range": 1, + "Power": 10, + "Mass": 0.2 + }, + { + "Name": "sshotgun", + "Trail": { + "Particle": "trail", + "Width": 1.0 + }, + "WallMark": "bullet_hole", + "Speed": 25000, + "Range": 1, + "Power": 10, + "Mass": 0.2 + }, + { + "Name": "bfg", + "Pic": { + "Type": "Directional", + "Sprites": "bfg_plasma" + }, + "Speed": 550, + "Range": 200, + "Power": 50, + "Mass": 50, + "Size": [8, 8], + "Spark": "", + "HitSounds": { + "Object": "bfg_hit", + "Flesh": "bfg_hit", + "Wall": "bfg_hit" + }, + "HitGuns": [ + "explosion_bfg" + ] + }, + { + "Name": "bfg_tracer", + "Pic": { + "Type": "Normal", + "Pic": "bfg_spark" + }, + "Speed": 1280, + "Range": 15, + "Power": 25, + "Mass": 25, + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "" + } + }, + { + "Name": "chainsaw", + "Power": 3, + "HitSounds": { + "Object": "chainsaw", + "Flesh": "chainsaw" + } + }, + { + "Name": "plasma", + "Pic": { + "Type": "Directional", + "Sprites": "particles/pulse" + }, + "Speed": 1280, + "Range": 40, + "Power": 20, + "Mass": 20 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/campaign.json new file mode 100644 index 00000000..b827ac0c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/campaign.json @@ -0,0 +1,10 @@ +{ + "Version": 15, + "Title": "Map 07: Dead Simple", + "Author": "Cong", + "Description": "A simple deathmatch arena", + "Ammo": false, + "WeaponPersist": false, + "SkipWeaponMenu": true, + "Missions": 1 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/characters.json new file mode 100644 index 00000000..af9e4154 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/characters.json @@ -0,0 +1,4 @@ +{ + "Version": 13, + "Characters": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/graphics/armor_bonus.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/graphics/armor_bonus.png new file mode 100644 index 00000000..cf8f5f76 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/graphics/armor_bonus.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/graphics/bfg.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/graphics/bfg.png new file mode 100644 index 00000000..d3f49ed8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/graphics/bfg.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/graphics/bfg_plasma_20x20.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/graphics/bfg_plasma_20x20.png new file mode 100644 index 00000000..41466858 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/graphics/bfg_plasma_20x20.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/graphics/bfg_spark.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/graphics/bfg_spark.png new file mode 100644 index 00000000..0dcce8c1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/graphics/bfg_spark.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/graphics/health_bonus.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/graphics/health_bonus.png new file mode 100644 index 00000000..4c689ab4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/graphics/health_bonus.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/graphics/stimpack.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/graphics/stimpack.png new file mode 100644 index 00000000..ef2cc6b1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/graphics/stimpack.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/guns.json new file mode 100644 index 00000000..14a50f49 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/guns.json @@ -0,0 +1,97 @@ +{ + "Version": 2, + "Guns": [ + { + "Pic": "pistol", + "Name": "Marine Pistol", + "Icon": "pistol", + "Description": "Standard issue sidearm, low rate of fire and damage. Recommend engaging at a distance.", + "Bullet": "10mm", + "Cost": 0, + "Lock": 18, + "Sound": "pistol", + "Recoil": 0.05, + "Brass": "brass", + "Ammo": "Bullets" + }, + { + "Name": "Super shotgun", + "Icon": "shotgun", + "Description": "The super shotgun is very slow firing, but fires a big burst of lead.", + "Bullet": "sshotgun", + "Cost": 10, + "Lock": 114, + "ReloadLead": 50, + "Sound": "sshotgun", + "ReloadSound": "sshotgun_r", + "SpreadCount": 10, + "SpreadWidth": 0.05, + "MuzzleFlashParticle": "muzzle_flash_shotgun", + "Brass": "shotshell", + "Ammo": "Shells" + }, + { + "Name": "BFG 9000", + "Icon": "bfg", + "Description": "An experimental energy weapon, the BFG unleashes giant balls of green plasma that will melt anything within a large radius.", + "Bullet": "bfg", + "Cost": 20, + "Lock": 80, + "ReloadLead": 15, + "Sound": "bfg", + "ReloadSound": "powergun_r", + "MuzzleFlashSprite": "muzzle_flash_big", + "MuzzleFlashColor": "00ff00", + "MuzzleFlashDuration": 20, + "Ammo": "Cells" + }, + { + "Pic": "chainsaw", + "Icon": "chainsaw", + "Name": "Chainsaw", + "Description": "What's a chainsaw doing on Mars? Who cares, as long as your enemy is ripped to pieces!", + "Bullet": "chainsaw", + "Cost": 0, + "Sound": "", + "SwitchSound": "chainsaw_switch", + "SoundLockLength": 50, + "CanShoot": false, + "Auto": true + }, + { + "Name": "Plasma gun", + "Icon": "pulse_rifle", + "Description": "A futuristic energy weapon, fires a rapid stream of hot plasma.", + "Bullet": "plasma", + "Cost": 2, + "Lock": 6, + "Sound": "pulse", + "Recoil": 0.17, + "MuzzleFlashParticle": "muzzle_flash_pulse", + "Ammo": "Mini cells" + }, + { + "Pic": "chaingun", + "Name": "Chaingun", + "Icon": "machine_gun", + "Bullet": "10mm", + "Cost": 1, + "Lock": 8, + "Sound": "mg", + "SwitchSound": "mg_switch", + "Recoil": 0.3, + "MuzzleFlashParticle": "muzzle_flash_mg", + "Brass": "brass_big", + "Ammo": "Bullets" + } + ], + "PseudoGuns" : [ + { + "Pic": "", + "Name": "explosion_bfg", + "Bullet": "bfg_tracer", + "SpreadCount": 20, + "SpreadWidth": 0.31 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/licenses.txt b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/licenses.txt new file mode 100644 index 00000000..56c29069 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/licenses.txt @@ -0,0 +1,44 @@ +awake10_megaWall.ogg +Awake! (Megawall-10) +by http://cynicmusic.com http://pixelsphere.org +http://opengameart.org/content/awake-megawall-10 +http://creativecommons.org/publicdomain/zero/1.0/ + +graphics/armor_bonus.png +graphics/health_bonus.png +Derived from Dungeon Crawl 32x32 tiles +by Chris Hamons (maintainer) +http://opengameart.org/content/dungeon-crawl-32x32-tiles +http://creativecommons.org/publicdomain/zero/1.0/ + +graphics/bfg_plasma_20x20.png +graphics/bfg_spark.png +Derived 2D Shooter Effects (Alpha version) +by Tatermand +http://opengameart.org/content/2d-shooter-effects-alpha-version +http://creativecommons.org/publicdomain/zero/1.0/ + +graphics/stimpack.png +Adapted from Various inventory 24 pixel icon set +By OceansDream +http://opengameart.org/content/various-inventory-24-pixel-icon-set +http://creativecommons.org/licenses/by/3.0/ + +sounds/bfg.ogg +x_explosion.wav +by cubicApocalypse +http://freesound.org/people/cubicApocalypse/sounds/256658/ +http://creativecommons.org/licenses/by/4.0/ + +sounds/bfg_hit.ogg +DSRXPLOD.WAV +by wildweasel +http://freesound.org/people/wildweasel/sounds/39020/ +http://creativecommons.org/licenses/by/4.0/ + +sounds/sshotgun.ogg +sounds/sshotgun_r.ogg +Chaingun, pistol, rifle, shotgun shots +by Michel Baradari +http://opengameart.org/content/chaingun-pistol-rifle-shotgun-shots +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/missions.json new file mode 100644 index 00000000..133db9e4 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/missions.json @@ -0,0 +1,183 @@ +{ + "Missions": [{ + "Title": "", + "Description": "", + "Type": "Static", + "Width": 24, + "Height": 28, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Marine Pistol"], + "Song": "", + "TileClasses": { + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "94802cff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "007000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1", + "1,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,1", + "1,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,1", + "1,0,0,0,0,3,3,0,0,0,3,3,3,3,3,0,0,0,3,3,0,0,0,1", + "1,0,0,0,0,3,3,0,0,0,3,3,3,3,3,0,0,0,3,3,0,0,0,1", + "1,0,0,0,0,3,3,0,0,0,3,3,3,3,3,0,0,0,3,3,0,0,0,1", + "1,0,0,0,0,3,3,0,0,0,3,3,3,3,3,0,0,0,3,3,0,0,0,1", + "1,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,1", + "1,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,1", + "1,0,0,0,0,3,3,3,3,3,3,4,4,4,3,3,3,3,3,3,0,0,0,1", + "1,0,0,0,0,3,3,3,3,3,3,4,1,4,3,3,3,3,3,3,0,0,0,1", + "1,0,0,0,0,3,3,3,3,3,3,4,1,4,3,3,3,3,3,3,0,0,0,1", + "1,0,0,0,0,3,3,3,3,3,3,4,4,4,3,3,3,3,3,3,0,0,0,1", + "1,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,1", + "1,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,1", + "1,0,0,0,0,3,3,0,0,0,3,3,3,3,3,0,0,0,3,3,0,0,0,1", + "1,0,0,0,0,3,3,0,0,0,3,3,3,3,3,0,0,0,3,3,0,0,0,1", + "1,0,0,0,0,3,3,0,0,0,3,3,3,3,3,0,0,0,3,3,0,0,0,1", + "1,0,0,0,0,3,3,0,0,0,3,3,3,3,3,0,0,0,3,3,0,0,0,1", + "1,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,1", + "1,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,1", + "1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "Rockets ammo spawner", + "Positions": [[9, 24], + [15, 24], + [4, 24], + [4, 3], + [9, 3], + [15, 3], + [12, 18], + [12, 9], + [9, 13], + [15, 13], + [7, 20], + [15, 15], + [17, 7]] + }, + { + "MapObject": "Shells ammo spawner", + "Positions": [[2, 17], + [2, 10], + [22, 10], + [22, 17], + [22, 15]] + }, + { + "MapObject": "Bullets ammo spawner", + "Positions": [[20, 3], + [20, 24]] + }, + { + "MapObject": "Super shotgun spawner", + "Positions": [[22, 12]] + }, + { + "MapObject": "health spawner", + "Positions": [[9, 18], + [7, 13]] + }, + { + "MapObject": "Chaingun spawner", + "Positions": [[15, 18]] + }, + { + "MapObject": "Mini cells ammo spawner", + "Positions": [[17, 19], + [7, 7]] + }, + { + "MapObject": "Plasma gun spawner", + "Positions": [[15, 9]] + }, + { + "MapObject": "Launcher spawner", + "Positions": [[9, 9]] + }], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [], + "Start": [0, 0], + "Exit": { + "Start": [0, 0], + "End": [0, 0] + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/sounds/bfg.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/sounds/bfg.ogg new file mode 100644 index 00000000..25d5348d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/sounds/bfg.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/sounds/bfg_hit.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/sounds/bfg_hit.ogg new file mode 100644 index 00000000..0f1b8c1a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/sounds/bfg_hit.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/sounds/sshotgun.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/sounds/sshotgun.ogg new file mode 100644 index 00000000..1a7214a3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/sounds/sshotgun.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/sounds/sshotgun_r.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/sounds/sshotgun_r.ogg new file mode 100644 index 00000000..b699a6e5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/map07.cdogscpn/sounds/sshotgun_r.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/LICENSE.md b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/LICENSE.md new file mode 100644 index 00000000..2660d3e8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/LICENSE.md @@ -0,0 +1,45 @@ +## creative commons + +# CC0 1.0 Universal + +``` +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. +``` + +### Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. + +1. __Copyright and Related Rights.__ A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; + + ii. moral rights retained by the original author(s) and/or performer(s); + + iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; + + iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; + + v. rights protecting the extraction, dissemination, use and reuse of data in a Work; + + vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and + + vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. + +2. __Waiver.__ To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. + +3. __Public License Fallback.__ Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. + +4. __Limitations and Disclaimers.__ + + a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. + + b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. + + c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. + + d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/ammo.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/ammo.json new file mode 100644 index 00000000..49e4113a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/ammo.json @@ -0,0 +1,45 @@ +{ + "Version": 2, + "Ammo": [ + { + "Name": "Bolts", + "Pic": { + "Type": "Normal", + "Pic": "bolts" + }, + "Sound": "package_pickup", + "Amount": 3, + "Max": 30 + }, + { + "Name": "Barrels", + "Pic": { + "Type": "Normal", + "Pic": "barrel_wood" + }, + "Sound": "package_pickup", + "Amount": 1, + "Max": 5 + }, + { + "Name": "Mana", + "Pic": { + "Type": "Normal", + "Pic": "bottle" + }, + "Sound": "package_pickup", + "Amount": 20, + "Max": 80 + }, + { + "Name": "Stars", + "Pic": { + "Type": "Normal", + "Pic": "shurikenlogo" + }, + "Sound": "knife_switch", + "Amount": 5, + "Max": 15 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/bullets.json new file mode 100644 index 00000000..63358ecd --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/bullets.json @@ -0,0 +1,142 @@ +{ + "Version": 1, + + "Bullets": [ + { + "Name": "cbolt", + "Pic": { + "Type": "Directional", + "Sprites": "boltcrossbow" + }, + "Speed": 1024, + "Range": 100, + "Power": 50, + "HitSounds": { + "Object": "hits/knife_hard", + "Flesh": "hits/knife_flesh" + }, + "ShadowSize": [7, 2] + }, + + { + "Name": "proxbarrel", + "Pic": { + "Type": "Normal", + "Pic": "barrel_wood", + "OldPic": 388 + }, + "Speed": 0, + "Range": 140, + "Persists": true, + "HitsObjects": false, + "OutOfRangeGuns": [ + "activebarrel" + ] + }, + { + "Name": "activebarrel", + "Pic": { + "Type": "Normal", + "Pic": "barrel_wood" + }, + "Speed": 0, + "Range": -1, + "Persists": true, + "HitsObjects": false, + "ProximityGuns": [ + "triggeredbarrel" + ] + }, + { + "Name": "triggeredbarrel", + "Pic": { + "Type": "Normal", + "Pic": "barrel_wood" + }, + "Speed": 0, + "Range": 5, + "Persists": true, + "HitsObjects": false, + "OutOfRangeGuns": [ + "explosion_small", + "frag_explosionbarrel" + ] + }, + { + "Name": "barrelfrag", + "Speed": 640, + "Range": 15, + "Power": 20, + "HurtAlways": true, + "Pic": { + "Type": "Directional", + "Sprites": "barrelstakes" + } + }, + + { + "Name": "ice_needle", + "Pic": { + "Type": "Directional", + "Sprites": "rapid" + }, + "Speed": 1024, + "Range": 45, + "Power": 4 + }, + + { + "Name": "random_fire", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "flame", + "TicksPerFrame": 4 + }, + "Speed": 768, + "Range": 18, + "Power": 8, + "Persists": true, + "Erratic": true, + "Special": "Flame", + "Spark": "", + "HitSounds": { + "Object": "hits/fire", + "Flesh": "hits/fire", + "Wall": "hits/fire" + }, + "WallBounces": true + }, + + { + "Name": "mutilator", + "Speed": 300, + "Pic": { + "Type": "Normal", + "Pic": "molotov", + "Tint": [-1.0, 1.0, 0.75], + "OldPic": 301 + }, + "Range": 350, + "Power": 2, + "SeekFactor": 75 + }, + + { + "Name": "star", + "Speed": 800, + "Pic": { + "Type": "Animated", + "Sprites": "shuriken", + "TicksPerFrame": 5 + }, + "Range": 78, + "HitSounds": { + "Object": "hits/knife_hard", + "Flesh": "hits/knife_flesh" + }, + "Power": 25, + "WallBounces": true + } + + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/campaign.json new file mode 100644 index 00000000..1bbdc7d4 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/campaign.json @@ -0,0 +1,7 @@ +{ + "Version": 7, + "Title": "Spells and Spikes", + "Author": "", + "Description": "", + "Missions": 1 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/characters.json new file mode 100644 index 00000000..04823ad3 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/characters.json @@ -0,0 +1,3 @@ +{ + "Characters": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/graphics/barrelstakes_4x4.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/graphics/barrelstakes_4x4.png new file mode 100644 index 00000000..06d50873 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/graphics/barrelstakes_4x4.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/graphics/boltcrossbow_7x7.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/graphics/boltcrossbow_7x7.png new file mode 100644 index 00000000..9f182c1d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/graphics/boltcrossbow_7x7.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/graphics/bolts.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/graphics/bolts.png new file mode 100644 index 00000000..65e27829 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/graphics/bolts.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/graphics/shuriken_4x4.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/graphics/shuriken_4x4.png new file mode 100644 index 00000000..e593fc91 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/graphics/shuriken_4x4.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/graphics/shurikenlogo.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/graphics/shurikenlogo.png new file mode 100644 index 00000000..4545fc3d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/graphics/shurikenlogo.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/guns.json new file mode 100644 index 00000000..2d4df97a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/guns.json @@ -0,0 +1,141 @@ +{ + "Version": 1, + + "Guns": [ + { + "Pic": "knife", + "Icon": "knife", + "Name": "Silver Knife", + "Description": "A melee weapon. This weapon is used automatically. Simply walk into and an enemy to slash and cause damage. You will also damage objects when you walk into them, unless they are explosives. Using the attack key just makes you hold your position.", + "Bullet": "knife", + "Cost": 0, + "Sound": "", + "SwitchSound": "knife_switch", + "SoundLockLength": 10, + "CanShoot": false + }, + + { + "Name": "Blunderbuss", + "Icon": "shotgun", + "Bullet": "shotgun", + "Cost": 5, + "Lock": 65, + "ReloadLead": 10, + "Sound": "explosion_small", + "ReloadSound": "shotgun_r", + "SwitchSound": "shotgun_r", + "SpreadCount": 6, + "SpreadWidth": 0.03, + "Recoil": 0.08, + "MuzzleFlashParticle": "muzzle_flash_shotgun", + "Brass": "shotshell", + "Ammo": "Shells" + }, + + { + "Name": "Crossbow", + "Icon": "shotgun", + "Bullet": "cbolt", + "Cost": 5, + "Lock": 100, + "ReloadLead": 15, + "Sound": "rocket_launch", + "Ammo": "Bolts" + }, + + { + "Pic": "", + "Name": "Rigged Barrel", + "Icon": "barrel_wood", + "Bullet": "proxbarrel", + "Cost": 10, + "Lock": 100, + "ReloadLead": 15, + "Sound": "hahaha", + "ReloadSound": "package_r", + "SwitchSound": "mine_switch", + "MuzzleHeight": 0, + "Ammo": "Barrels" + }, + + { + "Pic" : "", + "Name" : "Spell: Ice Needles", + "Icon" : "paper", + "Bullet": "ice_needle", + "Cost": 1, + "Lock": 4, + "Sound": "hits/petrify", + "Ammo": "Mana", + "SpreadCount": 4, + "SpreadWidth": 0.1, + "Recoil": 0.15 + }, + + { + "Pic" : "", + "Name" : "Spell: Raging Flames", + "Icon" : "paper", + "Bullet": "random_fire", + "Cost": 2, + "Lock": 16, + "Sound": "hits/petrify", + "Ammo": "Mana", + "SpreadCount": 3, + "SpreadWidth": 0.15, + "Recoil": 0.2 + }, + + { + "Pic" : "", + "Name" : "Spell: Soul Mutilator", + "Icon" : "paper", + "Bullet": "mutilator", + "Cost": 3, + "Lock": 3, + "Sound": "hits/petrify", + "Ammo": "Mana", + "SpreadCount": 8, + "SpreadWidth": 0.79, + "Recoil": 0.2 + }, + + { + "Pic" : "", + "Name" : "Shuriken", + "Icon" : "shurikenlogo", + "Bullet": "star", + "Cost": 1, + "Lock": 20, + "Sound": "rocket_launch", + "SwitchSound": "knife_switch", + "Ammo": "Stars", + "SpreadCount": 2, + "SpreadWidth": 0.1, + "Recoil": 0.15 + } + ], + "PseudoGuns" : [ + { + "Pic": "", + "Name": "activebarrel", + "Bullet": "activebarrel", + "Sound": "mine_arm" + }, + { + "Pic": "", + "Name": "triggeredbarrel", + "Bullet": "triggeredbarrel", + "Sound": "mine_trigger" + }, + { + "Pic": "", + "Name": "frag_explosionbarrel", + "Bullet": "barrelfrag", + "SpreadCount": 8, + "SpreadWidth": 0.79, + "AngleOffset": 0.2 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/missions.json new file mode 100644 index 00000000..6def0d0c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/spells_n_spikes.cdogscpn/missions.json @@ -0,0 +1,185 @@ +{ + "Missions": [{ + "Title": "Fight!", + "Description": "", + "Type": "Static", + "Width": 50, + "Height": 50, + "WallStyle": 4, + "FloorStyle": 2, + "RoomStyle": 7, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": "office", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "barrel_wood", + "Density": 110 + }], + "EnemyDensity": 0, + "Weapons": ["Silver Knife", + "Blunderbuss", + "Crossbow"], + "Song": "", + "WallMask": "282828", + "FloorMask": "003c00", + "RoomMask": "483004", + "AltMask": "008400", + "Tiles": "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,3,3,3,3,3,3,1,1,1,0,0,0,0,0,0,0,1,1,1,3,3,3,3,3,3,1,1,1,0,0,1,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,1,1,1,3,3,3,3,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,3,3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,3,3,3,3,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,3,3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,1,1,1,3,3,3,1,1,1,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,1,1,1,3,3,3,1,1,1,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "StaticItems": [{ + "MapObject": "statue_ogre", + "Positions": [[18, + 8], + [24, + 8], + [18, + 17], + [24, + 17], + [15, + 21], + [15, + 27], + [27, + 27], + [27, + 21], + [8, + 7], + [15, + 7], + [27, + 7], + [34, + 7], + [19, + 40], + [23, + 40], + [44, + 9], + [44, + 15], + [44, + 21], + [44, + 27], + [44, + 33], + [44, + 39], + [44, + 45]] + }, + { + "MapObject": "bookshelf", + "Positions": [[35, + 31], + [7, + 31], + [8, + 31], + [9, + 31], + [29, + 29], + [24, + 35], + [35, + 7]] + }, + { + "MapObject": "table_clothed", + "Positions": [[33, + 34], + [29, + 34], + [31, + 36]] + }, + { + "MapObject": "tree", + "Positions": [[2, + 23], + [4, + 25], + [6, + 3], + [16, + 2], + [47, + 4], + [39, + 17], + [41, + 10], + [22, + 45]] + }, + { + "MapObject": "tree_dead", + "Positions": [[21, + 46], + [8, + 45], + [3, + 45], + [20, + 15]] + }, + { + "MapObject": "tree_autumn", + "Positions": [[34, + 2], + [40, + 29], + [41, + 30], + [19, + 30]] + }, + { + "MapObject": "Rigged Barrel spawner", + "Positions": [[6, + 12]] + }, + { + "MapObject": "Spell: Ice Needles spawner", + "Positions": [[8, + 33]] + }, + { + "MapObject": "Spell: Raging Flames spawner", + "Positions": [[43, + 18]] + }, + { + "MapObject": "Spell: Soul Mutilator spawner", + "Positions": [[35, + 8]] + }, + { + "MapObject": "Shuriken spawner", + "Positions": [[21, + 25], + [10, + 46], + [38, + 36]] + }], + "StaticWrecks": [], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [], + "Start": [0, + 0], + "Exit": { + "Start": [20, + 4], + "End": [22, + 6] + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/temple_of_carnage.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/temple_of_carnage.cdogscpn/bullets.json new file mode 100644 index 00000000..487b5ea5 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/temple_of_carnage.cdogscpn/bullets.json @@ -0,0 +1,281 @@ +{ + "Version": 2, + "Bullets": [ + { + "Name": "ice", + "Pic": { + "Type": "Normal", + "Pic": "molotov", + "Tint": [-1.0, 1.0, 0.75], + "OldPic": 301 + }, + "Speed": 900, + "Range": 45, + "Power": 5, + "Mass": 1, + "HurtAlways": false, + "Size": [10, 10], + "Special": "Petrify", + "HitSounds": { + "Object": "hits/petrify", + "Flesh": "hits/petrify", + "Wall": "" + } + }, + { + "Name": "activemine", + "Pic": { + "Type": "Normal", + "Pic": "mine_active" + }, + "Speed": 0, + "Range": -1, + "Persists": true, + "HitsObjects": false, + "ProximityGuns": [ + "triggeredmine" + ] + }, + { + "Name": "triggeredmine", + "Pic": { + "Type": "Normal", + "Pic": "mine_active" + }, + "Speed": 0, + "Range": 5, + "Persists": true, + "HitsObjects": false, + "OutOfRangeGuns": [ + "freezer" + ] + }, + { + "Name": "proxmine", + "Pic": { + "Type": "Normal", + "Pic": "mine_inactive" + }, + "Speed": 0, + "Range": 140, + "Persists": true, + "HitsObjects": false, + "OutOfRangeGuns": [ + "activemine" + ] + }, + { + "Name": "aloma", + "Pic": { + "Type": "Animated", + "Sprites": "grenade", + "TicksPerFrame": 2 + }, + "Range": 0, + "Spark": "", + + "HitsObjects": true, + "Falling": { + "GravityFactor": 3 + }, + "OutOfRangeGuns": [ + "trigger", + "explosion1", + "explosion2", + "explosion3" + ] + }, + { + "Name": "charge", + "Pic": { + "Type": "Animated", + "Sprites": "grenade", + "TicksPerFrame": 2 + }, + "ShadowSize": [6, 4], + "Speed": 784, + "Range": 25, + "Spark": "", + "HitSounds": { + "Object": "", + "Flesh": "" + }, + "HitsObjects": true, + "Falling": { + "GravityFactor": 3 + }, + "OutOfRangeGuns": [ + "charge", + "explosion1", + "explosion2", + "explosion3" + ] + }, + { + "Name": "bbq1", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "flame", + "TicksPerFrame": 4 + }, + "Speed": 1384, + "Range": 6, + "Power": 8, + "Mass": 1, + "Size": [10, 10], + "Special": "Flame", + "Spark": "", + "HitSounds": { + "Object": "hits/fire", + "Flesh": "hits/fire", + "Wall": "hits/fire" + }, + "Persists": true, + "WallBounces": false, + "OutOfRangeGuns": [ + "bbq1" + ] + }, + { + "Name": "bbq2", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "flame", + "TicksPerFrame": 4 + }, + "Speed": 1384, + "Range": 8, + "Power": 8, + "Mass": 1, + "Size": [10, 10], + "Special": "Flame", + "Spark": "", + "HitSounds": { + "Object": "hits/fire", + "Flesh": "hits/fire", + "Wall": "hits/fire" + }, + "Persists": true, + "WallBounces": false, + "OutOfRangeGuns": [ + "bbq2" + ] + }, + { + "Name": "bbq3", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "flame", + "TicksPerFrame": 4 + }, + "Speed": 1384, + "Range": 6, + "Power": 8, + "Mass": 1, + "Size": [10, 10], + "Special": "Flame", + "Spark": "", + "HitSounds": { + "Object": "hits/fire", + "Flesh": "hits/fire", + "Wall": "hits/fire" + }, + "Persists": true, + "WallBounces": false + }, + { + "Name": "gmg", + "Speed": 1668, + "Range": 55, + "WallBounces": true, + "Falling": { + "GravityFactor": 1 + }, + "OutOfRangeGuns": [ + "grenade_explosion1", + "grenade_explosion2", + "grenade_explosion3" + ], + "HitGuns": [ + "grenade_explosion1", + "grenade_explosion2", + "grenade_explosion3" + ], + "Power": 5 + }, + { + "Name": "grenade_fireball1", + "Pic": { + "Type": "Animated", + "Sprites": "fireball", + "TicksPerFrame": 3 + }, + "Speed": 0, + "Range": 40, + "Power": 1, + "Size": [7, 5], + "HurtAlways": true, + "Persists": true, + "Spark": "", + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "" + }, + "Falling": { + "GravityFactor": 1, + "FallsDown": false + } + }, + { + "Name": "grenade_fireball2", + "Pic": { + "Type": "Animated", + "Sprites": "fireball", + "Count": -8, + "TicksPerFrame": 3 + }, + "Speed": 0, + "Range": 48, + "Power": 0, + "Size": [7, 5], + "HurtAlways": true, + "Persists": true, + "Spark": "", + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "" + }, + "Falling": { + "GravityFactor": 1, + "FallsDown": false + } + }, + { + "Name": "grenade_fireball3", + "Pic": { + "Type": "Animated", + "Sprites": "fireball", + "Count": -16, + "TicksPerFrame": 3 + }, + "Speed": 0, + "Range": 56, + "Power": 0, + "Size": [7, 5], + "HurtAlways": true, + "Persists": true, + "Spark": "", + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "" + }, + "Falling": { + "GravityFactor": 1, + "FallsDown": false + } + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/temple_of_carnage.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/temple_of_carnage.cdogscpn/campaign.json new file mode 100644 index 00000000..62f37e62 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/temple_of_carnage.cdogscpn/campaign.json @@ -0,0 +1,10 @@ +{ + "Version": 15, + "Title": "Temple of Carnage", + "Author": "Sauer2", + "Description": "A temple for the deities of massacre!", + "Ammo": false, + "WeaponPersist": false, + "SkipWeaponMenu": true, + "Missions": 1 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/temple_of_carnage.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/temple_of_carnage.cdogscpn/characters.json new file mode 100644 index 00000000..af9e4154 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/temple_of_carnage.cdogscpn/characters.json @@ -0,0 +1,4 @@ +{ + "Version": 13, + "Characters": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/temple_of_carnage.cdogscpn/graphics/detonator.png b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/temple_of_carnage.cdogscpn/graphics/detonator.png new file mode 100644 index 00000000..fab7941f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/temple_of_carnage.cdogscpn/graphics/detonator.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/temple_of_carnage.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/temple_of_carnage.cdogscpn/guns.json new file mode 100644 index 00000000..2050cae1 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/temple_of_carnage.cdogscpn/guns.json @@ -0,0 +1,146 @@ +{ + "Version": 1, + + "Guns": [ + { + "Pic": "", + "Name": "Cryo mine", + "Icon": "proxmines", + "Bullet": "proxmine", + "Cost": 10, + "Lock": 100, + "ReloadLead": 15, + "Sound": "hahaha", + "ReloadSound": "package_r", + "SwitchSound": "mine_switch", + "MuzzleHeight": 0, + "Ammo": "Mines" + }, + { + "Pic": "", + "Icon": "detonator", + "Name": "Suicide Vest", + "Bullet": "aloma", + "Cost": 20, + "Lock": 40, + "Sound": "launch", + "SwitchSound": "dynamite_pickup" + }, + { + "Pic": "", + "Icon": "dynamite_pickup", + "Name": "Line Charges", + "Bullet": "charge", + "Cost": 20, + "Lock": 40, + "Sound": "launch", + "SwitchSound": "dynamite_pickup", + "Elevation": 24, + "Ammo": "Dynamite" + }, + { + "Pic": "flamer", + "Grips": 2, + "Name": "BBQ Incinerator", + "Icon": "flamer", + "Bullet": "bbq1", + "Cost": 1, + "Lock": 10, + "Recoil": 1, + "Sound": "flamer", + "SwitchSound": "flamer_switch", + "SoundLockLength": 36, + "SpreadCount": 1, + "SpreadWidth": 0.13, + "MuzzleFlashParticle": "muzzle_flash_flamer", + "Ammo": "Cells" + }, + { + "Pic": "chaingun", + "Name": "Flesh Mower", + "Icon": "machine_gun", + "Bullet": "gmg", + "Cost": 1, + "Lock": 5, + "Sound": "mg", + "SpreadCount": 3, + "SpreadWidth": 0.13, + "SwitchSound": "mg_switch", + "Recoil": 0.2, + "MuzzleFlashParticle": "muzzle_flash_mg", + "Brass": "brass_big", + "Ammo": "Bullets" + } + ], + "PseudoGuns" : [ + { + "Pic": "", + "Name": "activemine", + "Bullet": "activemine", + "Sound": "mine_arm" + }, + { + "Pic": "", + "Name": "triggeredmine", + "Bullet": "triggeredmine", + "Sound": "mine_trigger" + }, + { + "Name": "trigger", + "Bullet": "charge", + "SpreadCount": 8, + "SpreadWidth": 0.785398, + "Elevation": 24 + }, + { + "Name": "freezer", + "Bullet": "ice", + "SpreadCount": 30, + "SpreadWidth": 0.2094, + "Elevation": 24 + }, + { + "Name": "charge", + "Bullet": "charge", + "Elevation": 24 + }, + { + "Name": "bbq1", + "Bullet": "bbq2", + "SpreadCount": 4, + "SpreadWidth": 0.2, + "MuzzleFlashParticle": "muzzle_flash_flamer", + "Sound": "flamer" + }, + { + "Name": "bbq2", + "Bullet": "bbq3", + "SpreadCount": 3, + "Sound": "flamer", + "MuzzleFlashParticle": "muzzle_flash_flamer", + "SpreadWidth": 0.2 + }, + { + "Pic": "", + "Name": "grenade_explosion1", + "Bullet": "grenade_fireball1", + "ElevationLow": 14, + "ElevationHigh": 14, + "Sound": "grenade" + }, + { + "Pic": "", + "Name": "grenade_explosion2", + "Bullet": "grenade_fireball2", + "ElevationLow": 22, + "ElevationHigh": 22 + }, + { + "Pic": "", + "Name": "grenade_explosion3", + "Bullet": "grenade_fireball3", + "ElevationLow": 30, + "ElevationHigh": 30 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/temple_of_carnage.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/temple_of_carnage.cdogscpn/missions.json new file mode 100644 index 00000000..501104a9 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/dogfights/temple_of_carnage.cdogscpn/missions.json @@ -0,0 +1,394 @@ +{ + "Missions": [{ + "Title": "Go for it!", + "Description": "Enjoy the carnage!", + "Type": "Static", + "Width": 70, + "Height": 70, + "ExitStyle": "plate", + "KeyStyle": "office", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "scratch", + "Density": 15 + }, + { + "MapObject": "skull2", + "Density": 5 + }, + { + "MapObject": "wall_skull2", + "Density": 10 + }, + { + "MapObject": "skull", + "Density": 5 + }], + "EnemyDensity": 0, + "Weapons": ["Knife"], + "Song": "", + "TileClasses": { + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "3c3c3cff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "slab", + "Mask": "848484ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "840000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4", + "1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4", + "1,3,3,3,3,3,3,0,3,0,0,3,0,3,3,0,0,0,0,3,3,0,0,1,4,4,4,4,4,4,1,3,3,3,3,3,3,0,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4", + "1,3,3,3,3,3,3,3,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,1,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4", + "1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4", + "1,1,0,0,1,1,0,0,0,0,3,0,0,0,0,0,0,0,0,1,0,1,1,1,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4", + "1,0,0,0,0,0,0,1,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,3,0,3,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,1,0,0,0,1,0,1,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4", + "1,0,0,0,0,0,0,0,0,0,3,3,3,3,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4", + "1,0,0,0,0,0,0,0,0,0,3,3,3,3,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4", + "1,0,0,0,0,1,0,0,0,0,3,3,3,3,0,0,0,0,0,0,0,1,0,1,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4", + "1,0,0,1,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4", + "1,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,3,0,3,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,0,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4", + "1,0,0,0,0,0,0,0,1,0,0,3,3,0,0,1,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,0,0,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4", + "1,0,0,0,1,0,0,0,0,3,3,3,3,3,3,0,0,0,0,1,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,0,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4", + "1,0,0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4", + "1,0,0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,0,0,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4", + "1,0,0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,1,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4", + "1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,0,3,1,1,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4", + "1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,0,0,0,3,3,1,4,4,4,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,4", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,3,3,0,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,1,3,3,3,3,1,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,1,3,0,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,0,0,0,3,3,3,3,3,3,1,1,1,1,4,4,4,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,0,3,3,1,1,1,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,1,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,1,1,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,1,1,1,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,1,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,3,3,3,3,3,3,3,3,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,3,0,3,3,3,3,3,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,3,0,3,3,3,3,3,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,3,3,3,3,3,3,3,3,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,0,0,1,0,0", + "1,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,3,0,0,0,0,0,0,0", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0", + "1,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0", + "1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,1,1,3,3,3,3,1,3,3,1,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,0,0,0,0,0", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,1,3,1,1,1,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,0,3,3,0,0,0,0,0", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,1,1,1,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,3,0,0,0,0,0,0,0,0", + "1,0,0,0,0,1,0,0,1,0,0,3,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,4,4,1,3,3,3,3,1,3,3,1,3,3,3,3,3,1,1,1,1,1,3,3,3,3,3,3,3,3,1,1,0,3,1,0,0,1,0,0,1,0,0", + "0,0,0,0,0,1,0,0,0,0,0,3,3,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,4,4,1,3,3,3,3,3,3,3,1,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,3,0,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,3,0,3,3,3,3,3,3,0,3,3,1,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1", + "0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,4,4,1,3,3,3,0,3,3,3,3,3,3,3,3,0,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,0,3,3,1", + "0,0,3,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,1,3,3,3,3,0,3,3,3,3,3,3,0,0,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,0,3,1", + "0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,1,3,3,3,0,0,3,3,3,3,3,3,3,0,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,3,3,3,3,3", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,4,4,1,3,3,3,0,3,3,3,3,3,3,3,3,0,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,4,4,1,3,0,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3", + "1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,4,4,1,0,0,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3", + "4,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,0,3,3", + "4,4,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,3,3,3,3,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "statue_behemoth", + "Positions": [[9, 14], + [14, 9], + [9, 9], + [14, 14], + [2, 1], + [3, 1], + [2, 36], + [2, 38], + [2, 40], + [2, 42], + [2, 44], + [2, 46], + [9, 34], + [14, 34], + [14, 48], + [9, 48], + [27, 39], + [27, 43], + [10, 58], + [13, 58], + [10, 60], + [31, 55], + [43, 55], + [31, 45], + [43, 45], + [31, 6], + [32, 6], + [43, 6], + [42, 6], + [49, 44], + [51, 44], + [53, 44], + [55, 44], + [47, 44], + [69, 1], + [68, 0], + [56, 27], + [57, 26], + [58, 27], + [57, 28]] + }, + { + "MapObject": "wall_skull", + "Positions": [[4, 1]] + }, + { + "MapObject": "blood3", + "Positions": [[9, 40], + [13, 42], + [13, 40]] + }, + { + "MapObject": "blood4", + "Positions": [[12, 40], + [11, 41]] + }, + { + "MapObject": "gibs", + "Positions": [[12, 41], + [37, 2]] + }, + { + "MapObject": "bone_blood", + "Positions": [[10, 42]] + }, + { + "MapObject": "tree_dead", + "Positions": [[3, 56], + [25, 54], + [24, 53], + [18, 68], + [62, 9], + [65, 13], + [65, 11], + [66, 12], + [63, 14], + [63, 13], + [61, 11], + [64, 15], + [63, 11], + [64, 8], + [64, 5], + [65, 6], + [62, 3], + [63, 3], + [64, 3], + [62, 6], + [61, 3], + [66, 11], + [67, 11], + [67, 12], + [61, 1], + [60, 4], + [59, 6], + [58, 2], + [61, 6], + [58, 9], + [66, 20], + [66, 24], + [65, 27], + [69, 26], + [68, 29], + [69, 29], + [67, 33], + [64, 30], + [67, 29], + [59, 19], + [57, 22], + [54, 66]] + }, + { + "MapObject": "wall_stuff", + "Positions": [[0, 53], + [19, 6]] + }, + { + "MapObject": "table", + "Positions": [[37, 1], + [36, 1], + [36, 2], + [38, 2], + [38, 1]] + }, + { + "MapObject": "barrel_wood2", + "Positions": [[43, 28]] + }, + { + "MapObject": "Flesh Mower spawner", + "Positions": [[16, 41], + [37, 3]] + }, + { + "MapObject": "BBQ Incinerator spawner", + "Positions": [[11, 11], + [66, 66]] + }, + { + "MapObject": "Line Charges spawner", + "Positions": [[30, 59], + [60, 8]] + }, + { + "MapObject": "Cryo mine spawner", + "Positions": [[11, 60], + [1, 1]] + }, + { + "MapObject": "health spawner", + "Positions": [[12, 60], + [57, 27]] + }, + { + "MapObject": "safe_wreck", + "Positions": [[27, 16], + [13, 60], + [20, 56], + [5, 67], + [6, 67], + [6, 66]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[16, 4]], + "Indices": [0] + }], + "StaticKeys": [], + "Start": [11, 19], + "Exit": { + "Start": [2, 26], + "End": [5, 30] + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/LICENSE.md b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/LICENSE.md new file mode 100644 index 00000000..827a55b5 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/LICENSE.md @@ -0,0 +1,6 @@ +Original C-Dogs assets are licensed as CC-BY; see [./originals.txt](./originals.txt) + +Unless otherwise specified, all artwork is licensed CC0 "Public Domain Dedication", copyright Cong Xu. +But please let me know if you like or use this artwork :) + +https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/README.md b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/README.md new file mode 100644 index 00000000..cd8b3fd1 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/README.md @@ -0,0 +1,71 @@ +This is a simple guide to making sprites that will fit in the style of C-Dogs. Consistency is the most important thing; it doesn't matter how good an individual sprite looks, if it looks different from the rest it will stick out and make the whole thing look bad! + +## Summary + +![](https://github.com/cxong/cdogs-sdl/blob/master/graphics/barrel_blue.png) +![](https://github.com/cxong/cdogs-sdl/blob/master/graphics/wall/plasteel/o.png) +![](https://github.com/cxong/cdogs-sdl/blob/master/graphics/plant.png) +![](https://github.com/cxong/cdogs-sdl/blob/master/graphics/box.png) +![](https://github.com/cxong/cdogs-sdl/blob/master/graphics/rocket.png) + +C-Dogs sprites are: + + - Pixel art + - Somewhat limited palette + - Lit from the top-left, with a secondary light from the bottom-left + - Some objects, like pickups, cast a 1px full black shadow along its bottom-right + +### Colours + +Try to use the limited palette that original C-Dogs uses. Not all current sprites are like this (https://github.com/cxong/cdogs-sdl/issues/388). + +![](https://github.com/cxong/cdogs-sdl/blob/master/graphics/palette.png) + +If you use GIMP, you can also import this palette using + - Windows > Palettes + - Right click the list > Import Palette... > find palette.png + - Open an image you want to palettise + - Image > Mode > Indexed... > Use custom palette > select the imported C-Dogs palette + +### Lighting + +The primary light is from the top-left. This means that: + + - Top and left edges are brightest + - The top surface is brighter than the front surface + +Take these examples: + +![](https://github.com/cxong/cdogs-sdl/blob/master/graphics/box.png) +![](https://github.com/cxong/cdogs-sdl/blob/master/graphics/wall/plasteel/o.png) + +There are up to 7 shades used for the various surfaces and edges. Here they are in an ASCII diagram, from brightest (1) to darkest (7): + + +---+---------+---+ + | 1 | 2 | 3 | + +---+---------+---+ + | | | | + | 2 | 3 | 4 | + | | | | + +---+---------+---+ + | 3 | 4 | 5 | + +---+---------+---+ + | | | | + | 4 | 5 | 6 | + | | | | + +---+---------+---+ + | 5 | 6 | 7 | + +---+---------+---+ + +For round objects in particular, there is a secondary light from the bottom-left. This is just to make the object look nice, and accentuate the roundness. + +![](https://github.com/cxong/cdogs-sdl/blob/master/graphics/barrel_blue.png) +![](https://github.com/cxong/cdogs-sdl/blob/master/graphics/rocket.png) + +### Shadows + +For tall objects and pickups, there's a drop shadow to the bottom-right, 1px thick (unless the object is taller), pure black. + +![](https://github.com/cxong/cdogs-sdl/blob/master/graphics/keys/dungeon/blue.png) +![](https://github.com/cxong/cdogs-sdl/blob/master/graphics/bottle.png) +![](https://github.com/cxong/cdogs-sdl/blob/master/graphics/disk1.png) diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/akimbo_pistols.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/akimbo_pistols.png new file mode 100644 index 00000000..a5a0f498 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/akimbo_pistols.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/armor.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/armor.txt new file mode 100644 index 00000000..fdb3290e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/armor.txt @@ -0,0 +1,4 @@ +Derived from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/armor_blue.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/armor_blue.png new file mode 100644 index 00000000..b895e4ca Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/armor_blue.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/armor_green.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/armor_green.png new file mode 100644 index 00000000..61cac96c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/armor_green.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bag.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bag.png new file mode 100644 index 00000000..65e20ed1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bag.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bag.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bag.txt new file mode 100644 index 00000000..5ec2ad52 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bag.txt @@ -0,0 +1,5 @@ +Derived from Various inventory 24 pixel icon set +by OceansDream (http://oceansdream.deviantart.com/art/Pixel-Icons-available-for-use-121152370) +http://opengameart.org/content/various-inventory-24-pixel-icon-set +http://creativecommons.org/licenses/by/3.0/ +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel.png new file mode 100644 index 00000000..4d2d7537 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_blue.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_blue.png new file mode 100644 index 00000000..108baf07 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_blue.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_blue2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_blue2.png new file mode 100644 index 00000000..ff851caa Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_blue2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_blue2_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_blue2_wreck.png new file mode 100644 index 00000000..be1d63d5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_blue2_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_blue_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_blue_wreck.png new file mode 100644 index 00000000..76260732 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_blue_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_flame.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_flame.png new file mode 100644 index 00000000..528b2685 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_flame.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_flame_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_flame_wreck.png new file mode 100644 index 00000000..fa889a21 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_flame_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_green.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_green.png new file mode 100644 index 00000000..992d3494 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_green.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_green_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_green_wreck.png new file mode 100644 index 00000000..b15a4bb9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_green_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_skull.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_skull.png new file mode 100644 index 00000000..3dd4631b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_skull.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_skull2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_skull2.png new file mode 100644 index 00000000..3df74036 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_skull2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_wood.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_wood.png new file mode 100644 index 00000000..e2340b88 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_wood.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_wood2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_wood2.png new file mode 100644 index 00000000..32f85420 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_wood2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_wood2_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_wood2_wreck.png new file mode 100644 index 00000000..7c36f34e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_wood2_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_wood_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_wood_wreck.png new file mode 100644 index 00000000..aa237b2b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/barrel_wood_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bd.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bd.png new file mode 100644 index 00000000..146b6ced Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bd.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bd.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bd.txt new file mode 100644 index 00000000..939afc80 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bd.txt @@ -0,0 +1,4 @@ +Derived from Tango Desktop Icons +by Tango Desktop Project (http://tango.freedesktop.org/) +http://opengameart.org/content/tango-desktop-icons +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bed.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bed.png new file mode 100644 index 00000000..bb65a23a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bed.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bench.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bench.png new file mode 100644 index 00000000..7fefa770 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bench.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bench_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bench_wreck.png new file mode 100644 index 00000000..9b90e228 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bench_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bigpanel.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bigpanel.png new file mode 100644 index 00000000..604af1d6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bigpanel.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/biogun.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/biogun.png new file mode 100644 index 00000000..8ed36872 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/biogun.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/biogun.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/biogun.txt new file mode 100644 index 00000000..880dac16 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/biogun.txt @@ -0,0 +1,5 @@ +Derived from Various inventory 24 pixel icon set +by OceansDream +https://opengameart.org/content/various-inventory-24-pixel-icon-set +http://creativecommons.org/licenses/by/3.0/ +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bloodstain.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bloodstain.png new file mode 100644 index 00000000..31570eb4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bloodstain.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bloodstain1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bloodstain1.png new file mode 100644 index 00000000..4b0c1997 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bloodstain1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bloodstain2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bloodstain2.png new file mode 100644 index 00000000..8378ac6d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bloodstain2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/blue_relief.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/blue_relief.png new file mode 100644 index 00000000..67843b14 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/blue_relief.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/blueprint.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/blueprint.png new file mode 100644 index 00000000..f93ac8f4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/blueprint.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bone_blood.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bone_blood.png new file mode 100644 index 00000000..a27ea9fd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bone_blood.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bones.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bones.png new file mode 100644 index 00000000..adf3f0d7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bones.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bones.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bones.txt new file mode 100644 index 00000000..aeb48dbf --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bones.txt @@ -0,0 +1,5 @@ +Adapted from Dungeon Tileset +By Calciumtrice +https://opengameart.org/content/dungeon-tileset-1 + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bones2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bones2.png new file mode 100644 index 00000000..3df1d550 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bones2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bones2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bones2.txt new file mode 100644 index 00000000..9cadac94 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bones2.txt @@ -0,0 +1,6 @@ +Adapted from [LPC] Dungeon Elements +By Sharm and William.Thompsonj +https://opengameart.org/content/lpc-dungeon-elements + +http://opengameart.org/content/oga-by-30-faq +https://creativecommons.org/licenses/by/4.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bones3.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bones3.png new file mode 100644 index 00000000..b9563ffc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bones3.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bones3.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bones3.txt new file mode 100644 index 00000000..bac37bcb --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bones3.txt @@ -0,0 +1,4 @@ +BrowserQuest Sprites and Tiles +Guillaume Lecollinet +CC-BY-SA 3.0 +http://opengameart.org/content/browserquest-sprites-and-tiles \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bookshelf.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bookshelf.png new file mode 100644 index 00000000..b9dbf3e2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bookshelf.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bookshelf2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bookshelf2.png new file mode 100644 index 00000000..a589579e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bookshelf2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bookshelf2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bookshelf2.txt new file mode 100644 index 00000000..3dc3edbc --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bookshelf2.txt @@ -0,0 +1,6 @@ +Adapted from 16x16 indoor rpg tileset: the baseline +By Stephen Challener (Redshrike). Commissioned by OpenGameArt.org +http://opengameart.org/content/16x16-indoor-rpg-tileset-the-baseline + +http://creativecommons.org/licenses/by/3.0/ +http://opengameart.org/content/oga-by-30-faq \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bookshelf2_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bookshelf2_wreck.png new file mode 100644 index 00000000..f1d16ffa Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bookshelf2_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bottle.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bottle.png new file mode 100644 index 00000000..a45e4249 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bottle.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bottle2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bottle2.png new file mode 100644 index 00000000..81fa9a05 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bottle2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bottle2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bottle2.txt new file mode 100644 index 00000000..7f416711 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bottle2.txt @@ -0,0 +1,4 @@ +Derived from RPG item set +by Jetrel +http://opengameart.org/content/rpg-item-set +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bottle_orange.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bottle_orange.png new file mode 100644 index 00000000..3b025f1b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bottle_orange.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box.png new file mode 100644 index 00000000..2955f00e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box2.png new file mode 100644 index 00000000..56dcfc1f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3.png new file mode 100644 index 00000000..fcda4571 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3.txt new file mode 100644 index 00000000..35e04a3f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3.txt @@ -0,0 +1,4 @@ +Adapted from Sci-Fi Object Set by Janna +http://opengameart.org/content/sci-fi-object-set + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_gas_16x21.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_gas_16x21.png new file mode 100644 index 00000000..84c2ae8d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_gas_16x21.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_gas_16x21.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_gas_16x21.txt new file mode 100644 index 00000000..35e04a3f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_gas_16x21.txt @@ -0,0 +1,4 @@ +Adapted from Sci-Fi Object Set by Janna +http://opengameart.org/content/sci-fi-object-set + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_gray.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_gray.png new file mode 100644 index 00000000..0a3a1ae5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_gray.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_gray.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_gray.txt new file mode 100644 index 00000000..35e04a3f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_gray.txt @@ -0,0 +1,4 @@ +Adapted from Sci-Fi Object Set by Janna +http://opengameart.org/content/sci-fi-object-set + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_gray_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_gray_wreck.png new file mode 100644 index 00000000..2335b8c5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_gray_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_green.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_green.png new file mode 100644 index 00000000..525ec6b7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_green.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_green.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_green.txt new file mode 100644 index 00000000..35e04a3f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_green.txt @@ -0,0 +1,4 @@ +Adapted from Sci-Fi Object Set by Janna +http://opengameart.org/content/sci-fi-object-set + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_green_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_green_wreck.png new file mode 100644 index 00000000..86d91f8a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_green_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_red.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_red.png new file mode 100644 index 00000000..2b90b340 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_red.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_red.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_red.txt new file mode 100644 index 00000000..35e04a3f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_red.txt @@ -0,0 +1,4 @@ +Adapted from Sci-Fi Object Set by Janna +http://opengameart.org/content/sci-fi-object-set + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_red_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_red_wreck.png new file mode 100644 index 00000000..f2f0d99f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box3_red_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_gray.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_gray.png new file mode 100644 index 00000000..e80a70e5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_gray.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_green.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_green.png new file mode 100644 index 00000000..3768b2c8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_green.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_metal_green.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_metal_green.png new file mode 100644 index 00000000..68e66db0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_metal_green.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_metal_green_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_metal_green_wreck.png new file mode 100644 index 00000000..49620157 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_metal_green_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_red.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_red.png new file mode 100644 index 00000000..6ae38438 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_red.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_wood.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_wood.png new file mode 100644 index 00000000..baebd69a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_wood.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_wreck.png new file mode 100644 index 00000000..2b2b276f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/box_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/browny_gun.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/browny_gun.png new file mode 100644 index 00000000..3eece98d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/browny_gun.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/browny_gun.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/browny_gun.txt new file mode 100644 index 00000000..7ddf0e9c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/browny_gun.txt @@ -0,0 +1,5 @@ +Adapted from Various inventory 24 pixel icon set +By OceansDream +http://opengameart.org/content/various-inventory-24-pixel-icon-set + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bullet_3x3.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bullet_3x3.png new file mode 100644 index 00000000..3484675c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bullet_3x3.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bullet_ball.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bullet_ball.png new file mode 100644 index 00000000..591168df Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bullet_ball.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bullet_pickup.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bullet_pickup.png new file mode 100644 index 00000000..9404e52f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bullet_pickup.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bullet_pickup.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bullet_pickup.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bullet_pickup.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bulletmarks.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bulletmarks.png new file mode 100644 index 00000000..471f71d9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/bulletmarks.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cabinet.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cabinet.png new file mode 100644 index 00000000..38e354c9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cabinet.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cabinet_server.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cabinet_server.txt new file mode 100644 index 00000000..35e04a3f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cabinet_server.txt @@ -0,0 +1,4 @@ +Adapted from Sci-Fi Object Set by Janna +http://opengameart.org/content/sci-fi-object-set + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cabinet_server_16x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cabinet_server_16x24.png new file mode 100644 index 00000000..702d0b22 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cabinet_server_16x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cabinet_server_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cabinet_server_wreck.png new file mode 100644 index 00000000..f0351950 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cabinet_server_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cabinet_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cabinet_wreck.png new file mode 100644 index 00000000..00a7dfc3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cabinet_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cd.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cd.png new file mode 100644 index 00000000..9c7997f0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cd.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cdogs_icon.bmp b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cdogs_icon.bmp new file mode 100644 index 00000000..1908255c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/cdogs_icon.bmp differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chainsaw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chainsaw.png new file mode 100644 index 00000000..77142c47 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chainsaw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chainsaw.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chainsaw.txt new file mode 100644 index 00000000..b935fc5b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chainsaw.txt @@ -0,0 +1,4 @@ +140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair.png new file mode 100644 index 00000000..8c2f8289 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_dining.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_dining.txt new file mode 100644 index 00000000..fb09194e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_dining.txt @@ -0,0 +1,4 @@ +Roguelike Dungeon/World Tiles +by Joe Williamson (@JoeCreates) +https://opengameart.org/content/roguelike-dungeonworld-tiles +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_dining_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_dining_left.png new file mode 100644 index 00000000..d01d1b92 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_dining_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_dining_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_dining_right.png new file mode 100644 index 00000000..3684145b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_dining_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_dining_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_dining_top.png new file mode 100644 index 00000000..e99d8144 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_dining_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_task.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_task.png new file mode 100644 index 00000000..2aa0917f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_task.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_task.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_task.txt new file mode 100644 index 00000000..098518c4 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_task.txt @@ -0,0 +1,4 @@ +Adapted from Office Furniture - 64 x 128 Isometric by extradave +http://opengameart.org/content/office-furniture-64-x-128-isometric + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_task_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_task_wreck.png new file mode 100644 index 00000000..ccb4c6dc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_task_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_wreck.png new file mode 100644 index 00000000..b2d35282 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chair_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/README.md b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/README.md new file mode 100644 index 00000000..18cd7ca0 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/README.md @@ -0,0 +1,14 @@ + - Rows are: + - Groups of 5 rows: unarmed/armed + - First row of group: idle + - Next 4 rows of group: walking + + - Columns are directions + - Colors are: + - Red (0 hue): skin + - Green (120 hue): hair + - Blue (240 hue): arms + - Yellow (60 hue): body + - Cyan (180 hue): legs + - Magenta (300 hue): feet + - Any other shade: as is (recommend R, G, and B between 5 and 250) \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/README.md b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/README.md new file mode 100644 index 00000000..a26c30ae --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/README.md @@ -0,0 +1,11 @@ +These are character sprites grouped by body types. The sprites are for the torso, arms and legs (no heads). + +The sprites are generated from a blender source with animations. + +To generate a body type, run: + + ./make_spritesheet.sh + +The sprites will be created inside the `` folder. + +> TODO: describe the blender file requirements, like animations, layers etc. \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/data.json new file mode 100644 index 00000000..cd964910 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/data.json @@ -0,0 +1,42 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_l", "legs", "body", "head", "gun_r"], + ["gun_l", "legs", "body", "head", "gun_r"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "body", "head", "gun_l"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 13]], + "idle": [[0, 13]], + "run": [ + [0, 14], [0, 13], [0, 12], [0, 13], [0, 14], [0, 13], [0, 12], [0, 13] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 6], [0, 5], [0, 6], [0, 7], [0, 6], [0, 5], [0, 6]] + } + }, + "Dir": { + "Gun": [ + [7, -2], [6, 0], [4, 2], [-1, 4], [-6, 2], [-6, -1], [-3, -3], [0, -3] + ] + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/legs_idle_24x24.png new file mode 100644 index 00000000..98183c38 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/legs_run_24x24.png new file mode 100644 index 00000000..21b7b621 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/src.blend new file mode 100644 index 00000000..5ce09516 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/src.txt new file mode 100644 index 00000000..6d424eab --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/src.txt @@ -0,0 +1,4 @@ +Adapted from Sprite Base Model +by Wind astella +http://opengameart.org/content/sprite-base-model +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_idle_24x24.png new file mode 100644 index 00000000..50a8e475 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_idle_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_idle_dualgun_24x24.png new file mode 100644 index 00000000..ebbbd9cd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_idle_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..750babe0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_idle_rifle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_idle_rifle_24x24.png new file mode 100644 index 00000000..4cd32759 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_idle_rifle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_idle_riflefire_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_idle_riflefire_24x24.png new file mode 100644 index 00000000..9e3790e7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_idle_riflefire_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_run_24x24.png new file mode 100644 index 00000000..f7a1b3b3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_run_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_run_dualgun_24x24.png new file mode 100644 index 00000000..ec1d090d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_run_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_run_handgun_24x24.png new file mode 100644 index 00000000..7c862a43 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_run_rifle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_run_rifle_24x24.png new file mode 100644 index 00000000..58a7c409 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_run_rifle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_run_riflefire_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_run_riflefire_24x24.png new file mode 100644 index 00000000..cce5bfa4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/base/upper_run_riflefire_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/data.json new file mode 100644 index 00000000..819c0cea --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/data.json @@ -0,0 +1,42 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_l", "legs", "body", "head", "gun_r"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "body", "head", "gun_l"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 16]], + "idle": [[0, 16]], + "run": [ + [0, 17], [0, 16], [0, 15], [0, 16], [0, 17], [0, 16], [0, 15], [0, 16] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 8]], + "idle": [[0, 8]], + "run": [[0, 9], [0, 8], [0, 7], [0, 8], [0, 9], [0, 8], [0, 7], [0, 8]] + } + }, + "Dir": { + "Gun": [ + [7, -3], [7, 0], [4, 2], [-2, 4], [-7, 3], [-8, -1], [-4, -5], [0, -5] + ] + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/legs_idle_24x24.png new file mode 100644 index 00000000..dfa75bf5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/legs_run_24x24.png new file mode 100644 index 00000000..87600b20 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/src.blend new file mode 100644 index 00000000..88d5c46f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/src.txt new file mode 100644 index 00000000..6d424eab --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/src.txt @@ -0,0 +1,4 @@ +Adapted from Sprite Base Model +by Wind astella +http://opengameart.org/content/sprite-base-model +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/upper_idle_24x24.png new file mode 100644 index 00000000..e3d1e302 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/upper_idle_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/upper_idle_dualgun_24x24.png new file mode 100644 index 00000000..14b54cf5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/upper_idle_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..000c5825 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/upper_run_24x24.png new file mode 100644 index 00000000..56f3b38d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/upper_run_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/upper_run_dualgun_24x24.png new file mode 100644 index 00000000..fde4db94 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/upper_run_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/upper_run_handgun_24x24.png new file mode 100644 index 00000000..e019dc38 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/data.json new file mode 100644 index 00000000..709994b9 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/data.json @@ -0,0 +1,42 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_l", "legs", "body", "head", "gun_r"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "body", "head", "gun_l"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 14]], + "idle": [[0, 14]], + "run": [ + [0, 15], [0, 14], [0, 13], [0, 14], [0, 15], [0, 14], [0, 13], [0, 14] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 6], [0, 5], [0, 6], [0, 7], [0, 6], [0, 5], [0, 6]] + } + }, + "Dir": { + "Gun": [ + [7, -2], [6, 0], [4, 2], [-1, 4], [-6, 2], [-6, -1], [-3, -3], [0, -3] + ] + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/legs_idle_24x24.png new file mode 100644 index 00000000..b55fe463 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/legs_run_24x24.png new file mode 100644 index 00000000..5e77cdae Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/src.blend new file mode 100644 index 00000000..59758499 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/src.txt new file mode 100644 index 00000000..6d424eab --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/src.txt @@ -0,0 +1,4 @@ +Adapted from Sprite Base Model +by Wind astella +http://opengameart.org/content/sprite-base-model +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/upper_idle_24x24.png new file mode 100644 index 00000000..0bae56ff Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..5a3c2b53 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/upper_run_24x24.png new file mode 100644 index 00000000..341ac6ff Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/upper_run_handgun_24x24.png new file mode 100644 index 00000000..00dd39e9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_skinny/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/data.json new file mode 100644 index 00000000..819c0cea --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/data.json @@ -0,0 +1,42 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_l", "legs", "body", "head", "gun_r"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "body", "head", "gun_l"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 16]], + "idle": [[0, 16]], + "run": [ + [0, 17], [0, 16], [0, 15], [0, 16], [0, 17], [0, 16], [0, 15], [0, 16] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 8]], + "idle": [[0, 8]], + "run": [[0, 9], [0, 8], [0, 7], [0, 8], [0, 9], [0, 8], [0, 7], [0, 8]] + } + }, + "Dir": { + "Gun": [ + [7, -3], [7, 0], [4, 2], [-2, 4], [-7, 3], [-8, -1], [-4, -5], [0, -5] + ] + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/legs_idle_24x24.png new file mode 100644 index 00000000..90ca0085 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/legs_run_24x24.png new file mode 100644 index 00000000..643bee4d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/src.blend new file mode 100644 index 00000000..b216fe47 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/src.txt new file mode 100644 index 00000000..6d424eab --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/src.txt @@ -0,0 +1,4 @@ +Adapted from Sprite Base Model +by Wind astella +http://opengameart.org/content/sprite-base-model +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/upper_idle_24x24.png new file mode 100644 index 00000000..82d90102 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/upper_idle_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/upper_idle_dualgun_24x24.png new file mode 100644 index 00000000..e9b3e185 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/upper_idle_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..b4883043 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/upper_run_24x24.png new file mode 100644 index 00000000..e5a7cd86 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/upper_run_dualgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/upper_run_dualgun_24x24.png new file mode 100644 index 00000000..6ea1823e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/upper_run_dualgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/upper_run_handgun_24x24.png new file mode 100644 index 00000000..4dbf2db0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/big_soldier/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/data.json new file mode 100644 index 00000000..5cc11240 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/data.json @@ -0,0 +1,42 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "gun_l", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 8]], + "idle": [[0, 8]], + "run": [ + [0, 8], [0, 7], [0, 7], [0, 8], [0, 8], [0, 9], [0, 9], [0, 8] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 6], [0, 5], [0, 6], [0, 7], [0, 6], [0, 5], [0, 6]] + } + }, + "Dir": { + "Head": [ + [0, -3], [4, -3], [6, 0], [6, 4], [0, 6], [-6, 4], [-7, 0], [-5, -3] + ] + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/legs_idle_24x24.png new file mode 100644 index 00000000..9477e7ce Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/legs_run_24x24.png new file mode 100644 index 00000000..7bd41e29 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/src.blend new file mode 100644 index 00000000..9ef696f5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/src.txt new file mode 100644 index 00000000..1481b855 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/src.txt @@ -0,0 +1,4 @@ +Adapted from Animated Animales Low Poly +by quaternius +https://opengameart.org/content/animated-animales-low-poly +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/upper_idle_24x24.png new file mode 100644 index 00000000..25a48085 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..c77e4378 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/upper_run_24x24.png new file mode 100644 index 00000000..7d6383ca Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/upper_run_handgun_24x24.png new file mode 100644 index 00000000..b8476776 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/dog/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/make_spritesheet.sh b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/make_spritesheet.sh new file mode 100755 index 00000000..dcbeb7b8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/chars/bodies/make_spritesheet.sh @@ -0,0 +1,75 @@ +#!/bin/bash +# +# Create character spritesheet and join all the rendered images +# Requires blender and imagemagick +# +set -e +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +if [ "$#" -ne 1 ]; then + echo "Usage: make_spritesheet.sh body" + exit 1 +fi + +if [[ "$OSTYPE" == "linux-gnu" ]]; then + BLENDER=blender +elif [[ "$OSTYPE" == "msys" ]]; then + BLENDER="/c/Program Files/Blender Foundation/Blender 4.4/blender.exe" +else + # macOS + BLENDER=/Applications/blender.app/Contents/MacOS/blender +fi +if [[ "$OSTYPE" == "msys" ]]; then + BLENDER_OUT="C:/out" +else + BLENDER_OUT="out" +fi + +INFILE=$1/src.blend +# Render separate body parts (in collections) +parts=(legs upper) +# Render separate actions +actions_legs=(idle run) +actions_upper=(idle run idle_handgun run_handgun idle_dualgun run_dualgun idle_rifle run_rifle idle_riflefire run_riflefire) +idle_frames=1 +run_frames=80 +len_i=${#parts[*]} +for (( i=0; i" + exit 1 +fi + +# Copy simple sprites +for s in open_h open_v wall; do + cp $1/base/${s}.png $1/${s}.png +done + +# Generate door bases +# normal_h = h + left + right +convert "$1/base/h.png" -background none -gravity South -extent 16x21 \ + "$1/base/left.png" -geometry +0+0 -composite \ + "$1/base/right.png" -geometry +0+0 -composite \ + "PNG24:$1/normal_h.png" +convert "$1/base/h.png" -background none -gravity South -extent 16x21 \ + "$1/base/left.png" -geometry +0+0 -composite \ + "PNG24:$1/normal_left.png" +convert "$1/base/h.png" -background none -gravity South -extent 16x21 \ + "PNG24:$1/normal_hmid.png" +convert "$1/base/h.png" -background none -gravity South -extent 16x21 \ + "$1/base/right.png" -geometry +0+0 -composite \ + "PNG24:$1/normal_right.png" +# normal_v = v + top + bottom +convert "$1/base/v.png" \ + "$1/base/top.png" -geometry +0+0 -composite \ + "$1/base/bottom.png" -geometry +0+0 -composite \ + "PNG24:$1/normal_v.png" +convert "$1/base/v.png" \ + "$1/base/top.png" -geometry +0+0 -composite \ + "PNG24:$1/normal_top.png" +cp "$1/base/v.png" "$1/normal_vmid.png" +convert "$1/base/v.png" \ + "$1/base/bottom.png" -geometry +0+0 -composite \ + "PNG24:$1/normal_bottom.png" + +# Generate keys +for key in blue green red yellow; do + # key_h = normal_h + key_h + key_left + key_right + convert "$1/normal_h.png" \ + "$1/base/key/${key}_h.png" -geometry +0+0 -composite \ + "$1/base/key/${key}_left.png" -geometry +0+0 -composite \ + "$1/base/key/${key}_right.png" -geometry +0+0 -composite \ + "PNG24:$1/${key}_h.png" + convert "$1/normal_left.png" \ + "$1/base/key/${key}_h.png" -geometry +0+0 -composite \ + "$1/base/key/${key}_left.png" -geometry +0+0 -composite \ + "PNG24:$1/${key}_left.png" + convert "$1/normal_hmid.png" \ + "$1/base/key/${key}_h.png" -geometry +0+0 -composite \ + "PNG24:$1/${key}_hmid.png" + convert "$1/normal_right.png" \ + "$1/base/key/${key}_h.png" -geometry +0+0 -composite \ + "$1/base/key/${key}_right.png" -geometry +0+0 -composite \ + "PNG24:$1/${key}_right.png" + # key_v = normal_v + key_v + key_top + key_bottom + convert "$1/normal_v.png" \ + "$1/base/key/${key}_v.png" -geometry +0+0 -composite \ + "$1/base/key/${key}_top.png" -geometry +0+0 -composite \ + "$1/base/key/${key}_bottom.png" -geometry +0+0 -composite \ + "PNG24:$1/${key}_v.png" + convert "$1/normal_top.png" \ + "$1/base/key/${key}_v.png" -geometry +0+0 -composite \ + "$1/base/key/${key}_top.png" -geometry +0+0 -composite \ + "PNG24:$1/${key}_top.png" + convert "$1/normal_vmid.png" \ + "$1/base/key/${key}_v.png" -geometry +0+0 -composite \ + "PNG24:$1/${key}_vmid.png" + convert "$1/normal_bottom.png" \ + "$1/base/key/${key}_v.png" -geometry +0+0 -composite \ + "$1/base/key/${key}_bottom.png" -geometry +0+0 -composite \ + "PNG24:$1/${key}_bottom.png" +done diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/bottom.png new file mode 100644 index 00000000..6464b8d6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/h.png new file mode 100644 index 00000000..423aadbb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/blue_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/blue_bottom.png new file mode 100644 index 00000000..1c8581a3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/blue_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/blue_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/blue_h.png new file mode 100644 index 00000000..fbe3c4fc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/blue_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/blue_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/blue_left.png new file mode 100644 index 00000000..185478fc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/blue_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/blue_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/blue_right.png new file mode 100644 index 00000000..ff5cd102 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/blue_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/blue_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/blue_top.png new file mode 100644 index 00000000..def030e4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/blue_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/blue_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/blue_v.png new file mode 100644 index 00000000..4f527af4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/blue_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/green_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/green_bottom.png new file mode 100644 index 00000000..f51b4dc8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/green_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/green_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/green_h.png new file mode 100644 index 00000000..167a71bc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/green_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/green_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/green_left.png new file mode 100644 index 00000000..847f6101 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/green_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/green_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/green_right.png new file mode 100644 index 00000000..a5ef4078 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/green_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/green_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/green_top.png new file mode 100644 index 00000000..dfaee383 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/green_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/green_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/green_v.png new file mode 100644 index 00000000..f18e3a86 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/green_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/red_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/red_bottom.png new file mode 100644 index 00000000..fd2fc38f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/red_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/red_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/red_h.png new file mode 100644 index 00000000..3fa91b47 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/red_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/red_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/red_left.png new file mode 100644 index 00000000..debeeea6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/red_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/red_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/red_right.png new file mode 100644 index 00000000..ef2eabed Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/red_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/red_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/red_top.png new file mode 100644 index 00000000..a1c83998 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/red_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/red_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/red_v.png new file mode 100644 index 00000000..56a4c119 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/red_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/yellow_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/yellow_bottom.png new file mode 100644 index 00000000..b5e0a706 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/yellow_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/yellow_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/yellow_h.png new file mode 100644 index 00000000..8bb6c39b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/yellow_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/yellow_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/yellow_left.png new file mode 100644 index 00000000..bccd4467 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/yellow_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/yellow_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/yellow_right.png new file mode 100644 index 00000000..ad006c74 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/yellow_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/yellow_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/yellow_top.png new file mode 100644 index 00000000..91560505 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/yellow_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/yellow_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/yellow_v.png new file mode 100644 index 00000000..ee807363 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/key/yellow_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/left.png new file mode 100644 index 00000000..bb152e6c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/open_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/open_h.png new file mode 100644 index 00000000..65d7abd6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/open_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/open_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/open_v.png new file mode 100644 index 00000000..24093a20 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/open_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/right.png new file mode 100644 index 00000000..81633c61 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/top.png new file mode 100644 index 00000000..c14684c0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/v.png new file mode 100644 index 00000000..acf20f58 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/wall.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/wall.png new file mode 100644 index 00000000..df158dcf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/base/wall.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_bottom.png new file mode 100644 index 00000000..7f0ccb7b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_h.png new file mode 100644 index 00000000..c0c5b5a2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_hmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_hmid.png new file mode 100644 index 00000000..361ab7b9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_hmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_left.png new file mode 100644 index 00000000..971dc8e8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_right.png new file mode 100644 index 00000000..361ab7b9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_top.png new file mode 100644 index 00000000..7f0ccb7b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_v.png new file mode 100644 index 00000000..7f0ccb7b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_vmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_vmid.png new file mode 100644 index 00000000..7f0ccb7b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/blue_vmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_bottom.png new file mode 100644 index 00000000..6183ff34 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_h.png new file mode 100644 index 00000000..e1a2bfa4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_hmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_hmid.png new file mode 100644 index 00000000..c080eed2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_hmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_left.png new file mode 100644 index 00000000..abaa9433 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_right.png new file mode 100644 index 00000000..c080eed2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_top.png new file mode 100644 index 00000000..6183ff34 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_v.png new file mode 100644 index 00000000..6183ff34 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_vmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_vmid.png new file mode 100644 index 00000000..6183ff34 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/green_vmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_bottom.png new file mode 100644 index 00000000..f4a142e4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_h.png new file mode 100644 index 00000000..3dba1e74 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_hmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_hmid.png new file mode 100644 index 00000000..e07854f5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_hmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_left.png new file mode 100644 index 00000000..759632f9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_right.png new file mode 100644 index 00000000..d084fc9d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_top.png new file mode 100644 index 00000000..72456afa Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_v.png new file mode 100644 index 00000000..cecd802d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_vmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_vmid.png new file mode 100644 index 00000000..acf20f58 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/normal_vmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/open_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/open_h.png new file mode 100644 index 00000000..65d7abd6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/open_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/open_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/open_v.png new file mode 100644 index 00000000..24093a20 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/open_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_bottom.png new file mode 100644 index 00000000..5c171d56 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_h.png new file mode 100644 index 00000000..333b401d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_hmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_hmid.png new file mode 100644 index 00000000..423d7ba3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_hmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_left.png new file mode 100644 index 00000000..8d7f2b95 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_right.png new file mode 100644 index 00000000..423d7ba3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_top.png new file mode 100644 index 00000000..5c171d56 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_v.png new file mode 100644 index 00000000..5c171d56 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_vmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_vmid.png new file mode 100644 index 00000000..5c171d56 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/red_vmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/wall.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/wall.png new file mode 100644 index 00000000..df158dcf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/wall.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_bottom.png new file mode 100644 index 00000000..6c1d0e7e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_h.png new file mode 100644 index 00000000..0dc51d21 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_hmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_hmid.png new file mode 100644 index 00000000..74d9cdca Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_hmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_left.png new file mode 100644 index 00000000..5a5b3f57 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_right.png new file mode 100644 index 00000000..7351aa03 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_top.png new file mode 100644 index 00000000..6c1d0e7e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_v.png new file mode 100644 index 00000000..6c1d0e7e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_vmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_vmid.png new file mode 100644 index 00000000..6c1d0e7e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office/yellow_vmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/bottom.png new file mode 100644 index 00000000..8136ad2d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/h.png new file mode 100644 index 00000000..493d02fe Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/blue_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/blue_bottom.png new file mode 100644 index 00000000..0dfdec4a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/blue_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/blue_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/blue_h.png new file mode 100644 index 00000000..c7ee55e8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/blue_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/blue_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/blue_left.png new file mode 100644 index 00000000..4f2378f9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/blue_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/blue_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/blue_right.png new file mode 100644 index 00000000..e8d0627e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/blue_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/blue_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/blue_top.png new file mode 100644 index 00000000..dab12923 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/blue_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/blue_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/blue_v.png new file mode 100644 index 00000000..97d08551 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/blue_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/green_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/green_bottom.png new file mode 100644 index 00000000..9c67e01c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/green_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/green_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/green_h.png new file mode 100644 index 00000000..7fdcf953 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/green_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/green_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/green_left.png new file mode 100644 index 00000000..fa616e81 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/green_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/green_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/green_right.png new file mode 100644 index 00000000..616476a9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/green_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/green_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/green_top.png new file mode 100644 index 00000000..73278828 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/green_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/green_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/green_v.png new file mode 100644 index 00000000..f7be59a4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/green_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/red_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/red_bottom.png new file mode 100644 index 00000000..f4a0286f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/red_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/red_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/red_h.png new file mode 100644 index 00000000..53d1142b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/red_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/red_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/red_left.png new file mode 100644 index 00000000..daf5d390 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/red_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/red_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/red_right.png new file mode 100644 index 00000000..a3db5411 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/red_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/red_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/red_top.png new file mode 100644 index 00000000..f93bd136 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/red_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/red_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/red_v.png new file mode 100644 index 00000000..0d1affb8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/red_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/yellow_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/yellow_bottom.png new file mode 100644 index 00000000..0ce7a5aa Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/yellow_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/yellow_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/yellow_h.png new file mode 100644 index 00000000..81c4a6e9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/yellow_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/yellow_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/yellow_left.png new file mode 100644 index 00000000..51868fe3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/yellow_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/yellow_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/yellow_right.png new file mode 100644 index 00000000..646c5238 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/yellow_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/yellow_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/yellow_top.png new file mode 100644 index 00000000..5d4604f0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/yellow_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/yellow_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/yellow_v.png new file mode 100644 index 00000000..0b32818c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/key/yellow_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/left.png new file mode 100644 index 00000000..493d02fe Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/open_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/open_h.png new file mode 100644 index 00000000..7d4c2efb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/open_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/open_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/open_v.png new file mode 100644 index 00000000..311f0227 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/open_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/right.png new file mode 100644 index 00000000..493d02fe Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/top.png new file mode 100644 index 00000000..55272dac Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/v.png new file mode 100644 index 00000000..ad12b728 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/wall.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/wall.png new file mode 100644 index 00000000..0b90eacb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/base/wall.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_bottom.png new file mode 100644 index 00000000..d86288b3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_h.png new file mode 100644 index 00000000..da627190 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_hmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_hmid.png new file mode 100644 index 00000000..c71c34de Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_hmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_left.png new file mode 100644 index 00000000..66b53f70 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_right.png new file mode 100644 index 00000000..204473c7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_top.png new file mode 100644 index 00000000..76d08440 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_v.png new file mode 100644 index 00000000..76d08440 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_vmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_vmid.png new file mode 100644 index 00000000..d86288b3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/blue_vmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_bottom.png new file mode 100644 index 00000000..6130743d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_h.png new file mode 100644 index 00000000..240c8a88 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_hmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_hmid.png new file mode 100644 index 00000000..7ec543ea Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_hmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_left.png new file mode 100644 index 00000000..32fbfd09 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_right.png new file mode 100644 index 00000000..0b7335cd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_top.png new file mode 100644 index 00000000..9d777fe3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_v.png new file mode 100644 index 00000000..9d777fe3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_vmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_vmid.png new file mode 100644 index 00000000..6130743d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/green_vmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_bottom.png new file mode 100644 index 00000000..e167fa47 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_h.png new file mode 100644 index 00000000..4b20cbd5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_hmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_hmid.png new file mode 100644 index 00000000..5af7b4db Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_hmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_left.png new file mode 100644 index 00000000..09df9a32 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_right.png new file mode 100644 index 00000000..055aec7e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_top.png new file mode 100644 index 00000000..fdf10ddf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_v.png new file mode 100644 index 00000000..c4554c1d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_vmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_vmid.png new file mode 100644 index 00000000..ad12b728 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/normal_vmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/open_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/open_h.png new file mode 100644 index 00000000..c5b4b2b7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/open_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/open_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/open_v.png new file mode 100644 index 00000000..d81a8e4b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/open_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_bottom.png new file mode 100644 index 00000000..bed7d083 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_h.png new file mode 100644 index 00000000..78661d1b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_hmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_hmid.png new file mode 100644 index 00000000..235d8156 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_hmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_left.png new file mode 100644 index 00000000..e12c0d38 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_right.png new file mode 100644 index 00000000..bb466728 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_top.png new file mode 100644 index 00000000..2088abf8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_v.png new file mode 100644 index 00000000..2088abf8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_vmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_vmid.png new file mode 100644 index 00000000..bed7d083 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/red_vmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/wall.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/wall.png new file mode 100644 index 00000000..0b90eacb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/wall.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_bottom.png new file mode 100644 index 00000000..bf159d90 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_h.png new file mode 100644 index 00000000..c76c501e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_hmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_hmid.png new file mode 100644 index 00000000..0d740103 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_hmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_left.png new file mode 100644 index 00000000..380b34ff Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_right.png new file mode 100644 index 00000000..d671ce83 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_top.png new file mode 100644 index 00000000..00697334 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_v.png new file mode 100644 index 00000000..00697334 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_vmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_vmid.png new file mode 100644 index 00000000..bf159d90 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/office2/yellow_vmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/bottom.png new file mode 100644 index 00000000..9dc82fc4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/h.png new file mode 100644 index 00000000..210e4e07 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/blue_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/blue_bottom.png new file mode 100644 index 00000000..60cebf5b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/blue_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/blue_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/blue_h.png new file mode 100644 index 00000000..fc6a6224 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/blue_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/blue_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/blue_left.png new file mode 100644 index 00000000..ca38c7fb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/blue_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/blue_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/blue_right.png new file mode 100644 index 00000000..7977238a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/blue_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/blue_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/blue_top.png new file mode 100644 index 00000000..f5444c8e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/blue_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/blue_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/blue_v.png new file mode 100644 index 00000000..22bb2e61 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/blue_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/green_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/green_bottom.png new file mode 100644 index 00000000..764a86e2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/green_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/green_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/green_h.png new file mode 100644 index 00000000..5abb0a3a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/green_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/green_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/green_left.png new file mode 100644 index 00000000..d425c5f6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/green_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/green_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/green_right.png new file mode 100644 index 00000000..5ae8b78a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/green_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/green_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/green_top.png new file mode 100644 index 00000000..51dfe930 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/green_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/green_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/green_v.png new file mode 100644 index 00000000..37fd42ec Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/green_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/red_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/red_bottom.png new file mode 100644 index 00000000..0a2aa112 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/red_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/red_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/red_h.png new file mode 100644 index 00000000..abc1fcd3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/red_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/red_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/red_left.png new file mode 100644 index 00000000..ac85c2a7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/red_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/red_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/red_right.png new file mode 100644 index 00000000..cfd3ebe5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/red_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/red_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/red_top.png new file mode 100644 index 00000000..8acb7f0a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/red_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/red_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/red_v.png new file mode 100644 index 00000000..f81e0ef4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/red_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/yellow_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/yellow_bottom.png new file mode 100644 index 00000000..c29a9a7f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/yellow_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/yellow_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/yellow_h.png new file mode 100644 index 00000000..6d52e91c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/yellow_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/yellow_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/yellow_left.png new file mode 100644 index 00000000..a35ccc0d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/yellow_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/yellow_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/yellow_right.png new file mode 100644 index 00000000..a1b011ca Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/yellow_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/yellow_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/yellow_top.png new file mode 100644 index 00000000..67651f50 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/yellow_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/yellow_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/yellow_v.png new file mode 100644 index 00000000..004a73fb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/key/yellow_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/left.png new file mode 100644 index 00000000..235543c9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/open_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/open_h.png new file mode 100644 index 00000000..6b8de2ec Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/open_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/open_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/open_v.png new file mode 100644 index 00000000..36d29d3f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/open_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/right.png new file mode 100644 index 00000000..783731a5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/top.png new file mode 100644 index 00000000..d84871a2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/v.png new file mode 100644 index 00000000..506dcfb0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/wall.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/wall.png new file mode 100644 index 00000000..035f0d89 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/base/wall.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_bottom.png new file mode 100644 index 00000000..dde391a1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_h.png new file mode 100644 index 00000000..c1da10c9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_hmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_hmid.png new file mode 100644 index 00000000..431e17e5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_hmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_left.png new file mode 100644 index 00000000..7192ecd4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_right.png new file mode 100644 index 00000000..442d59b9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_top.png new file mode 100644 index 00000000..ec8d4215 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_v.png new file mode 100644 index 00000000..c6c791c8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_vmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_vmid.png new file mode 100644 index 00000000..a81479f2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/blue_vmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_bottom.png new file mode 100644 index 00000000..bc6bd96d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_h.png new file mode 100644 index 00000000..bd23a0aa Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_hmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_hmid.png new file mode 100644 index 00000000..6235c37c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_hmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_left.png new file mode 100644 index 00000000..20a85607 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_right.png new file mode 100644 index 00000000..743c282b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_top.png new file mode 100644 index 00000000..90939e12 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_v.png new file mode 100644 index 00000000..de88d918 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_vmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_vmid.png new file mode 100644 index 00000000..b5cfc969 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/green_vmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_bottom.png new file mode 100644 index 00000000..d3f0185f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_h.png new file mode 100644 index 00000000..82222e38 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_hmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_hmid.png new file mode 100644 index 00000000..2169e22e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_hmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_left.png new file mode 100644 index 00000000..c3c5a74f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_right.png new file mode 100644 index 00000000..6c799483 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_top.png new file mode 100644 index 00000000..1d8046fc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_v.png new file mode 100644 index 00000000..be57bc3c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_vmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_vmid.png new file mode 100644 index 00000000..506dcfb0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/normal_vmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/open_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/open_h.png new file mode 100644 index 00000000..6b8de2ec Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/open_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/open_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/open_v.png new file mode 100644 index 00000000..36d29d3f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/open_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_bottom.png new file mode 100644 index 00000000..4aa184b6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_h.png new file mode 100644 index 00000000..671b3a82 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_hmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_hmid.png new file mode 100644 index 00000000..8e75c1f9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_hmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_left.png new file mode 100644 index 00000000..72eed5f0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_right.png new file mode 100644 index 00000000..2bbcfc2f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_top.png new file mode 100644 index 00000000..1b7a5023 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_v.png new file mode 100644 index 00000000..50d38086 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_vmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_vmid.png new file mode 100644 index 00000000..6b926724 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/red_vmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/wall.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/wall.png new file mode 100644 index 00000000..035f0d89 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/wall.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_bottom.png new file mode 100644 index 00000000..8cc5c977 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_h.png new file mode 100644 index 00000000..12e3219f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_hmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_hmid.png new file mode 100644 index 00000000..284809eb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_hmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_left.png new file mode 100644 index 00000000..71cacf29 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_right.png new file mode 100644 index 00000000..f0578c7a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_top.png new file mode 100644 index 00000000..eef46aa8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_v.png new file mode 100644 index 00000000..6b04b060 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_vmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_vmid.png new file mode 100644 index 00000000..4eccbc73 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/prison/yellow_vmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/LICENSE.txt new file mode 100644 index 00000000..8074b112 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/LICENSE.txt @@ -0,0 +1,3 @@ +Adapted from Sci-fi Interior tiles by Buch +http://opengameart.org/content/sci-fi-interior-tiles +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/bottom.png new file mode 100644 index 00000000..ff627538 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/h.png new file mode 100644 index 00000000..65efa3d5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/blue_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/blue_bottom.png new file mode 100644 index 00000000..1dfe8e47 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/blue_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/blue_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/blue_h.png new file mode 100644 index 00000000..f8ba05c9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/blue_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/blue_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/blue_left.png new file mode 100644 index 00000000..8ef996a2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/blue_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/blue_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/blue_right.png new file mode 100644 index 00000000..de3dc6e8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/blue_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/blue_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/blue_top.png new file mode 100644 index 00000000..e705cc40 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/blue_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/blue_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/blue_v.png new file mode 100644 index 00000000..2d82416b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/blue_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/green_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/green_bottom.png new file mode 100644 index 00000000..669a32e0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/green_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/green_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/green_h.png new file mode 100644 index 00000000..9b74f3a7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/green_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/green_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/green_left.png new file mode 100644 index 00000000..2870b64f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/green_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/green_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/green_right.png new file mode 100644 index 00000000..37ee58d0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/green_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/green_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/green_top.png new file mode 100644 index 00000000..b28abdec Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/green_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/green_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/green_v.png new file mode 100644 index 00000000..fe0a90b3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/green_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/red_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/red_bottom.png new file mode 100644 index 00000000..97ca9ea1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/red_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/red_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/red_h.png new file mode 100644 index 00000000..adb665e5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/red_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/red_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/red_left.png new file mode 100644 index 00000000..6662ea1b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/red_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/red_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/red_right.png new file mode 100644 index 00000000..a982c014 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/red_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/red_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/red_top.png new file mode 100644 index 00000000..6718e94a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/red_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/red_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/red_v.png new file mode 100644 index 00000000..0ff133d6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/red_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/yellow_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/yellow_bottom.png new file mode 100644 index 00000000..abe46aad Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/yellow_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/yellow_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/yellow_h.png new file mode 100644 index 00000000..b4ea03a4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/yellow_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/yellow_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/yellow_left.png new file mode 100644 index 00000000..5f78d364 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/yellow_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/yellow_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/yellow_right.png new file mode 100644 index 00000000..f04959cc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/yellow_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/yellow_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/yellow_top.png new file mode 100644 index 00000000..8a734ff4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/yellow_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/yellow_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/yellow_v.png new file mode 100644 index 00000000..078e47f1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/key/yellow_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/left.png new file mode 100644 index 00000000..65efa3d5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/open_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/open_h.png new file mode 100644 index 00000000..72e3536f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/open_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/open_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/open_v.png new file mode 100644 index 00000000..3d82b399 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/open_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/right.png new file mode 100644 index 00000000..65efa3d5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/top.png new file mode 100644 index 00000000..809ff384 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/v.png new file mode 100644 index 00000000..9f6aeba0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/wall.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/wall.png new file mode 100644 index 00000000..5bc111f1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/base/wall.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_bottom.png new file mode 100644 index 00000000..c96e510b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_h.png new file mode 100644 index 00000000..f22cf17c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_hmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_hmid.png new file mode 100644 index 00000000..dcb83160 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_hmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_left.png new file mode 100644 index 00000000..b092fa7b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_right.png new file mode 100644 index 00000000..ad3c2fb8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_top.png new file mode 100644 index 00000000..c96e510b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_v.png new file mode 100644 index 00000000..cafa52a4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_vmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_vmid.png new file mode 100644 index 00000000..c96e510b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/blue_vmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_bottom.png new file mode 100644 index 00000000..98dab44d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_h.png new file mode 100644 index 00000000..f1b0a824 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_hmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_hmid.png new file mode 100644 index 00000000..7558e82e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_hmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_left.png new file mode 100644 index 00000000..d3a438fb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_right.png new file mode 100644 index 00000000..af09977b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_top.png new file mode 100644 index 00000000..98dab44d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_v.png new file mode 100644 index 00000000..ff1674f2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_vmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_vmid.png new file mode 100644 index 00000000..98dab44d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/green_vmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_bottom.png new file mode 100644 index 00000000..3120cfd6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_h.png new file mode 100644 index 00000000..fa9865b2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_hmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_hmid.png new file mode 100644 index 00000000..a8f71477 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_hmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_left.png new file mode 100644 index 00000000..20736f54 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_right.png new file mode 100644 index 00000000..3e7c407c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_top.png new file mode 100644 index 00000000..877aaf4d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_v.png new file mode 100644 index 00000000..f4c9d87a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_vmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_vmid.png new file mode 100644 index 00000000..9f6aeba0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/normal_vmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/open_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/open_h.png new file mode 100644 index 00000000..72e3536f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/open_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/open_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/open_v.png new file mode 100644 index 00000000..3d82b399 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/open_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_bottom.png new file mode 100644 index 00000000..34a7176f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_h.png new file mode 100644 index 00000000..ef521d06 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_hmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_hmid.png new file mode 100644 index 00000000..5a794702 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_hmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_left.png new file mode 100644 index 00000000..c03eb65b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_right.png new file mode 100644 index 00000000..2acc83c9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_top.png new file mode 100644 index 00000000..34a7176f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_v.png new file mode 100644 index 00000000..79e5bde3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_vmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_vmid.png new file mode 100644 index 00000000..34a7176f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/red_vmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/wall.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/wall.png new file mode 100644 index 00000000..5bc111f1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/wall.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_bottom.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_bottom.png new file mode 100644 index 00000000..c7c5d83c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_bottom.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_h.png new file mode 100644 index 00000000..f0609e48 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_hmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_hmid.png new file mode 100644 index 00000000..384fe325 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_hmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_left.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_left.png new file mode 100644 index 00000000..6e8ec949 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_left.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_right.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_right.png new file mode 100644 index 00000000..a031f1c4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_right.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_top.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_top.png new file mode 100644 index 00000000..c7c5d83c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_top.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_v.png new file mode 100644 index 00000000..b66a63aa Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_vmid.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_vmid.png new file mode 100644 index 00000000..c7c5d83c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/door/tech/yellow_vmid.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/drain0.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/drain0.png new file mode 100644 index 00000000..80216e6f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/drain0.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/drain1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/drain1.png new file mode 100644 index 00000000..00382502 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/drain1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/drain1.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/drain1.txt new file mode 100644 index 00000000..80d323fe --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/drain1.txt @@ -0,0 +1,4 @@ +Derived from metal grate texture +by Luke.RUSTLTD +http://opengameart.org/content/metal-grate-texture +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/drain2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/drain2.png new file mode 100644 index 00000000..70a9c059 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/drain2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/drain2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/drain2.txt new file mode 100644 index 00000000..6489e532 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/drain2.txt @@ -0,0 +1,4 @@ +Derived from Weathered Metal Grates +by leeor_net +http://opengameart.org/content/weathered-metal-grates +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/dynamite_active_16x16.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/dynamite_active_16x16.png new file mode 100644 index 00000000..71e5daed Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/dynamite_active_16x16.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/dynamite_active_16x16.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/dynamite_active_16x16.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/dynamite_active_16x16.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/dynamite_pickup.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/dynamite_pickup.png new file mode 100644 index 00000000..0575da62 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/dynamite_pickup.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/dynamite_pickup.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/dynamite_pickup.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/dynamite_pickup.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/add.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/add.png new file mode 100644 index 00000000..0051e8b3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/add.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/arrow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/arrow.png new file mode 100644 index 00000000..85dc35e6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/arrow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/box.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/box.png new file mode 100644 index 00000000..052b1abf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/box.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/box_filled.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/box_filled.png new file mode 100644 index 00000000..2f4d113a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/box_filled.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/box_n_fill.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/box_n_fill.png new file mode 100644 index 00000000..939a2805 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/box_n_fill.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/bucket.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/bucket.png new file mode 100644 index 00000000..1aa38e53 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/bucket.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/collapse.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/collapse.png new file mode 100644 index 00000000..96e25fdb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/collapse.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/add.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/add.png new file mode 100644 index 00000000..ee80cb09 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/add.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/box.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/box.png new file mode 100644 index 00000000..700a9ba3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/box.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/box_filled.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/box_filled.png new file mode 100644 index 00000000..f00fd929 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/box_filled.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/box_n_fill.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/box_n_fill.png new file mode 100644 index 00000000..f2a33ccb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/box_n_fill.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/bucket.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/bucket.png new file mode 100644 index 00000000..24366a8b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/bucket.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/line.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/line.png new file mode 100644 index 00000000..085fa39f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/line.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/pencil.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/pencil.png new file mode 100644 index 00000000..1233a479 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/pencil.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/select.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/select.png new file mode 100644 index 00000000..cd70963a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/select.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/set_exit.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/set_exit.png new file mode 100644 index 00000000..00c33efd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/set_exit.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/set_key.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/set_key.png new file mode 100644 index 00000000..d325380e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/cursors/set_key.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/expand.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/expand.png new file mode 100644 index 00000000..3c163223 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/expand.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/line.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/line.png new file mode 100644 index 00000000..8c40fff7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/line.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/pencil.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/pencil.png new file mode 100644 index 00000000..26e09436 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/pencil.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/select.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/select.png new file mode 100644 index 00000000..aa0d2202 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/select.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/set_exit.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/set_exit.png new file mode 100644 index 00000000..acfa0fb5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/set_exit.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/set_key.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/set_key.png new file mode 100644 index 00000000..22b8b436 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/set_key.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/start.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/start.png new file mode 100644 index 00000000..0e5bd3e2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/editor/start.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/egg2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/egg2.txt new file mode 100644 index 00000000..a7a1c70a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/egg2.txt @@ -0,0 +1,6 @@ +Adapted from 3X UPDATED 32x32 Scifi Roguelike Enemies +By Stephen "Redshrike" Challener +http://opengameart.org/content/3x-updated-32x32-scifi-roguelike-enemies + +http://creativecommons.org/licenses/by/3.0/ +http://opengameart.org/content/oga-by-30-faq \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/egg2_18x19.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/egg2_18x19.png new file mode 100644 index 00000000..34fbc229 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/egg2_18x19.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/egg2_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/egg2_wreck.png new file mode 100644 index 00000000..8377876b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/egg2_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/egg_18x19.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/egg_18x19.png new file mode 100644 index 00000000..e86713ad Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/egg_18x19.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/egg_wreck_18x10.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/egg_wreck_18x10.png new file mode 100644 index 00000000..9e7b4d36 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/egg_wreck_18x10.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/hazard/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/hazard/normal.png new file mode 100644 index 00000000..ad7ebabb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/hazard/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/hazard/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/hazard/shadow.png new file mode 100644 index 00000000..060ae5a5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/hazard/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/hazard2/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/hazard2/normal.png new file mode 100644 index 00000000..1a795ac9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/hazard2/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/hazard2/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/hazard2/shadow.png new file mode 100644 index 00000000..04297667 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/hazard2/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/plate/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/plate/normal.png new file mode 100644 index 00000000..35acba29 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/plate/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/plate/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/plate/shadow.png new file mode 100644 index 00000000..1e469e90 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/plate/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/plate2/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/plate2/LICENSE.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/plate2/LICENSE.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/plate2/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/plate2/normal.png new file mode 100644 index 00000000..10925cba Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/plate2/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/plate2/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/plate2/shadow.png new file mode 100644 index 00000000..8f936f04 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/exits/plate2/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fan_16x12.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fan_16x12.png new file mode 100644 index 00000000..9380f944 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fan_16x12.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fan_16x12.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fan_16x12.txt new file mode 100644 index 00000000..3e1af17b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fan_16x12.txt @@ -0,0 +1,2 @@ +Derived from Cyberdog fan tiles by Ronny Wester +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball.txt new file mode 100644 index 00000000..6873600e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball.txt @@ -0,0 +1,9 @@ +Derived from Animated Sprites and Textures by Spiney +http://opengameart.org/content/animated-sprites-and-textures + +Licenses: +http://creativecommons.org/licenses/by/3.0/ +http://creativecommons.org/licenses/by-sa/3.0/ +http://www.gnu.org/licenses/gpl-3.0.html +http://www.gnu.org/licenses/old-licenses/gpl-2.0.html +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_24x21.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_24x21.png new file mode 100644 index 00000000..d12dcbb1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_24x21.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_green.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_green.txt new file mode 100644 index 00000000..6873600e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_green.txt @@ -0,0 +1,9 @@ +Derived from Animated Sprites and Textures by Spiney +http://opengameart.org/content/animated-sprites-and-textures + +Licenses: +http://creativecommons.org/licenses/by/3.0/ +http://creativecommons.org/licenses/by-sa/3.0/ +http://www.gnu.org/licenses/gpl-3.0.html +http://www.gnu.org/licenses/old-licenses/gpl-2.0.html +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_green_16x16.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_green_16x16.png new file mode 100644 index 00000000..10ab1369 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_green_16x16.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_green_hit.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_green_hit.txt new file mode 100644 index 00000000..6873600e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_green_hit.txt @@ -0,0 +1,9 @@ +Derived from Animated Sprites and Textures by Spiney +http://opengameart.org/content/animated-sprites-and-textures + +Licenses: +http://creativecommons.org/licenses/by/3.0/ +http://creativecommons.org/licenses/by-sa/3.0/ +http://www.gnu.org/licenses/gpl-3.0.html +http://www.gnu.org/licenses/old-licenses/gpl-2.0.html +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_green_hit_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_green_hit_32x32.png new file mode 100644 index 00000000..f9f3a56b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_green_hit_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_hit.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_hit.txt new file mode 100644 index 00000000..6873600e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_hit.txt @@ -0,0 +1,9 @@ +Derived from Animated Sprites and Textures by Spiney +http://opengameart.org/content/animated-sprites-and-textures + +Licenses: +http://creativecommons.org/licenses/by/3.0/ +http://creativecommons.org/licenses/by-sa/3.0/ +http://www.gnu.org/licenses/gpl-3.0.html +http://www.gnu.org/licenses/old-licenses/gpl-2.0.html +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_hit_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_hit_32x32.png new file mode 100644 index 00000000..be26a643 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_hit_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_small_16x16.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_small_16x16.png new file mode 100644 index 00000000..d169f7cb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fireball_small_16x16.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fist.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fist.png new file mode 100644 index 00000000..df960b5c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/fist.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/flame_14x15.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/flame_14x15.png new file mode 100644 index 00000000..b6db0c10 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/flame_14x15.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/flamer.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/flamer.png new file mode 100644 index 00000000..ebdc8540 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/flamer.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/flamer.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/flamer.txt new file mode 100644 index 00000000..802e878c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/flamer.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/floor_console.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/floor_console.png new file mode 100644 index 00000000..efb229e3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/floor_console.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/floor_console.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/floor_console.txt new file mode 100644 index 00000000..25aca62e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/floor_console.txt @@ -0,0 +1,5 @@ +Adapted from Kyrodian Legends Overworld Props +By Midi +https://web.archive.org/web/20150319200042/http://opengameart.org/content/kyrodian-legends-overworld-props + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/floor_console_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/floor_console_wreck.png new file mode 100644 index 00000000..3aa543d2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/floor_console_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/flower.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/flower.png new file mode 100644 index 00000000..8c08e495 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/flower.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/flower.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/flower.txt new file mode 100644 index 00000000..ca5ae5a3 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/flower.txt @@ -0,0 +1,4 @@ +Adapted from LPC: Interior Castle Tiles by Lanea Zimmerman +http://opengameart.org/content/lpc-interior-castle-tiles + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/flower_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/flower_wreck.png new file mode 100644 index 00000000..38d421cd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/flower_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/folder.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/folder.png new file mode 100644 index 00000000..be5384b6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/folder.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/folder2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/folder2.png new file mode 100644 index 00000000..efb7a625 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/folder2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/folder2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/folder2.txt new file mode 100644 index 00000000..939afc80 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/folder2.txt @@ -0,0 +1,4 @@ +Derived from Tango Desktop Icons +by Tango Desktop Project (http://tango.freedesktop.org/) +http://opengameart.org/content/tango-desktop-icons +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/font.json b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/font.json new file mode 100644 index 00000000..c567c347 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/font.json @@ -0,0 +1,8 @@ +{ + "Size": [7, 8], + "Stride": 32, + "Padding": [0, 0, 0, 0], + "Gap": [-1, 0], + "Proportional": true, + "SpaceSize": [4, 5] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/font.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/font.png new file mode 100644 index 00000000..373a3082 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/font.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/frag_grenade_pickup.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/frag_grenade_pickup.png new file mode 100644 index 00000000..3277ce18 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/frag_grenade_pickup.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/frag_grenade_pickup.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/frag_grenade_pickup.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/frag_grenade_pickup.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gas_cloud_24x21.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gas_cloud_24x21.png new file mode 100644 index 00000000..3d856bea Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gas_cloud_24x21.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gas_grenade_pickup.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gas_grenade_pickup.png new file mode 100644 index 00000000..f26d6fd5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gas_grenade_pickup.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gas_grenade_pickup.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gas_grenade_pickup.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gas_grenade_pickup.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gas_tank.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gas_tank.png new file mode 100644 index 00000000..9a8b0a6e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gas_tank.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gas_tank.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gas_tank.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gas_tank.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gibs.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gibs.png new file mode 100644 index 00000000..636c9a7c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gibs.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gibs.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gibs.txt new file mode 100644 index 00000000..fbd3f3f2 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/gibs.txt @@ -0,0 +1,4 @@ +Adapted from Misc. Dark Fantasy Scenery Sprites by Gwes +http://opengameart.org/content/misc-dark-fantasy-scenery-sprites + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/goo.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/goo.png new file mode 100644 index 00000000..13c2beb2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/goo.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/green_relief.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/green_relief.png new file mode 100644 index 00000000..79b40b52 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/green_relief.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/grenade_8x8.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/grenade_8x8.png new file mode 100644 index 00000000..8d24e5cc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/grenade_8x8.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/grenade_pickup.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/grenade_pickup.png new file mode 100644 index 00000000..18f9e1d8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/grenade_pickup.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/grenade_pickup.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/grenade_pickup.txt new file mode 100644 index 00000000..6cc2df2d --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/grenade_pickup.txt @@ -0,0 +1,5 @@ +Adapted from Various inventory 24 pixel icon set by OceansDream +http://opengameart.org/content/various-inventory-24-pixel-icon-set + +http://creativecommons.org/licenses/by/3.0/ +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/health.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/health.png new file mode 100644 index 00000000..121a27a8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/health.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/health.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/health.txt new file mode 100644 index 00000000..7ddf0e9c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/health.txt @@ -0,0 +1,5 @@ +Adapted from Various inventory 24 pixel icon set +By OceansDream +http://opengameart.org/content/various-inventory-24-pixel-icon-set + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/heart.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/heart.png new file mode 100644 index 00000000..fc888990 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/heart.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/heart.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/heart.txt new file mode 100644 index 00000000..802e878c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/heart.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/heatseeker.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/heatseeker.png new file mode 100644 index 00000000..d66080d6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/heatseeker.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/heatseeker.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/heatseeker.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/heatseeker.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/holo_19x20.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/holo_19x20.png new file mode 100644 index 00000000..bd03bcc7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/holo_19x20.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/arrow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/arrow.png new file mode 100644 index 00000000..40e2135c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/arrow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/arrow.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/arrow.txt new file mode 100644 index 00000000..3e02b809 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/arrow.txt @@ -0,0 +1,5 @@ +Adapted from RetroPixel Icons V1 (9x9) +By Anton Revin +https://opengameart.org/content/retropixel-icons-v1-9x9 + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/back_bar.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/back_bar.png new file mode 100644 index 00000000..85a7d6a7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/back_bar.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/button_bg.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/button_bg.png new file mode 100644 index 00000000..d4e46a86 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/button_bg.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gauge_back.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gauge_back.png new file mode 100644 index 00000000..83330e2d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gauge_back.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gauge_inner.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gauge_inner.png new file mode 100644 index 00000000..2efc8e06 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gauge_inner.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gauge_small_back.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gauge_small_back.png new file mode 100644 index 00000000..ed975f7b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gauge_small_back.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gauge_small_ball.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gauge_small_ball.png new file mode 100644 index 00000000..0fec1596 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gauge_small_ball.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gauge_small_inner.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gauge_small_inner.png new file mode 100644 index 00000000..1395cecc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gauge_small_inner.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gradient.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gradient.png new file mode 100644 index 00000000..c85cb592 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gradient.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gun_bg_30x23.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gun_bg_30x23.png new file mode 100644 index 00000000..a891c565 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gun_bg_30x23.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gun_slot_bg_32x40.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gun_slot_bg_32x40.png new file mode 100644 index 00000000..51231591 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/gun_slot_bg_32x40.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/license.txt new file mode 100644 index 00000000..07770815 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/license.txt @@ -0,0 +1,9 @@ +Derived from Unfinished user interfaces +by Buch (https://opengameart.org/users/buch) +https://opengameart.org/content/unfinished-user-interfaces +http://creativecommons.org/publicdomain/zero/1.0/ + +And Hard Vacuum: IntfcBuy +By Daniel Cook (http://lostgarden.com/) +https://opengameart.org/content/hard-vacuum-intfcbuy +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/objective_collect.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/objective_collect.png new file mode 100644 index 00000000..9fb9dd4f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/objective_collect.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/objective_collect.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/objective_collect.txt new file mode 100644 index 00000000..a437673e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/objective_collect.txt @@ -0,0 +1,4 @@ +Derived from Roguelike/RPG Icons +by Joe Williamson (@JoeCreates) +https://opengameart.org/content/roguelikerpg-icons +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/objective_kill.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/objective_kill.png new file mode 100644 index 00000000..9e0fa8b8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/objective_kill.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/player_frame.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/player_frame.png new file mode 100644 index 00000000..cb1f034b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/player_frame.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/player_frame_underlay.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/player_frame_underlay.png new file mode 100644 index 00000000..4652c96b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/hud/player_frame_underlay.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/jail_cell.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/jail_cell.png new file mode 100644 index 00000000..193c99d2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/jail_cell.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/jail_cell.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/jail_cell.txt new file mode 100644 index 00000000..c6a4e4ee --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/jail_cell.txt @@ -0,0 +1,4 @@ +Adapted from Tiny 16: Basic +By Lanea Zimmerman +https://opengameart.org/content/tiny-16-basic +http://opengameart.org/content/oga-by-30-faq \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/jail_cell_broken.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/jail_cell_broken.png new file mode 100644 index 00000000..172719ee Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/jail_cell_broken.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/jail_cell_skeleton.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/jail_cell_skeleton.png new file mode 100644 index 00000000..6597f7b9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/jail_cell_skeleton.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/jail_cell_skeleton.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/jail_cell_skeleton.txt new file mode 100644 index 00000000..c6a4e4ee --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/jail_cell_skeleton.txt @@ -0,0 +1,4 @@ +Adapted from Tiny 16: Basic +By Lanea Zimmerman +https://opengameart.org/content/tiny-16-basic +http://opengameart.org/content/oga-by-30-faq \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/card/blue.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/card/blue.png new file mode 100644 index 00000000..fa98f583 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/card/blue.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/card/green.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/card/green.png new file mode 100644 index 00000000..cfd5135e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/card/green.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/card/red.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/card/red.png new file mode 100644 index 00000000..c05cf981 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/card/red.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/card/yellow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/card/yellow.png new file mode 100644 index 00000000..b133f87a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/card/yellow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/chip/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/chip/LICENSE.txt new file mode 100644 index 00000000..5891c3be --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/chip/LICENSE.txt @@ -0,0 +1,4 @@ +Adapted from Various inventory 24 pixel icon set by OceansDream +http://opengameart.org/content/various-inventory-24-pixel-icon-set + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/chip/blue.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/chip/blue.png new file mode 100644 index 00000000..f8deeef4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/chip/blue.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/chip/green.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/chip/green.png new file mode 100644 index 00000000..7b1a36e3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/chip/green.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/chip/red.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/chip/red.png new file mode 100644 index 00000000..0c6bb649 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/chip/red.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/chip/yellow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/chip/yellow.png new file mode 100644 index 00000000..d417f482 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/chip/yellow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube/blue.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube/blue.png new file mode 100644 index 00000000..f88b2450 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube/blue.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube/green.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube/green.png new file mode 100644 index 00000000..d784bc8c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube/green.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube/red.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube/red.png new file mode 100644 index 00000000..9c3fec72 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube/red.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube/yellow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube/yellow.png new file mode 100644 index 00000000..7beba856 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube/yellow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube2/blue.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube2/blue.png new file mode 100644 index 00000000..0dc68ce7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube2/blue.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube2/green.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube2/green.png new file mode 100644 index 00000000..1ea53def Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube2/green.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube2/red.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube2/red.png new file mode 100644 index 00000000..31c0a23d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube2/red.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube2/yellow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube2/yellow.png new file mode 100644 index 00000000..0b2fe74c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/cube2/yellow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/dungeon/blue.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/dungeon/blue.png new file mode 100644 index 00000000..b110405d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/dungeon/blue.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/dungeon/green.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/dungeon/green.png new file mode 100644 index 00000000..f5ccba97 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/dungeon/green.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/dungeon/red.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/dungeon/red.png new file mode 100644 index 00000000..aef94b72 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/dungeon/red.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/dungeon/yellow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/dungeon/yellow.png new file mode 100644 index 00000000..8ea4eb1e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/dungeon/yellow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/office/blue.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/office/blue.png new file mode 100644 index 00000000..4e0f9595 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/office/blue.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/office/green.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/office/green.png new file mode 100644 index 00000000..fc44de20 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/office/green.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/office/red.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/office/red.png new file mode 100644 index 00000000..e0851f14 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/office/red.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/office/yellow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/office/yellow.png new file mode 100644 index 00000000..8ced2009 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/office/yellow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain/blue.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain/blue.png new file mode 100644 index 00000000..83d58a29 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain/blue.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain/green.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain/green.png new file mode 100644 index 00000000..f74efcda Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain/green.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain/red.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain/red.png new file mode 100644 index 00000000..cec3fa88 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain/red.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain/yellow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain/yellow.png new file mode 100644 index 00000000..d8e3aab3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain/yellow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain2/blue.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain2/blue.png new file mode 100644 index 00000000..fcbb921a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain2/blue.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain2/green.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain2/green.png new file mode 100644 index 00000000..f76b1875 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain2/green.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain2/red.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain2/red.png new file mode 100644 index 00000000..8ca2a587 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain2/red.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain2/yellow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain2/yellow.png new file mode 100644 index 00000000..8111b7a0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/keys/plain2/yellow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/knife.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/knife.png new file mode 100644 index 00000000..269beff8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/knife.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/knife.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/knife.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/knife.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/launcher.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/launcher.png new file mode 100644 index 00000000..62b2183d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/launcher.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/launcher.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/launcher.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/launcher.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/logo.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/logo.png new file mode 100644 index 00000000..2fd072d9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/logo.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/machine_gun.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/machine_gun.png new file mode 100644 index 00000000..8f00a14a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/machine_gun.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/machine_gun.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/machine_gun.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/machine_gun.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/machine_gun_blue.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/machine_gun_blue.png new file mode 100644 index 00000000..b9e43183 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/machine_gun_blue.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/make_bullet_spritesheet.sh b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/make_bullet_spritesheet.sh new file mode 100755 index 00000000..a0f786df --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/make_bullet_spritesheet.sh @@ -0,0 +1,25 @@ +#!/bin/sh +# +# Create a bullet spritesheet by rotating a source image +# +if [ "$#" -ne 1 ]; then + echo "Usage: make_bullet_spritesheet.sh infile" + exit 1 +fi +command='convert $1 -background none -virtual-pixel background' + +for i in $(seq 45 45 315); do + command="$command \\( -clone 0 -filter Point -distort SRT $i \\)" +done + +BASENAME=$(basename "$1" | cut -d. -f1) +DIMENSIONS=$(identify -format "%wx%h" $1) +OUTFILE=${BASENAME}_${DIMENSIONS}.png + +command="$command +append -alpha on $OUTFILE" + +eval $command + +chmod 644 $OUTFILE + +echo "Created $OUTFILE" diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/map.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/map.png new file mode 100644 index 00000000..fb38fd97 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/map.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/map.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/map.txt new file mode 100644 index 00000000..802e878c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/map.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/mine_active.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/mine_active.png new file mode 100644 index 00000000..d614c4f9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/mine_active.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/mine_inactive.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/mine_inactive.png new file mode 100644 index 00000000..ed88f3cd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/mine_inactive.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/mine_pickup.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/mine_pickup.png new file mode 100644 index 00000000..d1903896 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/mine_pickup.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/mine_pickup.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/mine_pickup.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/mine_pickup.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/molotov.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/molotov.png new file mode 100644 index 00000000..04585da0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/molotov.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/molotov_pickup.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/molotov_pickup.png new file mode 100644 index 00000000..d2823bd5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/molotov_pickup.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/molotov_pickup.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/molotov_pickup.txt new file mode 100644 index 00000000..aa9461b3 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/molotov_pickup.txt @@ -0,0 +1,4 @@ +Adapted from Molotov Cocktail by OpenClips +http://pixabay.com/en/molotov-cocktail-bottle-explosive-157193/ + +http://creativecommons.org/publicdomain/zero/1.0/deed.en \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/no_sign.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/no_sign.png new file mode 100644 index 00000000..ad764b62 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/no_sign.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/objective_kill.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/objective_kill.png new file mode 100644 index 00000000..683e8e6a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/objective_kill.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/originals.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/originals.txt new file mode 100644 index 00000000..195db78b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/originals.txt @@ -0,0 +1,142 @@ +Original graphics copyright Ronny Wester +Includes unmodified graphics and derived ones, licensed under CC-BY + +Full list: + +drains/0.png +barrel.png +barrel_blue.png +barrel_blue_wreck.png +barrel_skull.png +barrel_wood.png +barrel_wood_wreck.png +beam_8x8.png +beam_yellow_8x8.png +bench.png +bench_wreck.png +bigpanel.png +bloodstain.png +blueprint.png +bone_blood.png +bookshelf.png +bottle.png +bottle_orange.png +box.png +box_metal_green.png +box_metal_green_wreck.png +box_gray.png +box_green.png +box_red.png +box_wood.png +box_wreck.png +box2.png +bulletmarks.png +bullet_ball.png +cabinet.png +cabinet_wreck.png +cd.png +chair.png +chair_wreck.png +chars/body_arms_legs_16x16.png +chars/death_16x22.png +chars/guns/blaster_20x20.png +chars/guns/knife_16x20.png +chars/heads/bob_10x10.png +chars/heads/bugeye_10x10.png +chars/heads/cyberjones_10x10.png +chars/heads/cybersmith_10x10.png +chars/heads/cyberwar_10x10.png +chars/heads/cyborg_10x10.png +chars/heads/dragon_10x10.png +chars/heads/freeze_10x10.png +chars/heads/goggles_10x10.png +chars/heads/grunt_10x10.png +chars/heads/ice_10x10.png +chars/heads/jones_10x10.png +chars/heads/lady_14x10.png +chars/heads/madbugeye_10x12.png +chars/heads/ogre_10x10.png +chars/heads/ogreboss_10x14.png +chars/heads/professor_10x10.png +chars/heads/robot_10x8.png +chars/heads/smith_10x10.png +chars/heads/snake_10x10.png +chars/heads/warbaby_10x10.png +chars/heads/wolf_10x10.png +column.png +disk1.png +disk2.png +disk3.png +door/alien/ +door/blast/ +door/dungeon/ +door/office/ +egg.png +egg_wreck.png +exits/hazard/ +exits/plate/ +fireball_21x21.png +flame_14x15.png +folder.png +gas_cloud_24x21.png +goo.png +grenade_8x8.png +holo.png +keys/cube/ +keys/dungeon/ +keys/office/ +keys/plain/ +logo.png +mine_active.png +mine_inactive.png +molotov.png +paper.png +particles/blood0.png +particles/blood1.png +particles/blood2.png +particles/spark_classic.png +pci_card.png +plant.png +plant_wreck.png +radio.png +rocket.png +rocket_wreck.png +sack.png +safe.png +safe_wreck.png +scratch.png +skull.png +statue_ogre.png +table_clothed.png +table_lab.png +table_steel.png +table_wood.png +table_wood_candle.png +table_wood_wreck.png +terminal.png +tile/biggrid/ +tile/checker/ +tile/dirt/ +tile/grid/ +tile/flat/ +tile/recessed/ +tile/slab/ +tile/smallsquare/ +tile/stone/ +tile/tile/ +tree.png +tree_autumn.png +tree_autumn_wreck.png +tree_dead.png +tree_dead_wreck.png +tree_wreck.png +wall_goo.png +wall_skull.png +wall_stuff.png +wall/brick/ +wall/carbon/ +wall/granite/ +wall/plasteel/ +wall/steel/ +wall/steelwood/ +wall/stone/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/palette.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/palette.png new file mode 100644 index 00000000..3dbbe2f8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/palette.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/paper.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/paper.png new file mode 100644 index 00000000..e60f91b4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/paper.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/paper2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/paper2.png new file mode 100644 index 00000000..d68c987f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/paper2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/paper2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/paper2.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/paper2.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/README.md b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/README.md new file mode 100644 index 00000000..044e7ead --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/README.md @@ -0,0 +1 @@ +The sprites in this folder have alpha / blending effects applied and should not have palette correction applied \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/beam.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/beam.txt new file mode 100644 index 00000000..683bd4b0 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/beam.txt @@ -0,0 +1,6 @@ +Derived from Sci-Fi / Space: Simple bullets +by Bonsaiheldin + +https://opengameart.org/content/sci-fi-space-simple-bullets + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/beam_16x16.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/beam_16x16.png new file mode 100644 index 00000000..9e16fd9a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/beam_16x16.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/beam_bright.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/beam_bright.txt new file mode 100644 index 00000000..cd22b9a8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/beam_bright.txt @@ -0,0 +1,7 @@ +Adapted from Space Ship Construction Kit +By Skorpio +http://opengameart.org/content/space-ship-construction-kit +Muzzle_flashes.zip +Bullet + +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/beam_bright_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/beam_bright_24x24.png new file mode 100644 index 00000000..30e1fce3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/beam_bright_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/beam_green_16x16.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/beam_green_16x16.png new file mode 100644 index 00000000..447f23b5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/beam_green_16x16.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/beam_yellow_16x16.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/beam_yellow_16x16.png new file mode 100644 index 00000000..7626b9c4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/beam_yellow_16x16.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood0.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood0.png new file mode 100644 index 00000000..b4f88eb2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood0.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood1.png new file mode 100644 index 00000000..b688e4f0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood1_1x1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood1_1x1.png new file mode 100644 index 00000000..d71339b3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood1_1x1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood2.png new file mode 100644 index 00000000..1dcbfba8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood2_2x2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood2_2x2.png new file mode 100644 index 00000000..3e36367c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood2_2x2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood3.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood3.png new file mode 100644 index 00000000..6eb32e7b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood3.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood3_3x3.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood3_3x3.png new file mode 100644 index 00000000..51e5e95b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood3_3x3.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood4.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood4.png new file mode 100644 index 00000000..3df6bc0f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/blood4.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/boom_16x16.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/boom_16x16.png new file mode 100644 index 00000000..f0ae904c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/boom_16x16.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/boom_16x16.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/boom_16x16.txt new file mode 100644 index 00000000..cc9c9241 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/boom_16x16.txt @@ -0,0 +1,4 @@ +Adapted from Explosion Sheet by StumpyStrust +http://opengameart.org/content/explosion-sheet + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/brass_1x1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/brass_1x1.png new file mode 100644 index 00000000..216a20ad Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/brass_1x1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/brass_big_2x2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/brass_big_2x2.png new file mode 100644 index 00000000..84f88bd2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/brass_big_2x2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/bullet_hole.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/bullet_hole.png new file mode 100644 index 00000000..9ca95d48 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/bullet_hole.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/cells.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/cells.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/cells.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/cells_12x12.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/cells_12x12.png new file mode 100644 index 00000000..070c2c2e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/cells_12x12.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/explosion_small_34x34.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/explosion_small_34x34.png new file mode 100644 index 00000000..b3faabeb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/explosion_small_34x34.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/explosion_small_34x34.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/explosion_small_34x34.txt new file mode 100644 index 00000000..376309b2 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/explosion_small_34x34.txt @@ -0,0 +1,5 @@ +Adapted from Explosion Set 1 (M484 Games) +By Master484 +http://opengameart.org/content/explosion-set-1-m484-games + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/footprint.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/footprint.png new file mode 100644 index 00000000..5b646ff5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/footprint.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/health_plus.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/health_plus.txt new file mode 100644 index 00000000..3e02b809 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/health_plus.txt @@ -0,0 +1,5 @@ +Adapted from RetroPixel Icons V1 (9x9) +By Anton Revin +https://opengameart.org/content/retropixel-icons-v1-9x9 + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/health_plus_9x9.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/health_plus_9x9.png new file mode 100644 index 00000000..13ad3585 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/health_plus_9x9.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/laser_trail_3x30.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/laser_trail_3x30.png new file mode 100644 index 00000000..ff15cc2d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/laser_trail_3x30.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/mini_cells.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/mini_cells.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/mini_cells.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/mini_cells_9x9.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/mini_cells_9x9.png new file mode 100644 index 00000000..b510820c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/mini_cells_9x9.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/muzzle_flash.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/muzzle_flash.txt new file mode 100644 index 00000000..f9e07de5 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/muzzle_flash.txt @@ -0,0 +1,7 @@ +Adapted from Space Ship Construction Kit +By Skorpio +http://opengameart.org/content/space-ship-construction-kit +Muzzle_flashes.zip +Muzzleflash 3 + +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/muzzle_flash_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/muzzle_flash_24x24.png new file mode 100644 index 00000000..39757c15 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/muzzle_flash_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/muzzle_flash_big.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/muzzle_flash_big.txt new file mode 100644 index 00000000..c915ee02 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/muzzle_flash_big.txt @@ -0,0 +1,7 @@ +Adapted from Space Ship Construction Kit +By Skorpio +http://opengameart.org/content/space-ship-construction-kit +Muzzle_flashes.zip +Layer 13 + +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/muzzle_flash_big_36x36.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/muzzle_flash_big_36x36.png new file mode 100644 index 00000000..99a63872 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/muzzle_flash_big_36x36.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/pulse_11x11.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/pulse_11x11.png new file mode 100644 index 00000000..0c2727d8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/pulse_11x11.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/pulse_green_11x11.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/pulse_green_11x11.png new file mode 100644 index 00000000..f1d3632f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/pulse_green_11x11.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/shadow.png new file mode 100644 index 00000000..c0838664 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/shotshell_2x2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/shotshell_2x2.png new file mode 100644 index 00000000..4ad1f241 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/shotshell_2x2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/smoke_5x5.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/smoke_5x5.png new file mode 100644 index 00000000..c760a411 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/smoke_5x5.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/smoke_big_7x7.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/smoke_big_7x7.png new file mode 100644 index 00000000..5339c265 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/smoke_big_7x7.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/smoke_trail.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/smoke_trail.txt new file mode 100644 index 00000000..651f94d5 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/smoke_trail.txt @@ -0,0 +1,4 @@ +Adapted from Items and elements +By GrafxKid +https://opengameart.org/content/items-and-elements +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/smoke_trail_16x16.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/smoke_trail_16x16.png new file mode 100644 index 00000000..24d7fc27 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/smoke_trail_16x16.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/smoke_trail_small.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/smoke_trail_small.txt new file mode 100644 index 00000000..651f94d5 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/smoke_trail_small.txt @@ -0,0 +1,4 @@ +Adapted from Items and elements +By GrafxKid +https://opengameart.org/content/items-and-elements +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/smoke_trail_small_6x6.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/smoke_trail_small_6x6.png new file mode 100644 index 00000000..354f28f2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/smoke_trail_small_6x6.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/spall1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/spall1.png new file mode 100644 index 00000000..8d84a31c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/spall1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/spall2_2x2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/spall2_2x2.png new file mode 100644 index 00000000..f2fca05d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/spall2_2x2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/spall3_2x2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/spall3_2x2.png new file mode 100644 index 00000000..636c3592 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/spall3_2x2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/spark.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/spark.png new file mode 100644 index 00000000..088a3f57 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/spark.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/spark.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/spark.txt new file mode 100644 index 00000000..cc9c9241 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/spark.txt @@ -0,0 +1,4 @@ +Adapted from Explosion Sheet by StumpyStrust +http://opengameart.org/content/explosion-sheet + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/spark_classic.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/spark_classic.png new file mode 100644 index 00000000..51f4ee7d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/spark_classic.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/trail.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/trail.txt new file mode 100644 index 00000000..61b0a943 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/trail.txt @@ -0,0 +1,4 @@ +Adapted from 2D Shooter Effects (Alpha version) +By Tatermand +https://opengameart.org/content/2d-shooter-effects-alpha-version +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/trail_3x38.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/trail_3x38.png new file mode 100644 index 00000000..7846aedb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/trail_3x38.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/wave_11x11.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/wave_11x11.png new file mode 100644 index 00000000..9a2b0514 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/wave_11x11.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/wave_11x11.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/wave_11x11.txt new file mode 100644 index 00000000..7e96d4c9 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/particles/wave_11x11.txt @@ -0,0 +1,4 @@ +Derived from Bullet Collection 2 (M484 Games) +by Master484 (http://m484games.ucoz.com/) +https://opengameart.org/content/bullet-collection-2-m484-games +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pci_card.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pci_card.png new file mode 100644 index 00000000..8f5488f9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pci_card.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/peashooter.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/peashooter.png new file mode 100644 index 00000000..aa4bea82 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/peashooter.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/peashooter.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/peashooter.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/peashooter.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/petrifier.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/petrifier.png new file mode 100644 index 00000000..7e7aab58 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/petrifier.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/petrifier.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/petrifier.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/petrifier.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pillar_blue.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pillar_blue.png new file mode 100644 index 00000000..b79bb8b4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pillar_blue.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pistol.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pistol.png new file mode 100644 index 00000000..c164a915 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pistol.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pistol.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pistol.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pistol.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plant.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plant.png new file mode 100644 index 00000000..4f26ba17 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plant.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plant_brown.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plant_brown.png new file mode 100644 index 00000000..94c22cf5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plant_brown.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plant_brown.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plant_brown.txt new file mode 100644 index 00000000..16fc73fa --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plant_brown.txt @@ -0,0 +1,4 @@ +Adapted from [16x16] Indoor RPG Tileset by armisius +https://opengameart.org/content/16x16-indoor-rpg-tileset + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plant_brown_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plant_brown_wreck.png new file mode 100644 index 00000000..a080f06a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plant_brown_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plant_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plant_wreck.png new file mode 100644 index 00000000..07e5b314 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plant_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plasma_globe.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plasma_globe.txt new file mode 100644 index 00000000..939afc80 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plasma_globe.txt @@ -0,0 +1,4 @@ +Derived from Tango Desktop Icons +by Tango Desktop Project (http://tango.freedesktop.org/) +http://opengameart.org/content/tango-desktop-icons +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plasma_globe_15x16.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plasma_globe_15x16.png new file mode 100644 index 00000000..3ae02f10 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/plasma_globe_15x16.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pool_water.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pool_water.png new file mode 100644 index 00000000..5961ed51 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pool_water.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/powergun.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/powergun.png new file mode 100644 index 00000000..7e7f25e5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/powergun.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/powergun.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/powergun.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/powergun.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pulse_rifle.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pulse_rifle.png new file mode 100644 index 00000000..ae988cef Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pulse_rifle.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pulse_rifle.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pulse_rifle.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/pulse_rifle.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/radio2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/radio2.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/radio2.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/radio2_9x12.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/radio2_9x12.png new file mode 100644 index 00000000..cba2c859 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/radio2_9x12.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/radio_11x13.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/radio_11x13.png new file mode 100644 index 00000000..63aa23be Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/radio_11x13.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rapid_11x11.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rapid_11x11.png new file mode 100644 index 00000000..fbf27c48 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rapid_11x11.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rapid_11x11.png.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rapid_11x11.png.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rapid_11x11.png.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/recolor.sh b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/recolor.sh new file mode 100755 index 00000000..2ed8adab --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/recolor.sh @@ -0,0 +1,8 @@ +#!/bin/sh +# +# Recolor sprites based on C-Dogs palette +# TODO: force RGB, don't use grayscale +# +for image in *.png; do + convert "$image" +depth +dither -remap palette.png "$image" +done diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/red_relief.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/red_relief.png new file mode 100644 index 00000000..e5c3fc59 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/red_relief.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rocket.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rocket.png new file mode 100644 index 00000000..58cc891c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rocket.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rocket2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rocket2.png new file mode 100644 index 00000000..385ca281 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rocket2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rocket2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rocket2.txt new file mode 100644 index 00000000..102e15b8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rocket2.txt @@ -0,0 +1,5 @@ +Adapted from Rocket +By JM.Atencia +http://opengameart.org/content/rocket + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rocket_7x7.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rocket_7x7.png new file mode 100644 index 00000000..905b2404 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rocket_7x7.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rocket_blue_12x12.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rocket_blue_12x12.png new file mode 100644 index 00000000..64c3c760 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rocket_blue_12x12.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rocket_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rocket_wreck.png new file mode 100644 index 00000000..f9e428df Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rocket_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rockets.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rockets.png new file mode 100644 index 00000000..ad6b566d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rockets.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rockets.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rockets.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rockets.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rod.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rod.png new file mode 100644 index 00000000..f47188fc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rod.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rod.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rod.txt new file mode 100644 index 00000000..25aca62e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rod.txt @@ -0,0 +1,5 @@ +Adapted from Kyrodian Legends Overworld Props +By Midi +https://web.archive.org/web/20150319200042/http://opengameart.org/content/kyrodian-legends-overworld-props + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rod_light.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rod_light.png new file mode 100644 index 00000000..9ac4648d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rod_light.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rod_light.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rod_light.txt new file mode 100644 index 00000000..25aca62e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rod_light.txt @@ -0,0 +1,5 @@ +Adapted from Kyrodian Legends Overworld Props +By Midi +https://web.archive.org/web/20150319200042/http://opengameart.org/content/kyrodian-legends-overworld-props + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rod_light_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rod_light_wreck.png new file mode 100644 index 00000000..5e177c36 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rod_light_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rod_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rod_wreck.png new file mode 100644 index 00000000..a94829d9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/rod_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/sack.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/sack.png new file mode 100644 index 00000000..4f7b54f2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/sack.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/safe.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/safe.png new file mode 100644 index 00000000..429d48da Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/safe.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/safe2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/safe2.png new file mode 100644 index 00000000..b23a09d0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/safe2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/safe2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/safe2.txt new file mode 100644 index 00000000..35e04a3f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/safe2.txt @@ -0,0 +1,4 @@ +Adapted from Sci-Fi Object Set by Janna +http://opengameart.org/content/sci-fi-object-set + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/safe2_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/safe2_wreck.png new file mode 100644 index 00000000..712db589 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/safe2_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/safe_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/safe_wreck.png new file mode 100644 index 00000000..f209d8be Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/safe_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/scratch.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/scratch.png new file mode 100644 index 00000000..696dba6d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/scratch.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/shells.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/shells.png new file mode 100644 index 00000000..8b6717a2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/shells.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/shells.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/shells.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/shells.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/ship_light.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/ship_light.png new file mode 100644 index 00000000..8404f03c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/ship_light.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/ship_picture.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/ship_picture.png new file mode 100644 index 00000000..284676b3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/ship_picture.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/ship_picture.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/ship_picture.txt new file mode 100644 index 00000000..709b1a81 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/ship_picture.txt @@ -0,0 +1,4 @@ +Adapted from 16*16 Ship Collection by Master484 +https://opengameart.org/content/1616-ship-collection + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/shotgun.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/shotgun.png new file mode 100644 index 00000000..374261cc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/shotgun.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/shotgun.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/shotgun.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/shotgun.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/skull.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/skull.png new file mode 100644 index 00000000..eb4df15c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/skull.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/skull2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/skull2.png new file mode 100644 index 00000000..4badb28b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/skull2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/skull2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/skull2.txt new file mode 100644 index 00000000..fbd3f3f2 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/skull2.txt @@ -0,0 +1,4 @@ +Adapted from Misc. Dark Fantasy Scenery Sprites by Gwes +http://opengameart.org/content/misc-dark-fantasy-scenery-sprites + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/sniper.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/sniper.png new file mode 100644 index 00000000..06b36b9a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/sniper.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/sniper.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/sniper.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/sniper.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/spawn_pad.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/spawn_pad.txt new file mode 100644 index 00000000..35e04a3f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/spawn_pad.txt @@ -0,0 +1,4 @@ +Adapted from Sci-Fi Object Set by Janna +http://opengameart.org/content/sci-fi-object-set + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/spawn_pad_16x10.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/spawn_pad_16x10.png new file mode 100644 index 00000000..3536870b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/spawn_pad_16x10.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/starmap.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/starmap.png new file mode 100644 index 00000000..0aa273b1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/starmap.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/starmap.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/starmap.txt new file mode 100644 index 00000000..fdb3290e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/starmap.txt @@ -0,0 +1,4 @@ +Derived from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/statue_behemoth.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/statue_behemoth.png new file mode 100644 index 00000000..1a2955b6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/statue_behemoth.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/statue_behemoth.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/statue_behemoth.txt new file mode 100644 index 00000000..fbd3f3f2 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/statue_behemoth.txt @@ -0,0 +1,4 @@ +Adapted from Misc. Dark Fantasy Scenery Sprites by Gwes +http://opengameart.org/content/misc-dark-fantasy-scenery-sprites + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/statue_ogre.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/statue_ogre.png new file mode 100644 index 00000000..884773b8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/statue_ogre.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/swarmer_7x7.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/swarmer_7x7.png new file mode 100644 index 00000000..e1cd91bc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/swarmer_7x7.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/swarmer_gun.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/swarmer_gun.png new file mode 100644 index 00000000..7620f4ce Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/swarmer_gun.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/swarmer_gun.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/swarmer_gun.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/swarmer_gun.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table.png new file mode 100644 index 00000000..f4f698ae Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table.png.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table.png.txt new file mode 100644 index 00000000..25aca62e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table.png.txt @@ -0,0 +1,5 @@ +Adapted from Kyrodian Legends Overworld Props +By Midi +https://web.archive.org/web/20150319200042/http://opengameart.org/content/kyrodian-legends-overworld-props + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_and_chairs.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_and_chairs.png new file mode 100644 index 00000000..cc260566 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_and_chairs.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_and_chairs.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_and_chairs.txt new file mode 100644 index 00000000..7df0cd14 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_and_chairs.txt @@ -0,0 +1,11 @@ +Adapted from + +Tables and Stools +By Jordan Irwin +http://opengameart.org/content/tables-and-stools +http://creativecommons.org/licenses/by/3.0/ + +Roguelike Dungeon/World Tiles +by Joe Williamson (@JoeCreates) +https://opengameart.org/content/roguelike-dungeonworld-tiles +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_and_chairs_red.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_and_chairs_red.png new file mode 100644 index 00000000..16c956bf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_and_chairs_red.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_clothed.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_clothed.png new file mode 100644 index 00000000..94855d9c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_clothed.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_lab.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_lab.png new file mode 100644 index 00000000..51a26708 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_lab.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_plastic.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_plastic.png new file mode 100644 index 00000000..190b4b96 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_plastic.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_plastic.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_plastic.txt new file mode 100644 index 00000000..596f18ef --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_plastic.txt @@ -0,0 +1,5 @@ +Adapted from Tables and Stools +By Jordan Irwin +http://opengameart.org/content/tables-and-stools + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_plastic_lab.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_plastic_lab.png new file mode 100644 index 00000000..a9408a83 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_plastic_lab.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_plastic_lab.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_plastic_lab.txt new file mode 100644 index 00000000..38c9367c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_plastic_lab.txt @@ -0,0 +1,11 @@ +Adapted from + +Tables and Stools +By Jordan Irwin +http://opengameart.org/content/tables-and-stools +http://creativecommons.org/licenses/by/3.0/ + +RPG item set +By Jetrel +http://opengameart.org/content/rpg-item-set +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_plastic_lab_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_plastic_lab_wreck.png new file mode 100644 index 00000000..995b9627 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_plastic_lab_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_plastic_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_plastic_wreck.png new file mode 100644 index 00000000..9e7393cb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_plastic_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_steel.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_steel.png new file mode 100644 index 00000000..552137b7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_steel.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood.png new file mode 100644 index 00000000..50918b11 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_candle.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_candle.png new file mode 100644 index 00000000..e4ef701e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_candle.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round.png new file mode 100644 index 00000000..9e5cf799 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round.txt new file mode 100644 index 00000000..596f18ef --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round.txt @@ -0,0 +1,5 @@ +Adapted from Tables and Stools +By Jordan Irwin +http://opengameart.org/content/tables-and-stools + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_candle.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_candle.png new file mode 100644 index 00000000..98f590a7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_candle.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_candle.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_candle.txt new file mode 100644 index 00000000..596f18ef --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_candle.txt @@ -0,0 +1,5 @@ +Adapted from Tables and Stools +By Jordan Irwin +http://opengameart.org/content/tables-and-stools + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_clothed.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_clothed.png new file mode 100644 index 00000000..dc2cbe47 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_clothed.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_clothed.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_clothed.txt new file mode 100644 index 00000000..596f18ef --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_clothed.txt @@ -0,0 +1,5 @@ +Adapted from Tables and Stools +By Jordan Irwin +http://opengameart.org/content/tables-and-stools + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_clothed_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_clothed_wreck.png new file mode 100644 index 00000000..33b8bf46 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_clothed_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_terminal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_terminal.png new file mode 100644 index 00000000..b39d8d08 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_terminal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_terminal.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_terminal.txt new file mode 100644 index 00000000..6c6e9a3e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_terminal.txt @@ -0,0 +1,11 @@ +Adapted from + +Tables and Stools +By Jordan Irwin +http://opengameart.org/content/tables-and-stools +http://creativecommons.org/licenses/by/3.0/ + +Kyrodian Legends Overworld Props +By Midi +https://web.archive.org/web/20150319200042/http://opengameart.org/content/kyrodian-legends-overworld-props +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_terminal_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_terminal_wreck.png new file mode 100644 index 00000000..004874a9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_terminal_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_wreck.png new file mode 100644 index 00000000..b4621758 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_round_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_wreck.png new file mode 100644 index 00000000..c4c808ec Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wood_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wreck.png new file mode 100644 index 00000000..388b17fc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/table_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/teddy.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/teddy.png new file mode 100644 index 00000000..7df6948c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/teddy.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/terminal_17x23.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/terminal_17x23.png new file mode 100644 index 00000000..d3cf5ba1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/terminal_17x23.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid/alt1.png new file mode 100644 index 00000000..934b94c1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid/alt2.png new file mode 100644 index 00000000..987a2887 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid/normal.png new file mode 100644 index 00000000..4c074462 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid/shadow.png new file mode 100644 index 00000000..7d4e6025 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid2/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid2/LICENSE.txt new file mode 100644 index 00000000..22761648 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid2/LICENSE.txt @@ -0,0 +1,4 @@ +Derived from 16x16 Square Block Variations +By etqws3 +http://opengameart.org/content/16x16-square-block-variations +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid2/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid2/alt1.png new file mode 100644 index 00000000..98efe855 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid2/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid2/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid2/alt2.png new file mode 100644 index 00000000..95042e66 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid2/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid2/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid2/normal.png new file mode 100644 index 00000000..e0136d8e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid2/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid2/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid2/shadow.png new file mode 100644 index 00000000..5e3037ea Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/biggrid2/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/checker/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/checker/alt1.png new file mode 100644 index 00000000..fc80fda7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/checker/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/checker/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/checker/alt2.png new file mode 100644 index 00000000..fc80fda7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/checker/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/checker/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/checker/normal.png new file mode 100644 index 00000000..fc80fda7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/checker/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/checker/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/checker/shadow.png new file mode 100644 index 00000000..4d561eb7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/checker/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/cobble/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/cobble/LICENSE.txt new file mode 100644 index 00000000..d04e3a40 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/cobble/LICENSE.txt @@ -0,0 +1,4 @@ +Derived from 16x16 pixel art dungeon wall and cobblestone floor tiles +By Daniel Siegmund and commissioned by OpenGameArt.org (http://opengameart.org) +http://opengameart.org/content/16x16-pixel-art-dungeon-wall-and-cobblestone-floor-tiles +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/cobble/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/cobble/alt1.png new file mode 100644 index 00000000..3934dc32 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/cobble/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/cobble/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/cobble/alt2.png new file mode 100644 index 00000000..f7253ac9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/cobble/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/cobble/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/cobble/normal.png new file mode 100644 index 00000000..2a5530ff Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/cobble/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/cobble/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/cobble/shadow.png new file mode 100644 index 00000000..3c4ac570 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/cobble/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/dirt/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/dirt/alt1.png new file mode 100644 index 00000000..00e0e216 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/dirt/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/dirt/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/dirt/alt2.png new file mode 100644 index 00000000..f50482af Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/dirt/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/dirt/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/dirt/normal.png new file mode 100644 index 00000000..3dac470c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/dirt/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/dirt/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/dirt/shadow.png new file mode 100644 index 00000000..8237236a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/dirt/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/flat/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/flat/alt1.png new file mode 100644 index 00000000..00a6a4f3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/flat/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/flat/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/flat/alt2.png new file mode 100644 index 00000000..98803d1a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/flat/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/flat/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/flat/normal.png new file mode 100644 index 00000000..fb658773 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/flat/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/flat/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/flat/shadow.png new file mode 100644 index 00000000..b0c06aff Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/flat/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grate/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grate/LICENSE.txt new file mode 100644 index 00000000..80886231 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grate/LICENSE.txt @@ -0,0 +1,4 @@ +Derived from Inca Tileset +by Matriax +https://opengameart.org/content/inca-tileset +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grate/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grate/alt1.png new file mode 100644 index 00000000..824ef186 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grate/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grate/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grate/alt2.png new file mode 100644 index 00000000..650822f4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grate/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grate/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grate/normal.png new file mode 100644 index 00000000..ee5e8837 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grate/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grate/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grate/shadow.png new file mode 100644 index 00000000..6ea9e4cc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grate/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grid/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grid/alt1.png new file mode 100644 index 00000000..0787fb08 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grid/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grid/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grid/alt2.png new file mode 100644 index 00000000..0bd5cf86 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grid/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grid/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grid/normal.png new file mode 100644 index 00000000..0bd5cf86 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grid/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grid/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grid/shadow.png new file mode 100644 index 00000000..22df94a6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/grid/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/hex/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/hex/alt1.png new file mode 100644 index 00000000..efc0fbcd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/hex/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/hex/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/hex/alt2.png new file mode 100644 index 00000000..dffe41fa Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/hex/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/hex/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/hex/normal.png new file mode 100644 index 00000000..658ce755 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/hex/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/hex/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/hex/shadow.png new file mode 100644 index 00000000..1acce45b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/hex/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/metal/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/metal/LICENSE.txt new file mode 100644 index 00000000..fdb103f4 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/metal/LICENSE.txt @@ -0,0 +1,4 @@ +Derived from Futuristic Industrial Technical Tileset +by bitbotzgames +https://opengameart.org/content/futuristic-industrial-technical-tileset +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/metal/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/metal/alt1.png new file mode 100644 index 00000000..ba7cc2ba Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/metal/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/metal/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/metal/alt2.png new file mode 100644 index 00000000..0636deed Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/metal/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/metal/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/metal/normal.png new file mode 100644 index 00000000..046bfa18 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/metal/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/metal/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/metal/shadow.png new file mode 100644 index 00000000..ab560d15 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/metal/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed/alt1.png new file mode 100644 index 00000000..e6460f44 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed/alt2.png new file mode 100644 index 00000000..2b8e30f8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed/normal.png new file mode 100644 index 00000000..728024ef Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed/shadow.png new file mode 100644 index 00000000..c19366cd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed2/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed2/LICENSE.txt new file mode 100644 index 00000000..0f55a538 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed2/LICENSE.txt @@ -0,0 +1,4 @@ +Derived from Sci-fi platformer tiles (32x32) +By bart +http://opengameart.org/content/sci-fi-platformer-tiles-32x32 +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed2/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed2/alt1.png new file mode 100644 index 00000000..87201f53 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed2/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed2/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed2/alt2.png new file mode 100644 index 00000000..b11e4f36 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed2/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed2/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed2/normal.png new file mode 100644 index 00000000..41e49d2e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed2/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed2/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed2/shadow.png new file mode 100644 index 00000000..fc7b2e9c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/recessed2/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/slab/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/slab/alt1.png new file mode 100644 index 00000000..60634b9b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/slab/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/slab/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/slab/alt2.png new file mode 100644 index 00000000..a1928e9a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/slab/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/slab/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/slab/normal.png new file mode 100644 index 00000000..508cfee7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/slab/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/slab/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/slab/shadow.png new file mode 100644 index 00000000..28b70f30 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/slab/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare/alt1.png new file mode 100644 index 00000000..7112c8d2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare/alt2.png new file mode 100644 index 00000000..7bf34168 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare/normal.png new file mode 100644 index 00000000..b174e8c9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare/shadow.png new file mode 100644 index 00000000..bc4cf20c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare2/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare2/LICENSE.txt new file mode 100644 index 00000000..22761648 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare2/LICENSE.txt @@ -0,0 +1,4 @@ +Derived from 16x16 Square Block Variations +By etqws3 +http://opengameart.org/content/16x16-square-block-variations +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare2/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare2/alt1.png new file mode 100644 index 00000000..0d09b92e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare2/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare2/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare2/alt2.png new file mode 100644 index 00000000..02dadd6e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare2/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare2/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare2/normal.png new file mode 100644 index 00000000..68a6ea40 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare2/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare2/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare2/shadow.png new file mode 100644 index 00000000..a0912ced Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/smallsquare2/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/stone/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/stone/alt1.png new file mode 100644 index 00000000..3fde4abb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/stone/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/stone/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/stone/alt2.png new file mode 100644 index 00000000..5db53b70 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/stone/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/stone/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/stone/normal.png new file mode 100644 index 00000000..861abdbf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/stone/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/stone/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/stone/shadow.png new file mode 100644 index 00000000..12b38f79 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/stone/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/striped/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/striped/alt1.png new file mode 100644 index 00000000..4c2fc815 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/striped/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/striped/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/striped/alt2.png new file mode 100644 index 00000000..1f9acf74 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/striped/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/striped/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/striped/normal.png new file mode 100644 index 00000000..6b639db7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/striped/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/striped/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/striped/shadow.png new file mode 100644 index 00000000..730e8580 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/striped/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/tile/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/tile/alt1.png new file mode 100644 index 00000000..0c8ff924 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/tile/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/tile/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/tile/alt2.png new file mode 100644 index 00000000..e35f05de Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/tile/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/tile/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/tile/normal.png new file mode 100644 index 00000000..768e974b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/tile/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/tile/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/tile/shadow.png new file mode 100644 index 00000000..a9aa3096 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/tile/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/water/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/water/LICENSE.txt new file mode 100644 index 00000000..583993ae --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/water/LICENSE.txt @@ -0,0 +1,5 @@ +Derived from Pixel Texture Pack +By jestan +https://opengameart.org/content/pixel-texture-pack +https://creativecommons.org/licenses/by/4.0/ +http://creativecommons.org/licenses/by-sa/4.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/water/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/water/alt1.png new file mode 100644 index 00000000..0af82495 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/water/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/water/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/water/alt2.png new file mode 100644 index 00000000..1bc66928 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/water/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/water/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/water/normal.png new file mode 100644 index 00000000..6c02dd21 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/water/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/water/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/water/shadow.png new file mode 100644 index 00000000..85eac168 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/water/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood/alt1.png new file mode 100644 index 00000000..b77ecc2d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood/alt2.png new file mode 100644 index 00000000..874c5a04 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood/normal.png new file mode 100644 index 00000000..609fe919 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood/shadow.png new file mode 100644 index 00000000..67006b71 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood2/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood2/LICENSE.txt new file mode 100644 index 00000000..25a3f55f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood2/LICENSE.txt @@ -0,0 +1,4 @@ +Derived from 16x16 Tiles +By Ogrebane +http://opengameart.org/content/16x16-tiles +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood2/alt1.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood2/alt1.png new file mode 100644 index 00000000..81e981f9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood2/alt1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood2/alt2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood2/alt2.png new file mode 100644 index 00000000..af8bf32b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood2/alt2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood2/normal.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood2/normal.png new file mode 100644 index 00000000..410c9fb2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood2/normal.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood2/shadow.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood2/shadow.png new file mode 100644 index 00000000..c88348d6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tile/wood2/shadow.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tree_28x29.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tree_28x29.png new file mode 100644 index 00000000..d60b9467 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tree_28x29.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tree_autumn_28x29.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tree_autumn_28x29.png new file mode 100644 index 00000000..1eae477c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tree_autumn_28x29.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tree_autumn_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tree_autumn_wreck.png new file mode 100644 index 00000000..3b7a8a25 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tree_autumn_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tree_dead.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tree_dead.png new file mode 100644 index 00000000..3609601d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tree_dead.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tree_dead_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tree_dead_wreck.png new file mode 100644 index 00000000..e0cf4d51 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tree_dead_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tree_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tree_wreck.png new file mode 100644 index 00000000..a1128461 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/tree_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/e.png new file mode 100644 index 00000000..393d8445 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/et.png new file mode 100644 index 00000000..59f7bf12 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/h.png new file mode 100644 index 00000000..fad214fb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/n.png new file mode 100644 index 00000000..72c2f546 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/ne.png new file mode 100644 index 00000000..5ae9c126 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/nt.png new file mode 100644 index 00000000..fba345a1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/nw.png new file mode 100644 index 00000000..c024994d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/o.png new file mode 100644 index 00000000..605bcd0b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/s.png new file mode 100644 index 00000000..8fe40491 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/se.png new file mode 100644 index 00000000..d87bfe1d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/st.png new file mode 100644 index 00000000..6dcf2fb3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/sw.png new file mode 100644 index 00000000..8eb881b5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/v.png new file mode 100644 index 00000000..71d964b3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/w.png new file mode 100644 index 00000000..dbbcce3d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/wt.png new file mode 100644 index 00000000..a36bf31d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/x.png new file mode 100644 index 00000000..0b4011ce Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/LICENSE.txt new file mode 100644 index 00000000..76b2e9f3 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/LICENSE.txt @@ -0,0 +1,4 @@ +Derived from Dawnblocker Ortho +By Buch +http://opengameart.org/content/dawnblocker-ortho +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/e.png new file mode 100644 index 00000000..2702be32 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/et.png new file mode 100644 index 00000000..dbd6d458 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/h.png new file mode 100644 index 00000000..b01da2e1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/n.png new file mode 100644 index 00000000..92272df7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/ne.png new file mode 100644 index 00000000..dbd6d458 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/nt.png new file mode 100644 index 00000000..0db43d88 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/nw.png new file mode 100644 index 00000000..9d84a046 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/o.png new file mode 100644 index 00000000..de6056a6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/s.png new file mode 100644 index 00000000..6dd39743 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/se.png new file mode 100644 index 00000000..fc7db66f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/st.png new file mode 100644 index 00000000..28ed40be Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/sw.png new file mode 100644 index 00000000..54e0988e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/v.png new file mode 100644 index 00000000..92272df7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/w.png new file mode 100644 index 00000000..fe10cc2b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/wt.png new file mode 100644 index 00000000..9d84a046 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/x.png new file mode 100644 index 00000000..0db43d88 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/brick2/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/LICENSE.txt new file mode 100644 index 00000000..38b3050a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/LICENSE.txt @@ -0,0 +1,12 @@ +Derived from + +Basic 32x32 sci-fi tiles for roguelike +by Stephen Challener (Redshrike) and Daniel Cook, hosted by OpenGameArt.org +http://opengameart.org/content/basic-32x32-sci-fi-tiles-for-roguelike +http://creativecommons.org/licenses/by/3.0/ +http://opengameart.org/content/oga-by-30-faq + +Colored Metal tiles 1b +by sgtcrispy +http://opengameart.org/content/colored-metal-tiles-1b +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/e.png new file mode 100644 index 00000000..96879a75 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/et.png new file mode 100644 index 00000000..e3dabadf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/h.png new file mode 100644 index 00000000..136f4195 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/n.png new file mode 100644 index 00000000..bc25a315 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/ne.png new file mode 100644 index 00000000..cf0c5b40 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/nt.png new file mode 100644 index 00000000..e316f69c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/nw.png new file mode 100644 index 00000000..be4f6f8a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/o.png new file mode 100644 index 00000000..9eb22640 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/s.png new file mode 100644 index 00000000..f72378c0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/se.png new file mode 100644 index 00000000..2fe5f9a6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/st.png new file mode 100644 index 00000000..3a05681f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/sw.png new file mode 100644 index 00000000..6cfc8742 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/v.png new file mode 100644 index 00000000..e8a4ad18 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/w.png new file mode 100644 index 00000000..aaf06f7d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/wt.png new file mode 100644 index 00000000..8d3a711a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/x.png new file mode 100644 index 00000000..f8356432 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/bunker/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/e.png new file mode 100644 index 00000000..442c7d40 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/et.png new file mode 100644 index 00000000..c2e3850c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/h.png new file mode 100644 index 00000000..915c14d0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/n.png new file mode 100644 index 00000000..79fa2a97 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/ne.png new file mode 100644 index 00000000..a46dabdd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/nt.png new file mode 100644 index 00000000..21888538 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/nw.png new file mode 100644 index 00000000..e8dcb09b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/o.png new file mode 100644 index 00000000..f484c76f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/s.png new file mode 100644 index 00000000..8593d838 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/se.png new file mode 100644 index 00000000..c0dc4353 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/st.png new file mode 100644 index 00000000..182cba0a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/sw.png new file mode 100644 index 00000000..080a8781 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/v.png new file mode 100644 index 00000000..4a86fcd4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/w.png new file mode 100644 index 00000000..23fa509e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/wt.png new file mode 100644 index 00000000..e72e8642 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/x.png new file mode 100644 index 00000000..921d8626 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/LICENSE.txt new file mode 100644 index 00000000..0f5cd6e2 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/LICENSE.txt @@ -0,0 +1,4 @@ +Derived from Extension for Dawnblocker Ortho +By rubberduck +http://opengameart.org/content/extension-for-dawnblocker-ortho +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/e.png new file mode 100644 index 00000000..ef8f7705 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/et.png new file mode 100644 index 00000000..78ba24f5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/h.png new file mode 100644 index 00000000..477d06de Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/n.png new file mode 100644 index 00000000..c40ba3f5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/ne.png new file mode 100644 index 00000000..eec69ede Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/nt.png new file mode 100644 index 00000000..27706942 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/nw.png new file mode 100644 index 00000000..2504588e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/o.png new file mode 100644 index 00000000..54e0ff11 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/s.png new file mode 100644 index 00000000..d173e224 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/se.png new file mode 100644 index 00000000..4d6a5252 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/st.png new file mode 100644 index 00000000..181393a8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/sw.png new file mode 100644 index 00000000..93c42a19 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/v.png new file mode 100644 index 00000000..b4b09584 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/w.png new file mode 100644 index 00000000..795d4075 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/wt.png new file mode 100644 index 00000000..fc468af5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/x.png new file mode 100644 index 00000000..5e239905 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/carbon2/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/LICENSE.txt new file mode 100644 index 00000000..056ada89 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/LICENSE.txt @@ -0,0 +1,4 @@ +Derived from RPG Indoor Tileset: Expansion 1 +By Redshrike +https://opengameart.org/content/rpg-indoor-tileset-expansion-1 +http://opengameart.org/content/oga-by-30-faq \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/e.png new file mode 100644 index 00000000..0be1be62 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/et.png new file mode 100644 index 00000000..f077357d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/h.png new file mode 100644 index 00000000..718fb9cf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/n.png new file mode 100644 index 00000000..f4877e89 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/ne.png new file mode 100644 index 00000000..cdb6e111 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/nt.png new file mode 100644 index 00000000..b462035f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/nw.png new file mode 100644 index 00000000..52d89ef5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/o.png new file mode 100644 index 00000000..9dce3fa2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/s.png new file mode 100644 index 00000000..a4603568 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/se.png new file mode 100644 index 00000000..b4b5e4c8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/st.png new file mode 100644 index 00000000..ff533eb1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/sw.png new file mode 100644 index 00000000..542a9425 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/v.png new file mode 100644 index 00000000..51a42db7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/w.png new file mode 100644 index 00000000..04351ce8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/wt.png new file mode 100644 index 00000000..0048ddc1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/x.png new file mode 100644 index 00000000..1d0bf5a5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/cobble/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/LICENSE.txt new file mode 100644 index 00000000..5baa6655 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/LICENSE.txt @@ -0,0 +1,4 @@ +Derived from Colony Sim Extended Version +By rubberduck +https://opengameart.org/content/colony-sim-extended-version +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/e.png new file mode 100644 index 00000000..33cc3783 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/et.png new file mode 100644 index 00000000..c42fcf39 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/h.png new file mode 100644 index 00000000..ff1d7b13 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/n.png new file mode 100644 index 00000000..659d98cc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/ne.png new file mode 100644 index 00000000..19c8eb0f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/nt.png new file mode 100644 index 00000000..d6520705 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/nw.png new file mode 100644 index 00000000..98ef1b78 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/o.png new file mode 100644 index 00000000..58f3f7fd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/s.png new file mode 100644 index 00000000..a713af13 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/se.png new file mode 100644 index 00000000..ca5dbf2b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/st.png new file mode 100644 index 00000000..19e7aa68 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/sw.png new file mode 100644 index 00000000..8c768fc9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/v.png new file mode 100644 index 00000000..6a4fc890 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/w.png new file mode 100644 index 00000000..ce2b81f4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/wt.png new file mode 100644 index 00000000..0adcb70e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/x.png new file mode 100644 index 00000000..e9a0358a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/colony/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/generate.ps1 b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/generate.ps1 new file mode 100644 index 00000000..0561688c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/generate.ps1 @@ -0,0 +1,29 @@ +# Use this script to generate all the other versions of wall tiles, given a complete "o" tile +# Use "plasteel" as a template +param ( + [string]$name, + [int]$m = 1 +) +$w = 16 - $m +$h = 12 - $m +$h2 = 24 - $m +# NESW +Invoke-Expression ("magick $name/o.png -crop 16x{0}+0+0 -colorspace sRGB -gravity North -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/n.png" -f $h) +Invoke-Expression ("magick $name/o.png -crop 16x{0}+0+{1} -colorspace sRGB -gravity South -define distort:viewport=16x24-0-{1} -filter point -distort SRT 0 +repage $name/s.png" -f $h2,$m) +Invoke-Expression ("magick $name/o.png -crop {0}x24+{1}+0 -colorspace sRGB -gravity East -define distort:viewport=16x24-{1}-0 -filter point -distort SRT 0 +repage $name/e.png" -f $w,$m) +Invoke-Expression ("magick $name/o.png -crop {0}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/w.png" -f $w) +# NW, NE, SW, SE +Invoke-Expression ("magick $name/n.png -crop {0}x12+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/nw.png" -f $w) +Invoke-Expression ("magick $name/n.png -crop {0}x12+{1}+0 -colorspace sRGB -gravity East -define distort:viewport=16x12-{1}-0 -filter point -distort SRT 0 +repage $name/ne.png" -f $w,$m) +Invoke-Expression ("magick $name/s.png -crop {0}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/sw.png" -f $w) +Invoke-Expression ("magick $name/s.png -crop {0}x24+{1}+0 -colorspace sRGB -gravity East -define distort:viewport=16x24-{1}-0 -filter point -distort SRT 0 +repage $name/se.png" -f $w,$m) +# NT, ET, ST, WT +Invoke-Expression ("magick $name/nw.png -crop {0}x12+{1}+0 -colorspace sRGB -gravity East -define distort:viewport=16x12-{1}-0 -filter point -distort SRT 0 +repage $name/nt.png" -f $w,$m) +Invoke-Expression ("magick $name/ne.png -crop 16x{1}+0+{2} -colorspace sRGB -gravity South -define distort:viewport=16x12-0-{2} -filter point -distort SRT 0 +repage $name/et.png" -f $w,$h,$m) +Invoke-Expression ("magick $name/se.png -crop {0}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/st.png" -f $w) +Invoke-Expression ("magick $name/sw.png -crop 16x{1}+0+0 -colorspace sRGB -gravity North -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/wt.png" -f $w,$h) +# VH +Invoke-Expression ("magick $name/n.png -crop 16x{1}+0+{2} -colorspace sRGB -gravity South -define distort:viewport=16x12-0-{2} -filter point -distort SRT 0 +repage $name/v.png" -f $w,$h,$m) +Invoke-Expression ("magick $name/e.png -crop {0}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/h.png" -f $w) +# X +Invoke-Expression ("magick $name/et.png -crop {0}x12+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/x.png" -f $w) diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/generate.sh b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/generate.sh new file mode 100755 index 00000000..29b87bad --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/generate.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +# Use this script to generate all the other versions of wall tiles, given a complete "o" tile +# Use "plasteel" as a template +name=$1 +m=$2 +((w=16-m)) +((h=12-m)) +((h2=24-m)) +# NESW +magick $name/o.png -crop 16x$h+0+0 -colorspace sRGB -gravity North -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/n.png +magick $name/o.png -crop 16x$h2+0+$m -colorspace sRGB -gravity South -define distort:viewport=16x24-0-$m -filter point -distort SRT 0 +repage $name/s.png +magick $name/o.png -crop ${w}x24+$m+0 -colorspace sRGB -gravity East -define distort:viewport=16x24-$m-0 -filter point -distort SRT 0 +repage $name/e.png +magick $name/o.png -crop ${w}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/w.png +# NW, NE, SW, SE +magick $name/n.png -crop ${w}x12+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/nw.png +magick $name/n.png -crop ${w}x12+$m+0 -colorspace sRGB -gravity East -define distort:viewport=16x12-$m-0 -filter point -distort SRT 0 +repage $name/ne.png +magick $name/s.png -crop ${w}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/sw.png +magick $name/s.png -crop ${w}x24+$m+0 -colorspace sRGB -gravity East -define distort:viewport=16x24-$m-0 -filter point -distort SRT 0 +repage $name/se.png +# NT, ET, ST, WT +magick $name/nw.png -crop ${w}x12+$m+0 -colorspace sRGB -gravity East -define distort:viewport=16x12-$m-0 -filter point -distort SRT 0 +repage $name/nt.png +magick $name/ne.png -crop 16x$h+0+$m -colorspace sRGB -gravity South -define distort:viewport=16x12-0-$m -filter point -distort SRT 0 +repage $name/et.png +magick $name/se.png -crop ${w}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/st.png +magick $name/sw.png -crop 16x$h+0+0 -colorspace sRGB -gravity North -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/wt.png +# VH +magick $name/n.png -crop 16x$h+0+$m -colorspace sRGB -gravity South -define distort:viewport=16x12-0-$m -filter point -distort SRT 0 +repage $name/v.png +magick $name/e.png -crop ${w}x24+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x24-0-0 -filter point -distort SRT 0 +repage $name/h.png +# X +magick $name/et.png -crop ${w}x12+0+0 -colorspace sRGB -gravity West -define distort:viewport=16x12-0-0 -filter point -distort SRT 0 +repage $name/x.png diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/e.png new file mode 100644 index 00000000..ccb1854a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/et.png new file mode 100644 index 00000000..0076c4a8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/h.png new file mode 100644 index 00000000..4824537d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/n.png new file mode 100644 index 00000000..c0795135 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/ne.png new file mode 100644 index 00000000..ae0bde28 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/nt.png new file mode 100644 index 00000000..b0e19588 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/nw.png new file mode 100644 index 00000000..23dcc254 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/o.png new file mode 100644 index 00000000..3b30cda7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/s.png new file mode 100644 index 00000000..d9418626 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/se.png new file mode 100644 index 00000000..13315fd8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/st.png new file mode 100644 index 00000000..d9a59896 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/sw.png new file mode 100644 index 00000000..f95ed546 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/v.png new file mode 100644 index 00000000..a9267c73 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/w.png new file mode 100644 index 00000000..1ebf2ec6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/wt.png new file mode 100644 index 00000000..83eda251 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/x.png new file mode 100644 index 00000000..deaa2d1e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/granite/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/LICENSE.txt new file mode 100644 index 00000000..ec5b4ad0 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/LICENSE.txt @@ -0,0 +1,7 @@ +Derived from Basic 32x32 sci-fi tiles for roguelike +by Stephen Challener (Redshrike) and Daniel Cook, hosted by OpenGameArt.org +http://opengameart.org/content/basic-32x32-sci-fi-tiles-for-roguelike + +Licenses: +http://creativecommons.org/licenses/by/3.0/ +http://opengameart.org/content/oga-by-30-faq \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/e.png new file mode 100644 index 00000000..692bbccb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/et.png new file mode 100644 index 00000000..fd210160 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/h.png new file mode 100644 index 00000000..32eeba24 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/n.png new file mode 100644 index 00000000..7d4fa46b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/ne.png new file mode 100644 index 00000000..83bc732c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/nt.png new file mode 100644 index 00000000..5b4bda89 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/nw.png new file mode 100644 index 00000000..feb29a27 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/o.png new file mode 100644 index 00000000..77879f9b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/s.png new file mode 100644 index 00000000..5ef187b5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/se.png new file mode 100644 index 00000000..40a61765 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/st.png new file mode 100644 index 00000000..2a274002 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/sw.png new file mode 100644 index 00000000..b0ee3700 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/v.png new file mode 100644 index 00000000..bef76bec Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/w.png new file mode 100644 index 00000000..19a024db Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/wt.png new file mode 100644 index 00000000..c48c6eda Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/x.png new file mode 100644 index 00000000..f483901f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/greenstain/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/LICENSE.txt new file mode 100644 index 00000000..265b5559 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/LICENSE.txt @@ -0,0 +1,7 @@ +Derived from Pixel Texture Pack +by jestan +https://opengameart.org/content/pixel-texture-pack +http://creativecommons.org/licenses/by/4.0/ +http://creativecommons.org/licenses/by/3.0/ +http://creativecommons.org/licenses/by-sa/4.0/ +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/e.png new file mode 100644 index 00000000..fd9a46b0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/et.png new file mode 100644 index 00000000..e7fbc92b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/h.png new file mode 100644 index 00000000..b20bc7cd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/n.png new file mode 100644 index 00000000..e067121a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/ne.png new file mode 100644 index 00000000..4fdfc52f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/nt.png new file mode 100644 index 00000000..e3bad7d7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/nw.png new file mode 100644 index 00000000..8afb1572 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/o.png new file mode 100644 index 00000000..67df0951 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/s.png new file mode 100644 index 00000000..dfbb4bd6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/se.png new file mode 100644 index 00000000..98fd92d4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/st.png new file mode 100644 index 00000000..cb8cf47e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/sw.png new file mode 100644 index 00000000..6020d5fc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/v.png new file mode 100644 index 00000000..d9de1871 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/w.png new file mode 100644 index 00000000..5a1d3433 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/wt.png new file mode 100644 index 00000000..f2e364a3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/x.png new file mode 100644 index 00000000..56f42e79 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/hightech/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/LICENSE.txt new file mode 100644 index 00000000..c029177d --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/LICENSE.txt @@ -0,0 +1,6 @@ +Derived from + +190+ Pixel Art Assets (Sci-fi & Forest) +by Gabsond +https://opengameart.org/content/190-pixel-art-assets-sci-fi-forest +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/e.png new file mode 100644 index 00000000..133f48d4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/et.png new file mode 100644 index 00000000..a1a62764 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/h.png new file mode 100644 index 00000000..71ce3457 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/n.png new file mode 100644 index 00000000..d70887c0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/ne.png new file mode 100644 index 00000000..095f9c41 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/nt.png new file mode 100644 index 00000000..663bca06 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/nw.png new file mode 100644 index 00000000..b0ee953d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/o.png new file mode 100644 index 00000000..e109bbd9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/s.png new file mode 100644 index 00000000..f0ee9c6c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/se.png new file mode 100644 index 00000000..6af08ee1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/st.png new file mode 100644 index 00000000..675b5bfb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/sw.png new file mode 100644 index 00000000..e1209b6b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/v.png new file mode 100644 index 00000000..657f79a7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/w.png new file mode 100644 index 00000000..6b3be4a2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/wt.png new file mode 100644 index 00000000..d4bb173f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/x.png new file mode 100644 index 00000000..4def1ed2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/panel/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/e.png new file mode 100644 index 00000000..544a7c05 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/et.png new file mode 100644 index 00000000..bba53916 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/h.png new file mode 100644 index 00000000..04f19729 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/n.png new file mode 100644 index 00000000..091946c5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/ne.png new file mode 100644 index 00000000..6741c2c8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/nt.png new file mode 100644 index 00000000..e4d0b3f1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/nw.png new file mode 100644 index 00000000..15844897 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/o.png new file mode 100644 index 00000000..71f16785 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/s.png new file mode 100644 index 00000000..8f4421a1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/se.png new file mode 100644 index 00000000..27b9f996 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/st.png new file mode 100644 index 00000000..d23c1e15 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/sw.png new file mode 100644 index 00000000..6bd122bd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/v.png new file mode 100644 index 00000000..c47c9c0d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/w.png new file mode 100644 index 00000000..927084eb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/wt.png new file mode 100644 index 00000000..5ab7c3ca Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/x.png new file mode 100644 index 00000000..e9349e39 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/e.png new file mode 100644 index 00000000..55bd2a73 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/et.png new file mode 100644 index 00000000..f93a7903 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/h.png new file mode 100644 index 00000000..b8a5c307 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/n.png new file mode 100644 index 00000000..9a64c739 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/ne.png new file mode 100644 index 00000000..0c63b5d7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/nt.png new file mode 100644 index 00000000..fa9d5a44 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/nw.png new file mode 100644 index 00000000..fd623baa Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/o.png new file mode 100644 index 00000000..cbc10c2b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/s.png new file mode 100644 index 00000000..57f9418d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/se.png new file mode 100644 index 00000000..c1169a9c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/st.png new file mode 100644 index 00000000..7ad12d59 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/sw.png new file mode 100644 index 00000000..3504f117 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/v.png new file mode 100644 index 00000000..4684a90f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/w.png new file mode 100644 index 00000000..4eac6600 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/wt.png new file mode 100644 index 00000000..76cee77c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/x.png new file mode 100644 index 00000000..54dfdb6f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/plasteel2/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/LICENSE.txt new file mode 100644 index 00000000..b9ba07bb --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/LICENSE.txt @@ -0,0 +1,5 @@ +Derived from Tiny 16: Basic +by Lanea Zimmerman +http://opengameart.org/content/tiny-16-basic +http://creativecommons.org/licenses/by/3.0/ +http://opengameart.org/content/oga-by-30-faq \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/e.png new file mode 100644 index 00000000..f2b187f1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/et.png new file mode 100644 index 00000000..dd321652 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/h.png new file mode 100644 index 00000000..5c4a9a7f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/n.png new file mode 100644 index 00000000..9fe9c1bc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/ne.png new file mode 100644 index 00000000..1fefe324 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/nt.png new file mode 100644 index 00000000..124b8f53 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/nw.png new file mode 100644 index 00000000..9ed9108c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/o.png new file mode 100644 index 00000000..60714310 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/s.png new file mode 100644 index 00000000..aa1fd0bf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/se.png new file mode 100644 index 00000000..f986c66c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/st.png new file mode 100644 index 00000000..3dcbbea3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/sw.png new file mode 100644 index 00000000..1b04b986 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/v.png new file mode 100644 index 00000000..389b0438 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/w.png new file mode 100644 index 00000000..0fcdde16 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/wt.png new file mode 100644 index 00000000..ca9d95b7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/x.png new file mode 100644 index 00000000..56af452b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/rock/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/e.png new file mode 100644 index 00000000..d4e7bfd9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/et.png new file mode 100644 index 00000000..77753bda Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/h.png new file mode 100644 index 00000000..ee7ce534 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/n.png new file mode 100644 index 00000000..b9156be1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/ne.png new file mode 100644 index 00000000..5fb2b434 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/nt.png new file mode 100644 index 00000000..6b393af3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/nw.png new file mode 100644 index 00000000..e8e62d5c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/o.png new file mode 100644 index 00000000..efa6c5e2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/s.png new file mode 100644 index 00000000..4d4cb43c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/se.png new file mode 100644 index 00000000..a0901064 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/st.png new file mode 100644 index 00000000..e498829e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/sw.png new file mode 100644 index 00000000..6371b495 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/v.png new file mode 100644 index 00000000..deade05f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/w.png new file mode 100644 index 00000000..526eb652 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/wt.png new file mode 100644 index 00000000..894e9c29 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/x.png new file mode 100644 index 00000000..9b016229 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/station/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/e.png new file mode 100644 index 00000000..4394da21 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/et.png new file mode 100644 index 00000000..788ea566 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/h.png new file mode 100644 index 00000000..4aeb7e2b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/n.png new file mode 100644 index 00000000..e6e83512 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/ne.png new file mode 100644 index 00000000..63974bd6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/nt.png new file mode 100644 index 00000000..18979b7d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/nw.png new file mode 100644 index 00000000..05c11797 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/o.png new file mode 100644 index 00000000..192b2e43 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/s.png new file mode 100644 index 00000000..4ea5ab75 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/se.png new file mode 100644 index 00000000..383c2b36 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/st.png new file mode 100644 index 00000000..3bc7ad9d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/sw.png new file mode 100644 index 00000000..e267ebd9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/v.png new file mode 100644 index 00000000..eaddb7eb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/w.png new file mode 100644 index 00000000..bc75ba8f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/wt.png new file mode 100644 index 00000000..5e6d9aa4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/x.png new file mode 100644 index 00000000..9a1176fb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steel/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/e.png new file mode 100644 index 00000000..a0bd357c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/et.png new file mode 100644 index 00000000..a582f63a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/h.png new file mode 100644 index 00000000..e5bdd38f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/n.png new file mode 100644 index 00000000..570d73e1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/ne.png new file mode 100644 index 00000000..27a0aca0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/nt.png new file mode 100644 index 00000000..0617e35a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/nw.png new file mode 100644 index 00000000..f178cb37 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/o.png new file mode 100644 index 00000000..333f08b5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/s.png new file mode 100644 index 00000000..aa4e8ed2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/se.png new file mode 100644 index 00000000..c2c02f26 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/st.png new file mode 100644 index 00000000..19584924 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/sw.png new file mode 100644 index 00000000..1f3284de Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/v.png new file mode 100644 index 00000000..fa4de22d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/w.png new file mode 100644 index 00000000..7ea057f8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/wt.png new file mode 100644 index 00000000..4a2504b0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/x.png new file mode 100644 index 00000000..8b29ae51 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/steelwood/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/e.png new file mode 100644 index 00000000..d71f04f8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/et.png new file mode 100644 index 00000000..180378fe Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/h.png new file mode 100644 index 00000000..ad3a6d8a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/n.png new file mode 100644 index 00000000..045e3fe5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/ne.png new file mode 100644 index 00000000..f78fa8a2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/nt.png new file mode 100644 index 00000000..99ece9fe Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/nw.png new file mode 100644 index 00000000..840c1549 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/o.png new file mode 100644 index 00000000..996934b7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/s.png new file mode 100644 index 00000000..728870c0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/se.png new file mode 100644 index 00000000..123f4fcd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/st.png new file mode 100644 index 00000000..f24024de Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/sw.png new file mode 100644 index 00000000..90b717ab Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/v.png new file mode 100644 index 00000000..e10c5b45 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/w.png new file mode 100644 index 00000000..d09c1224 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/wt.png new file mode 100644 index 00000000..3f30a5bd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/x.png new file mode 100644 index 00000000..7ca34275 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/LICENSE.txt new file mode 100644 index 00000000..8bb03b95 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/LICENSE.txt @@ -0,0 +1,4 @@ +Derived from Pixel Blocks +by Zush Design +https://opengameart.org/content/pixel-blocks +https://creativecommons.org/licenses/by/4.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/e.png new file mode 100644 index 00000000..6cd14d0b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/et.png new file mode 100644 index 00000000..b3c0f0da Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/h.png new file mode 100644 index 00000000..71f5c53c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/n.png new file mode 100644 index 00000000..a65e8ca8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/ne.png new file mode 100644 index 00000000..78702b83 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/nt.png new file mode 100644 index 00000000..88e5c654 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/nw.png new file mode 100644 index 00000000..000b05cb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/o.png new file mode 100644 index 00000000..5e9e30a4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/s.png new file mode 100644 index 00000000..031cc84f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/se.png new file mode 100644 index 00000000..aa2e4eb3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/st.png new file mode 100644 index 00000000..33513a01 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/sw.png new file mode 100644 index 00000000..c2cf3b26 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/v.png new file mode 100644 index 00000000..6e870567 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/w.png new file mode 100644 index 00000000..7b5dbaea Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/wt.png new file mode 100644 index 00000000..00dcc866 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/x.png new file mode 100644 index 00000000..633c0e49 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/stone2/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/LICENSE.txt new file mode 100644 index 00000000..265b5559 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/LICENSE.txt @@ -0,0 +1,7 @@ +Derived from Pixel Texture Pack +by jestan +https://opengameart.org/content/pixel-texture-pack +http://creativecommons.org/licenses/by/4.0/ +http://creativecommons.org/licenses/by/3.0/ +http://creativecommons.org/licenses/by-sa/4.0/ +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/e.png new file mode 100644 index 00000000..a794ae0c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/et.png new file mode 100644 index 00000000..76f1bc71 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/h.png new file mode 100644 index 00000000..1e5ac1eb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/n.png new file mode 100644 index 00000000..639c276a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/ne.png new file mode 100644 index 00000000..4483bcc2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/nt.png new file mode 100644 index 00000000..1acbaa68 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/nw.png new file mode 100644 index 00000000..f4e3d84d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/o.png new file mode 100644 index 00000000..829d748d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/s.png new file mode 100644 index 00000000..136800ad Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/se.png new file mode 100644 index 00000000..c46db084 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/st.png new file mode 100644 index 00000000..48569e4d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/sw.png new file mode 100644 index 00000000..084dd971 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/v.png new file mode 100644 index 00000000..f142cba1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/w.png new file mode 100644 index 00000000..f3ae92c9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/wt.png new file mode 100644 index 00000000..25d296a4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/x.png new file mode 100644 index 00000000..5f562dc5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/support/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/LICENSE.txt new file mode 100644 index 00000000..265b5559 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/LICENSE.txt @@ -0,0 +1,7 @@ +Derived from Pixel Texture Pack +by jestan +https://opengameart.org/content/pixel-texture-pack +http://creativecommons.org/licenses/by/4.0/ +http://creativecommons.org/licenses/by/3.0/ +http://creativecommons.org/licenses/by-sa/4.0/ +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/e.png new file mode 100644 index 00000000..e042adaa Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/et.png new file mode 100644 index 00000000..765d54bc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/h.png new file mode 100644 index 00000000..f23cf964 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/n.png new file mode 100644 index 00000000..ee33b7c1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/ne.png new file mode 100644 index 00000000..e719724a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/nt.png new file mode 100644 index 00000000..b243ab15 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/nw.png new file mode 100644 index 00000000..676714bd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/o.png new file mode 100644 index 00000000..a9656a40 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/s.png new file mode 100644 index 00000000..050c158b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/se.png new file mode 100644 index 00000000..d7771ae8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/st.png new file mode 100644 index 00000000..ecf5f1c2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/sw.png new file mode 100644 index 00000000..b83dc30e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/v.png new file mode 100644 index 00000000..20c3299a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/w.png new file mode 100644 index 00000000..973607f1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/wt.png new file mode 100644 index 00000000..d98e4a62 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/x.png new file mode 100644 index 00000000..9950282f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/techwall/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/e.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/e.png new file mode 100644 index 00000000..afba95eb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/e.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/et.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/et.png new file mode 100644 index 00000000..04473394 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/et.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/h.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/h.png new file mode 100644 index 00000000..be7de12c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/h.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/n.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/n.png new file mode 100644 index 00000000..b3a51849 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/n.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/ne.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/ne.png new file mode 100644 index 00000000..b2cd48fd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/ne.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/nt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/nt.png new file mode 100644 index 00000000..15bc8b35 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/nt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/nw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/nw.png new file mode 100644 index 00000000..0accf94f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/nw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/o.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/o.png new file mode 100644 index 00000000..05321c5a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/o.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/s.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/s.png new file mode 100644 index 00000000..87587cfa Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/s.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/se.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/se.png new file mode 100644 index 00000000..ebfe2c22 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/se.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/st.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/st.png new file mode 100644 index 00000000..22c86cad Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/st.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/sw.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/sw.png new file mode 100644 index 00000000..1499a374 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/sw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/v.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/v.png new file mode 100644 index 00000000..6326b5ef Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/v.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/w.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/w.png new file mode 100644 index 00000000..f4d6960d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/w.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/wt.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/wt.png new file mode 100644 index 00000000..c9ec0484 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/wt.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/x.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/x.png new file mode 100644 index 00000000..afea8289 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall/wood/x.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_chart.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_chart.png new file mode 100644 index 00000000..23237aeb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_chart.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_chart.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_chart.txt new file mode 100644 index 00000000..15ed2a38 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_chart.txt @@ -0,0 +1,5 @@ +Adapted from Sci-Fi Facility Asset Pack by HaywardMorihara +Pixel art by https://murphysdad.itch.io/ +https://opengameart.org/content/sci-fi-facility-asset-pack + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_goo.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_goo.png new file mode 100644 index 00000000..d4ba1039 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_goo.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_goo2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_goo2.png new file mode 100644 index 00000000..3d14df32 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_goo2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_goo2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_goo2.txt new file mode 100644 index 00000000..47edc885 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_goo2.txt @@ -0,0 +1,7 @@ +Adapted from [LPC] Dungeon Elements by Sharm and William.Thompsonj +http://opengameart.org/content/lpc-dungeon-elements + +http://creativecommons.org/licenses/by/3.0/ +http://www.gnu.org/licenses/gpl-3.0.html +http://www.gnu.org/licenses/old-licenses/gpl-2.0.html +http://opengameart.org/content/oga-by-30-faq \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_nuke_sign.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_nuke_sign.png new file mode 100644 index 00000000..6f5b78f8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_nuke_sign.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_nuke_sign.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_nuke_sign.txt new file mode 100644 index 00000000..15ed2a38 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_nuke_sign.txt @@ -0,0 +1,5 @@ +Adapted from Sci-Fi Facility Asset Pack by HaywardMorihara +Pixel art by https://murphysdad.itch.io/ +https://opengameart.org/content/sci-fi-facility-asset-pack + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_skull.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_skull.png new file mode 100644 index 00000000..3a577286 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_skull.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_skull2.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_skull2.png new file mode 100644 index 00000000..16c6d6d4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_skull2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_skull2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_skull2.txt new file mode 100644 index 00000000..fbd3f3f2 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_skull2.txt @@ -0,0 +1,4 @@ +Adapted from Misc. Dark Fantasy Scenery Sprites by Gwes +http://opengameart.org/content/misc-dark-fantasy-scenery-sprites + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_stuff.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_stuff.png new file mode 100644 index 00000000..b13e5956 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_stuff.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_vent.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_vent.png new file mode 100644 index 00000000..56710a2e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wall_vent.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wscreen1.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wscreen1.txt new file mode 100644 index 00000000..e17b0c17 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wscreen1.txt @@ -0,0 +1,2 @@ +By sauer2 +http://creativecommons.org/publicdomain/zero/1.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wscreen1_14x10.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wscreen1_14x10.png new file mode 100644 index 00000000..335c6483 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wscreen1_14x10.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wscreen1_broken.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wscreen1_broken.png new file mode 100644 index 00000000..d5c42cb2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wscreen1_broken.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wscreen2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wscreen2.txt new file mode 100644 index 00000000..e17b0c17 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wscreen2.txt @@ -0,0 +1,2 @@ +By sauer2 +http://creativecommons.org/publicdomain/zero/1.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wscreen2_14x10.png b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wscreen2_14x10.png new file mode 100644 index 00000000..65d1f780 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/graphics/wscreen2_14x10.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/bullets.json new file mode 100644 index 00000000..89e23984 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/bullets.json @@ -0,0 +1,138 @@ +{ + "Version": 3, + "Bullets": [ + { + "Name": "khanjali", + "Power": 20, + "Mass": 0, + "HitSounds": { + "Object": "hits/knife_hard", + "Flesh": "hits/knife_flesh" + } + }, + { + "Name": "wurmtooth", + "Power": 15, + "Mass": 0, + "HitSounds": { + "Object": "hits/knife_hard", + "Flesh": "wurmtooth_flesh" + } + }, + { + "Name": "monster_bite", + "Power": 10, + "Mass": 0, + "HitSounds": { + "Object": "hits/knife_hard", + "Flesh": "monster-2" + } + }, + { + "Name": "inkvine", + "Pic": { + "Type": "Directional", + "Sprites": "particles/wave", + "Mask": "00ff00" + }, + "Speed": 640, + "Range": 50, + "Power": 35, + "Mass": 0.01, + "Size": [8, 8], + "Special": "Poison", + "Spark": "spark_inkvine", + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "" + }, + "HitGuns": [ + "inkvine_splash" + ], + "Falling": { + "GravityFactor": 1, + "DestroyOnDrop": true, + "DropGuns": [ + "inkvine_splash" + ] + } + }, + { + "Name": "inkvine_splash", + "Pic": { + "Type": "Animated", + "Sprites": "grenade", + "Mask": "ccffcc" + }, + "SpeedLow": 256, + "SpeedHigh": 512, + "SpeedScale": true, + "Range": 100, + "Persists": true, + "WallBounces": true, + "Spark": "", + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "" + }, + "HitsObjects": false, + "Falling": { + "GravityFactor": 4, + "DestroyOnDrop": true, + "DropGuns": [ + "inkvine_puddle" + ] + }, + "HitGuns": [ + "inkvine_puddle" + ] + }, + { + "Name": "inkvine_puddle", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "inkvine_puddle", + "TicksPerFrame": 0 + }, + "RangeLow": 200, + "RangeHigh": 300, + "Size": [8, 6], + "Special": "Poison", + "Persists": true, + "Spark": "", + "HitSounds": { + "Object": "", + "Flesh": "hits/gas", + "Wall": "" + } + }, + { + "Name": "lase", + "Pic": { + "Type": "Directional", + "Sprites": "particles/beam_yellow" + }, + "Spark": "spark_yellow", + "Speed": 700, + "Range": 80, + "Power": 30, + "Mass": 30.0, + "Size": [4, 4] + }, + { + "Name": "projection", + "Pic": { + "Type": "Directional", + "Sprites": "projection" + }, + "Spark": "spark_yellow", + "Speed": 600, + "Range": 90, + "Power": 50, + "Mass": 50.0, + "Size": [10, 10] + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/campaign.json new file mode 100644 index 00000000..21dc7790 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/campaign.json @@ -0,0 +1,17 @@ +{ + "Version": 16, + "Title": "Sand", + "Author": "Cong", + "Description": "The treacherous Clan Tantalus are amassing an army of super solders. You are an elite Kardausar soldier of the Emperor; travel to the harsh planet of Sand, the Tantalus fief, and carry out His will.", + "Ammo": false, + "SkipWeaponMenu": false, + "BuyAndSell": false, + "RandomPickups": true, + "DoorOpenTicks": 70, + "Lives": 0, + "MaxLives": 0, + "PlayerHP": 0, + "PlayerMaxHP": 0, + "PlayerExcessHP": 0, + "Missions": 10 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/characters.json new file mode 100644 index 00000000..2ddd959c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/characters.json @@ -0,0 +1,403 @@ +{ + "Version": 14, + "Characters": [ + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "9c589cff", + "Arms": "9c589cff", + "Body": "9c5858ff", + "Legs": "9c5858ff", + "Hair": "9c0000ff", + "Feet": "9c5858ff", + "Facehair": "9c0000ff", + "Hat": "9c0000ff", + "Glasses": "9c0000ff", + "speed": 384, + "Gun": "Monster Bite", + "maxHealth": 40, + "excessHealth": 80, + "flags": 0, + "probabilityToMove": 70, + "probabilityToTrack": 30, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "d25106ff", + "Arms": "ff8136ff", + "Body": "ff8136ff", + "Legs": "ff8136ff", + "Hair": "c00000ff", + "Feet": "ff8136ff", + "Facehair": "c00000ff", + "Hat": "c00000ff", + "Glasses": "c00000ff", + "speed": 320, + "Gun": "Monster Bite", + "maxHealth": 20, + "excessHealth": 40, + "flags": 0, + "probabilityToMove": 60, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "ff8136ff", + "Arms": "b79536ff", + "Body": "b79536ff", + "Legs": "b79536ff", + "Hair": "882800ff", + "Feet": "b79536ff", + "Facehair": "882800ff", + "Hat": "882800ff", + "Glasses": "882800ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 20, + "excessHealth": 40, + "flags": 0, + "probabilityToMove": 25, + "probabilityToTrack": 15, + "probabilityToShoot": 27, + "actionDelay": 15 + }, + { + "Class": "Soldier", + "HatType": "peak_cap", + "Skin": "ff8136ff", + "Arms": "b79536ff", + "Body": "b79536ff", + "Legs": "b79536ff", + "Hair": "b98c00ff", + "Feet": "b79536ff", + "Facehair": "b98c00ff", + "Hat": "b98c00ff", + "Glasses": "b98c00ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 30, + "excessHealth": 60, + "flags": 0, + "probabilityToMove": 20, + "probabilityToTrack": 15, + "probabilityToShoot": 37, + "actionDelay": 15 + }, + { + "Class": "Jones", + "GlassesType": "eye_patch", + "Skin": "ff8136ff", + "Arms": "b79536ff", + "Body": "b79536ff", + "Legs": "b79536ff", + "Hair": "000000ff", + "Feet": "b79536ff", + "Facehair": "000000ff", + "Hat": "000000ff", + "Glasses": "000000ff", + "speed": 320, + "Gun": "Khanjali", + "maxHealth": 30, + "excessHealth": 60, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 15, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Cyborg", + "PlayerTemplateName": "Kardausar Colonel", + "GlassesType": "cyborg", + "Skin": "e29b31ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "052020ff", + "Feet": "363636ff", + "Facehair": "052020ff", + "Hat": "052020ff", + "Glasses": "052020ff", + "speed": 320, + "Gun": "Lasergun", + "maxHealth": 40, + "excessHealth": 80, + "flags": 131072, + "probabilityToMove": 40, + "probabilityToTrack": 25, + "probabilityToShoot": 27, + "actionDelay": 15 + }, + { + "Class": "Jones", + "PlayerTemplateName": "Kardausar Private", + "HatType": "hazmat", + "Skin": "3f3f3fff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "38ff35ff", + "Feet": "363636ff", + "Facehair": "38ff35ff", + "Hat": "38ff35ff", + "Glasses": "38ff35ff", + "speed": 192, + "Gun": "Machine gun", + "maxHealth": 20, + "excessHealth": 40, + "flags": 131072, + "probabilityToMove": 50, + "probabilityToTrack": 20, + "probabilityToShoot": 32, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "ff8136ff", + "Arms": "b79536ff", + "Body": "9c9c9cff", + "Legs": "b79536ff", + "Hair": "ff6c00ff", + "Feet": "b79536ff", + "Facehair": "ff6c00ff", + "Hat": "ff6c00ff", + "Glasses": "ff6c00ff", + "speed": 448, + "Gun": "Projector", + "maxHealth": 180, + "excessHealth": 360, + "flags": 0, + "probabilityToMove": 40, + "probabilityToTrack": 25, + "probabilityToShoot": 37, + "actionDelay": 3 + }, + { + "Class": "Jones", + "HairType": "flattop", + "FacehairType": "beard", + "Skin": "ffffffff", + "Arms": "9c9c9cff", + "Body": "9c9c9cff", + "Legs": "9c9c9cff", + "Hair": "27282aff", + "Feet": "9c9c9cff", + "Facehair": "27282aff", + "Hat": "27282aff", + "Glasses": "27282aff", + "speed": 320, + "Gun": "Wurmtooth", + "maxHealth": 30, + "excessHealth": 60, + "flags": 2048, + "probabilityToMove": 50, + "probabilityToTrack": 15, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Cyborg", + "Skin": "882800ff", + "Arms": "9c9c9cff", + "Body": "9c9c9cff", + "Legs": "9c9c9cff", + "Hair": "4b6affff", + "Feet": "9c9c9cff", + "Facehair": "4b6affff", + "Hat": "4b6affff", + "Glasses": "4b6affff", + "speed": 320, + "Gun": "Wurmtooth", + "maxHealth": 30, + "excessHealth": 60, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 15, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Cyborg", + "Skin": "d25106ff", + "Arms": "9c9c9cff", + "Body": "9c0000ff", + "Legs": "9c9c9cff", + "Hair": "3ba3ffff", + "Feet": "9c9c9cff", + "Facehair": "3ba3ffff", + "Hat": "3ba3ffff", + "Glasses": "3ba3ffff", + "speed": 320, + "Gun": "Projector", + "maxHealth": 40, + "excessHealth": 80, + "flags": 0, + "probabilityToMove": 30, + "probabilityToTrack": 15, + "probabilityToShoot": 7, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "FacehairType": "beard", + "Skin": "ffffffff", + "Arms": "9c9c9cff", + "Body": "9c0000ff", + "Legs": "9c9c9cff", + "Hair": "141415ff", + "Feet": "9c9c9cff", + "Facehair": "141415ff", + "Hat": "141415ff", + "Glasses": "141415ff", + "speed": 320, + "Gun": "Projector", + "maxHealth": 40, + "excessHealth": 80, + "flags": 2048, + "probabilityToMove": 30, + "probabilityToTrack": 20, + "probabilityToShoot": 7, + "actionDelay": 15 + }, + { + "Class": "Cyborg", + "Skin": "80653cff", + "Arms": "9c9c9cff", + "Body": "58589cff", + "Legs": "9c9c9cff", + "Hair": "5f76ffff", + "Feet": "9c9c9cff", + "Facehair": "5f76ffff", + "Hat": "5f76ffff", + "Glasses": "5f76ffff", + "speed": 384, + "Gun": "Lasergun", + "maxHealth": 50, + "excessHealth": 100, + "flags": 0, + "probabilityToMove": 30, + "probabilityToTrack": 15, + "probabilityToShoot": 17, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "donut", + "Skin": "d25106ff", + "Arms": "9c9c9cff", + "Body": "9c9c9cff", + "Legs": "9c9c9cff", + "Hair": "c6c6c6ff", + "Feet": "9c9c9cff", + "Facehair": "c6c6c6ff", + "Hat": "c6c6c6ff", + "Glasses": "c6c6c6ff", + "speed": 448, + "Gun": "Projector", + "maxHealth": 280, + "excessHealth": 560, + "flags": 0, + "probabilityToMove": 40, + "probabilityToTrack": 25, + "probabilityToShoot": 32, + "actionDelay": 5 + }, + { + "Class": "Cyborg", + "GlassesType": "cyborg", + "Skin": "9c6d13ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "001500ff", + "Feet": "363636ff", + "Facehair": "001500ff", + "Hat": "001500ff", + "Glasses": "001500ff", + "speed": 320, + "Gun": "Inkvine", + "maxHealth": 50, + "excessHealth": 100, + "flags": 1966080, + "probabilityToMove": 40, + "probabilityToTrack": 25, + "probabilityToShoot": 25, + "actionDelay": 8 + }, + { + "Class": "Cyborg", + "HatType": "hazmat", + "Skin": "2e2e2eff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "00ff00ff", + "Feet": "363636ff", + "Facehair": "00ff00ff", + "Hat": "00ff00ff", + "Glasses": "00ff00ff", + "speed": 320, + "Gun": "Inkvine", + "maxHealth": 50, + "excessHealth": 100, + "flags": 655360, + "probabilityToMove": 40, + "probabilityToTrack": 25, + "probabilityToShoot": 25, + "actionDelay": 8 + }, + { + "Class": "Jones", + "PlayerTemplateName": "Kardausar Captain", + "HatType": "hazmat", + "Skin": "9c6513ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "0ecd00ff", + "Feet": "363636ff", + "Facehair": "0ecd00ff", + "Hat": "0ecd00ff", + "Glasses": "0ecd00ff", + "speed": 192, + "Gun": "Machine gun", + "maxHealth": 20, + "excessHealth": 40, + "flags": 131072, + "probabilityToMove": 50, + "probabilityToTrack": 20, + "probabilityToShoot": 32, + "actionDelay": 15 + }, + { + "Class": "Jones", + "PlayerTemplateName": "Kardausar Bator", + "GlassesType": "eye_patch", + "Skin": "149c14ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "100f0fff", + "Feet": "363636ff", + "Facehair": "100f0fff", + "Hat": "100f0fff", + "Glasses": "100f0fff", + "speed": 192, + "Gun": "Machine gun", + "maxHealth": 20, + "excessHealth": 40, + "flags": 131072, + "probabilityToMove": 50, + "probabilityToTrack": 20, + "probabilityToShoot": 32, + "actionDelay": 15 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/crest.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/crest.png new file mode 100644 index 00000000..498c4dd8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/crest.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/inkvine_puddle_8x6.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/inkvine_puddle_8x6.png new file mode 100644 index 00000000..a1748dff Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/inkvine_puddle_8x6.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/khanjali.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/khanjali.png new file mode 100644 index 00000000..60e94d57 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/khanjali.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/khanjali.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/khanjali.txt new file mode 100644 index 00000000..832e1fd5 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/khanjali.txt @@ -0,0 +1,3 @@ +Derived from 8 Bit Items by ZigWin +https://opengameart.org/content/8-bit-items +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/lasergun.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/lasergun.png new file mode 100644 index 00000000..f985f4a4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/lasergun.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/lasergun.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/lasergun.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/lasergun.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/projection_13x13.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/projection_13x13.png new file mode 100644 index 00000000..19cdf2ba Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/projection_13x13.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/projection_13x13.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/projection_13x13.txt new file mode 100644 index 00000000..4f25663a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/projection_13x13.txt @@ -0,0 +1,4 @@ +Adapted from Bullet Collection 2 (M484 Games) by Master484 +https://opengameart.org/content/bullet-collection-2-m484-games + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/projector.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/projector.png new file mode 100644 index 00000000..c086ca2e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/projector.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/projector.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/projector.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/projector.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/seeker_probe.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/seeker_probe.png new file mode 100644 index 00000000..5cbf5a57 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/seeker_probe.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/spark_spray.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/spark_spray.txt new file mode 100644 index 00000000..85cd68f7 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/spark_spray.txt @@ -0,0 +1,4 @@ +Derived from Sparks (Fire, Ice, Blood) +by Clint Bellanger +https://opengameart.org/content/sparks-fire-ice-blood +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/spark_spray_16x16.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/spark_spray_16x16.png new file mode 100644 index 00000000..6fbfe77e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/spark_spray_16x16.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/wurmtooth.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/wurmtooth.png new file mode 100644 index 00000000..40c41f70 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/wurmtooth.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/wurmtooth.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/wurmtooth.txt new file mode 100644 index 00000000..dface5f9 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/graphics/wurmtooth.txt @@ -0,0 +1,5 @@ +Derived from Tooth of an Animal +by Nem_ +https://opengameart.org/content/tooth-of-an-animal +http://creativecommons.org/licenses/by-sa/3.0/ +http://www.gnu.org/licenses/old-licenses/gpl-2.0.html \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/guns.json new file mode 100644 index 00000000..e850db3f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/guns.json @@ -0,0 +1,96 @@ +{ + "Version": 2, + "Guns": [ + { + "Pic": "", + "Name": "Monster Bite", + "Bullet": "monster_bite", + "Cost": 0, + "Lock": 20, + "Sound": "", + "CanShoot": false, + "CanDrop": false + }, + { + "Pic": "knife_blue", + "Icon": "khanjali", + "Name": "Khanjali", + "Bullet": "khanjali", + "Cost": 0, + "Lock": 30, + "Sound": "", + "SwitchSound": "knife_switch", + "CanShoot": false + }, + { + "Pic": "knife_yellow", + "Icon": "wurmtooth", + "Name": "Wurmtooth", + "Bullet": "wurmtooth", + "Prerequisite": "Khanjali", + "Cost": 0, + "Lock": 15, + "Sound": "", + "SwitchSound": "knife_switch", + "CanShoot": false + }, + { + "Pic": "rocket_green", + "Name": "Inkvine", + "Icon": "biogun", + "Bullet": "inkvine", + "Cost": 5, + "Lock": 50, + "Sound": "inkvine", + "SwitchSound": "inkvine_r", + "MuzzleFlashParticle": "muzzle_flash_inkvine", + "Elevation": 20, + "Ammo": "Cells" + }, + { + "Pic": "blaster_yellow", + "Name": "Lasergun", + "Icon": "lasergun", + "Bullet": "lase", + "Cost": 3, + "Lock": 50, + "Sound": "powergun", + "SwitchSound": "powergun_r", + "MuzzleFlashSprite": "muzzle_flash_big", + "MuzzleFlashColor": "ffff00", + "MuzzleFlashDuration": 5, + "Ammo": "Cells" + }, + { + "Pic": "raygun", + "Name": "Projector", + "Icon": "projector", + "Bullet": "projection", + "Prerequisite": "Lasergun", + "Cost": 5, + "Lock": 60, + "Sound": "projector", + "SwitchSound": "powergun_r", + "MuzzleFlashSprite": "muzzle_flash_big", + "MuzzleFlashColor": "ffaa00", + "MuzzleFlashDuration": 5, + "Ammo": "Cells" + } + ], + "PseudoGuns": [ + { + "Name": "inkvine_splash", + "Bullet": "inkvine_splash", + "Recoil": 2, + "SpreadCount": 6, + "ElevationLow": 22, + "ElevationHigh": 30, + "Sound": "splat" + }, + { + "Name": "inkvine_puddle", + "Bullet": "inkvine_puddle", + "Sound": "" + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/map_objects.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/map_objects.json new file mode 100644 index 00000000..ee41ca09 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/map_objects.json @@ -0,0 +1,12 @@ +{ + "Version": 1, + "MapObjects": [ + { + "Name": "crest", + "Pic": "crest", + "Offset": [-7, -10], + "Health": 0, + "Flags": ["OnWall"] + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/missions.json new file mode 100644 index 00000000..952c5ae5 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/missions.json @@ -0,0 +1,1307 @@ +{ + "Missions": [{ + "Title": "Training on Sancus Tertius", + "Description": "Your training on the harsh prison planet of Sancus Tertius is almost over. For your last trial, kill the fierce creatures living in the wasteland.", + "Type": "Cave", + "Width": 40, + "Height": 40, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Kill creatures", + "Type": "Kill", + "Index": 0, + "Count": 15, + "Required": 10, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [0, 1], + "MapObjectDensities": [{ + "MapObject": "goo", + "Density": 5 + }, + { + "MapObject": "wall_stuff", + "Density": 5 + }, + { + "MapObject": "scratch", + "Density": 5 + }, + { + "MapObject": "skull", + "Density": 10 + }, + { + "MapObject": "bulletmarks", + "Density": 5 + }, + { + "MapObject": "wall_skull", + "Density": 10 + }, + { + "MapObject": "tree_dead", + "Density": 20 + }], + "PickupCounts": [], + "EnemyDensity": 26, + "Weapons": ["Khanjali", + "Machine gun", + "Inkvine", + "Lasergun"], + "WeaponPersist": false, + "SkipDebrief": false, + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "301e0aff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "844400ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "840000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + } + }, + "FillPercent": 40, + "Repeat": 4, + "R1": 5, + "R2": 0, + "Rooms": { + "Count": 0, + "Min": 0, + "Max": 0, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 3, + "ExitEnabled": false, + "DoorsEnabled": true + }, + { + "Title": "Sabotage of Clan Tantalus Armory", + "Description": "The foolish Tantalus know nothing, and are walking into our trap. Sabotage their Clan shields! Find their armory, rumored to house secret projector weapons, and destroy them as well.", + "Type": "Interior", + "Width": 45, + "Height": 44, + "ExitStyle": "plate", + "KeyStyle": "plain2", + "Objectives": [{ + "Description": "Destroy the Clan shield consoles", + "Type": "Destroy", + "MapObjects": ["terminal"], + "Count": 4, + "Required": 4, + "Flags": 0 + }, + { + "Description": "Destroy projectors", + "Type": "Destroy", + "MapObjects": ["safe"], + "Count": 3, + "Required": 2, + "Flags": 4 + }, + { + "Description": "A discarded seeker-probe...", + "Type": "Collect", + "Pickups": ["seeker_probe"], + "Count": 1, + "Required": 0, + "Flags": 5 + }], + "Enemies": [2, + 3, + 4, + 2, + 2, + 3, + 3], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 10 + }, + { + "MapObject": "barrel_blue", + "Density": 20 + }, + { + "MapObject": "box2", + "Density": 10 + }, + { + "MapObject": "plant", + "Density": 20 + }, + { + "MapObject": "bench", + "Density": 25 + }, + { + "MapObject": "chair", + "Density": 20 + }, + { + "MapObject": "table_wood", + "Density": 20 + }, + { + "MapObject": "table_steel", + "Density": 20 + }, + { + "MapObject": "crest", + "Density": 20 + }], + "PickupCounts": [], + "EnemyDensity": 11, + "Weapons": ["Khanjali", + "Machine gun", + "Inkvine", + "Shotgun", + "Lasergun", + "Dynamite"], + "WeaponPersist": false, + "SkipDebrief": false, + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "703800ff", + "MaskAlt": "480000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "484848ff", + "MaskAlt": "480000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "74601cff", + "MaskAlt": "480000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "alien", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + } + }, + "CorridorWidth": 2, + "Rooms": { + "Count": 14, + "Min": 6, + "Max": 12, + "Edge": true, + "Overlap": true, + "Walls": 5, + "WallLength": 10, + "WallPad": 2 + }, + "ExitEnabled": true, + "Doors": { + "Enabled": true, + "Min": 2, + "Max": 2, + "RandomPos": true + }, + "Pillars": { + "Count": 2, + "Min": 2, + "Max": 2 + } + }, + { + "Title": "Fortress Raid", + "Description": "The time has come to annihilate Clan Tantalus! Our armies have gathered, ready to crush the defenseless fortress. Spearhead the charge, and leave none alive.", + "Type": "Interior", + "Width": 57, + "Height": 53, + "ExitStyle": "plate", + "KeyStyle": "plain2", + "Objectives": [{ + "Description": "Purge the Tantalus", + "Type": "Kill", + "Index": 0, + "Count": 30, + "Required": 25, + "Flags": 0 + }], + "Enemies": [15, 6], + "SpecialChars": [2, + 3, + 4], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 25 + }, + { + "MapObject": "bulletmarks", + "Density": 25 + }, + { + "MapObject": "barrel", + "Density": 15 + }, + { + "MapObject": "box2", + "Density": 15 + }, + { + "MapObject": "barrel_skull", + "Density": 10 + }, + { + "MapObject": "box_wood", + "Density": 15 + }, + { + "MapObject": "box3_gas", + "Density": 10 + }, + { + "MapObject": "plant", + "Density": 40 + }, + { + "MapObject": "bench", + "Density": 40 + }, + { + "MapObject": "crest", + "Density": 40 + }], + "PickupCounts": [], + "EnemyDensity": 12, + "Weapons": ["Khanjali", + "Machine gun", + "Inkvine", + "Shotgun", + "Lasergun"], + "WeaponPersist": false, + "SkipDebrief": false, + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "703800ff", + "MaskAlt": "480000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "484848ff", + "MaskAlt": "480000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "74601cff", + "MaskAlt": "480000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "alien", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + } + }, + "CorridorWidth": 2, + "Rooms": { + "Count": 20, + "Min": 6, + "Max": 12, + "Edge": true, + "Overlap": true, + "Walls": 3, + "WallLength": 6, + "WallPad": 2 + }, + "ExitEnabled": false, + "Doors": { + "Enabled": true, + "Min": 2, + "Max": 2, + "RandomPos": true + }, + "Pillars": { + "Count": 20, + "Min": 2, + "Max": 3 + } + }, + { + "Title": "Extermination", + "Description": "We have taken the Tantalus stronghold and are wiping out the remnants. Some have take refuge in the nearby caves; enter them and exterminate all that you find.", + "Type": "Cave", + "Width": 50, + "Height": 50, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Exterminate the remnants", + "Type": "Kill", + "Index": 0, + "Count": 25, + "Required": 24, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [2, 4], + "MapObjectDensities": [{ + "MapObject": "wall_stuff", + "Density": 15 + }, + { + "MapObject": "scratch", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 15 + }, + { + "MapObject": "bloodstain", + "Density": 15 + }, + { + "MapObject": "bulletmarks", + "Density": 25 + }], + "PickupCounts": [], + "EnemyDensity": 4, + "Weapons": ["Khanjali", + "Machine gun", + "Grenades", + "Inkvine", + "Shotgun", + "Shrapnel bombs", + "Lasergun"], + "WeaponPersist": false, + "SkipDebrief": false, + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "422500ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "8b4600ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "844400ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "dungeon", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + } + }, + "FillPercent": 46, + "Repeat": 3, + "R1": 5, + "R2": 5, + "Rooms": { + "Count": 5, + "Min": 5, + "Max": 7, + "Edge": false, + "Overlap": false, + "Walls": 3, + "WallLength": 2, + "WallPad": 1 + }, + "Squares": 1, + "ExitEnabled": false, + "DoorsEnabled": true + }, + { + "Title": "The Duel", + "Description": "Reports indicate that high-value Tantalus personnel may have passed through an ecological testing site. Their flight is being assisted by their fierce general, Denis Colorado. Eliminate him!", + "Type": "Classic", + "Width": 35, + "Height": 36, + "ExitStyle": "plate", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Defeat Denis Colorado", + "Type": "Kill", + "Index": 0, + "Count": 1, + "Required": 1, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [7], + "MapObjectDensities": [{ + "MapObject": "box_wood", + "Density": 15 + }, + { + "MapObject": "barrel_blue", + "Density": 15 + }, + { + "MapObject": "rod", + "Density": 10 + }, + { + "MapObject": "box_green", + "Density": 20 + }, + { + "MapObject": "crest", + "Density": 15 + }], + "PickupCounts": [], + "EnemyDensity": 0, + "Weapons": ["Khanjali", + "Machine gun", + "Grenades", + "Inkvine", + "Shotgun", + "Shrapnel bombs", + "Lasergun"], + "WeaponPersist": false, + "SkipDebrief": false, + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "5c5c84ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "biggrid", + "Mask": "008484ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "840000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + } + }, + "Walls": 32, + "WallLength": 17, + "CorridorWidth": 2, + "Rooms": { + "Count": 0, + "Min": 0, + "Max": 0, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 1, + "ExitEnabled": false, + "Doors": { + "Enabled": false, + "Min": 0, + "Max": 0, + "RandomPos": false + }, + "Pillars": { + "Count": 2, + "Min": 3, + "Max": 3 + } + }, + { + "Title": "The Search", + "Description": "The Tantalus heir, Saul, is escaping into the deep desert! He must be found and eliminated. Be wary of the natives, who are rumored to be formidable fighters.", + "Type": "Cave", + "Width": 70, + "Height": 64, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Search the area", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 93, + "Flags": 0 + }], + "Enemies": [8], + "SpecialChars": [], + "MapObjectDensities": [], + "PickupCounts": [], + "EnemyDensity": 14, + "Weapons": ["Khanjali", + "Machine gun", + "Grenades", + "Inkvine", + "Shotgun", + "Shrapnel bombs", + "Lasergun"], + "WeaponPersist": false, + "SkipDebrief": false, + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "482400ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "480048ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "840000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + } + }, + "FillPercent": 44, + "Repeat": 10, + "R1": 5, + "R2": -1, + "Rooms": { + "Count": 0, + "Min": 0, + "Max": 0, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "ExitEnabled": false, + "DoorsEnabled": true + }, + { + "Title": "Miner Escort", + "Description": "It has been a full year since the annihilation of Clan Tantalus. Saul Tantalus is presumed dead. Yet the natives have been growing restless and raiding cinnamon mining operations. You are tasked with protecting one of these missions.", + "Type": "Cave", + "Width": 63, + "Height": 53, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Repel the natives", + "Type": "Kill", + "Index": 0, + "Count": 22, + "Required": 15, + "Flags": 0 + }, + { + "Description": "Recover lost cinnamon", + "Type": "Collect", + "Pickups": ["bag"], + "Count": 10, + "Required": 0, + "Flags": 0 + }], + "Enemies": [6], + "SpecialChars": [9, 10], + "MapObjectDensities": [{ + "MapObject": "tree_dead", + "Density": 5 + }, + { + "MapObject": "scratch", + "Density": 10 + }], + "PickupCounts": [], + "EnemyDensity": 12, + "Weapons": ["Khanjali", + "Machine gun", + "Grenades", + "Inkvine", + "Shotgun", + "Shrapnel bombs", + "Lasergun"], + "WeaponPersist": false, + "SkipDebrief": false, + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "847024ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "94802cff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "840000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + } + }, + "FillPercent": 40, + "Repeat": 4, + "R1": 5, + "R2": 1, + "Rooms": { + "Count": 0, + "Min": 0, + "Max": 0, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 3, + "ExitEnabled": true, + "DoorsEnabled": true + }, + { + "Title": "Deep Desert Raid", + "Description": "We have finally pinpointed a secret native settlement. Conduct a quick and merciless raid, and exact revenge for their foolish audacity.", + "Type": "Classic", + "Width": 52, + "Height": 42, + "ExitStyle": "hazard", + "KeyStyle": "plain", + "Objectives": [{ + "Description": "Kill the natives", + "Type": "Kill", + "Index": 0, + "Count": 22, + "Required": 19, + "Flags": 0 + }, + { + "Description": "Destroy their projectors", + "Type": "Destroy", + "MapObjects": ["safe"], + "Count": 4, + "Required": 0, + "Flags": 4 + }, + { + "Description": "Cinnamon tea!", + "Type": "Collect", + "Pickups": ["bottle_orange"], + "Count": 1, + "Required": 0, + "Flags": 0 + }], + "Enemies": [15, 6], + "SpecialChars": [8, + 10, + 11], + "MapObjectDensities": [{ + "MapObject": "plant", + "Density": 10 + }, + { + "MapObject": "barrel_wood", + "Density": 25 + }, + { + "MapObject": "box_gray", + "Density": 30 + }, + { + "MapObject": "wall_stuff", + "Density": 20 + }], + "PickupCounts": [], + "EnemyDensity": 9, + "Weapons": ["Khanjali", + "Machine gun", + "Grenades", + "Inkvine", + "Shotgun", + "Shrapnel bombs", + "Molotovs", + "Lasergun"], + "WeaponPersist": false, + "SkipDebrief": false, + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "94802cff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "stone", + "Mask": "844400ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "dungeon", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + } + }, + "Walls": 18, + "WallLength": 7, + "CorridorWidth": 2, + "Rooms": { + "Count": 14, + "Min": 5, + "Max": 7, + "Edge": true, + "Overlap": true, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "ExitEnabled": false, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 2, + "RandomPos": false + }, + "Pillars": { + "Count": 19, + "Min": 1, + "Max": 1 + } + }, + { + "Title": "Captured", + "Description": "The raid was a trap! Your troop have been captured and taken to a secret location. Worse, it appears that Saul is still alive and leading the native attacks. Find the rest of your troop and escape immediately!", + "Type": "Classic", + "Width": 48, + "Height": 42, + "ExitStyle": "hazard", + "KeyStyle": "plain", + "Objectives": [{ + "Description": "Rescue your troop", + "Type": "Rescue", + "Index": 14, + "Count": 1, + "Required": 1, + "Flags": 4 + }, + { + "Description": "Collect any intelligence", + "Type": "Collect", + "Pickups": ["blueprint"], + "Count": 3, + "Required": 0, + "Flags": 0 + }], + "Enemies": [9, + 10, + 12], + "SpecialChars": [5], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 10 + }, + { + "MapObject": "wall_goo", + "Density": 20 + }, + { + "MapObject": "box_red", + "Density": 15 + }, + { + "MapObject": "tree_dead", + "Density": 10 + }, + { + "MapObject": "box_gray", + "Density": 15 + }, + { + "MapObject": "plant", + "Density": 10 + }], + "PickupCounts": [], + "EnemyDensity": 13, + "Weapons": ["Khanjali", + "Machine gun", + "Projector", + "Lasergun", + "Wurmtooth"], + "WeaponPersist": false, + "SkipDebrief": false, + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "484870ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "480048ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "stone", + "Mask": "482400ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "dungeon", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + } + }, + "Walls": 11, + "WallLength": 9, + "CorridorWidth": 1, + "Rooms": { + "Count": 10, + "Min": 7, + "Max": 9, + "Edge": true, + "Overlap": true, + "Walls": 2, + "WallLength": 2, + "WallPad": 2 + }, + "Squares": 0, + "ExitEnabled": true, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 2, + "RandomPos": false + }, + "Pillars": { + "Count": 13, + "Min": 1, + "Max": 2 + } + }, + { + "Title": "Sabotage", + "Description": "Clan Tantalus are massing for battle! Thanks to intelligence you have brought back, we know their plan is to create a massive breach using fusion devices. Destroy these devices, and kill their general, Trolley Hollyoak!", + "Type": "Classic", + "Width": 66, + "Height": 30, + "ExitStyle": "plate", + "KeyStyle": "cube", + "Objectives": [{ + "Description": "Kill general Trolley Hollyoak", + "Type": "Kill", + "Index": 0, + "Count": 1, + "Required": 1, + "Flags": 0 + }, + { + "Description": "Destroy the fusion devices", + "Type": "Destroy", + "MapObjects": ["rocket"], + "Count": 7, + "Required": 5, + "Flags": 0 + }], + "Enemies": [12], + "SpecialChars": [13], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 20 + }, + { + "MapObject": "barrel", + "Density": 20 + }, + { + "MapObject": "box3_gas", + "Density": 15 + }, + { + "MapObject": "box2", + "Density": 15 + }, + { + "MapObject": "box", + "Density": 15 + }, + { + "MapObject": "rod", + "Density": 10 + }, + { + "MapObject": "crest", + "Density": 30 + }], + "PickupCounts": [], + "EnemyDensity": 9, + "Weapons": ["Khanjali", + "Machine gun", + "Grenades", + "Inkvine", + "Shotgun", + "Projector", + "Shrapnel bombs", + "Molotovs", + "Lasergun", + "Prox. mine", + "Dynamite", + "Wurmtooth"], + "WeaponPersist": false, + "SkipDebrief": false, + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "848484ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "000048ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "004800ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "alien", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + } + }, + "Walls": 0, + "WallLength": 1, + "CorridorWidth": 2, + "Rooms": { + "Count": 7, + "Min": 9, + "Max": 14, + "Edge": true, + "Overlap": true, + "Walls": 3, + "WallLength": 1, + "WallPad": 2 + }, + "Squares": 0, + "ExitEnabled": false, + "Doors": { + "Enabled": false, + "Min": 2, + "Max": 3, + "RandomPos": false + }, + "Pillars": { + "Count": 3, + "Min": 3, + "Max": 3 + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/particles.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/particles.json new file mode 100644 index 00000000..2be1d10a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/particles.json @@ -0,0 +1,18 @@ +{ + "Version": 1, + "Particles": [ + { + "Name": "muzzle_flash_inkvine", + "Sprites": "particles/muzzle_flash_big", + "Mask": "00ff00", + "Range": 8 + }, + { + "Name": "spark_inkvine", + "Sprites": "spark_spray", + "Mask": "00ff00", + "Range": 16, + "TicksPerFrame": 4 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/pickups.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/pickups.json new file mode 100644 index 00000000..2eafda94 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/pickups.json @@ -0,0 +1,10 @@ +{ + "Version": 1, + "Pickups": [ + { + "Name": "seeker_probe", + "Pic": "seeker_probe", + "Type": "Score" + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/inkvine.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/inkvine.ogg new file mode 100644 index 00000000..f368d9ab Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/inkvine.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/inkvine.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/inkvine.txt new file mode 100644 index 00000000..e2f4a735 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/inkvine.txt @@ -0,0 +1,4 @@ +Derived from Footsteps » Sludge Footsteps 1.wav +by morganpurkis +https://www.freesound.org/people/morganpurkis/sounds/384658/ +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/inkvine_r.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/inkvine_r.ogg new file mode 100644 index 00000000..c4ac758a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/inkvine_r.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/inkvine_r.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/inkvine_r.txt new file mode 100644 index 00000000..6dcc05f8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/inkvine_r.txt @@ -0,0 +1,4 @@ +Derived from Cocking M16.aif +by maurosama +http://freesound.org/people/maurosama/sounds/133814/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/projector.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/projector.ogg new file mode 100644 index 00000000..8c99b02b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/projector.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/projector.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/projector.txt new file mode 100644 index 00000000..37eaf53b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/projector.txt @@ -0,0 +1,4 @@ +Derived from Sci-fi gun shot x6 +by humanoide7000 +http://freesound.org/people/humanoide7000/sounds/330293/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/splat.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/splat.ogg new file mode 100644 index 00000000..673f8bb9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/splat.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/splat.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/splat.txt new file mode 100644 index 00000000..e3649e95 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/splat.txt @@ -0,0 +1,4 @@ +splat.ogg +by gprosser +https://www.freesound.org/people/gprosser/sounds/360942/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/wurmtooth_flesh.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/wurmtooth_flesh.ogg new file mode 100644 index 00000000..8714317b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/wurmtooth_flesh.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/wurmtooth_flesh.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/wurmtooth_flesh.txt new file mode 100644 index 00000000..c44e1c9b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/Sand.cdogscpn/sounds/wurmtooth_flesh.txt @@ -0,0 +1,9 @@ +Adapted from + +Knife Stab.wav by Mixedupmoviestuff +https://www.freesound.org/people/Mixedupmoviestuff/sounds/179222/ +http://creativecommons.org/publicdomain/zero/1.0/ + +PUNCH-BOXING-04.wav by newagesoup +https://www.freesound.org/people/newagesoup/sounds/348241/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/AUDIOHED.WL1 b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/AUDIOHED.WL1 new file mode 100644 index 00000000..90eb8c7b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/AUDIOHED.WL1 differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/AUDIOT.WL1 b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/AUDIOT.WL1 new file mode 100644 index 00000000..5d84d11c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/AUDIOT.WL1 differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/CONFIG.WL1 b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/CONFIG.WL1 new file mode 100644 index 00000000..09b3e826 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/CONFIG.WL1 differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/FILE_ID.DIZ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/FILE_ID.DIZ new file mode 100644 index 00000000..c1e87e8d --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/FILE_ID.DIZ @@ -0,0 +1,8 @@ +³³ÝÛÛ WOLFENSTEIN 3-D V1.4 - ID/APOGEE! ÛÛÞ³³ +NEW VERSION 1.4 -- 256 color VGA graphics. +Fastest 3-D graphics of ANY PC game. Sound +Blaster effects and Ad Lib music. Graphics +so real they cause dizziness! Rated PC-13 +due to intense, realistic visual effects. +Needs 286 or better. Fixes some video +problems, and adds joystick calibration. diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/GAMEMAPS.WL1 b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/GAMEMAPS.WL1 new file mode 100644 index 00000000..8ca197c3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/GAMEMAPS.WL1 differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/MAPHEAD.WL1 b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/MAPHEAD.WL1 new file mode 100644 index 00000000..29c8f60a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/MAPHEAD.WL1 differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/VENDOR.DOC b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/VENDOR.DOC new file mode 100644 index 00000000..d628790a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/VENDOR.DOC @@ -0,0 +1,172 @@ +"Wolfenstein 3D" +Copyright 1992 id Software +Published by Apogee Software, Ltd. +P.O. Box 496389, Garland, TX 75049, TEL: 972-271-1765 ("Apogee") + +BY COPYING, USING OR DISTRIBUTING THIS SHAREWARE PROGRAM, YOU +INDICATE YOUR AGREEMENT TO THE TERMS OF THIS vendor.doc. + +===================== +KEY POINTS +===================== + +[*] Everyone can -- and is encouraged! -- to copy, upload and + generally pass around this Program without charging for it. + +[*] If you want to distribute it in a retail location (such as + on a rack), or as part of a hardware or software bundle, or + on CD-ROM you must get PRIOR signed written permission from + Apogee. Apogee reserves its right to withhold permission. + +[*] If you want to distribute it as provided in this Vendor.doc + by catalog, advertisement, BBS, on-line service, or direct + mail, no written permission is needed. Apogee highly + recommends, however, that distribution be made from a copy + from Apogee or from one of its authorized sources, such as + our web site (http://www.apogee1.com) to prevent the sale + of older versions. + +[*] All advertising of the Program must include "Apogee" in the + description. + +[*] The Program is marked "Shareware" and contains "episode #1". + No right is given by this Vendor.Doc to copy, use or + distribute any other version, including any version that is + registered, or not marked shareware, or that contains any + episode other than #1. + +====================== +LICENSE +====================== + +[1] DEFINITIONS: "Program" means Wolfenstein 3D and its related files, +including this one. The "Trademarks" consists of "Apogee", the +Apogee "comet logo", and "Wolfenstein 3D". + +[2] OWNERSHIP: Except to the extent expressly licensed, +Apogee owns and reserves the exclusive right to distribute +the Program, and to use the Trademarks in connection +with it. Its content, layout and format are the property of +Apogee to the extent permitted by law. + +[3] GRANT AND CONDITIONS: Apogee grants a non-exclusive license +to distribute the Program on IBM compatible media under the +Trademarks subject to the following conditions: + + [A] CONDITIONS FOR ALL DISTRIBUTION + + [1] All of the Program's files, including this one, as + released by us must be included without modification. + The following files must always be included to + constitute a legal version for shareware distribution: + + þ audiohed wl1 1,156 01-01-93 1:40p + þ audiot wl1 132,613 01-01-93 1:40p + þ gamemaps wl1 27,425 01-01-93 1:40p + þ maphead wl1 402 01-01-93 1:40p + þ vgadict wl1 1,024 01-01-93 1:40p + þ vgagraph wl1 326,568 01-01-93 1:40p + þ vgahead wl1 471 01-01-93 1:40p + þ vswap wl1 742,912 01-01-93 1:40p + þ wolf3d exe 109,959 01-01-93 1:40p + þ w3dhelp exe + + [2] No copyright or trademark information may be removed. + + [3] You must not [a] distribute any version of the Program + with unauthorized changes, such as additional or different + levels, or changed characters or mazes; or + [b] characterize such versions as an "add-on" or + "extension" of any Apogee product; or [c] distribute any + unauthorized third party utility designed to alter any + Apogee game, game level, game episode or saved game. + + [B] ADDITIONAL CONDITIONS IF YOU CHARGE: If your distribution +involves a disk or other physical medium, you must also: + + [1] Clearly market the Program as shareware, which requires + (among other things) using "try before you buy" or similar + words on packaging for the Programs. + + [2] Include "Apogee" and the "comet" logo (we encourage use of + the 4 color version) on the front cover of the package. + + [3] Include the your name, address and phone number on the + packaging and in any added documentation. This can be + imprinted on the package or may be in the form of a label + affixed to the box, carton or folder. + + [4] Any description of the Program included in a re-sellers + catalog, sales brochure, on special packaging or handouts, + must include "An Apogee Game", "Released by Apogee" or + "Published by Apogee" if the word count of the description + is more than 14 words in length. + + [5] Distribute copies only after the programs on newly created + master diskettes have been thoroughly tested. Always use + high quality media and duplication technology. + + [6] Try to sell only the most current version of the Program. + + [7] Although Apogee discourages the practice, you may add an + installation routine if it does not interfere with the + proper operation or installation of the Program. + + [8] Program updates, recommended descriptions and "screen + shots" will be provided upon request, and are available in + the re-seller / dealer conference of Apogee's main BBS. + + [C] ADDITIONAL CONDITIONS FOR BUNDLES, CD-ROMS, AND RACKS: If +you wish to distribute in a retail location (such as on a rack), +or as part of a hardware or software bundle, or on CD-ROM, you +must get PRIOR signed written permission from Apogee, which is +in Apogee's discretion and may be subject to royalty or other +conditions. + +[4] TERM: Unless terminated for cause, your grants under this +VENDOR.DOC terminate 30 days after you receive written notice, +or such longer period as the notice may provide. Following such +termination, you may distribute the Program only until the +earlier of 60 days after the termination date in the notice, or +distribution of the copies you have in stock. Sections [2], +[5], and [6] survive termination. + +[5] LIMITED WARRANTY AND LIMITATION OF REMEDIES: If Apogee +provides a physically defective copy of the Program, Apogee will +replace it upon submission of the defective one. Aside from +this, the Program IS PROVIDED "AS-IS", AND NO WARRANTIES OF ANY +KIND (INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS +FOR A PARTICULAR PURPOSE), EXPRESS OR IMPLIED, ARE MADE AS TO IT +OR ANY MEDIUM IT MAY BE ON. OUR ENTIRE LIABILITY AND YOUR +EXCLUSIVE REMEDY IS SUCH REPLACEMENT, AND UNDER NO CIRCUMSTANCES +WILL WE PROVIDE ANY OTHER REMEDY FOR DIRECT, INDIRECT, SPECIAL, +CONSEQUENTIAL, PUNITIVE, INCIDENTAL OR OTHER DAMAGES ARISING +FROM IT, INCLUDING SUCH FROM NEGLIGENCE, STRICT LIABILITY, OR +BREACH OF WARRANTY OR CONTRACT, EVEN AFTER NOTICE OF THE +POSSIBILITY OF SUCH DAMAGES. + +[6] MISCELLANY + + [A] Since we would be irreparably damaged if Section [3], [4] +or [6][D] were not specifically enforced, we will be entitled +without bond, other security or proof of damages, to appropriate +equitable remedies with respect to breaches of such sections, in +addition to such other remedies as we may have. + + [B] You will hold us, our partners, contractors, employees and +agents harmless from damage, loss and expense arising directly +or indirectly from your acts and omissions in copying and +distributing the Program, including from any installation +routine that you may add. + + [C] With respect to every matter arising under this, you +consent to the exclusive jurisdiction and venue of the state and +federal courts sitting in Dallas, Texas, and to service by +certified mail, return receipt requested, or as otherwise +permitted by law. + + [D] You will not modify, reverse compile, disassemble, or +reverse engineer the Program, or use or disclose any +confidential information that it contains. + +[V.07.15.94] diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/VGADICT.WL1 b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/VGADICT.WL1 new file mode 100644 index 00000000..8bddb723 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/VGADICT.WL1 differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/VGAGRAPH.WL1 b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/VGAGRAPH.WL1 new file mode 100644 index 00000000..60046ec8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/VGAGRAPH.WL1 differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/VGAHEAD.WL1 b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/VGAHEAD.WL1 new file mode 100644 index 00000000..2a4ad0bb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/VGAHEAD.WL1 differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/VSWAP.WL1 b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/VSWAP.WL1 new file mode 100644 index 00000000..b295b32b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/VSWAP.WL1 differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/wolf3d.ico b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/wolf3d.ico new file mode 100644 index 00000000..14ad6eea Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/wolf3d.ico differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/wolfswas.ico b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/wolfswas.ico new file mode 100644 index 00000000..24078d91 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/WOLF3D/wolfswas.ico differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/LICENSE.md b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/LICENSE.md new file mode 100644 index 00000000..2660d3e8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/LICENSE.md @@ -0,0 +1,45 @@ +## creative commons + +# CC0 1.0 Universal + +``` +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. +``` + +### Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. + +1. __Copyright and Related Rights.__ A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; + + ii. moral rights retained by the original author(s) and/or performer(s); + + iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; + + iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; + + v. rights protecting the extraction, dissemination, use and reuse of data in a Work; + + vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and + + vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. + +2. __Waiver.__ To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. + +3. __Public License Fallback.__ Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. + +4. __Limitations and Disclaimers.__ + + a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. + + b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. + + c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. + + d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/bullets.json new file mode 100644 index 00000000..a4de4c67 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/bullets.json @@ -0,0 +1,99 @@ +{ + "Version": 1, + "Bullets": [ + { + "Name": "gmg", + "Speed": 668, + "Range": 55, + "WallBounces": true, + "Falling": { + "GravityFactor": 1 + }, + "OutOfRangeGuns": [ + "grenade_explosion1", + "grenade_explosion2", + "grenade_explosion3" + ], + "HitGuns": [ + "grenade_explosion1", + "grenade_explosion2", + "grenade_explosion3" + ], + "Power": 1 + }, + { + "Name": "grenade_fireball1", + "Pic": { + "Type": "Animated", + "Sprites": "fireball", + "TicksPerFrame": 3 + }, + "Speed": 0, + "Range": 40, + "Power": 1, + "Size": [7, 5], + "HurtAlways": true, + "Persists": true, + "Spark": "", + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "" + }, + "Falling": { + "GravityFactor": 1, + "FallsDown": false + } + }, + { + "Name": "grenade_fireball2", + "Pic": { + "Type": "Animated", + "Sprites": "fireball", + "Count": -8, + "TicksPerFrame": 3 + }, + "Speed": 0, + "Range": 48, + "Power": 0, + "Size": [7, 5], + "HurtAlways": true, + "Persists": true, + "Spark": "", + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "" + }, + "Falling": { + "GravityFactor": 1, + "FallsDown": false + } + }, + { + "Name": "grenade_fireball3", + "Pic": { + "Type": "Animated", + "Sprites": "fireball", + "Count": -16, + "TicksPerFrame": 3 + }, + "Speed": 0, + "Range": 56, + "Power": 0, + "Size": [7, 5], + "HurtAlways": true, + "Persists": true, + "Spark": "", + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "" + }, + "Falling": { + "GravityFactor": 1, + "FallsDown": false + } + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/campaign.json new file mode 100644 index 00000000..038f3e38 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/campaign.json @@ -0,0 +1,7 @@ +{ + "Version": 12, + "Title": "AI Insurgency", + "Author": "Sauer2", + "Description": "Artificial intelligence running berserk has become a wider concern to the military. Rumor has it Ascension Inc. leaked blueprints for high-grade military AI technology. You, a military investigator look into that case.", + "Missions": 7 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/characters.json new file mode 100644 index 00000000..e53f3cac --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/characters.json @@ -0,0 +1,643 @@ +{ + "Version": 12, + "Characters": [{ + "Class": "WarBaby", + "Skin": "f4944c", + "Arms": "004464", + "Body": "003c58", + "Legs": "34345c", + "Hair": "ff0000", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 2098176, + "probabilityToMove": 0, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Professor", + "Skin": "dc8040", + "Arms": "e8e8e8", + "Body": "5c5c5c", + "Legs": "004870", + "Hair": "000000", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 2098176, + "probabilityToMove": 5, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Wolf", + "Skin": "f4944c", + "Arms": "e8e8e8", + "Body": "c47038", + "Legs": "004870", + "Hair": "5c5c5c", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 2098176, + "probabilityToMove": 5, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Smith", + "Skin": "f4944c", + "Arms": "e8e8e8", + "Body": "fcfcfc", + "Legs": "004870", + "Hair": "fce000", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 2098176, + "probabilityToMove": 5, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Bob", + "Skin": "c47038", + "Arms": "fce000", + "Body": "fce000", + "Legs": "a00000", + "Hair": "603000", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 2098176, + "probabilityToMove": 5, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "Skin": "f4944c", + "Arms": "c0fcfc", + "Body": "c0fcfc", + "Legs": "fc6800", + "Hair": "fc6800", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 2098176, + "probabilityToMove": 0, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "Skin": "ac5400", + "Arms": "c0fcfc", + "Body": "c0fcfc", + "Legs": "489848", + "Hair": "987098", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 2098176, + "probabilityToMove": 5, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "Skin": "ac5400", + "Arms": "c0fcfc", + "Body": "004870", + "Legs": "3c3c3c", + "Hair": "fc6800", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 2098176, + "probabilityToMove": 15, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Ogre Boss", + "Skin": "00fcfc", + "Arms": "c0fcfc", + "Body": "fcfcfc", + "Legs": "348434", + "Hair": "00fc00", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 50, + "flags": 2098176, + "probabilityToMove": 15, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "c0fcfc", + "Arms": "489848", + "Body": "489848", + "Legs": "003038", + "Hair": "c00000", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 50, + "flags": 2098176, + "probabilityToMove": 0, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Ice", + "Skin": "dc8040", + "Arms": "707070", + "Body": "880000", + "Legs": "848484", + "Hair": "000000", + "speed": 256, + "Gun": "Pistol", + "maxHealth": 50, + "flags": 25165824, + "probabilityToMove": 15, + "probabilityToTrack": 15, + "probabilityToShoot": 15, + "actionDelay": 15 + }, + { + "Class": "Smith", + "Skin": "f4944c", + "Arms": "c0c0c0", + "Body": "fc0000", + "Legs": "989898", + "Hair": "8c4400", + "speed": 256, + "Gun": "Machine Pistol", + "maxHealth": 50, + "flags": 25165824, + "probabilityToMove": 0, + "probabilityToTrack": 10, + "probabilityToShoot": 25, + "actionDelay": 15 + }, + { + "Class": "Dragon", + "Skin": "ac5400", + "Arms": "707070", + "Body": "e00000", + "Legs": "848484", + "Hair": "848484", + "speed": 256, + "Gun": "Pistol", + "maxHealth": 50, + "flags": 25165824, + "probabilityToMove": 10, + "probabilityToTrack": 20, + "probabilityToShoot": 15, + "actionDelay": 15 + }, + { + "Class": "Ogre Boss", + "Skin": "8484ac", + "Arms": "707070", + "Body": "a00000", + "Legs": "707070", + "Hair": "ac0000", + "speed": 384, + "Gun": "Shotgun", + "maxHealth": 50, + "flags": 25165824, + "probabilityToMove": 25, + "probabilityToTrack": 25, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Grunt", + "Skin": "b85838", + "Arms": "707070", + "Body": "a00000", + "Legs": "848484", + "Hair": "544404", + "speed": 384, + "Gun": "Knife", + "maxHealth": 50, + "flags": 25165824, + "probabilityToMove": 40, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "Skin": "f4944c", + "Arms": "707070", + "Body": "a00000", + "Legs": "acacac", + "Hair": "fce000", + "speed": 256, + "Gun": "Sniper rifle", + "maxHealth": 30, + "flags": 41943040, + "probabilityToMove": 15, + "probabilityToTrack": 15, + "probabilityToShoot": 15, + "actionDelay": 15 + }, + { + "Class": "Dragon", + "Skin": "f4944c", + "Arms": "707070", + "Body": "a00000", + "Legs": "acacac", + "Hair": "fc0000", + "speed": 256, + "Gun": "Chemo bombs", + "maxHealth": 30, + "flags": 25166848, + "probabilityToMove": 15, + "probabilityToTrack": 15, + "probabilityToShoot": 15, + "actionDelay": 15 + }, + { + "Class": "Mad bug-eye", + "Skin": "845c84", + "Arms": "fcfcfc", + "Body": "a00000", + "Legs": "acacac", + "Hair": "fc0000", + "speed": 256, + "Gun": "Browny gun", + "maxHealth": 30, + "flags": 41944064, + "probabilityToMove": 15, + "probabilityToTrack": 15, + "probabilityToShoot": 15, + "actionDelay": 15 + }, + { + "Class": "Mad bug-eye", + "Skin": "00a400", + "Arms": "fcfcfc", + "Body": "a00000", + "Legs": "484848", + "Hair": "fc0000", + "speed": 256, + "Gun": "Chemo gun", + "maxHealth": 50, + "flags": 41944064, + "probabilityToMove": 15, + "probabilityToTrack": 15, + "probabilityToShoot": 15, + "actionDelay": 15 + }, + { + "Class": "Lady", + "Skin": "f4944c", + "Arms": "707070", + "Body": "a00000", + "Legs": "acacac", + "Hair": "502800", + "speed": 448, + "Gun": "Dynamite", + "maxHealth": 30, + "flags": 58721280, + "probabilityToMove": 45, + "probabilityToTrack": 5, + "probabilityToShoot": 15, + "actionDelay": 15 + }, + { + "Class": "Lady", + "Skin": "603000", + "Arms": "707070", + "Body": "e00000", + "Legs": "3c3c3c", + "Hair": "3c3c3c", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 30, + "flags": 41943040, + "probabilityToMove": 15, + "probabilityToTrack": 15, + "probabilityToShoot": 15, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "00c0c0", + "Arms": "707070", + "Body": "e00000", + "Legs": "3c3c3c", + "Hair": "c00000", + "speed": 128, + "Gun": "Molotovs", + "maxHealth": 30, + "flags": 58721792, + "probabilityToMove": 15, + "probabilityToTrack": 20, + "probabilityToShoot": 20, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "707098", + "Arms": "fcfcfc", + "Body": "d4d4d4", + "Legs": "004870", + "Hair": "c00000", + "speed": 512, + "Gun": "Molotovs", + "maxHealth": 20, + "flags": 40042496, + "probabilityToMove": 30, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Professor", + "Skin": "f4944c", + "Arms": "00fcfc", + "Body": "00fcfc", + "Legs": "f4944c", + "Hair": "603000", + "speed": 512, + "Gun": "Molotovs", + "maxHealth": 20, + "flags": 40042496, + "probabilityToMove": 30, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Smith", + "Skin": "9c4c00", + "Arms": "282828", + "Body": "202020", + "Legs": "004870", + "Hair": "140c00", + "speed": 512, + "Gun": "Molotovs", + "maxHealth": 20, + "flags": 40042496, + "probabilityToMove": 30, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "Skin": "402000", + "Arms": "fc6800", + "Body": "fc6800", + "Legs": "282828", + "Hair": "140c00", + "speed": 512, + "Gun": "Molotovs", + "maxHealth": 20, + "flags": 40042496, + "probabilityToMove": 30, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Wolf", + "Skin": "c47038", + "Arms": "fcfcfc", + "Body": "d4d4d4", + "Legs": "3c3c3c", + "Hair": "ac0000", + "speed": 512, + "Gun": "Molotovs", + "maxHealth": 20, + "flags": 40042496, + "probabilityToMove": 30, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "Skin": "806c24", + "Arms": "804000", + "Body": "fcb800", + "Legs": "348434", + "Hair": "341c00", + "speed": 512, + "Gun": "Molotovs", + "maxHealth": 20, + "flags": 40042496, + "probabilityToMove": 30, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "Skin": "e08060", + "Arms": "fcfcfc", + "Body": "d4d4d4", + "Legs": "004870", + "Hair": "ac9834", + "speed": 512, + "Gun": "Molotovs", + "maxHealth": 20, + "flags": 40042496, + "probabilityToMove": 30, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "Skin": "a44424", + "Arms": "489848", + "Body": "d4d4d4", + "Legs": "f4944c", + "Hair": "00fc00", + "speed": 512, + "Gun": "Molotovs", + "maxHealth": 20, + "flags": 40042496, + "probabilityToMove": 30, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Ogre Boss", + "Skin": "004870", + "Arms": "489848", + "Body": "00fc00", + "Legs": "94802c", + "Hair": "fce000", + "speed": 320, + "Gun": "Machine Pistol", + "maxHealth": 100, + "flags": 35782656, + "probabilityToMove": 35, + "probabilityToTrack": 0, + "probabilityToShoot": 20, + "actionDelay": 15 + }, + { + "Class": "Ice", + "Skin": "f4944c", + "Arms": "489848", + "Body": "00fc00", + "Legs": "94802c", + "Hair": "000000", + "speed": 320, + "Gun": "Machine gun", + "maxHealth": 100, + "flags": 35782656, + "probabilityToMove": 35, + "probabilityToTrack": 0, + "probabilityToShoot": 20, + "actionDelay": 15 + }, + { + "Class": "WarBaby", + "Skin": "a44424", + "Arms": "489848", + "Body": "00fc00", + "Legs": "94802c", + "Hair": "ff0000", + "speed": 320, + "Gun": "Shotgun", + "maxHealth": 100, + "flags": 35782656, + "probabilityToMove": 35, + "probabilityToTrack": 0, + "probabilityToShoot": 20, + "actionDelay": 15 + }, + { + "Class": "Wolf", + "Skin": "ac9834", + "Arms": "489848", + "Body": "00fc00", + "Legs": "94802c", + "Hair": "000000", + "speed": 320, + "Gun": "Powergun", + "maxHealth": 100, + "flags": 35782656, + "probabilityToMove": 35, + "probabilityToTrack": 0, + "probabilityToShoot": 20, + "actionDelay": 15 + }, + { + "Class": "Lady", + "Skin": "e08060", + "Arms": "489848", + "Body": "00fc00", + "Legs": "94802c", + "Hair": "fc4000", + "speed": 320, + "Gun": "Sniper rifle", + "maxHealth": 100, + "flags": 35782656, + "probabilityToMove": 35, + "probabilityToTrack": 0, + "probabilityToShoot": 20, + "actionDelay": 15 + }, + { + "Class": "Lady", + "Skin": "e08060", + "Arms": "489848", + "Body": "00fc00", + "Legs": "707070", + "Hair": "fc4000", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 100, + "flags": 36831232, + "probabilityToMove": 35, + "probabilityToTrack": 0, + "probabilityToShoot": 20, + "actionDelay": 15 + }, + { + "Class": "Ice", + "Skin": "e08060", + "Arms": "489848", + "Body": "00fc00", + "Legs": "5c5c5c", + "Hair": "000000", + "speed": 256, + "Gun": "Shotgun", + "maxHealth": 100, + "flags": 36831232, + "probabilityToMove": 35, + "probabilityToTrack": 0, + "probabilityToShoot": 20, + "actionDelay": 15 + }, + { + "Class": "Cyborg", + "Skin": "989898", + "Arms": "c0c0c0", + "Body": "707070", + "Legs": "5c5c5c", + "Hair": "ff0000", + "speed": 64, + "Gun": "Grenade Machine Gun", + "maxHealth": 500, + "flags": 25165824, + "probabilityToMove": 45, + "probabilityToTrack": 35, + "probabilityToShoot": 30, + "actionDelay": 15 + }, + { + "Class": "Professor", + "Skin": "cc6c4c", + "Arms": "fcfcfc", + "Body": "fcfcfc", + "Legs": "989898", + "Hair": "ac9834", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 180, + "flags": 37488128, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Cyborg", + "Skin": "989898", + "Arms": "c0c0c0", + "Body": "707070", + "Legs": "5c5c5c", + "Hair": "ff0000", + "speed": 64, + "Gun": "Grenade Machine Gun", + "maxHealth": 250, + "flags": 25165824, + "probabilityToMove": 45, + "probabilityToTrack": 35, + "probabilityToShoot": 30, + "actionDelay": 15 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/graphics/box3_blink.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/graphics/box3_blink.txt new file mode 100644 index 00000000..35e04a3f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/graphics/box3_blink.txt @@ -0,0 +1,4 @@ +Adapted from Sci-Fi Object Set by Janna +http://opengameart.org/content/sci-fi-object-set + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/graphics/box3_blink_16x21.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/graphics/box3_blink_16x21.png new file mode 100644 index 00000000..37178fd5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/graphics/box3_blink_16x21.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/graphics/server_blink.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/graphics/server_blink.txt new file mode 100644 index 00000000..35e04a3f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/graphics/server_blink.txt @@ -0,0 +1,4 @@ +Adapted from Sci-Fi Object Set by Janna +http://opengameart.org/content/sci-fi-object-set + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/graphics/server_blink_16x23.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/graphics/server_blink_16x23.png new file mode 100644 index 00000000..e0ada4a9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/graphics/server_blink_16x23.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/guns.json new file mode 100644 index 00000000..200b492f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/guns.json @@ -0,0 +1,65 @@ +{ + "Version": 1, + + "Guns": [ + + { + "Pic": "pistol", + "Name": "Machine Pistol", + "Icon": "pistol", + "Bullet": "9mm", + "Cost": 2, + "Lock": 6, + "Sound": "pistol", + "SwitchSound": "pistol_switch", + "Recoil": 0.2, + "Brass": "brass", + "Ammo": "Bullets" + }, + { + "Pic": "chaingun", + "Name": "Grenade Machine Gun", + "Icon": "machine_gun", + "Bullet": "gmg", + "Cost": 1, + "Lock": 20, + "Sound": "mg", + "SwitchSound": "mg_switch", + "Recoil": 0.17, + "MuzzleFlashParticle": "muzzle_flash_mg", + "Brass": "brass_big" + } + ], + "PseudoGuns" : [ + { + "Pic": "", + "Name": "grenade_explosion1", + "Bullet": "grenade_fireball1", + "ElevationLow": 14, + "ElevationHigh": 14, + "Sound": "grenade" + }, + { + "Pic": "", + "Name": "grenade_explosion2", + "Bullet": "grenade_fireball2", + "ElevationLow": 22, + "ElevationHigh": 22 + }, + { + "Pic": "", + "Name": "grenade_explosion3", + "Bullet": "grenade_fireball3", + "ElevationLow": 30, + "ElevationHigh": 30 + }, + { + "Pic": "", + "Name": "server_burn", + "Bullet": "molotov_flame", + "Recoil": 2, + "ElevationHigh": 30, + "SpreadCount": 2 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/map_objects.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/map_objects.json new file mode 100644 index 00000000..58f0806c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/map_objects.json @@ -0,0 +1,889 @@ +{ + "Version": 2, + "MapObjects": [ + { + "Name": "barrel_blue", + "Pic": { + "Type": "Normal", + "Pic": "barrel_blue" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "barrel_blue_wreck" + }, + "Health": 40, + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "barrel_blue2", + "Pic": { + "Type": "Normal", + "Pic": "barrel_blue2" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "barrel_blue2_wreck" + }, + "Health": 40, + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "box", + "Pic": { + "Type": "Normal", + "Pic": "box" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "box_wreck" + }, + "Health": 20, + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "box2", + "Pic": { + "Type": "Normal", + "Pic": "box2" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "box_wreck" + }, + "Health": 20, + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "crate", + "Pic": { + "Type": "Normal", + "Pic": "crate" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "crate_wreck" + }, + "Health": 20, + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "crate2", + "Pic": { + "Type": "Normal", + "Pic": "crate2" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "crate2_wreck" + }, + "Health": 20, + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "cabinet", + "Pic": { + "Type": "Normal", + "Pic": "cabinet" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "cabinet_wreck" + }, + "Health": 20, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "plant", + "Pic": { + "Type": "Normal", + "Pic": "plant" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "plant_wreck" + }, + "Size": [8, 6], + "Health": 20, + "Flags": ["Inside", "OneOrMoreWalls"] + }, + { + "Name": "flower", + "Pic": { + "Type": "Normal", + "Pic": "flower" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "flower_wreck" + }, + "Size": [8, 6], + "Health": 20, + "Flags": ["Inside", "OneOrMoreWalls"] + }, + { + "Name": "bench", + "Pic": { + "Type": "Normal", + "Pic": "bench" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "bench_wreck" + }, + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table", + "Pic": { + "Type": "Normal", + "Pic": "table" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "table_wreck" + }, + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_wood", + "Pic": { + "Type": "Normal", + "Pic": "table_wood" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "table_wood_wreck" + }, + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_wood_candle", + "Pic": { + "Type": "Normal", + "Pic": "table_wood_candle" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "table_wood_wreck" + }, + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_clothed", + "Pic": { + "Type": "Normal", + "Pic": "table_clothed" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "table_wood_wreck" + }, + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_wood_round", + "Pic": { + "Type": "Normal", + "Pic": "table_wood_round" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "table_wood_round_wreck" + }, + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_wood_round_candle", + "Pic": { + "Type": "Normal", + "Pic": "table_wood_round_candle" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "table_wood_round_wreck" + }, + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_wood_round_clothed", + "Pic": { + "Type": "Normal", + "Pic": "table_wood_round_clothed" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "table_wood_round_clothed_wreck" + }, + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_wood_round_terminal", + "Pic": { + "Type": "Normal", + "Pic": "table_wood_round_terminal" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "table_wood_round_terminal_wreck" + }, + "Health": 40, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_steel", + "Pic": { + "Type": "Normal", + "Pic": "table_steel" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "safe_wreck" + }, + "Health": 30, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "table_plastic", + "Pic": { + "Type": "Normal", + "Pic": "table_plastic" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "table_plastic_wreck" + }, + "Health": 30, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "chair", + "Pic": { + "Type": "Normal", + "Pic": "chair" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "chair_wreck" + }, + "Size": [8, 6], + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "chair_task", + "Pic": { + "Type": "Normal", + "Pic": "chair_task" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "chair_task_wreck" + }, + "Size": [8, 6], + "Health": 20, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "column", + "Pic": { + "Type": "Normal", + "Pic": "column" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "cabinet_wreck" + }, + "Size": [8, 6], + "Health": 60, + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "rod", + "Pic": { + "Type": "Normal", + "Pic": "rod" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "rod_wreck" + }, + "Size": [8, 6], + "Health": 60, + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "barrel_wood", + "Pic": { + "Type": "Normal", + "Pic": "barrel_wood" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "barrel_wood_wreck" + }, + "Health": 40, + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "barrel_wood2", + "Pic": { + "Type": "Normal", + "Pic": "barrel_wood2" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "barrel_wood2_wreck" + }, + "Health": 40, + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "box_gray", + "Pic": { + "Type": "Normal", + "Pic": "box_gray" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "table_wood_wreck" + }, + "Health": 20, + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "box_green", + "Pic": { + "Type": "Normal", + "Pic": "box_green" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "table_wood_wreck" + }, + "Health": 20, + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "box_wood", + "Pic": { + "Type": "Normal", + "Pic": "box_wood" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "table_wood_wreck" + }, + "Health": 20, + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "box3_gray", + "Pic": { + "Type": "Normal", + "Pic": "box3_gray" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "box3_gray_wreck" + }, + "Health": 20, + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "box3_green", + "Pic": { + "Type": "Normal", + "Pic": "box3_green" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "box3_green_wreck" + }, + "Health": 20, + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "floor_console", + "Pic": { + "Type": "Normal", + "Pic": "floor_console" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "floor_console_wreck" + }, + "Health": 20, + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "bookshelf", + "Pic": { + "Type": "Normal", + "Pic": "bookshelf" + }, + "Offset": [-8, -15], + "WreckPic": { + "Type": "Normal", + "Pic": "table_wood_wreck" + }, + "Size": [16, 6], + "Health": 20, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "bookshelf2", + "Pic": { + "Type": "Normal", + "Pic": "bookshelf2" + }, + "Offset": [-8, -15], + "WreckPic": { + "Type": "Normal", + "Pic": "bookshelf2_wreck" + }, + "Size": [16, 6], + "Health": 20, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "terminal", + "Pic": { + "Type": "Normal", + "Pic": "terminal" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "table_wood_wreck" + }, + "Health": 40, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "safe", + "Pic": { + "Type": "Normal", + "Pic": "safe" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "safe_wreck" + }, + "Health": 100, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "safe2", + "Pic": { + "Type": "Normal", + "Pic": "safe2" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "safe2_wreck" + }, + "Health": 100, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "statue_ogre", + "Pic": { + "Type": "Normal", + "Pic": "statue_ogre" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "safe_wreck" + }, + "Health": 80, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "statue_behemoth", + "Pic": { + "Type": "Normal", + "Pic": "statue_behemoth" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "safe_wreck" + }, + "Health": 80, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "tree_dead", + "Pic": { + "Type": "Normal", + "Pic": "tree_dead" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "tree_dead_wreck" + }, + "Size": [8, 6], + "Health": 40, + "Flags": ["Outside", "NoWalls"] + }, + { + "Name": "barrel", + "Pic": { + "Type": "Normal", + "Pic": "barrel" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "barrel_wood_wreck" + }, + "Health": 40, + "DestroyGuns": ["fire_explosion"], + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "barrel_flame", + "Pic": { + "Type": "Normal", + "Pic": "barrel_flame" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "barrel_flame_wreck" + }, + "Health": 40, + "DestroyGuns": ["fire_explosion"], + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "barrel_skull", + "Pic": { + "Type": "Normal", + "Pic": "barrel_skull" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "barrel_wood_wreck" + }, + "Health": 40, + "DestroyGuns": [ + "explosion1", + "explosion2", + "explosion3" + ], + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "barrel_skull2", + "Pic": { + "Type": "Normal", + "Pic": "barrel_skull2" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "barrel_wood2_wreck" + }, + "Health": 40, + "DestroyGuns": [ + "explosion1", + "explosion2", + "explosion3" + ], + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "box_metal_green", + "Pic": { + "Type": "Normal", + "Pic": "box_metal_green" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "box_metal_green_wreck" + }, + "Health": 40, + "DestroyGuns": [ + "big_quake", + "explosion1", + "explosion2", + "explosion3" + ], + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "box3", + "Pic": { + "Type": "Normal", + "Pic": "box3" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "box3_gray_wreck" + }, + "Health": 40, + "DestroyGuns": [ + "big_quake", + "explosion1", + "explosion2", + "explosion3" + ], + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "box_red", + "Pic": { + "Type": "Normal", + "Pic": "box_red" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "table_wood_wreck" + }, + "Health": 40, + "DestroyGuns": ["fire_explosion"], + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "box3_red", + "Pic": { + "Type": "Normal", + "Pic": "box3_red" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "box3_red_wreck" + }, + "Health": 40, + "DestroyGuns": ["fire_explosion"], + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "table_lab", + "Pic": { + "Type": "Normal", + "Pic": "table_lab" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "safe_wreck" + }, + "Health": 60, + "DestroyGuns": ["gas_poison_explosion"], + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "table_plastic_lab", + "Pic": { + "Type": "Normal", + "Pic": "table_plastic_lab" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "table_plastic_lab_wreck" + }, + "Health": 60, + "DestroyGuns": ["gas_poison_explosion"], + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "rocket", + "Pic": { + "Type": "Normal", + "Pic": "rocket" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "rocket_wreck" + }, + "Health": 40, + "DestroyGuns": [ + "big_quake", + "explosion1", + "explosion2", + "explosion3" + ], + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "rocket2", + "Pic": { + "Type": "Normal", + "Pic": "rocket2" + }, + "WreckPic": { + "Type": "Normal", + "Pic": "rocket_wreck" + }, + "Health": 40, + "DestroyGuns": [ + "big_quake", + "explosion1", + "explosion2", + "explosion3" + ], + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "bloodstain", + "Pic": { + "Type": "Normal", + "Pic": "bloodstain" + }, + "Offset": [-6, -11], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "bloodstain2", + "Pic": { + "Type": "Normal", + "Pic": "bloodstain2" + }, + "Offset": [-6, -11], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "wall_skull", + "Pic": { + "Type": "Normal", + "Pic": "wall_skull" + }, + "Offset": [-4, -11], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "wall_skull2", + "Pic": { + "Type": "Normal", + "Pic": "wall_skull2" + }, + "Offset": [-4, -11], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "wall_stuff", + "Pic": { + "Type": "Normal", + "Pic": "wall_stuff" + }, + "Offset": [-4, -14], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "wall_goo", + "Pic": { + "Type": "Normal", + "Pic": "wall_goo" + }, + "Offset": [-5, -11], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "wall_goo2", + "Pic": { + "Type": "Normal", + "Pic": "wall_goo2" + }, + "Offset": [-5, -11], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "bone_blood", + "Pic": { + "Type": "Normal", + "Pic": "bone_blood" + }, + "Offset": [-6, -3], + "Health": 0 + }, + { + "Name": "gibs", + "Pic": { + "Type": "Normal", + "Pic": "gibs" + }, + "Offset": [-6, -3], + "Health": 0 + }, + { + "Name": "skull", + "Pic": { + "Type": "Normal", + "Pic": "skull" + }, + "Offset": [-6, -4], + "Health": 0 + }, + { + "Name": "skull2", + "Pic": { + "Type": "Normal", + "Pic": "skull2" + }, + "Offset": [-6, -4], + "Health": 0 + }, + { + "Name": "goo", + "Pic": { + "Type": "Normal", + "Pic": "goo" + }, + "Offset": [-8, -6], + "Health": 0 + }, + { + "Name": "fan", + "Pic": { + "Type": "Animated", + "Sprites": "fan", + "TicksPerFrame": 4 + }, + "Offset": [-8, -6], + "Health": 0 + }, + { + "Name": "server_blink", + "Pic": { + "Type": "Animated", + "Sprites": "server_blink", + "TicksPerFrame": 40 + }, + "WreckPic": { + "Type": "Normal", + "Pic": "safe2_wreck" + }, + "DestroyGuns": [ + "server_burn" + ], + "Health": 30, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "box3_blink", + "Pic": { + "Type": "Animated", + "Sprites": "box3_blink", + "TicksPerFrame": 40 + }, + "WreckPic": { + "Type": "Normal", + "Pic": "box3_gray_wreck" + }, + "DestroyGuns": ["explosion3", "server_burn"], + "Health": 20, + "Flags": ["Outside", "OneWall"] + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/missions.json new file mode 100644 index 00000000..e401ecf5 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency.cdogscpn/missions.json @@ -0,0 +1,1449 @@ +{ + "Missions": [{ + "Title": "Ascension Inc.", + "Description": "For now, bring the blueprints to our analysts and technical experts, so they can estimate the thread.", + "Type": "Static", + "Width": 37, + "Height": 48, + "WallStyle": "steel", + "FloorStyle": "biggrid", + "RoomStyle": "biggrid", + "ExitStyle": "hazard", + "KeyStyle": "cube", + "DoorStyle": "office", + "Objectives": [{ + "Description": "Collect the blueprints", + "Type": "Collect", + "Pickup": "blueprint", + "Count": 7, + "Required": 3, + "Flags": 0 + }, + { + "Description": "Acquire more data", + "Type": "Collect", + "Pickup": "disk2", + "Count": 3, + "Required": 2, + "Flags": 0 + }, + { + "Description": "Collect a prototype", + "Type": "Collect", + "Pickup": "circuit", + "Count": 1, + "Required": 1, + "Flags": 0 + }, + { + "Description": "Kill mysterious attackers", + "Type": "Kill", + "Index": 0, + "Count": 4, + "Required": 0, + "Flags": 1 + }], + "Enemies": [], + "SpecialChars": [14, + 13, + 12, + 11, + 10], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Machine Pistol", + "Knife", + "Pistol", + "Powergun"], + "Song": "", + "WallMask": "eecc55", + "FloorMask": "acacac", + "RoomMask": "bbffbb", + "AltMask": "b85838", + "Tiles": "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,1,3,3,3,1,4,4,4,4,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,1,3,3,3,1,4,4,4,4,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,1,3,3,3,1,4,4,4,4,1,0,0,0,0,1,0,0,0,2,0,0,0,1,1,1,1,1,1,1,1,0,0,0,2,3,3,3,1,3,3,3,1,4,4,4,4,1,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,0,0,0,1,0,0,0,2,3,3,3,3,3,3,3,1,4,4,4,4,1,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,0,0,0,1,0,0,0,2,3,3,3,3,3,3,3,1,4,4,4,4,1,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,0,0,0,1,0,0,0,2,3,3,3,1,3,3,3,1,4,4,4,4,1,0,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,0,0,0,1,0,0,0,2,3,3,3,1,3,3,3,1,4,4,4,4,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,3,3,3,1,1,1,1,1,4,4,4,4,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,3,3,3,1,3,3,3,1,4,4,4,4,1,1,1,1,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,3,3,3,1,3,3,3,1,4,4,4,4,1,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,3,3,3,1,3,3,3,1,4,4,4,4,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,1,3,3,3,1,4,4,4,4,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,1,4,4,4,4,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,1,4,4,4,4,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,1,3,3,3,1,4,4,4,4,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,1,3,3,3,1,4,4,4,4,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,1,1,1,1,1,4,4,4,4,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,1,3,3,3,1,4,4,4,4,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,1,3,3,3,1,4,4,4,4,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,1,3,3,3,1,4,4,4,4,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,1,3,3,3,1,4,4,4,4,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,3,3,3,3,3,3,3,1,4,4,4,4,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,1,4,4,4,4,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,1,3,3,3,1,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,3,3,3,1,3,3,3,1,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,1,3,3,3,1,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,1,3,3,3,1,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,4,4,4,4,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,4,1,0,1,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,4,1,0,1,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,4,1,0,1,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,4,1,0,1,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,4,1,0,1,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,4,1,0,1,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,4,1,0,1,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,4,1,0,1,3,3,3,3,3,3,1,0,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,1,0,1,3,3,3,3,3,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,1,0,1,3,3,3,3,3,3,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,1,0,1,3,3,3,3,3,3,1,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,1,0,1,3,3,3,3,3,3,1,0,1,1,1,3,3,1,1,1,1,1,1,3,3,1,1,1,1,1,3,3,1,4,4,4,4,4,1,0,1,3,3,3,3,3,3,1,0,1,3,3,3,3,3,3,1,1,3,3,3,3,3,3,1,3,3,3,3,1,4,4,4,4,4,1,0,1,1,258,258,258,258,1,1,0,1,3,3,3,3,3,3,1,1,3,3,3,3,3,3,1,3,3,3,3,1,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,1,3,3,3,3,3,3,1,3,3,3,3,1,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,1,0,0,0,0,0,0,1,0,0,0,0,1,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4", + "StaticItems": [{ + "MapObject": "table_wood_round_terminal", + "Positions": [[27, + 35], + [28, + 35], + [30, + 1], + [30, + 10], + [30, + 19], + [4, + 12], + [3, + 12], + [2, + 12], + [1, + 12], + [17, + 43]] + }, + { + "MapObject": "chair_task", + "Positions": [[27, + 36], + [31, + 20], + [30, + 12], + [30, + 3], + [2, + 14], + [14, + 7], + [16, + 8], + [18, + 7]] + }, + { + "MapObject": "plant", + "Positions": [[25, + 30], + [30, + 30], + [6, + 1], + [8, + 1], + [25, + 1], + [27, + 1], + [12, + 39], + [30, + 39], + [19, + 5], + [14, + 5], + [23, + 27]] + }, + { + "MapObject": "box", + "Positions": [[1, + 20], + [2, + 21]] + }, + { + "MapObject": "box2", + "Positions": [[2, + 20], + [3, + 22], + [1, + 21], + [12, + 43], + [14, + 1], + [15, + 1], + [23, + 2]] + }, + { + "MapObject": "bookshelf", + "Positions": [[31, + 1], + [31, + 10], + [29, + 10], + [31, + 19], + [1, + 1], + [2, + 1], + [1, + 3], + [2, + 3], + [1, + 5], + [2, + 5], + [1, + 7], + [2, + 7], + [15, + 5], + [16, + 5], + [17, + 5], + [18, + 5]] + }, + { + "MapObject": "table_steel", + "Positions": [[29, + 1], + [29, + 19], + [8, + 40], + [7, + 40], + [25, + 43], + [27, + 43]] + }, + { + "MapObject": "cabinet_server", + "Positions": [[3, + 31], + [5, + 31], + [7, + 31], + [8, + 33], + [6, + 33], + [4, + 33], + [3, + 35], + [5, + 35], + [7, + 35]] + }, + { + "MapObject": "box3_gray", + "Positions": [[4, + 31], + [6, + 31], + [8, + 31], + [3, + 33], + [5, + 33], + [7, + 33], + [8, + 35], + [6, + 35], + [4, + 35]] + }, + { + "MapObject": "table_lab", + "Positions": [[21, + 43]] + }, + { + "MapObject": "box3_red", + "Positions": [[3, + 20]] + }, + { + "MapObject": "table", + "Positions": [[7, + 23], + [15, + 10], + [18, + 10]] + }, + { + "MapObject": "statue_ogre", + "Positions": [[22, + 29], + [16, + 29]] + }, + { + "MapObject": "crate2", + "Positions": [[20, + 43], + [25, + 39]] + }], + "StaticWrecks": [], + "StaticCharacters": [{ + "Index": 0, + "Positions": [[28, + 36]] + }, + { + "Index": 1, + "Positions": [[3, + 14]] + }, + { + "Index": 2, + "Positions": [[3, + 2]] + }, + { + "Index": 3, + "Positions": [[2, + 4]] + }, + { + "Index": 5, + "Positions": [[17, + 44]] + }, + { + "Index": 6, + "Positions": [[29, + 3]] + }, + { + "Index": 7, + "Positions": [[15, + 6]] + }, + { + "Index": 8, + "Positions": [[17, + 7]] + }, + { + "Index": 9, + "Positions": [[30, + 21]] + }, + { + "Index": 4, + "Positions": [[12, + 44]] + }], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[29, + 22], + [16, + 44], + [1, + 8], + [7, + 38]], + "Indices": [0, + 0, + 0, + 0] + }, + { + "Index": 1, + "Positions": [[31, + 2], + [29, + 11], + [4, + 36]], + "Indices": [0, + 0, + 0] + }, + { + "Index": 2, + "Positions": [[21, + 44]], + "Indices": [0] + }, + { + "Index": 3, + "Positions": [[30, + 42], + [4, + 40], + [30, + 14], + [13, + 22], + [5, + 22]], + "Indices": [0, + 1, + 2, + 3, + 4] + }], + "StaticKeys": [{ + "Index": 0, + "Positions": [[1, + 13]] + }], + "Start": [33, + 34], + "Exit": { + "Start": [31, + 30], + "End": [36, + 36] + } + }, + { + "Title": "Good old terrorism", + "Description": "As you leave the companies building you noticed that the estate nearby is getting attacked.", + "Type": "Classic", + "Width": 60, + "Height": 60, + "WallStyle": "brick", + "FloorStyle": "dirt", + "RoomStyle": "checker", + "ExitStyle": "hazard", + "KeyStyle": "plain", + "DoorStyle": "alien", + "Objectives": [{ + "Description": "Kill the attackers", + "Type": "Kill", + "Index": 0, + "Count": 25, + "Required": 25, + "Flags": 0 + }, + { + "Description": "Pick up some soda", + "Type": "Collect", + "Pickup": "bottle2", + "Count": 3, + "Required": 0, + "Flags": 5 + }], + "Enemies": [22, + 23, + 24, + 25, + 26, + 27, + 28, + 29], + "SpecialChars": [21, + 20, + 19, + 18, + 17, + 16, + 15, + 14, + 13, + 12, + 11, + 10], + "MapObjectDensities": [{ + "MapObject": "bloodstain", + "Density": 5 + }, + { + "MapObject": "blood2", + "Density": 5 + }, + { + "MapObject": "bulletmarks", + "Density": 5 + }, + { + "MapObject": "scratch", + "Density": 5 + }, + { + "MapObject": "bone_blood", + "Density": 5 + }, + { + "MapObject": "skull", + "Density": 5 + }, + { + "MapObject": "blood0", + "Density": 5 + }, + { + "MapObject": "cabinet_server", + "Density": 10 + }, + { + "MapObject": "plant", + "Density": 10 + }, + { + "MapObject": "table_wood", + "Density": 10 + }, + { + "MapObject": "table_clothed", + "Density": 10 + }, + { + "MapObject": "table_wood_candle", + "Density": 5 + }, + { + "MapObject": "chair_task", + "Density": 10 + }, + { + "MapObject": "table_steel", + "Density": 10 + }, + { + "MapObject": "safe", + "Density": 10 + }, + { + "MapObject": "rod", + "Density": 15 + }, + { + "MapObject": "box3_green", + "Density": 5 + }, + { + "MapObject": "bookshelf2", + "Density": 10 + }, + { + "MapObject": "table_wood_round_terminal", + "Density": 10 + }, + { + "MapObject": "tree", + "Density": 20 + }], + "EnemyDensity": 6, + "Weapons": ["Knife", + "Machine gun", + "Shotgun", + "Powergun", + "Sniper rifle", + "Pistol", + "Machine Pistol"], + "Song": "", + "WallMask": "ff5555", + "FloorMask": "00fc00", + "RoomMask": "ffffff", + "AltMask": "ff7777", + "Walls": 5, + "WallLength": 7, + "CorridorWidth": 2, + "Rooms": { + "Count": 12, + "Min": 10, + "Max": 15, + "Edge": false, + "Overlap": true, + "Walls": 2, + "WallLength": 7, + "WallPad": 2 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 2, + "Max": 3 + }, + "Pillars": { + "Count": 0, + "Min": 1, + "Max": 1 + } + }, + { + "Title": "Diversion", + "Description": "You find out that the terrorists only attacked the civilians to distract you from an assault on your base. But since your fellow soldiers are tougher than nails, the fight isn't over, yet.", + "Type": "Static", + "Width": 35, + "Height": 33, + "WallStyle": "steelwood", + "FloorStyle": "flat", + "RoomStyle": "checker", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "office", + "Objectives": [{ + "Description": "Defeat the remaining intruders", + "Type": "Kill", + "Index": 0, + "Count": 10, + "Required": 10, + "Flags": 0 + }, + { + "Description": "Secure your base", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 100, + "Flags": 16 + }, + { + "Description": "At least your gamer hardware is not damaged!", + "Type": "Collect", + "Pickup": "pci_card", + "Count": 1, + "Required": 0, + "Flags": 1 + }], + "Enemies": [], + "SpecialChars": [11, + 13, + 15, + 16, + 18, + 21, + 17, + 12], + "MapObjectDensities": [{ + "MapObject": "crate2", + "Density": 5 + }, + { + "MapObject": "barrel_blue", + "Density": 5 + }, + { + "MapObject": "crate", + "Density": 5 + }, + { + "MapObject": "bloodstain", + "Density": 5 + }, + { + "MapObject": "blood0", + "Density": 5 + }, + { + "MapObject": "bulletmarks", + "Density": 25 + }, + { + "MapObject": "scratch", + "Density": 15 + }], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Shotgun", + "Powergun", + "Sniper rifle", + "Pulse rifle", + "Pistol", + "Machine Pistol", + "Flamer", + "Heatseeker"], + "Song": "", + "WallMask": "207020", + "FloorMask": "c0ac3c", + "RoomMask": "fce000", + "AltMask": "fcb800", + "Tiles": "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,3,3,3,3,3,3,3,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,3,1,1,3,3,3,1,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,2,3,3,1,1,3,3,3,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,1,1,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,1,1,0,0,0,0,1,1,1,1,1,3,3,3,3,3,3,3,1,1,1,1,1,1,0,0,0,1,3,3,3,3,3,3,3,1,1,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,1,1,1,1,1,2,2,1,1,1,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,2,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,2,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,1,0,0,0,1,1,0,0,1,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,0,0,1,1,3,3,3,3,3,3,3,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,2,2,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,1,1,1,1,1,1,1,4,4,4,4,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,4,4,4,4,4,4", + "StaticItems": [{ + "MapObject": "table_steel", + "Positions": [[22, + 27], + [27, + 27]] + }, + { + "MapObject": "terminal", + "Positions": [[23, + 27], + [33, + 1], + [31, + 1]] + }, + { + "MapObject": "box_wood", + "Positions": [[27, + 24]] + }, + { + "MapObject": "table_clothed", + "Positions": [[24, + 30]] + }, + { + "MapObject": "chair", + "Positions": [[22, + 28], + [12, + 6], + [33, + 2], + [31, + 2]] + }, + { + "MapObject": "bookshelf", + "Positions": [[16, + 6], + [15, + 6], + [14, + 6]] + }, + { + "MapObject": "table_wood", + "Positions": [[13, + 8], + [14, + 12], + [32, + 1]] + }, + { + "MapObject": "barrel", + "Positions": [[18, + 1], + [17, + 1], + [16, + 1], + [15, + 1], + [14, + 1], + [13, + 1], + [12, + 1], + [11, + 1], + [16, + 2]] + }], + "StaticWrecks": [{ + "MapObject": "table", + "Positions": [[27, + 6]] + }, + { + "MapObject": "table_wood_candle", + "Positions": [[21, + 15], + [6, + 21]] + }, + { + "MapObject": "crate", + "Positions": [[14, + 3]] + }], + "StaticCharacters": [{ + "Index": 30, + "Positions": [[11, + 11]] + }, + { + "Index": 32, + "Positions": [[13, + 10]] + }, + { + "Index": 31, + "Positions": [[25, + 26]] + }, + { + "Index": 34, + "Positions": [[31, + 5]] + }, + { + "Index": 33, + "Positions": [[27, + 4]] + }], + "StaticObjectives": [{ + "Index": 2, + "Positions": [[23, + 28]], + "Indices": [0] + }], + "StaticKeys": [], + "Start": [8, + 28], + "Exit": { + "Start": [4, + 24], + "End": [12, + 32] + } + }, + { + "Title": "The warehouse", + "Description": "The terrorists kidnapped an AI expert and stole an experimental AI engine you got from Ascension Inc. It's a good thing you bugged the disk so you know where it got. Get some men and storm the terrorists warehouse!", + "Type": "Static", + "Width": 48, + "Height": 48, + "WallStyle": "steel", + "FloorStyle": "tile", + "RoomStyle": "grid", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "dungeon2", + "Objectives": [{ + "Description": "Subdue the terrorists", + "Type": "Kill", + "Index": 0, + "Count": 23, + "Required": 12, + "Flags": 0 + }, + { + "Description": "Reclaim AI engine", + "Type": "Collect", + "Pickup": "disk1", + "Count": 1, + "Required": 1, + "Flags": 0 + }, + { + "Description": "Destroy AI engine copies", + "Type": "Destroy", + "MapObject": "server_blink", + "Count": 3, + "Required": 3, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [20, + 15, + 13, + 12, + 10, + 11, + 21], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 20 + }, + { + "MapObject": "barrel_skull", + "Density": 10 + }, + { + "MapObject": "barrel", + "Density": 10 + }, + { + "MapObject": "crate2", + "Density": 25 + }, + { + "MapObject": "crate", + "Density": 25 + }], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Powergun", + "Sniper rifle", + "Dynamite", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol", + "Machine Pistol", + "Shotgun"], + "Song": "", + "WallMask": "848484", + "FloorMask": "aaaaff", + "RoomMask": "5c0000", + "AltMask": "008400", + "Tiles": "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,0,0,0,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,1,2,2,1,2,2,2,1,2,2,2,2,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,0,1,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,1,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,1,2050,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,1,1,1,1,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "StaticItems": [{ + "MapObject": "box3_gray", + "Positions": [[5, + 26]] + }, + { + "MapObject": "terminal", + "Positions": [[13, + 1]] + }], + "StaticWrecks": [], + "StaticCharacters": [{ + "Index": 35, + "Positions": [[40, + 18]] + }, + { + "Index": 36, + "Positions": [[42, + 18]] + }], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[30, + 39], + [10, + 9], + [9, + 25], + [30, + 10], + [23, + 21], + [5, + 10], + [30, + 29], + [26, + 17], + [5, + 37], + [15, + 17], + [44, + 28], + [7, + 43]], + "Indices": [0, + 0, + 1, + 1, + 2, + 3, + 3, + 3, + 4, + 4, + 5, + 6] + }, + { + "Index": 1, + "Positions": [[13, + 2]], + "Indices": [0] + }, + { + "Index": 2, + "Positions": [[19, + 35], + [20, + 35], + [21, + 35]], + "Indices": [0, + 0, + 0] + }], + "StaticKeys": [], + "Start": [43, + 15], + "Exit": { + "Start": [38, + 11], + "End": [47, + 20] + } + }, + { + "Title": "Model X-Vanguard", + "Description": "You didn't find the AI expert. As you are about to leave, you hear a noise like [TARGETING PROTOCOL LOADED]. Go check it out...", + "Type": "Static", + "Width": 48, + "Height": 48, + "WallStyle": "steel", + "FloorStyle": "tile", + "RoomStyle": "grid", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "dungeon2", + "Objectives": [{ + "Description": "Get rid of that thing!", + "Type": "Kill", + "Index": 0, + "Count": 1, + "Required": 1, + "Flags": 1 + }], + "Enemies": [], + "SpecialChars": [37], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 10 + }, + { + "MapObject": "barrel_skull", + "Density": 5 + }, + { + "MapObject": "barrel", + "Density": 5 + }, + { + "MapObject": "crate2", + "Density": 5 + }, + { + "MapObject": "crate", + "Density": 5 + }, + { + "MapObject": "bloodstain", + "Density": 15 + }, + { + "MapObject": "bulletmarks", + "Density": 15 + }, + { + "MapObject": "blood0", + "Density": 5 + }, + { + "MapObject": "blood2", + "Density": 5 + }], + "EnemyDensity": 0, + "Weapons": ["Machine gun", + "Powergun", + "Shotgun", + "Sniper rifle", + "Dynamite", + "Pistol", + "Machine Pistol"], + "Song": "", + "WallMask": "848484", + "FloorMask": "aaaaff", + "RoomMask": "00fcfc", + "AltMask": "008400", + "Tiles": "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,0,0,0,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,1,2,2,1,2,2,2,1,2,2,2,2,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,0,1,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,1,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,1,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,1,1,1,1,1,1,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "StaticItems": [], + "StaticWrecks": [{ + "MapObject": "barrel_blue", + "Positions": [[29, + 16], + [7, + 19]] + }, + { + "MapObject": "crate", + "Positions": [[13, + 22], + [15, + 22], + [16, + 22], + [16, + 21], + [14, + 29], + [20, + 29], + [6, + 36], + [29, + 38], + [29, + 37], + [33, + 20], + [30, + 10], + [14, + 1], + [15, + 1]] + }, + { + "MapObject": "crate2", + "Positions": [[17, + 6], + [19, + 9], + [19, + 10], + [20, + 10], + [16, + 24], + [17, + 24], + [18, + 24], + [18, + 23], + [14, + 22], + [14, + 21], + [29, + 29], + [28, + 30], + [26, + 22], + [12, + 35], + [18, + 35], + [34, + 38]] + }, + { + "MapObject": "barrel", + "Positions": [[10, + 25], + [16, + 4]] + }, + { + "MapObject": "rocket", + "Positions": [[2, + 25], + [44, + 33]] + }, + { + "MapObject": "table_steel", + "Positions": [[36, + 30], + [12, + 9]] + }, + { + "MapObject": "cabinet_server", + "Positions": [[21, + 35], + [20, + 35], + [19, + 35]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[5, + 29]], + "Indices": [0] + }], + "StaticKeys": [], + "Start": [43, + 15], + "Exit": { + "Start": [38, + 11], + "End": [47, + 20] + } + }, + { + "Title": "Treason", + "Description": "That thing was designed to stop armored vehicles, you're lucky to survive. On the plus side, you found evidence that your AI expert is behind this attack. He belongs to a cult that wants to enable free AI that most likely will go insane after a while. He's most likely at home; haul his sorry ass over here!", + "Type": "Static", + "Width": 39, + "Height": 31, + "WallStyle": "brick2", + "FloorStyle": "stone", + "RoomStyle": "tile", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "office", + "Objectives": [{ + "Description": "Arrest the AI expert", + "Type": "Rescue", + "Index": 38, + "Count": 1, + "Required": 1, + "Flags": 0 + }], + "Enemies": [10, + 11, + 12, + 20], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 4, + "Weapons": ["Knife", + "Shotgun", + "Machine Pistol", + "Pistol", + "Confusion bombs"], + "Song": "", + "WallMask": "faccaa", + "FloorMask": "d4d4d4", + "RoomMask": "ffddaa", + "AltMask": "008400", + "Tiles": "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,1,3,0,0,0,0,0,0,0,0,0,0,0,3,1,3,3,3,3,3,1,3,0,0,0,0,0,1,1,3,3,3,3,3,3,3,3,3,3,1,3,0,0,0,0,0,0,0,0,0,0,0,3,1,3,3,3,3,3,3,3,0,0,0,0,0,1,1,3,3,3,3,3,3,3,3,3,3,1,3,0,0,0,0,0,0,0,0,0,0,0,3,1,3,3,3,3,3,3,3,0,0,0,0,0,1,1,3,3,3,3,3,3,3,3,3,3,1,3,0,0,0,0,0,0,0,0,0,0,0,3,1,3,3,3,3,3,1,3,0,0,0,0,0,1,1,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,3,1,3,3,3,3,3,1,3,0,0,0,0,0,1,1,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,3,1,3,3,1,1,1,1,3,0,0,0,0,0,1,1,3,3,3,3,3,3,3,3,3,3,1,3,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,1,1,1,1,1,1,3,3,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1,1,1,1,1,1,3,3,1,1,1,3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1,3,3,3,3,3,3,3,3,3,1,3,0,0,0,1,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,1,3,0,0,0,1,1,0,0,0,0,0,0,3,1,1,1,1,1,1,1,3,3,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,1,3,0,0,0,1,1,0,0,0,0,0,0,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,0,0,0,1,1,0,0,0,0,0,0,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,0,0,0,1,1,0,0,0,0,0,0,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,0,0,0,1,1,0,0,0,0,0,0,3,1,1,1,3,3,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,1,3,0,0,0,1,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,1,3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1,3,3,3,3,3,3,3,3,3,1,3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1,3,3,3,3,3,3,3,3,3,1,3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1,1,1,1,1,1,3,3,1,1,1,3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1", + "StaticItems": [{ + "MapObject": "bookshelf", + "Positions": [[1, + 1], + [2, + 1], + [3, + 1], + [4, + 1], + [9, + 1], + [10, + 1]] + }, + { + "MapObject": "table_clothed", + "Positions": [[2, + 4]] + }, + { + "MapObject": "table", + "Positions": [[8, + 5]] + }, + { + "MapObject": "terminal", + "Positions": [[25, + 14], + [26, + 14], + [8, + 1]] + }, + { + "MapObject": "chair", + "Positions": [[8, + 2]] + }, + { + "MapObject": "safe2", + "Positions": [[32, + 14]] + }, + { + "MapObject": "table_lab", + "Positions": [[32, + 19], + [31, + 19]] + }, + { + "MapObject": "box3_green", + "Positions": [[24, + 21], + [24, + 23]] + }, + { + "MapObject": "box3_red", + "Positions": [[9, + 17], + [11, + 17]] + }, + { + "MapObject": "box3", + "Positions": [[10, + 17]] + }, + { + "MapObject": "tree", + "Positions": [[4, + 25], + [19, + 5], + [35, + 4]] + }, + { + "MapObject": "barrel", + "Positions": [[26, + 1]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[29, + 1], + [28, + 1]] + }, + { + "MapObject": "crate2", + "Positions": [[27, + 1], + [27, + 2], + [19, + 1], + [20, + 1], + [20, + 2]] + }, + { + "MapObject": "box3_gray", + "Positions": [[17, + 21]] + }, + { + "MapObject": "crate", + "Positions": [[37, + 17], + [7, + 17], + [6, + 17]] + }], + "StaticWrecks": [{ + "MapObject": "crate2", + "Positions": [[29, + 30], + [30, + 30], + [31, + 30], + [32, + 30]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[6, + 3]], + "Indices": [0] + }], + "StaticKeys": [], + "Start": [30, + 28], + "Exit": { + "Start": [28, + 25], + "End": [33, + 30] + } + }, + { + "Title": "AI unleashed", + "Description": "That bastard cyanide pilled himself away during interrogation! But worse, before you captured him, he uploaded that AI into ten of those killer machines in an abandoned factory. As expected, they've become insane and would kill everyone if they ever left the building. It's your job to stop them!", + "Type": "Static", + "Width": 73, + "Height": 75, + "WallStyle": "steel", + "FloorStyle": "striped", + "RoomStyle": "grid", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "office", + "Objectives": [{ + "Description": "Take out the killer machines", + "Type": "Kill", + "Index": 0, + "Count": 10, + "Required": 10, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [39], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 5 + }, + { + "MapObject": "crate2", + "Density": 10 + }, + { + "MapObject": "box3_blink", + "Density": 35 + }, + { + "MapObject": "crate", + "Density": 10 + }, + { + "MapObject": "box2", + "Density": 10 + }, + { + "MapObject": "box", + "Density": 10 + }, + { + "MapObject": "barrel_blue2", + "Density": 5 + }, + { + "MapObject": "barrel_flame", + "Density": 5 + }], + "EnemyDensity": 0, + "Weapons": ["Grenades", + "Shrapnel bombs", + "Molotovs", + "Prox. mine", + "Dynamite", + "Swarmer", + "Launcher", + "Flamer", + "Heatseeker", + "Pulse rifle"], + "Song": "", + "WallMask": "848484", + "FloorMask": "ac9834", + "RoomMask": "00fcfc", + "AltMask": "008400", + "Tiles": "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,3,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,3,3,3,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,1,3,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,3,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,3,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,2,2,2,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,1,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,3,3,3,3,3,3,3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "StaticItems": [], + "StaticWrecks": [], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[8, + 50], + [13, + 65], + [48, + 62], + [32, + 18], + [11, + 17], + [22, + 28], + [52, + 32], + [63, + 45], + [50, + 8], + [63, + 13]], + "Indices": [0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0] + }], + "StaticKeys": [], + "Start": [67, + 68], + "Exit": { + "Start": [61, + 61], + "End": [72, + 74] + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/bullets.json new file mode 100644 index 00000000..83ee7d79 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/bullets.json @@ -0,0 +1,23 @@ +{ + "Version": 2, + "Bullets": [ + + { + "Name": "detonator", + "Pic": { + "Type": "Animated", + "Sprites": "dynamite_active", + "TicksPerFrame": 15 + }, + "Speed": 0, + "Range": 2, + "Persists": true, + "HitsObjects": false, + "OutOfRangeGuns": [ + "explosion1", + "explosion2", + "explosion3" + ] + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/campaign.json new file mode 100644 index 00000000..632d64d9 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/campaign.json @@ -0,0 +1,11 @@ +{ + "Version": 16, + "Title": "AI Insurgency II", + "Author": "Sauer2", + "Description": "You work in the industrial crime department. A big vendor of robotic parts has complained about strangely behaving parts, suspecting sabotage. You were assigned to look into it.", + "Ammo": false, + "WeaponPersist": false, + "SkipWeaponMenu": false, + "RandomPickups": true, + "Missions": 10 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/characters.json new file mode 100644 index 00000000..b1dae77a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/characters.json @@ -0,0 +1,940 @@ +{ + "Version": 13, + "Characters": [{ + "Class": "Jones", + "HairType": "flattop", + "Skin": "ad812dff", + "Arms": "d9c8c8ff", + "Body": "f0f0f0ff", + "Legs": "f7e2e2ff", + "Hair": "b82d2dff", + "Feet": "f7e2e2ff", + "speed": 113, + "Gun": "Prox. mine", + "maxHealth": 40, + "flags": 36308480, + "probabilityToMove": 72, + "probabilityToTrack": 28, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "15985aff", + "Arms": "d9c8c8ff", + "Body": "f0f0f0ff", + "Legs": "f7e2e2ff", + "Hair": "5a7085ff", + "Feet": "f7e2e2ff", + "speed": 113, + "Gun": "Prox. mine", + "maxHealth": 40, + "flags": 36308480, + "probabilityToMove": 72, + "probabilityToTrack": 28, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "c28245ff", + "Arms": "d9c8c8ff", + "Body": "f0f0f0ff", + "Legs": "f7e2e2ff", + "Hair": "703b3bff", + "Feet": "f7e2e2ff", + "speed": 113, + "Gun": "Prox. mine", + "maxHealth": 40, + "flags": 36308480, + "probabilityToMove": 72, + "probabilityToTrack": 28, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beard", + "Skin": "ffd3b0ff", + "Arms": "537ddeff", + "Body": "c6dec6ff", + "Legs": "2027faff", + "Hair": "fc0d0dff", + "Feet": "2027faff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 100, + "flags": 5637120, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Cyborg", + "HairType": "cyber_shades", + "Skin": "cb9367ff", + "Arms": "6b5d5dff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "f55656ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Machine gun", + "maxHealth": 30, + "flags": 12582912, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "goggles", + "Skin": "c2783dff", + "Arms": "4d4545ff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "5f1f1fff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Powergun", + "maxHealth": 30, + "flags": 4194432, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "goggles", + "Skin": "f0b68fff", + "Arms": "958b8bff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "5f1f1fff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Machine gun", + "maxHealth": 30, + "flags": 12582912, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "ski_goggles", + "Skin": "f0b68fff", + "Arms": "9c6161ff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "42c916ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Pulse rifle", + "maxHealth": 30, + "flags": 4194432, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Cyborg", + "HairType": "flattop", + "Skin": "f0b68fff", + "Arms": "838383ff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "f36b00ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Petrify gun", + "maxHealth": 30, + "flags": 13631616, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 25, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "4761e9ff", + "Arms": "78b1a9ff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "a4ff2eff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Pulse rifle", + "maxHealth": 30, + "flags": 13631616, + "probabilityToMove": 50, + "probabilityToTrack": 17, + "probabilityToShoot": 25, + "actionDelay": 26 + }, + { + "Class": "Cyborg", + "HairType": "beret", + "Skin": "dbab4bff", + "Arms": "ece3e3ff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "f55656ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Machine gun", + "maxHealth": 30, + "flags": 13631616, + "probabilityToMove": 50, + "probabilityToTrack": 18, + "probabilityToShoot": 20, + "actionDelay": 22 + }, + { + "Class": "Ogre", + "Skin": "218e21ff", + "Arms": "918d8dff", + "Body": "e2d6d6ff", + "Legs": "002669ff", + "Hair": "1d9114ff", + "Feet": "002669ff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 39846912, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 50 + }, + { + "Class": "Jones", + "HairType": "hogan", + "Skin": "c9893fff", + "Arms": "918d8dff", + "Body": "8bb2d7ff", + "Legs": "476fb1ff", + "Hair": "d03e3eff", + "Feet": "476fb1ff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 39912448, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 50 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "c9893fff", + "Arms": "918d8dff", + "Body": "8b9ed7ff", + "Legs": "004ae2ff", + "Hair": "ffd200ff", + "Feet": "004ae2ff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 39846912, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 50 + }, + { + "Class": "Jones", + "Skin": "58360dff", + "Arms": "0c0ceeff", + "Body": "1744f7ff", + "Legs": "182851ff", + "Hair": "ffd200ff", + "Feet": "182851ff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 39846912, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 50 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "9f6542ff", + "Arms": "918d8dff", + "Body": "cad0d7ff", + "Legs": "476fb1ff", + "Hair": "d03e3eff", + "Feet": "476fb1ff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 39912448, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 50 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "ecb478ff", + "Arms": "918d8dff", + "Body": "76818cff", + "Legs": "476fb1ff", + "Hair": "794848ff", + "Feet": "476fb1ff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 39912448, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 50 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "6ffae9ff", + "Arms": "918d8dff", + "Body": "b5f364ff", + "Legs": "2d8582ff", + "Hair": "ff0e93ff", + "Feet": "2d8582ff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 39912448, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 50 + }, + { + "Class": "Cyborg", + "HairType": "cyber_shades", + "Skin": "cb9367ff", + "Arms": "797979ff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "f55656ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Machine gun", + "maxHealth": 30, + "flags": 46137344, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 38, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "dutch", + "Skin": "ffa460ff", + "Arms": "b18f8fff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "d9a701ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Shrapnel bombs", + "maxHealth": 30, + "flags": 46137344, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 26, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "goggles", + "Skin": "583522ff", + "Arms": "b18f8fff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "e05511ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Dynamite", + "maxHealth": 30, + "flags": 46137344, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 26, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "ffcdb0ff", + "Arms": "b18f8fff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "ee0000ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Heatseeker", + "maxHealth": 30, + "flags": 46137344, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 26, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "c0a5dbff", + "Arms": "797979ff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "f55656ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Machine gun", + "maxHealth": 30, + "flags": 46137344, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 38, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "ffa460ff", + "Arms": "b18f8fff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "726f6fff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Flamer", + "maxHealth": 30, + "flags": 46137344, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 26, + "actionDelay": 15 + }, + { + "Class": "Cyborg", + "HairType": "flattop", + "Skin": "ffcdb0ff", + "Arms": "b18f8fff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "00eea5ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Heatseeker", + "maxHealth": 30, + "flags": 46137344, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 26, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "b87d5aff", + "Arms": "b18f8fff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "979c9bff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Chemo bombs", + "maxHealth": 30, + "flags": 46137344, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 26, + "actionDelay": 15 + }, + { + "Class": "Big Bones", + "Skin": "46b646ff", + "Arms": "58d248ff", + "Body": "43b832ff", + "Legs": "55bd3dff", + "Hair": "c21818ff", + "Feet": "55bd3dff", + "speed": 256, + "Gun": "Flamer", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 12, + "actionDelay": 15 + }, + { + "Class": "Bones", + "Skin": "4662b6ff", + "Arms": "5248d2ff", + "Body": "324db8ff", + "Legs": "3d64bdff", + "Hair": "37c218ff", + "Feet": "3d64bdff", + "speed": 256, + "Gun": "Chemo gun", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 26, + "actionDelay": 15 + }, + { + "Class": "Bones", + "Skin": "46b6b2ff", + "Arms": "3aa9d7ff", + "Body": "32b4b8ff", + "Legs": "3db9bdff", + "Hair": "f50000ff", + "Feet": "3db9bdff", + "speed": 256, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 23, + "actionDelay": 15 + }, + { + "Class": "Big Bones", + "Skin": "39fa00ff", + "Arms": "56fa13ff", + "Body": "0fd900ff", + "Legs": "07de25ff", + "Hair": "c21919ff", + "Feet": "07de25ff", + "speed": 256, + "Gun": "Molotovs", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 25, + "actionDelay": 15 + }, + { + "Class": "Robot", + "Skin": "cbc4c4ff", + "Arms": "404040ff", + "Body": "696969ff", + "Legs": "aaa4a4ff", + "Hair": "e21a02ff", + "Feet": "aaa4a4ff", + "speed": 50, + "Gun": "Heatseeker", + "maxHealth": 160, + "flags": 34604544, + "probabilityToMove": 33, + "probabilityToTrack": 33, + "probabilityToShoot": 34, + "actionDelay": 50 + }, + { + "Class": "Robot", + "Skin": "cbc4c4ff", + "Arms": "404040ff", + "Body": "696969ff", + "Legs": "aaa4a4ff", + "Hair": "02b6e2ff", + "Feet": "aaa4a4ff", + "speed": 50, + "Gun": "Pulse rifle", + "maxHealth": 160, + "flags": 34604544, + "probabilityToMove": 33, + "probabilityToTrack": 33, + "probabilityToShoot": 34, + "actionDelay": 50 + }, + { + "Class": "Robot", + "Skin": "cbc4c4ff", + "Arms": "404040ff", + "Body": "696969ff", + "Legs": "aaa4a4ff", + "Hair": "5ce202ff", + "Feet": "aaa4a4ff", + "speed": 50, + "Gun": "Launcher", + "maxHealth": 160, + "flags": 34604544, + "probabilityToMove": 33, + "probabilityToTrack": 33, + "probabilityToShoot": 34, + "actionDelay": 50 + }, + { + "Class": "Jones", + "HairType": "goggles", + "Skin": "ffe8d6ff", + "Arms": "4d4545ff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "20abfaff", + "Feet": "404040ff", + "speed": 199, + "Gun": "Powergun", + "maxHealth": 30, + "flags": 8388736, + "probabilityToMove": 50, + "probabilityToTrack": 18, + "probabilityToShoot": 8, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "ski_goggles", + "Skin": "f0e2d9ff", + "Arms": "9c6161ff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "5ddbffff", + "Feet": "404040ff", + "speed": 166, + "Gun": "Machine gun", + "maxHealth": 30, + "flags": 12583040, + "probabilityToMove": 50, + "probabilityToTrack": 15, + "probabilityToShoot": 11, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "goggles", + "Skin": "e9dbd3ff", + "Arms": "b18f8fff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "3fcbfaff", + "Feet": "404040ff", + "speed": 150, + "Gun": "Dynamite", + "maxHealth": 30, + "flags": 33554560, + "probabilityToMove": 50, + "probabilityToTrack": 10, + "probabilityToShoot": 26, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "fcf0e8ff", + "Arms": "b18f8fff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "979c9bff", + "Feet": "404040ff", + "speed": 191, + "Gun": "Machine gun", + "maxHealth": 30, + "flags": 37748736, + "probabilityToMove": 50, + "probabilityToTrack": 9, + "probabilityToShoot": 26, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "f5f1f7ff", + "Arms": "797979ff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "56f5f0ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Machine gun", + "maxHealth": 30, + "flags": 34603008, + "probabilityToMove": 50, + "probabilityToTrack": 8, + "probabilityToShoot": 38, + "actionDelay": 15 + }, + { + "Class": "Cyborg", + "HairType": "cyber_shades", + "Skin": "eee9e6ff", + "Arms": "797979ff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "20cde7ff", + "Feet": "404040ff", + "speed": 172, + "Gun": "Swarmer", + "maxHealth": 30, + "flags": 38797440, + "probabilityToMove": 50, + "probabilityToTrack": 12, + "probabilityToShoot": 38, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "4db5b8ff", + "Arms": "2f9132ff", + "Body": "498024ff", + "Legs": "404040ff", + "Hair": "89cbbeff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Launcher", + "maxHealth": 40, + "flags": 4064768, + "probabilityToMove": 0, + "probabilityToTrack": 100, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "95b84dff", + "Arms": "2f9132ff", + "Body": "498024ff", + "Legs": "404040ff", + "Hair": "ff0e00ff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Launcher", + "maxHealth": 40, + "flags": 3802624, + "probabilityToMove": 50, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 50 + }, + { + "Class": "Cyborg", + "HairType": "beret", + "Skin": "b47142ff", + "Arms": "1e231eff", + "Body": "718020ff", + "Legs": "4b7415ff", + "Hair": "79b823ff", + "Feet": "4b7415ff", + "speed": 256, + "Gun": "Launcher", + "maxHealth": 40, + "flags": 3802624, + "probabilityToMove": 50, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 50 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "43211bff", + "Arms": "1e231eff", + "Body": "718020ff", + "Legs": "4b7415ff", + "Hair": "252121ff", + "Feet": "4b7415ff", + "speed": 256, + "Gun": "Launcher", + "maxHealth": 40, + "flags": 3802624, + "probabilityToMove": 50, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 50 + }, + { + "Class": "Cyborg", + "HairType": "flattop", + "Skin": "f5f1f7ff", + "Arms": "797979ff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "60b19aff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Heatseeker", + "maxHealth": 30, + "flags": 34603008, + "probabilityToMove": 50, + "probabilityToTrack": 6, + "probabilityToShoot": 38, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "f5f1f7ff", + "Arms": "797979ff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "56f5f0ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Sniper rifle", + "maxHealth": 30, + "flags": 37748736, + "probabilityToMove": 50, + "probabilityToTrack": 15, + "probabilityToShoot": 38, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "43211bff", + "Arms": "1e231eff", + "Body": "718020ff", + "Legs": "4b7415ff", + "Hair": "252121ff", + "Feet": "4b7415ff", + "speed": 256, + "Gun": "Launcher", + "maxHealth": 40, + "flags": 39978496, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 34, + "actionDelay": 50 + }, + { + "Class": "Cyborg", + "HairType": "beret", + "Skin": "b47142ff", + "Arms": "1e231eff", + "Body": "718020ff", + "Legs": "4b7415ff", + "Hair": "79b823ff", + "Feet": "4b7415ff", + "speed": 256, + "Gun": "Launcher", + "maxHealth": 40, + "flags": 39978496, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 18, + "actionDelay": 50 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "95b84dff", + "Arms": "2f9132ff", + "Body": "498024ff", + "Legs": "404040ff", + "Hair": "ff0e00ff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Launcher", + "maxHealth": 40, + "flags": 39978496, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 13, + "actionDelay": 50 + }, + { + "Class": "Ogre", + "Skin": "4db5b8ff", + "Arms": "2f9132ff", + "Body": "498024ff", + "Legs": "404040ff", + "Hair": "89cbbeff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Launcher", + "maxHealth": 40, + "flags": 39978496, + "probabilityToMove": 18, + "probabilityToTrack": 0, + "probabilityToShoot": 30, + "actionDelay": 50 + }, + { + "Class": "Ogre", + "Skin": "f5f1f7ff", + "Arms": "797979ff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "56f5f0ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Sniper rifle", + "maxHealth": 30, + "flags": 47186048, + "probabilityToMove": 78, + "probabilityToTrack": 15, + "probabilityToShoot": 1, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "goggles", + "Skin": "f5f1f7ff", + "Arms": "797979ff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "56f5f0ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Sniper rifle", + "maxHealth": 30, + "flags": 47186048, + "probabilityToMove": 70, + "probabilityToTrack": 15, + "probabilityToShoot": 1, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "ski_goggles", + "Skin": "f5f1f7ff", + "Arms": "797979ff", + "Body": "c94d4dff", + "Legs": "404040ff", + "Hair": "56f5f0ff", + "Feet": "404040ff", + "speed": 128, + "Gun": "Sniper rifle", + "maxHealth": 30, + "flags": 47186048, + "probabilityToMove": 81, + "probabilityToTrack": 15, + "probabilityToShoot": 2, + "actionDelay": 15 + }, + { + "Class": "Robot", + "Skin": "cbc4c4ff", + "Arms": "404040ff", + "Body": "696969ff", + "Legs": "aaa4a4ff", + "Hair": "f56f06ff", + "Feet": "aaa4a4ff", + "speed": 50, + "Gun": "Detonator", + "maxHealth": 160, + "flags": 42993152, + "probabilityToMove": 41, + "probabilityToTrack": 33, + "probabilityToShoot": 18, + "actionDelay": 50 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/box3_blink.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/box3_blink.txt new file mode 100644 index 00000000..35e04a3f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/box3_blink.txt @@ -0,0 +1,4 @@ +Adapted from Sci-Fi Object Set by Janna +http://opengameart.org/content/sci-fi-object-set + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/box3_blink_16x21.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/box3_blink_16x21.png new file mode 100644 index 00000000..37178fd5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/box3_blink_16x21.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/circuit3.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/circuit3.png new file mode 100644 index 00000000..55adf6c7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/circuit3.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/circuit3.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/circuit3.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/circuit3.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/server_blink.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/server_blink.txt new file mode 100644 index 00000000..35e04a3f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/server_blink.txt @@ -0,0 +1,4 @@ +Adapted from Sci-Fi Object Set by Janna +http://opengameart.org/content/sci-fi-object-set + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/server_blink_16x23.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/server_blink_16x23.png new file mode 100644 index 00000000..e0ada4a9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/server_blink_16x23.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/table_plastic_computer.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/table_plastic_computer.png new file mode 100644 index 00000000..d1158317 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/table_plastic_computer.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/table_plastic_computer.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/table_plastic_computer.txt new file mode 100644 index 00000000..6c6e9a3e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/graphics/table_plastic_computer.txt @@ -0,0 +1,11 @@ +Adapted from + +Tables and Stools +By Jordan Irwin +http://opengameart.org/content/tables-and-stools +http://creativecommons.org/licenses/by/3.0/ + +Kyrodian Legends Overworld Props +By Midi +https://web.archive.org/web/20150319200042/http://opengameart.org/content/kyrodian-legends-overworld-props +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/guns.json new file mode 100644 index 00000000..d0f8e5eb --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/guns.json @@ -0,0 +1,21 @@ +{ + "Version": 1, + "Guns": [ + { + "Pic": "", + "Name": "Detonator", + "Icon": "dynamite", + "Description": "You will light and place a stick of dynamite on the ground, which will burst in a large explosion after 3 seconds.\n\nDamage: Large explosion\nRate of fire: 42 round/min\nLifespan: 3.00s\nCost: 7", + "Bullet": "detonator", + "Cost": 7, + "Lock": 100, + "ReloadLead": 15, + "Sound": "hahaha", + "ReloadSound": "package_r", + "SwitchSound": "package_r", + "MuzzleHeight": 0, + "Ammo": "Dynamite", + "CanDrop": false + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/map_objects.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/map_objects.json new file mode 100644 index 00000000..0a64b332 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/map_objects.json @@ -0,0 +1,57 @@ +{ + "Version": 3, + "MapObjects": [ + { + "Name": "server_blink", + "Pic": { + "Type": "Animated", + "Sprites": "server_blink", + "TicksPerFrame": 40 + }, + "WreckPic": { + "Type": "Normal", + "Pic": "safe2_wreck" + }, + "Health": 80, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "box3_blink", + "Pic": { + "Type": "Animated", + "Sprites": "box3_blink", + "TicksPerFrame": 40 + }, + "WreckPic": { + "Type": "Normal", + "Pic": "box3_gray_wreck" + }, + "DestroyGuns": [ "explosion1", + "explosion2", + "explosion3"], + "Health": 80, + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "table_plastic_computer", + "Pic": { + "Type": "Normal", + "Pic": "table_plastic_computer" + }, + "Wreck": "table_plastic_wreck", + "Health": 80, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "assembled_part", + "Pic": { + "Type": "Normal", + "Pic": "circuit3" + }, + "Wreck": "table_plastic_wreck", + "Health": 10, + "Flags": ["Inside", "NoWalls"] + } + + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/missions.json new file mode 100644 index 00000000..fffb0ea8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ai_insurgency_2.cdogscpn/missions.json @@ -0,0 +1,3813 @@ +{ + "Missions": [{ + "Title": "Ghost Shift", + "Description": "The fab agreed to stop production over night to make investigations possible. The few workers remain, making sure production can continue the next day.", + "Type": "Static", + "Width": 41, + "Height": 44, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Check out a few samples.", + "Type": "Destroy", + "MapObject": "box", + "Count": 17, + "Required": 4, + "Flags": 2 + }, + { + "Description": "Check out some production materials.", + "Type": "Destroy", + "MapObject": "box3_green", + "Count": 5, + "Required": 2, + "Flags": 2 + }, + { + "Description": "Pick up the blueprints.", + "Type": "Collect", + "Pickup": "chip2", + "Count": 1, + "Required": 1, + "Flags": 2 + }, + { + "Description": "A copy of Mutant Zombie Laser Ninja from Hell and Outer Space.", + "Type": "Collect", + "Pickup": "folder", + "Count": 1, + "Required": 0, + "Flags": 1 + }], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office2", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "848484ff", + "MaskAlt": "989898ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "grid", + "Mask": "202020ff", + "MaskAlt": "989898ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "989898ff", + "MaskAlt": "989898ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1", + "3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1", + "3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1", + "3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "3,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "3,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1", + "3,1,0,0,0,0,0,0,0,0,0,0,1,1,1,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1", + "3,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,1,1", + "3,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "3,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "3,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "3,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "3,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "3,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "3,1,1,1,1,1,1,1,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "3,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2,1,1,1,2,2,1,1,1,1,1,1,1", + "3,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1", + "3,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1", + "3,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1", + "3,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1", + "3,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1", + "3,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1", + "3,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1", + "3,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1", + "3,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1", + "3,1,1,1,1,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1", + "3,1,1,1,1,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "3,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "3,1,0,0,0,0,0,3,3,3,3,3,1,1,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,1024,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "fan", + "Positions": [[31, 19], + [39, 19], + [39, 28], + [31, 28]] + }, + { + "MapObject": "box3_gas", + "Positions": [[39, 22], + [39, 23], + [38, 24], + [39, 24]] + }, + { + "MapObject": "crate2", + "Positions": [[34, 28], + [36, 28], + [35, 27], + [35, 28], + [37, 28], + [33, 28], + [32, 28], + [34, 27], + [36, 27], + [34, 26], + [33, 27], + [32, 27], + [37, 27], + [2, 7], + [3, 7], + [2, 8], + [2, 9]] + }, + { + "MapObject": "table_plastic_computer", + "Positions": [[36, 19], + [23, 21], + [29, 23], + [4, 18], + [2, 18]] + }, + { + "MapObject": "box3_blink", + "Positions": [[35, 9], + [36, 9]] + }, + { + "MapObject": "box3_gray", + "Positions": [[30, 10], + [26, 8]] + }, + { + "MapObject": "wscreen2", + "Positions": [[23, 11], + [33, 11], + [12, 11], + [13, 33]] + }, + { + "MapObject": "wscreen1", + "Positions": [[29, 10], + [3, 30]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[30, 8]] + }, + { + "MapObject": "box3_red", + "Positions": [[27, 8], + [15, 31]] + }, + { + "MapObject": "table_steel", + "Positions": [[21, 21], + [22, 22], + [22, 21], + [29, 26], + [28, 26]] + }, + { + "MapObject": "chair", + "Positions": [[29, 24], + [36, 20]] + }, + { + "MapObject": "chair_task", + "Positions": [[21, 22], + [4, 21]] + }, + { + "MapObject": "server_blink", + "Positions": [[21, 19], + [22, 19], + [21, 26], + [22, 26]] + }, + { + "MapObject": "table_plastic", + "Positions": [[25, 28], + [26, 28]] + }, + { + "MapObject": "box2", + "Positions": [[13, 12], + [13, 15], + [13, 18], + [13, 21], + [13, 24], + [13, 27]] + }, + { + "MapObject": "bookshelf2", + "Positions": [[23, 19]] + }, + { + "MapObject": "crate", + "Positions": [[4, 7], + [3, 8]] + }, + { + "MapObject": "drain0", + "Positions": [[2, 34], + [3, 33], + [3, 34], + [4, 37], + [4, 38], + [4, 39], + [2, 33], + [4, 33], + [4, 34]] + }, + { + "MapObject": "cabinet", + "Positions": [[24, 19], + [29, 19]] + }, + { + "MapObject": "cabinet_server", + "Positions": [[38, 9], + [37, 9], + [11, 9], + [26, 10]] + }, + { + "MapObject": "column", + "Positions": [[21, 10], + [15, 10], + [12, 33], + [35, 10], + [2, 30]] + }, + { + "MapObject": "assembled_part", + "Positions": [[15, 9], + [16, 9], + [17, 9], + [18, 9], + [19, 9], + [20, 9], + [21, 9]] + }, + { + "MapObject": "plant", + "Positions": [[38, 1]] + }, + { + "MapObject": "floor_console", + "Positions": [[34, 1], + [35, 1]] + }], + "StaticCharacters": [{ + "Index": 0, + "Positions": [[28, 12]] + }, + { + "Index": 2, + "Positions": [[24, 24]] + }, + { + "Index": 1, + "Positions": [[2, 19]] + }], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[2, 34], + [2, 35], + [2, 38], + [2, 39], + [3, 39], + [3, 38], + [3, 37], + [2, 37], + [2, 36], + [3, 36], + [3, 35], + [3, 34], + [4, 34], + [4, 35], + [4, 36], + [7, 31], + [10, 31]], + "Indices": [0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0] + }, + { + "Index": 1, + "Positions": [[31, 22], + [31, 23], + [31, 24], + [31, 25], + [32, 24]], + "Indices": [0, + 0, + 0, + 0, + 0] + }, + { + "Index": 2, + "Positions": [[23, 22]], + "Indices": [0] + }, + { + "Index": 3, + "Positions": [[36, 1]], + "Indices": [0] + }], + "StaticKeys": [{ + "Index": 2, + "Positions": [[29, 27]] + }], + "StaticPickups": [], + "Start": [4, 3], + "Exits": [{ + "Rect": [6, + 20, + 4, + 5], + "Mission": 1, + "Hidden": false + }] + }, + { + "Title": "Warehouse B", + "Description": "It turns out somebody used fake components with \"alternative\" integrated circuits to create their own parts during an extra shift. Those ICs came from warehouse B. As you arrive there, the building is apparently taken by some goons...", + "Type": "Static", + "Width": 37, + "Height": 25, + "ExitStyle": "hazard2", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Rescue the warehouse manager.", + "Type": "Rescue", + "Index": 3, + "Count": 1, + "Required": 1, + "Flags": 4 + }, + { + "Description": "Take out the attackers.", + "Type": "Kill", + "Index": 0, + "Count": -1, + "Required": 0, + "Flags": 1 + }], + "Enemies": [], + "SpecialChars": [4, + 5, + 6, + 7, + 8, + 9, + 10], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Pistol", "Knife"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office2", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "00c0c0ff", + "MaskAlt": "c0c0c0ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "707070ff", + "MaskAlt": "c0c0c0ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed2", + "Mask": "484848ff", + "MaskAlt": "c0c0c0ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,1", + "1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,3,3,3,3,3,3,3,1", + "1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,3,3,3,3,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1", + "1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1", + "1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,1,1,1", + "1,0,0,0,0,1,2,2,2,2,2,2,2,1,0,0,0,0,0,0,0,0,1,2,2,1,0,0,1,0,0,0,1,0,0,0,1", + "1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,2048,2048,2048,2048,2048,2048,2048,0,0,0,0,0,0,0,0,0,0,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "flower", + "Positions": [[29, 8], + [35, 8]] + }, + { + "MapObject": "box3_green", + "Positions": [[27, 1], + [26, 1], + [25, 1], + [24, 1], + [23, 1], + [22, 1], + [22, 3], + [23, 3], + [24, 3], + [25, 3], + [26, 3], + [27, 3], + [24, 5], + [25, 5], + [26, 5], + [27, 5], + [24, 7], + [25, 7], + [26, 7], + [27, 7], + [23, 7], + [22, 7], + [22, 9], + [23, 9], + [24, 9], + [25, 9], + [26, 9], + [27, 9], + [24, 11], + [25, 11], + [26, 11], + [27, 11]] + }, + { + "MapObject": "box", + "Positions": [[1, 1], + [1, 2], + [1, 3], + [1, 4], + [1, 5], + [1, 6], + [2, 6], + [2, 5], + [2, 4], + [2, 3], + [2, 2], + [2, 1], + [3, 1], + [3, 2], + [3, 3], + [3, 4], + [4, 2], + [4, 1]] + }, + { + "MapObject": "crate2", + "Positions": [[4, 23], + [3, 23], + [2, 23], + [1, 23], + [1, 22], + [1, 21], + [2, 21], + [2, 22], + [3, 22], + [4, 22], + [3, 21], + [4, 21], + [4, 20], + [3, 20], + [2, 20], + [1, 20]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[11, 1], + [12, 1], + [13, 1], + [14, 1], + [15, 1], + [16, 1], + [17, 1], + [18, 1], + [12, 2], + [13, 2], + [14, 2], + [15, 2], + [16, 2], + [17, 2], + [17, 3], + [16, 3], + [15, 3], + [15, 4]] + }, + { + "MapObject": "box3_gas", + "Positions": [[16, 23], + [17, 23], + [18, 23], + [19, 23], + [20, 23], + [15, 23], + [14, 23], + [15, 22], + [16, 22], + [17, 22], + [18, 22], + [19, 22], + [17, 21], + [16, 21], + [18, 21], + [18, 20], + [17, 20], + [16, 20], + [16, 19], + [17, 19], + [17, 18], + [18, 17]] + }, + { + "MapObject": "barrel_flame", + "Positions": [[1, 11], + [1, 14], + [1, 15], + [1, 16], + [2, 16], + [2, 15], + [2, 14], + [2, 13], + [1, 13], + [1, 12], + [2, 12], + [2, 11], + [3, 11], + [3, 12], + [3, 13]] + }, + { + "MapObject": "table", + "Positions": [[34, 13], + [34, 14]] + }, + { + "MapObject": "chair", + "Positions": [[35, 12], + [35, 15], + [35, 4], + [33, 4], + [30, 2]] + }, + { + "MapObject": "table_wood", + "Positions": [[34, 4], + [34, 5], + [31, 1]] + }, + { + "MapObject": "table_wood_round_terminal", + "Positions": [[30, 1]] + }, + { + "MapObject": "fan", + "Positions": [[7, 7], + [21, 7], + [21, 17], + [7, 17]] + }, + { + "MapObject": "bookshelf", + "Positions": [[29, 1]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[33, 2]], + "Indices": [0] + }, + { + "Index": 1, + "Positions": [[31, 4], + [32, 17], + [11, 14], + [23, 15], + [10, 10], + [14, 9], + [6, 14]], + "Indices": [6, + 5, + 4, + 0, + 3, + 1, + 2] + }], + "StaticKeys": [], + "StaticPickups": [], + "Start": [24, 21], + "Exits": [{ + "Rect": [22, + 20, + 3, + 2], + "Mission": 2, + "Hidden": false + }] + }, + { + "Title": "Distraction", + "Description": "You get a warning from military command: Those are fanatic terrorists with a misguided sympathy for synthetic life. Their favorite strategy is creating distractions.\nUnfortunately you hear shots just the minute you read that message. You've got no choice but to go for it.", + "Type": "Classic", + "Width": 50, + "Height": 34, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Activate emergency shelter for the civilians.", + "Type": "Collect", + "Pickup": "radio", + "Count": 1, + "Required": 1, + "Flags": 6 + }], + "Enemies": [11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "table_steel", + "Density": 20 + }, + { + "MapObject": "box_metal_green", + "Density": 20 + }, + { + "MapObject": "server_blink", + "Density": 20 + }, + { + "MapObject": "table_plastic_computer", + "Density": 10 + }, + { + "MapObject": "barrel_blue", + "Density": 25 + }, + { + "MapObject": "crate2", + "Density": 25 + }, + { + "MapObject": "crate", + "Density": 20 + }, + { + "MapObject": "chair_task", + "Density": 10 + }, + { + "MapObject": "cabinet", + "Density": 20 + }, + { + "MapObject": "cabinet_server", + "Density": 20 + }, + { + "MapObject": "wscreen1", + "Density": 10 + }], + "EnemyDensity": 15, + "Weapons": ["Knife", + "Machine gun", + "Powergun", + "Pulse rifle", + "Pistol"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "dc8040ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "484848ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "biggrid", + "Mask": "707070ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 12, + "WallLength": 11, + "CorridorWidth": 1, + "Rooms": { + "Count": 18, + "Min": 5, + "Max": 22, + "Edge": true, + "Overlap": true, + "Walls": 1, + "WallLength": 10, + "WallPad": 3 + }, + "Squares": 0, + "ExitEnabled": true, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 4 + }, + "Pillars": { + "Count": 0, + "Min": 1, + "Max": 1 + } + }, + { + "Title": "Dream Sequence", + "Description": "Before you can enter a safehouse yourself, you slip and hit your head. It gets dark... Fortunately, you are a lucid dreamer.", + "Type": "Cave", + "Width": 45, + "Height": 45, + "ExitStyle": "hazard", + "KeyStyle": "cube", + "Objectives": [{ + "Description": "Destroy nightmare creatures.", + "Type": "Kill", + "Index": 0, + "Count": 15, + "Required": 10, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [26, + 27, + 28, + 29], + "MapObjectDensities": [{ + "MapObject": "wall_goo2", + "Density": 10 + }, + { + "MapObject": "wall_skull2", + "Density": 10 + }, + { + "MapObject": "gibs", + "Density": 5 + }, + { + "MapObject": "blood3", + "Density": 10 + }, + { + "MapObject": "blood4", + "Density": 5 + }, + { + "MapObject": "bloodstain2", + "Density": 5 + }, + { + "MapObject": "skull2", + "Density": 10 + }, + { + "MapObject": "rocket", + "Density": 5 + }, + { + "MapObject": "barrel_skull", + "Density": 5 + }, + { + "MapObject": "tree_autumn", + "Density": 10 + }], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "fc4000ff", + "MaskAlt": "5c5c5cff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "303030ff", + "MaskAlt": "5c5c5cff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "d4d4d4ff", + "MaskAlt": "5c5c5cff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "alien2", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "FillPercent": 44, + "Repeat": 7, + "R1": 5, + "R2": 3, + "Rooms": { + "Count": 24, + "Min": 5, + "Max": 7, + "Edge": true, + "Overlap": true, + "Walls": 1, + "WallLength": 1, + "WallPad": 1 + }, + "Squares": 1, + "ExitEnabled": false, + "DoorsEnabled": true + }, + { + "Title": "Ruins", + "Description": "As you wake up you realize the whole district has been destroyed. Seems like the fanatics didn't need a distraction after all. You need to get out of here, fast.", + "Type": "Static", + "Width": 74, + "Height": 75, + "ExitStyle": "hazard", + "KeyStyle": "plain", + "Objectives": [{ + "Description": "This isn't the time to create paper planes!", + "Type": "Collect", + "Pickup": "paper2", + "Count": 1, + "Required": 0, + "Flags": 1 + }], + "Enemies": [30, + 31, + 32], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 3, + "Weapons": ["Knife"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "dc8040ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "biggrid", + "Mask": "707070ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "484848ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,3,0,0,0,1,1,0,0,0,1,1,1,1,1,1,4,4,4,4,4,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,3,0,0,0,0,0,0,0,0,0,1,1,1,1,4,1,4,4,4,4,4,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4,1,4,4,4,4,4,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,4,4,4,4,4,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,1,0,0,0,0,1,3,3,3,3,1,1,3,3,1,1,1,4,4,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,1,0,0,0,0,0,3,3,3,3,1,1,2,2,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,1,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,1,0,0,1,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,1,0,0,0,1,3,3,3,3,1,1,2,2,1,1,1,1,3,3,3,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,1,1,3,3,3,1,0,0,0,0,0,0,1,0,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,1,1,1,1,1,1,1,1,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,0,0,0,0,0,0,0,0,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,0,0,0,0,0,0,1,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,0,0,0,0,0,0,1,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,1,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,3,3,3,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,0,1,3,3,3,1,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,1,0,0,0,0,1,0,0,0,1,0,0,0,1,1,3,3,1,1,2,1,1,0,0,0,0,3,0,3,3,3,3,3,3,3,1,1,1,3,3,3,3,1,0,0,0,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,1,1,1,1,1,1,0,0,0,1,1,0,0,1,1,3,3,3,3,3,0,1,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,1,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,0,0,0,1,1,0,0,0,1,3,3,3,3,3,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,0,0,0,1,1,0,0,0,1,3,3,3,3,3,3,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,1,0,0,0,0,0,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,0,0,0,1,1,0,0,0,1,3,3,3,3,3,3,1,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,1,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,0,0,0,1,1,1,1,1,1,3,1,1,1,2,1,1,0,0,0,1,1,1,1,1,1,1,2,2,2,2,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,1,3,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,3,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,0,0,1,4,4,1,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,0,0,1,4,4,1,0,0,0,1,3,3,3,3,3,3,0,0,0,3,3,3,3,1,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,0,0,0,0,3,3,3,3,3,3,3,0,0,3,3,3,3,1,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,1,0,0,0,0,0,0,1,0,0,0,0,0,3,3,3,3,0,0,0,1,3,3,3,3,3,3,3,0,0,3,3,3,3,1,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,1,0,0,1,1,3,3,3,3,3,0,3,0,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4", + "4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,1,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,1,1,1,1,1,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4", + "4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,1,0,0,0,0,3,3,3,0,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4", + "4,4,4,4,1,1,1,1,1,1,1,2,2,2,2,1,1,1,4,4,1,0,0,0,0,3,3,3,3,3,3,3,3,0,3,3,3,3,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,1,0,0,0,0,3,3,3,3,3,3,0,0,0,3,3,3,3,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,4,4,4,4,4,4,1,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,1,0,1,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,4,4,4,4,4,4,1,1,0,0,0,0,0,0,1,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,1,1,1,1,0,1,1,1,4,4,4,4,4,4,1,0,1,0,0,0,0,0,1,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,1,1,1,1,1,2,1,1,1,1,1,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,1,1,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,1,1,4,4,4,4,1,3,1,4,4,4,4,1,0,0,0,0,0,1,4,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,1,4,4,4,4,1,3,1,4,4,4,4,1,0,0,0,0,0,1,4,1,0,0,0,0,0,0,0,0,0,1,1,3,3,3,1,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,4,4,4,4,1,3,1,4,4,4,4,1,0,0,0,0,0,1,4,1,0,0,0,0,0,0,0,0,0,1,1,3,0,3,1,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,1,4,4,4,4,1,1,1,1,1,1,1,4,1,0,0,1,1,1,1,1,0,0,1,1,0,3,3,1,4,4,4,4,4,4,4,1,1,1,1,2,2,1,1,1,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,1,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,3,3,3,1,0,0,1,0,0,1,1,1,1,1,4,4,4,4,4,4,4,4,1,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,1,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,3,3,3,2,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,1,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,1,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,3,3,3,2,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,1,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,1,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,3,3,3,2,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,1,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,3,3,3,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,2,3,3,3,3,2,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,3,3,3,2,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,4,4,4,4,1,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,4,4,4,4,1,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,1,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,0,3,3,3,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,0,3,3,3,3,3,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,0,0,0,0,0,1,1,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,4,0,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,1024,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "bloodstain2", + "Positions": [[11, 8], + [39, 48], + [60, 36]] + }, + { + "MapObject": "gibs", + "Positions": [[17, 11], + [30, 47]] + }, + { + "MapObject": "table_plastic_wreck", + "Positions": [[12, 9], + [19, 10], + [27, 34], + [30, 37], + [16, 33], + [24, 12]] + }, + { + "MapObject": "crate2_wreck", + "Positions": [[8, 7]] + }, + { + "MapObject": "box3_gray_wreck", + "Positions": [[1, 10]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[15, 10], + [63, 38]] + }, + { + "MapObject": "barrel_wood_wreck", + "Positions": [[13, 15]] + }, + { + "MapObject": "box2", + "Positions": [[8, 12]] + }, + { + "MapObject": "crate", + "Positions": [[41, 17], + [42, 17], + [45, 21], + [65, 36], + [64, 36], + [64, 37], + [7, 30]] + }, + { + "MapObject": "table_wood_wreck", + "Positions": [[26, 19], + [28, 23]] + }, + { + "MapObject": "blood3", + "Positions": [[16, 24], + [24, 20], + [48, 19], + [64, 45], + [14, 43]] + }, + { + "MapObject": "barrel_blue_wreck", + "Positions": [[12, 24], + [12, 25], + [12, 26], + [12, 27], + [12, 28], + [11, 28]] + }, + { + "MapObject": "crate2", + "Positions": [[6, 36], + [5, 36], + [5, 37], + [6, 37], + [9, 36], + [16, 30]] + }, + { + "MapObject": "wscreen1_wreck", + "Positions": [[34, 21], + [26, 32], + [48, 47]] + }, + { + "MapObject": "table_plastic", + "Positions": [[28, 32]] + }, + { + "MapObject": "box_metal_green_wreck", + "Positions": [[8, 20]] + }, + { + "MapObject": "box3_blink", + "Positions": [[26, 14], + [43, 21]] + }, + { + "MapObject": "safe_wreck", + "Positions": [[10, 43], + [37, 37], + [59, 63], + [43, 25], + [46, 37]] + }, + { + "MapObject": "terminal", + "Positions": [[15, 41]] + }, + { + "MapObject": "bench_wreck", + "Positions": [[36, 32], + [32, 25], + [50, 47], + [31, 31]] + }, + { + "MapObject": "server_blink", + "Positions": [[67, 58], + [67, 60], + [67, 62]] + }, + { + "MapObject": "blood1", + "Positions": [[62, 59], + [27, 32], + [6, 10], + [38, 21]] + }, + { + "MapObject": "barrel_skull", + "Positions": [[46, 40], + [46, 41], + [51, 43], + [51, 38]] + }, + { + "MapObject": "rocket_wreck", + "Positions": [[46, 42], + [51, 42], + [51, 41], + [46, 39]] + }, + { + "MapObject": "table_plastic_computer", + "Positions": [[41, 51]] + }, + { + "MapObject": "chair", + "Positions": [[41, 52]] + }, + { + "MapObject": "Dynamite spawner", + "Positions": [[11, 4]] + }, + { + "MapObject": "Launcher spawner", + "Positions": [[6, 21]] + }, + { + "MapObject": "Shrapnel bombs spawner", + "Positions": [[49, 21]] + }, + { + "MapObject": "Sniper rifle spawner", + "Positions": [[15, 42]] + }, + { + "MapObject": "Grenades spawner", + "Positions": [[66, 42]] + }, + { + "MapObject": "box3_green", + "Positions": [[50, 52], + [52, 52], + [60, 45], + [53, 23]] + }, + { + "MapObject": "tree_dead", + "Positions": [[54, 27], + [57, 35], + [49, 34]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[16, 8]], + "Indices": [0] + }], + "StaticKeys": [{ + "Index": 2, + "Positions": [[49, 48]] + }, + { + "Index": 3, + "Positions": [[25, 32]] + }], + "StaticPickups": [], + "Start": [2, 6], + "Exits": [{ + "Rect": [58, + 55, + 10, + 11], + "Mission": 5, + "Hidden": false + }] + }, + { + "Title": "Resistance", + "Description": "Looks like the fanatics finally managed to get their hands on military grade robots. Some of them even got some upgrade on themselves. You can't tell if they are actually controlled by AI, but they sure are dangerous lunatics...", + "Type": "Static", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "plain", + "Objectives": [{ + "Description": "Get to the ogre army squad leader.", + "Type": "Rescue", + "Index": 39, + "Count": 1, + "Required": 1, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Grenades", + "Pulse rifle", + "Launcher", + "Shotgun", + "Sniper rifle", + "Dynamite", + "Machine gun"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "d4d4d4ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare2", + "Mask": "d4d4d4ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "f4944cff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,0,0,1,1,0,0,0,1,1,0,1,0,0,0,1,1,1,0,0,0,0,0,0,1", + "1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,3,3,3,3,3,3,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1", + "1,0,1,3,3,3,3,3,3,3,3,3,3,3,1,0,1,3,3,3,3,3,3,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,1,3,3,3,3,3,3,3,3,3,0,3,0,0,1,3,3,3,0,3,3,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,3,3,3,3,3,3,3,0,3,0,0,0,1,3,0,0,0,0,3,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,3,0,3,3,0,3,3,3,3,3,3,0,0,2,3,3,0,0,3,3,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,3,3,0,3,3,3,3,3,3,3,3,1,0,2,3,3,0,0,3,3,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,1,0,0,0,1,1,1,1,1,1,1,1,0,1,3,3,0,3,0,3,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,3,3,1", + "1,1,0,0,0,0,0,1,1,1,1,0,1,1,1,1,1,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,1,3,3,1", + "1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,1,3,3,1", + "1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,1,3,3,1", + "1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,1,3,3,1", + "1,1,3,3,0,0,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,1,3,0,3,0,0,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,1,3,3,3,3,0,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,1,3,3,3,0,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,2,2,2,2,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1", + "1,1,3,3,3,3,1,1,1,2,2,2,1,1,1,1,1,3,3,3,3,3,3,1,0,0,0,2,0,0,0,0,2,0,0,0,0,2,0,1,1,1,1,1,1,1,1,1", + "1,1,3,3,3,3,1,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,0,0,0,2,0,0,0,0,2,0,0,0,0,2,0,1,1,1,1,1,1,1,1,1", + "1,1,3,3,3,3,1,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,0,0,0,2,0,0,0,0,2,0,0,0,0,2,0,1,1,1,1,1,1,1,1,1", + "1,1,3,3,3,3,1,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,0,0,0,2,0,0,0,0,2,0,0,0,0,2,0,1,1,1,1,1,1,1,1,1", + "1,1,3,3,3,3,1,3,3,3,3,3,3,1,1,3,1,3,3,3,3,3,3,1,0,0,0,2,0,0,0,0,2,0,0,0,0,2,0,0,0,3,3,3,3,3,3,1", + "1,1,1,1,1,1,1,3,3,3,3,3,3,3,1,3,1,3,3,3,3,3,3,1,0,0,0,2,0,0,0,0,2,0,0,0,0,2,0,0,0,3,3,3,3,3,3,1", + "1,1,1,1,1,1,1,3,3,3,3,3,3,1,1,3,1,3,3,3,3,3,3,1,0,0,0,2,0,0,0,0,2,0,0,0,0,2,0,0,0,3,3,3,3,3,3,1", + "1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,0,0,0,2,0,0,0,0,2,0,0,0,0,2,0,0,0,3,3,3,3,3,3,1", + "1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,0,0,0,2,0,0,0,0,2,0,0,0,0,2,0,1,1,1,1,1,1,2,2,1", + "1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,1,1,1,2,2,1,1,1,0,0,0,2,0,0,0,0,2,0,0,0,0,2,0,1,1,1,1,1,1,3,3,1", + "1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,2,0,0,0,0,2,0,1,1,1,1,1,1,3,3,1", + "1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,1,1,1,1,1,1,3,3,1", + "1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,1", + "1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,2,2,1", + "1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,3,3,1", + "1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,3,3,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,1,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,3,3,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,2,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,3,3,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,2,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,2,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,2,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,1,0,0,0,1,1,1,1,1,3,3,3,1,1,1,1,1,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,1,0,0,0,0,0,0,0,1,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,1,0,0,0,0,0,0,0,1,2,2,2,1,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,1,0,0,0,0,0,0,0,1,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,1,0,0,0,0,0,0,0,1,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,1,0,0,0,0,0,0,0,1,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "box3_green", + "Positions": [[41, 1], + [43, 1], + [45, 1], + [46, 2], + [46, 4], + [46, 6], + [45, 7], + [43, 7], + [41, 7]] + }, + { + "MapObject": "tree", + "Positions": [[42, 4], + [39, 3], + [38, 6], + [26, 45], + [28, 43], + [29, 29], + [35, 22], + [34, 24], + [25, 21], + [42, 40], + [41, 40], + [40, 40], + [40, 41], + [40, 42], + [41, 42], + [42, 42], + [42, 43], + [42, 44], + [41, 44], + [40, 44], + [44, 40], + [45, 40], + [46, 40], + [46, 41], + [45, 42], + [44, 43], + [44, 44], + [45, 44], + [46, 44], + [26, 35]] + }, + { + "MapObject": "rocket_wreck", + "Positions": [[5, 8], + [14, 5], + [2, 6], + [37, 2], + [36, 2], + [20, 5], + [19, 6], + [20, 7]] + }, + { + "MapObject": "bloodstain2", + "Positions": [[11, 9]] + }, + { + "MapObject": "barrel_flame", + "Positions": [[18, 30], + [21, 30], + [22, 30], + [23, 30], + [17, 30], + [19, 30], + [20, 30]] + }, + { + "MapObject": "tree_dead_wreck", + "Positions": [[3, 10]] + }, + { + "MapObject": "table_plastic_computer", + "Positions": [[32, 33], + [33, 33], + [34, 33]] + }, + { + "MapObject": "server_blink", + "Positions": [[31, 33], + [30, 33], + [29, 33]] + }, + { + "MapObject": "cabinet_server", + "Positions": [[38, 33], + [37, 33], + [36, 33], + [35, 33], + [37, 9], + [37, 11], + [37, 13], + [39, 9], + [39, 11], + [39, 13]] + }, + { + "MapObject": "table_clothed", + "Positions": [[31, 36]] + }, + { + "MapObject": "table_wood_candle", + "Positions": [[36, 36]] + }, + { + "MapObject": "chair_task", + "Positions": [[34, 34], + [30, 36]] + }, + { + "MapObject": "rod", + "Positions": [[14, 15], + [14, 19]] + }, + { + "MapObject": "box3_blink", + "Positions": [[17, 22], + [17, 24], + [17, 26], + [20, 22], + [20, 24], + [20, 26]] + }, + { + "MapObject": "drain0", + "Positions": [[18, 22], + [19, 22], + [18, 24], + [19, 24], + [18, 26], + [19, 26], + [21, 22], + [22, 22], + [21, 24], + [22, 24], + [21, 26], + [22, 26], + [43, 11], + [43, 12], + [43, 13], + [43, 14], + [43, 15], + [42, 15], + [41, 15]] + }, + { + "MapObject": "barrel_skull", + "Positions": [[17, 14], + [18, 14], + [20, 14], + [30, 19], + [7, 21]] + }, + { + "MapObject": "crate", + "Positions": [[15, 32], + [15, 33], + [16, 33], + [16, 32], + [17, 32], + [19, 39], + [19, 40], + [19, 41], + [19, 42], + [20, 41]] + }, + { + "MapObject": "safe", + "Positions": [[22, 32], + [6, 32], + [7, 32], + [6, 33], + [14, 32]] + }, + { + "MapObject": "table_steel", + "Positions": [[27, 11], + [29, 11], + [31, 11], + [31, 13], + [29, 13], + [27, 13], + [41, 9], + [41, 10], + [41, 11], + [41, 12], + [41, 14], + [41, 13]] + }, + { + "MapObject": "table_wood_round_terminal", + "Positions": [[46, 9]] + }, + { + "MapObject": "barrel_skull2", + "Positions": [[17, 2], + [17, 1], + [18, 1], + [22, 2], + [17, 11], + [6, 3], + [5, 3], + [10, 7], + [9, 3]] + }], + "StaticCharacters": [{ + "Index": 30, + "Positions": [[10, 26]] + }, + { + "Index": 31, + "Positions": [[4, 15], + [35, 30]] + }, + { + "Index": 32, + "Positions": [[30, 24]] + }, + { + "Index": 33, + "Positions": [[35, 15]] + }, + { + "Index": 34, + "Positions": [[33, 15]] + }, + { + "Index": 35, + "Positions": [[21, 37]] + }, + { + "Index": 36, + "Positions": [[3, 20]] + }, + { + "Index": 37, + "Positions": [[29, 45]] + }, + { + "Index": 38, + "Positions": [[20, 17]] + }, + { + "Index": 41, + "Positions": [[46, 31]] + }, + { + "Index": 40, + "Positions": [[45, 31]] + }, + { + "Index": 42, + "Positions": [[46, 35]] + }], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[33, 37]], + "Indices": [0] + }], + "StaticKeys": [{ + "Index": 2, + "Positions": [[25, 1]] + }, + { + "Index": 3, + "Positions": [[24, 1]] + }], + "StaticPickups": [], + "Start": [35, 3], + "Exits": [] + }, + { + "Title": "Sweep", + "Description": "The ogre squad leader tells you that the terrorists have indeed implanted themselves with microchips that allow them to be controlled by an AI. Before you can do anything about it you need to clear the perimeter, because some of the now controlled fanatics seem to have made it into the base.", + "Type": "Static", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Close the doors!", + "Type": "Collect", + "Pickup": "radio", + "Count": 1, + "Required": 1, + "Flags": 0 + }, + { + "Description": "Stop the intruders!", + "Type": "Kill", + "Index": 0, + "Count": 19, + "Required": 19, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [33, + 34, + 35, + 36, + 37, + 38, + 43, + 44], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Shotgun", + "Powergun", + "Pistol", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "fcfcfcff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "c0c0c0ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed2", + "Mask": "ffc9b9ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,0,0,0,0,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,0,0,0,0,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,0,0,0,0,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,0,0,0,0,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,0,0,0,0,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,0,3,3,3,0,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,3,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,3,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,3,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,3,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,3,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,3,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,3,3,3,3,3,3,3,3,3,3,3,3,0,1,1,1,1,1,1,1,3,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "table_plastic_computer", + "Positions": [[37, 1], + [38, 1], + [39, 1]] + }, + { + "MapObject": "cabinet_server", + "Positions": [[40, 1], + [41, 1], + [42, 1], + [43, 1], + [11, 11]] + }, + { + "MapObject": "safe2", + "Positions": [[36, 1], + [35, 1], + [34, 1]] + }, + { + "MapObject": "chair_task", + "Positions": [[39, 2], + [35, 3]] + }, + { + "MapObject": "table_wood_candle", + "Positions": [[33, 6]] + }, + { + "MapObject": "table_clothed", + "Positions": [[33, 7]] + }, + { + "MapObject": "crate2", + "Positions": [[30, 5], + [31, 4], + [30, 2], + [31, 2], + [31, 1], + [27, 21], + [27, 26], + [25, 28]] + }, + { + "MapObject": "crate", + "Positions": [[30, 3], + [30, 4], + [21, 3], + [23, 1], + [22, 1], + [23, 22], + [23, 23], + [24, 24], + [26, 27], + [25, 27], + [27, 22]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[25, 1], + [26, 1], + [27, 1], + [24, 2]] + }, + { + "MapObject": "drain0", + "Positions": [[26, 5], + [6, 34], + [7, 34], + [8, 34], + [9, 34], + [39, 26], + [40, 26], + [41, 26], + [42, 26]] + }, + { + "MapObject": "Sniper rifle spawner", + "Positions": [[31, 5]] + }, + { + "MapObject": "Machine gun spawner", + "Positions": [[31, 6]] + }, + { + "MapObject": "crate_wreck", + "Positions": [[23, 28], + [24, 26], + [25, 23], + [27, 24], + [28, 24], + [29, 24], + [29, 25]] + }, + { + "MapObject": "blood3", + "Positions": [[24, 19], + [27, 30], + [24, 29]] + }, + { + "MapObject": "wscreen1", + "Positions": [[9, 11]] + }, + { + "MapObject": "fan", + "Positions": [[17, 16], + [17, 20], + [24, 14], + [28, 14], + [18, 35], + [31, 35]] + }, + { + "MapObject": "bulletmarks", + "Positions": [[23, 15], + [22, 24], + [31, 15]] + }], + "StaticCharacters": [{ + "Index": 45, + "Positions": [[28, 16]] + }, + { + "Index": 46, + "Positions": [[25, 16]] + }, + { + "Index": 47, + "Positions": [[21, 20]] + }, + { + "Index": 48, + "Positions": [[23, 17]] + }], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[10, 11]], + "Indices": [0] + }, + { + "Index": 1, + "Positions": [[8, 36], + [20, 31], + [25, 30], + [17, 36], + [27, 30], + [30, 36], + [40, 28], + [30, 24], + [15, 37], + [28, 35], + [35, 37], + [42, 31], + [7, 35], + [13, 36], + [29, 31], + [20, 37], + [29, 27], + [40, 36], + [10, 37]], + "Indices": [0, + 0, + 1, + 1, + 2, + 2, + 2, + 3, + 3, + 4, + 4, + 5, + 5, + 5, + 6, + 6, + 7, + 7, + 7] + }], + "StaticKeys": [], + "StaticPickups": [], + "Start": [38, 5], + "Exits": [{ + "Rect": [34, + 2, + 8, + 6], + "Mission": 7, + "Hidden": false + }] + }, + { + "Title": "Valley", + "Description": "None of the soldiers survived the attack. At least you learned the location of the central AI node.", + "Type": "Static", + "Width": 48, + "Height": 103, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [], + "Enemies": [35, + 32, + 34, + 35, + 36, + 38, + 43, + 44], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "tree_dead", + "Density": 10 + }, + { + "MapObject": "tree_autumn", + "Density": 10 + }, + { + "MapObject": "tree_autumn_wreck", + "Density": 15 + }, + { + "MapObject": "tree_wreck", + "Density": 15 + }], + "EnemyDensity": 8, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "tech", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "f4944cff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "00ac00ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "c47038ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,1,3,3,3,3,1,1,3,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,1,1,0,1,1,1,3,0,0,0,1,1,1,1,1,1,1,3,1,1,3,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,1,1,0,0,1,1,3,0,0,0,1,1,1,1,1,1,1,3,1,3,3,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1", + "1,1,1,1,1,1,1,3,0,0,0,1,3,3,0,0,1,1,1,1,1,1,1,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,3,0,0,0,1,2,2,2,2,1,1,1,1,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,1,1,0,0,0,1,3,3,3,3,1,3,3,1,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,1,1,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,0,0,3,3,3,3,3,3,3,1,1,1,1,1,3,3,3,3,3,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,0,0,0,3,3,3,3,0,0,0,0,0,0,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,0,0,0,0,0,0,3,3,3,3,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,0,0,0,3,3,3,3,3,3,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,0,3,3,3,3,3,3,3,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,3,3,3,3,3,1,3,3,3,3,3,3,3,1,1,1,3,1,1,1,3,3,3,3,0,3,3,3,3,3,3,3,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,3,3,3,1,1,1,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,3,3,0,3,3,3,3,3,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,3,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,1,1,1,1,1,3,3,3,0,3,3,3,3,3,3,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,1,1,1,1,1,3,3,3,3,0,3,3,3,3,3,3,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,1,3,1,1,3,3,3,3,3,3,3,1,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,1,1,3,3,3,3,3,3,1,3,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,3,3,3,3,3,1,1,3,1,1,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,1,1,3,1,1,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1", + "1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,1,1,1,1,3,3,3,3,1,1,3,3,3,3,0,3,3,1,3,3,3,3,3,3,3,3,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,1,1,3,3,3,3,0,3,3,1,3,3,3,3,3,3,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,1,1,1,3,3,3,0,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,3,3,3,1,1,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,3,3,0,3,3,3,3,3,3,3,3,1,3,3,1,1,1,1,1,1", + "1,1,1,1,1,1,1,3,3,1,1,1,1,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,3,0,0,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,3,1,1,1,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,3,3,0,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,3,1,3,3,0,3,3,3,1,1,3,3,3,3,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,0,0,3,3,1,1,3,3,3,3,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,3,0,0,0,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,3,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,0,3,3,3,3,3,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,0,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,0,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,0,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,0,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,0,3,3,3,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,1,1,3,3,3,3,3,3,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,1,1,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,3,1,1,3,3,3,3,3,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,1,1,4,4,4,4,4,4,1,1,1,3,3,3,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,1,1,4,4,4,4,4,4,1,1,3,3,3,3,1,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,1,1,1,1,3,3,3,3,1,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,1,1,1,1,1,1,1,1,3,3,3,3,3,1,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,1,1,1,1,1,1,3,1,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,3,3,3,3,3,3,3,1,3,3,3,3,3,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,3,1,1,3,3,3,3,3,3,3,3,3,3,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,1,1,3,3,3,3,3,3,3,3,3,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,1,1,3,3,3,3,3,3,3,3,1,1,1,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,1,1,3,1,3,3,3,3,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,1,1,1,3,3,3,3,3,3,3,1,1,1,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,3,1,3,3,3,3,3,3,1,3,3,1,1,3,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,1,1,3,3,3,0,0,3,3,3,3,1,3,1,1,3,1,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,1,1,1,3,3,3,0,0,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,3,1,3,1,1,3,3,1,3,1,1,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,1,3,3,3,3,3,3,0,0,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,1,3,1,1,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,1,1,1,3,3,3,3,3,3,3,3,0,3,3,3,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,3,3,3,3,3,3,3,3,3,3,3,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,0,0,0,3,3,3,3,3,3,3,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,3,1,1,3,3,3,3,3,3,3,3,1,1,1,3,1,3,3,3,0,0,3,3,3,3,3,3,3,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,3,1,3,3,3,3,3,3,3,3,3,1,4,1,3,1,3,3,3,3,0,0,0,3,3,3,3,3,1,3,3,3,1,1,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,1,1,1,3,3,3,3,3,1,3,3,1,4,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,1,3,3,3,3,3,1,1,1,1,4,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,1,1,3,3,3,3,1,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,1,1,3,1,3,3,1,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,1,3,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,1,1,1,1,1,1,1,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,1,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,1,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,1,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,0,1,1,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,1,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,0,1,1,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,1,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,1,1,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,1,3,1,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,3,3,3,3,3,1,3,3,3,3,3,3,3,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "drain0", + "Positions": [[40, 92], + [14, 10]] + }, + { + "MapObject": "tree", + "Positions": [[30, 89], + [30, 82], + [27, 88], + [23, 85], + [34, 94], + [31, 85], + [29, 85], + [33, 90], + [34, 90], + [35, 90], + [35, 89], + [36, 89], + [27, 76], + [27, 77], + [27, 78], + [27, 79], + [26, 79], + [26, 78], + [25, 78], + [19, 75], + [22, 76], + [23, 77], + [24, 77], + [25, 77], + [25, 76], + [23, 75], + [24, 75], + [25, 75], + [25, 74], + [24, 74], + [23, 74], + [22, 75], + [20, 75], + [21, 75], + [21, 74], + [14, 73], + [15, 73], + [16, 73], + [17, 73], + [17, 72], + [17, 70], + [8, 80], + [7, 74], + [11, 71], + [5, 78], + [5, 79], + [5, 80], + [6, 81], + [7, 82], + [8, 82], + [9, 82], + [10, 85], + [10, 83], + [9, 83], + [6, 83], + [7, 84], + [6, 84], + [8, 84], + [9, 85], + [8, 85], + [9, 84], + [10, 84], + [4, 70], + [4, 69], + [5, 69], + [5, 68], + [4, 61], + [3, 61], + [2, 61], + [2, 62], + [4, 74], + [10, 62], + [9, 62], + [8, 62], + [8, 63], + [7, 63], + [7, 64], + [14, 59], + [13, 52], + [10, 53], + [10, 52], + [17, 53], + [12, 45], + [12, 29], + [13, 29], + [12, 30], + [10, 30], + [8, 32], + [10, 32], + [11, 31], + [9, 31], + [9, 32], + [10, 31], + [11, 30], + [11, 28], + [10, 26], + [11, 29], + [10, 29], + [9, 29], + [8, 30], + [9, 30], + [10, 28], + [14, 25], + [13, 26], + [14, 27], + [14, 29], + [13, 30], + [12, 31], + [12, 32], + [13, 32], + [14, 31], + [15, 31], + [15, 32], + [16, 31], + [16, 32], + [10, 37], + [11, 36], + [13, 34], + [13, 33], + [14, 33], + [14, 32], + [15, 30], + [17, 29], + [9, 23], + [10, 23], + [11, 26], + [12, 26], + [13, 25], + [12, 24], + [12, 23], + [11, 23], + [11, 22], + [11, 21], + [9, 21], + [10, 21], + [23, 24], + [21, 28], + [20, 24], + [23, 31], + [17, 34], + [38, 36], + [38, 28], + [39, 23], + [37, 26], + [28, 30], + [34, 24], + [28, 18], + [29, 18], + [29, 19], + [30, 19], + [31, 20], + [31, 21], + [31, 22], + [41, 17], + [42, 17], + [42, 16], + [42, 13], + [41, 12], + [40, 11], + [40, 10], + [42, 9], + [41, 8], + [41, 9], + [40, 9], + [38, 9], + [37, 9], + [35, 9], + [35, 8], + [35, 6], + [36, 7], + [36, 6], + [37, 5], + [37, 6], + [35, 7], + [33, 7], + [31, 8], + [31, 9], + [31, 10], + [29, 12], + [30, 12], + [30, 11], + [30, 10], + [29, 8], + [33, 40], + [16, 37], + [15, 40], + [21, 36], + [19, 46], + [25, 40], + [28, 42], + [30, 73], + [31, 73], + [31, 74], + [35, 83], + [35, 84], + [37, 86], + [41, 98], + [42, 98], + [41, 101], + [44, 98], + [46, 98], + [44, 101], + [43, 101], + [42, 101], + [41, 99], + [40, 99], + [40, 100], + [39, 101], + [40, 101], + [41, 100], + [42, 100], + [43, 99], + [44, 99], + [45, 98], + [44, 100], + [45, 99], + [46, 99], + [46, 100], + [46, 101], + [45, 101], + [45, 100], + [37, 99], + [37, 98]] + }, + { + "MapObject": "crate2", + "Positions": [[8, 10], + [8, 11], + [7, 11], + [10, 11], + [8, 18]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[8, 9], + [9, 10], + [7, 12]] + }], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [{ + "Index": 3, + "Positions": [[9, 12]] + }], + "StaticPickups": [], + "Start": [40, 93], + "Exits": [{ + "Rect": [11, + 8, + 5, + 4], + "Mission": 8, + "Hidden": false + }] + }, + { + "Title": "The Core", + "Description": "Now that you are in the facility that contains the AI cluster you have to destroy all systems.", + "Type": "Static", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Destroy all nodes!", + "Type": "Destroy", + "MapObject": "server_blink", + "Count": 95, + "Required": 95, + "Flags": 0 + }, + { + "Description": "Destroy the USP devices.", + "Type": "Destroy", + "MapObject": "box3_blink", + "Count": 95, + "Required": 0, + "Flags": 0 + }], + "Enemies": [49, + 50, + 51], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 3, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office2", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "fc1800ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed2", + "Mask": "d4d4d4ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "c0c0c0ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,1,0,0,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,0,0,1,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,0,0,0,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,1,0,0,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,0,0,0,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,0,0,1,1", + "1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1", + "1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "table_plastic_computer", + "Positions": [[23, 17], + [24, 17], + [25, 17]] + }, + { + "MapObject": "wscreen2", + "Positions": [[22, 17], + [26, 17]] + }, + { + "MapObject": "chair", + "Positions": [[24, 21]] + }, + { + "MapObject": "blood4", + "Positions": [[23, 20]] + }, + { + "MapObject": "gibs", + "Positions": [[24, 20]] + }, + { + "MapObject": "box2", + "Positions": [[17, 43], + [18, 43], + [19, 43], + [22, 41], + [26, 36], + [1, 1], + [46, 3]] + }, + { + "MapObject": "crate2", + "Positions": [[34, 1], + [29, 1], + [30, 1], + [46, 45], + [43, 11], + [43, 12], + [43, 13]] + }, + { + "MapObject": "fan", + "Positions": [[6, 6], + [6, 15], + [26, 15], + [26, 6], + [28, 6], + [41, 6], + [41, 41], + [28, 41], + [6, 41], + [20, 41], + [20, 17], + [6, 17]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[19, 40], + [14, 40], + [14, 38], + [19, 38], + [19, 36], + [19, 34], + [19, 28], + [19, 26], + [19, 24], + [19, 22], + [19, 20], + [19, 18], + [14, 36], + [14, 34], + [14, 32], + [14, 30], + [14, 28], + [14, 26], + [14, 24], + [14, 22], + [9, 40], + [9, 38], + [9, 36], + [9, 34], + [9, 32], + [9, 30], + [9, 28], + [9, 26], + [9, 24], + [9, 22], + [9, 20], + [9, 14], + [9, 12], + [9, 10], + [9, 8], + [9, 6], + [19, 14], + [19, 12], + [19, 10], + [19, 8], + [19, 6], + [24, 14], + [24, 12], + [24, 10], + [24, 8], + [24, 6], + [40, 40], + [40, 38], + [40, 36], + [40, 34], + [40, 28], + [40, 26], + [40, 24], + [40, 22], + [40, 20], + [40, 18], + [40, 16], + [40, 14], + [40, 12], + [40, 10], + [40, 8], + [40, 6], + [35, 40], + [35, 38], + [35, 36], + [35, 34], + [35, 28], + [35, 26], + [35, 24], + [35, 22], + [35, 20], + [35, 18], + [35, 16], + [35, 14], + [35, 12], + [35, 10], + [35, 8], + [35, 6], + [30, 40], + [30, 38], + [30, 36], + [30, 34], + [30, 28], + [30, 26], + [30, 24], + [30, 22], + [30, 20], + [30, 18], + [30, 16], + [30, 14], + [30, 12], + [30, 10], + [30, 8], + [30, 6], + [9, 18]], + "Indices": [0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0] + }, + { + "Index": 1, + "Positions": [[18, 18], + [18, 20], + [18, 22], + [18, 24], + [18, 26], + [18, 28], + [18, 34], + [18, 36], + [18, 38], + [18, 40], + [13, 22], + [13, 24], + [13, 26], + [13, 28], + [13, 30], + [13, 32], + [13, 34], + [13, 36], + [13, 38], + [13, 40], + [8, 40], + [8, 38], + [8, 36], + [8, 34], + [8, 32], + [8, 30], + [8, 28], + [8, 26], + [8, 24], + [8, 22], + [8, 20], + [8, 18], + [8, 6], + [8, 8], + [8, 10], + [8, 12], + [8, 14], + [18, 6], + [18, 8], + [18, 10], + [18, 12], + [18, 14], + [23, 14], + [23, 12], + [23, 10], + [23, 8], + [23, 6], + [29, 6], + [29, 8], + [29, 10], + [29, 12], + [29, 14], + [29, 16], + [29, 18], + [29, 20], + [29, 22], + [29, 24], + [29, 26], + [29, 28], + [29, 34], + [29, 36], + [29, 38], + [29, 40], + [34, 40], + [34, 38], + [34, 36], + [34, 34], + [34, 28], + [34, 26], + [34, 24], + [34, 6], + [34, 8], + [34, 10], + [34, 12], + [34, 14], + [34, 16], + [34, 18], + [34, 20], + [34, 22], + [39, 6], + [39, 8], + [39, 10], + [39, 12], + [39, 14], + [39, 16], + [39, 18], + [39, 20], + [39, 22], + [39, 24], + [39, 26], + [39, 28], + [39, 34], + [39, 36], + [39, 38], + [39, 40]], + "Indices": [0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0] + }], + "StaticKeys": [], + "StaticPickups": [], + "Start": [2, 46], + "Exits": [{ + "Rect": [45, + 0, + 2, + 2], + "Mission": 9, + "Hidden": false + }] + }, + { + "Title": "Escape", + "Description": "Destroying all these devices started a fire. The only way out is through the basement, but you notice that there are still killbots between you and the exit. The AI must have sent a signal to self-destruct on sight...", + "Type": "Static", + "Width": 65, + "Height": 25, + "ExitStyle": "hazard", + "KeyStyle": "card", + "Objectives": [{ + "Description": "Get the door opener!", + "Type": "Collect", + "Pickup": "radio", + "Count": 1, + "Required": 1, + "Flags": 4 + }], + "Enemies": [52], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "cabinet_server", + "Density": 15 + }, + { + "MapObject": "box3_blink", + "Density": 25 + }, + { + "MapObject": "table_plastic_computer", + "Density": 15 + }, + { + "MapObject": "wscreen1", + "Density": 15 + }, + { + "MapObject": "crate2", + "Density": 15 + }, + { + "MapObject": "chair_task", + "Density": 5 + }, + { + "MapObject": "barrel_blue", + "Density": 15 + }, + { + "MapObject": "box2", + "Density": 15 + }, + { + "MapObject": "box", + "Density": 15 + }, + { + "MapObject": "table_plastic_wreck", + "Density": 10 + }, + { + "MapObject": "table_plastic", + "Density": 5 + }, + { + "MapObject": "safe", + "Density": 5 + }, + { + "MapObject": "wscreen1_wreck", + "Density": 10 + }, + { + "MapObject": "fan", + "Density": 10 + }], + "EnemyDensity": 19, + "Weapons": ["Machine gun", + "Grenades", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Sniper rifle", + "Pulse rifle", + "Swarmer", + "Heatseeker", + "Launcher"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "dc8040ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "207020ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "5": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare2", + "Mask": "989898ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare2", + "Mask": "989898ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,3,3,3,2,0,1,1", + "1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,2,2,2,2,2,1,1,1,1,1,1,3,3,3,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,2,3,3,3,2,0,0,1", + "1,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,2,3,3,3,3,3,3,3,3,3,1,1,3,3,3,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,2,3,3,3,2,0,0,1", + "1,0,0,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,1,3,1,3,3,1,3,3,3,3,1,1,3,3,3,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,2,1,1,1,0,0,1", + "1,0,5,5,5,1,5,5,1,5,0,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,1,1,2,2,2,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,1", + "1,0,5,5,5,5,5,5,5,5,0,2,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,2,2,2,1,1,2,2,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1", + "1,0,5,5,5,5,5,5,5,5,0,2,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,5,5,5,5,5,5,5,5,0,2,3,3,3,3,1,3,1,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,1,0,0,0,0,0,1,1", + "1,1,5,5,5,1,5,5,5,5,0,1,3,1,3,3,1,3,1,3,3,3,2,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,1,0,1,1,3,3,3,3,1,0,0,0,0,0,1,1", + "1,1,5,5,5,1,5,5,5,5,0,2,3,1,3,3,3,3,3,3,3,3,2,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,2,3,3,3,3,3,3,3,3,3,3,2,0,0,1,3,1,3,3,1,0,0,0,0,1,1,1", + "1,1,5,5,5,1,5,0,5,5,0,2,3,3,3,3,1,1,3,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,3,1,3,1,3,1,3,3,3,2,0,0,2,3,3,3,3,1,0,0,0,0,2,0,1", + "1,1,5,5,5,1,0,5,1,1,1,1,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,1,1,1,2,2,1,1,1,0,0,2,3,3,3,3,3,3,3,3,1,3,2,0,0,2,3,1,1,3,1,1,1,0,0,2,0,1", + "1,1,5,5,5,1,5,5,5,5,1,1,2,2,2,2,2,2,1,1,1,1,1,0,0,1,0,0,0,2,3,3,3,3,1,1,0,0,2,3,1,3,3,3,3,3,3,1,3,2,0,1,1,3,3,3,3,1,0,0,0,0,2,0,1", + "1,1,5,5,5,1,5,5,5,5,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,2,3,3,3,3,1,1,0,0,2,3,3,3,3,3,3,3,3,3,3,2,0,1,1,3,3,3,3,1,0,0,0,0,2,0,1", + "1,1,5,5,5,5,5,5,5,5,1,2,2,2,2,1,0,0,0,1,1,1,0,0,0,0,0,0,0,2,3,3,3,3,2,0,0,0,2,3,1,3,3,1,1,3,3,3,3,2,0,1,1,3,3,3,3,1,0,0,0,0,1,1,1", + "1,0,5,5,5,5,5,5,5,5,1,3,3,3,3,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,1,0,0,0,2,3,3,3,3,3,3,3,1,3,3,2,0,1,1,2,2,2,2,1,1,0,0,0,0,0,1", + "1,0,0,0,1,0,0,1,1,1,1,3,3,3,3,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,3,2,0,1,1,0,0,0,0,0,1,0,0,0,0,0,1", + "1,1,0,0,1,1,0,1,1,1,1,3,3,3,3,2,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,2,2,2,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1", + "1,1,0,0,0,0,0,1,1,1,1,3,3,3,3,2,0,0,1,1,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,1,1,0,0,0,0,1", + "1,1,1,1,0,0,0,1,1,1,1,2,2,2,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1", + "1,1,0,0,0,0,0,1,1,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1", + "1,1,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1", + "1,1,1,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,512,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,256,256,256,256,256,256,256,256,0,0,512,512,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,256,256,0,256,256,256,256,0,0,512,512,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,256,256,256,256,256,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,256,256,256,256,256,256,256,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,256,256,256,256,256,256,256,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,256,256,256,256,0,256,0,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,256,0,256,256,0,256,0,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,256,0,256,256,256,256,256,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,256,256,256,256,0,0,256,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,256,256,256,256,256,256,256,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "cabinet", + "Positions": [[38, 2], + [40, 2]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[39, 2]], + "Indices": [0] + }], + "StaticKeys": [{ + "Index": 0, + "Positions": [[43, 13]] + }, + { + "Index": 1, + "Positions": [[19, 10]] + }], + "StaticPickups": [], + "Start": [2, 21], + "Exits": [{ + "Rect": [58, + 10, + 3, + 5], + "Mission": 10, + "Hidden": false + }] + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/antares3consp.cdogscpn/LICENSE.md b/bios/Game Engines/C-Dogs SDL/cdogs/missions/antares3consp.cdogscpn/LICENSE.md new file mode 100644 index 00000000..2660d3e8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/antares3consp.cdogscpn/LICENSE.md @@ -0,0 +1,45 @@ +## creative commons + +# CC0 1.0 Universal + +``` +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. +``` + +### Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. + +1. __Copyright and Related Rights.__ A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; + + ii. moral rights retained by the original author(s) and/or performer(s); + + iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; + + iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; + + v. rights protecting the extraction, dissemination, use and reuse of data in a Work; + + vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and + + vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. + +2. __Waiver.__ To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. + +3. __Public License Fallback.__ Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. + +4. __Limitations and Disclaimers.__ + + a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. + + b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. + + c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. + + d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/antares3consp.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/antares3consp.cdogscpn/campaign.json new file mode 100644 index 00000000..156ea948 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/antares3consp.cdogscpn/campaign.json @@ -0,0 +1,11 @@ +{ + "Version": 16, + "Title": "Antares III Conspiracy", + "Author": "Sauer2", + "Description": "You are an MP officer on Antares III, a small colony on the planet Jugular 5. This seems like a routine mission: A helpful citizen claims that he has recovered a smuggler spot in a cave on a walk. Check that out.", + "Ammo": false, + "WeaponPersist": false, + "SkipWeaponMenu": false, + "RandomPickups": true, + "Missions": 6 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/antares3consp.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/antares3consp.cdogscpn/characters.json new file mode 100644 index 00000000..a1b7710e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/antares3consp.cdogscpn/characters.json @@ -0,0 +1,356 @@ +{ + "Version": 13, + "Characters": [{ + "Class": "Jones", + "HairType": "hogan", + "Skin": "ff8136ff", + "Arms": "882800ff", + "Body": "ff8136ff", + "Legs": "58589cff", + "Hair": "9c0000ff", + "Feet": "58589cff", + "speed": 256, + "Gun": "Shotgun", + "maxHealth": 40, + "flags": 1049600, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 47, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "9c0000ff", + "Arms": "ff8136ff", + "Body": "9c5858ff", + "Legs": "b79536ff", + "Hair": "c00000ff", + "Feet": "b79536ff", + "speed": 128, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 8389632, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 27, + "actionDelay": 15 + }, + { + "Class": "Jones", + "Skin": "ff8136ff", + "Arms": "b79536ff", + "Body": "ff8136ff", + "Legs": "58589cff", + "Hair": "000000ff", + "Feet": "58589cff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 67, + "actionDelay": 15 + }, + { + "Class": "Jones", + "Skin": "882800ff", + "Arms": "9c5858ff", + "Body": "882800ff", + "Legs": "149c14ff", + "Hair": "58589cff", + "Feet": "149c14ff", + "speed": 320, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 9438208, + "probabilityToMove": 50, + "probabilityToTrack": 75, + "probabilityToShoot": 17, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "149c14ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "c00000ff", + "Feet": "363636ff", + "speed": 384, + "Gun": "Machine gun", + "maxHealth": 50, + "flags": 1536, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 30, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "ff8136ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "000000ff", + "Feet": "363636ff", + "speed": 384, + "Gun": "Powergun", + "maxHealth": 50, + "flags": 1536, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 30, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "b79536ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "000000ff", + "Feet": "363636ff", + "speed": 384, + "Gun": "Sniper rifle", + "maxHealth": 50, + "flags": 1536, + "probabilityToMove": 50, + "probabilityToTrack": 85, + "probabilityToShoot": 30, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "58589cff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "58589cff", + "Feet": "363636ff", + "speed": 256, + "Gun": "Flamer", + "maxHealth": 50, + "flags": 1536, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 30, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "professor", + "Skin": "000000ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "000000ff", + "Feet": "363636ff", + "speed": 512, + "Gun": "Sniper rifle", + "maxHealth": 40, + "flags": 8390144, + "probabilityToMove": 55, + "probabilityToTrack": 55, + "probabilityToShoot": 85, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "professor", + "Skin": "ff8136ff", + "Arms": "ffffffff", + "Body": "363636ff", + "Legs": "58589cff", + "Hair": "363636ff", + "Feet": "58589cff", + "speed": 192, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 23200768, + "probabilityToMove": 65, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 20 + }, + { + "Class": "Robot", + "Skin": "58589cff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "9c9c9cff", + "Hair": "149c14ff", + "Feet": "9c9c9cff", + "speed": 192, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 6423552, + "probabilityToMove": 65, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 10 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "882800ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "363636ff", + "Hair": "ff8136ff", + "Feet": "363636ff", + "speed": 192, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 6423552, + "probabilityToMove": 65, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "363636ff", + "Arms": "ffffffff", + "Body": "d25106ff", + "Legs": "ff8136ff", + "Hair": "c00000ff", + "Feet": "ff8136ff", + "speed": 192, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 6423552, + "probabilityToMove": 65, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 18 + }, + { + "Class": "Jones", + "HairType": "dutch", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "58589cff", + "Legs": "9c9c9cff", + "Hair": "363636ff", + "Feet": "9c9c9cff", + "speed": 192, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 6423552, + "probabilityToMove": 65, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 42 + }, + { + "Class": "Jones", + "HairType": "beard", + "Skin": "ff8136ff", + "Arms": "ffffffff", + "Body": "9c5858ff", + "Legs": "ff8136ff", + "Hair": "882800ff", + "Feet": "ff8136ff", + "speed": 192, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 6423552, + "probabilityToMove": 65, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 27 + }, + { + "Class": "Jones", + "HairType": "professor", + "Skin": "000000ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "000000ff", + "Feet": "363636ff", + "speed": 256, + "Gun": "Flamer", + "maxHealth": 60, + "flags": 8457728, + "probabilityToMove": 50, + "probabilityToTrack": 55, + "probabilityToShoot": 100, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "b79536ff", + "Arms": "ffffffff", + "Body": "9c9c9cff", + "Legs": "58589cff", + "Hair": "000000ff", + "Feet": "58589cff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 40, + "flags": 4064768, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "b79536ff", + "Arms": "149c14ff", + "Body": "b79536ff", + "Legs": "149c14ff", + "Hair": "000000ff", + "Feet": "149c14ff", + "speed": 256, + "Gun": "Molotovs", + "maxHealth": 40, + "flags": 37619200, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Mad bug-eye", + "Skin": "000000ff", + "Arms": "363636ff", + "Body": "149c14ff", + "Legs": "363636ff", + "Hair": "000000ff", + "Feet": "363636ff", + "speed": 384, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 16778752, + "probabilityToMove": 75, + "probabilityToTrack": 50, + "probabilityToShoot": 50, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "ff8136ff", + "Arms": "363636ff", + "Body": "b79536ff", + "Legs": "363636ff", + "Hair": "c00000ff", + "Feet": "363636ff", + "speed": 384, + "Gun": "Launcher", + "maxHealth": 200, + "flags": 58721792, + "probabilityToMove": 45, + "probabilityToTrack": 35, + "probabilityToShoot": 25, + "actionDelay": 25 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/antares3consp.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/antares3consp.cdogscpn/missions.json new file mode 100644 index 00000000..52526c2a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/antares3consp.cdogscpn/missions.json @@ -0,0 +1,2138 @@ +{ + "Missions": [{ + "Title": "The hideout I", + "Description": "You enter the cave, as the smugglers open fire. Joke is on them, since you are armed to the teeth.", + "Type": "Static", + "Width": 48, + "Height": 48, + "ExitStyle": "plate2", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Interrupt their communication", + "Type": "Destroy", + "MapObject": "terminal", + "Count": 5, + "Required": 0, + "Flags": 1 + }, + { + "Description": "Check out these crates", + "Type": "Destroy", + "MapObject": "box", + "Count": 37, + "Required": 26, + "Flags": 0 + }, + { + "Description": "Defend yourself", + "Type": "Kill", + "Index": 2, + "Count": 7, + "Required": 7, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [0, + 1, + 2, + 3], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Powergun", + "Pistol", + "Machine gun", + "Shotgun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "848484ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "008400ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "5": { + "Name": "tile", + "Type": "Floor", + "Style": "stone", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "stone", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,1,1,1,0,0,1,1,1,1,0,0,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4", + "4,1,1,1,1,1,0,0,1,1,0,0,0,1,0,1,1,1,4,4,4,4,4,4,4,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4", + "1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,4,4,4,4,1,1,1,1,1,0,1,4,4,4,1,3,3,3,3,3,1,4,4,1,4,4,4,4,4", + "1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4,1,1,0,0,1,1,0,1,1,1,4,1,3,3,3,3,3,1,1,1,1,4,4,4,4,4", + "1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,1,1,1,0,0,0,0,0,1,1,1,1,1,3,3,3,3,3,1,1,1,1,4,4,4,4,4", + "1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,3,3,3,3,3,1,1,0,1,1,1,4,4,4", + "1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,5,5,5,5,5,5,5,5,5,5,5,1,3,3,3,3,3,1,0,0,1,1,1,4,4,4", + "1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,5,5,5,5,5,1,1,5,5,5,5,1,1,2,2,2,1,1,0,0,0,1,1,4,4,4", + "1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,5,5,5,5,5,1,1,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,1,1,4,4", + "1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,5,5,5,5,1,1,1,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,1,1,4,4", + "1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,1,1,1,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,1,1,1,4,4", + "1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,1,1,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,1,1,1,4", + "1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,1,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,1,1,4", + "4,4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,1,4", + "4,4,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4", + "4,4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,4", + "4,4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4", + "4,4,1,1,1,1,0,0,0,1,1,2,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4", + "4,4,4,4,4,1,1,1,1,1,3,3,3,3,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4", + "4,4,4,4,4,1,1,1,1,1,3,3,3,3,1,1,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4,4", + "4,4,4,4,4,1,1,1,1,1,3,3,3,3,1,1,1,0,1,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1", + "4,4,4,4,4,1,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1", + "4,4,4,4,4,1,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1", + "4,4,4,4,4,1,3,3,3,3,3,3,3,3,1,1,1,0,0,1,1,1,4,4,4,4,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1", + "4,4,4,4,4,1,3,3,3,3,3,3,3,3,1,1,1,0,0,0,0,1,1,4,4,4,4,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,1,1,1,1,1,3,3,3,3,1,1,0,0,0,0,0,0,1,4,4,4,4,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,1,0,1,1,1,1,3,3,3,3,1,1,0,0,0,0,0,1,1,4,1,4,4,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,1,1,1,0,1,1,1,1,3,3,3,3,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1", + "1,1,1,0,0,0,0,0,1,1,1,2,2,1,1,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1", + "1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0", + "1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0", + "4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0", + "4,4,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1", + "4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,0,0,1,1,1,1,4,4,4,4,4", + "4,4,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,1,4,4,1,1,0,0,1,1,1,1,4,4,4,4,4", + "4,4,1,0,0,0,0,1,1,0,0,0,1,0,1,1,1,4,1,1,0,0,1,0,0,0,0,0,0,1,0,1,1,4,4,4,1,1,1,1,1,4,4,4,4,4,4,4", + "4,4,1,1,0,0,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,0,0,1,1,1,1,1,1,4,4,4,4,1,1,1,4,4,4,4,4,4,4,4,4", + "4,4,1,1,1,1,1,4,4,4,4,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "barrel_blue", + "Positions": [[3, 36], + [17, 24], + [18, 24], + [21, 26], + [14, 2], + [28, 3], + [28, 4]] + }, + { + "MapObject": "table_steel", + "Positions": [[36, 3], + [9, 22], + [6, 22]] + }, + { + "MapObject": "chair", + "Positions": [[7, 24], + [38, 5], + [34, 5]] + }, + { + "MapObject": "box3", + "Positions": [[28, 12], + [10, 2], + [11, 2], + [34, 25], + [7, 29], + [15, 41]] + }, + { + "MapObject": "crate", + "Positions": [[18, 5], + [18, 6], + [19, 6], + [45, 24], + [44, 24], + [25, 29], + [24, 29]] + }, + { + "MapObject": "wall_stuff", + "Positions": [[30, 30], + [8, 3]] + }, + { + "MapObject": "barrel_flame", + "Positions": [[32, 29], + [31, 29], + [32, 30], + [32, 31], + [33, 32], + [17, 25], + [20, 26]] + }, + { + "MapObject": "rocket", + "Positions": [[2, 5], + [3, 5], + [3, 6], + [2, 6]] + }, + { + "MapObject": "box3_green", + "Positions": [[24, 5], + [24, 4], + [25, 4], + [21, 40]] + }, + { + "MapObject": "barrel_skull", + "Positions": [[25, 43], + [24, 44], + [24, 43], + [29, 34]] + }, + { + "MapObject": "wall_goo", + "Positions": [[41, 6]] + }, + { + "MapObject": "box3_red", + "Positions": [[36, 17], + [37, 17], + [38, 17], + [38, 16], + [39, 16], + [39, 17], + [38, 18]] + }, + { + "MapObject": "crate2", + "Positions": [[34, 26], + [34, 27], + [35, 27], + [35, 28], + [34, 28], + [17, 4], + [16, 4], + [16, 3], + [18, 13], + [18, 11], + [19, 11], + [19, 12], + [18, 12], + [3, 29], + [1, 31], + [2, 31], + [3, 30]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[8, 22], + [7, 22], + [35, 3], + [37, 3]], + "Indices": [0, + 0, + 0, + 0] + }, + { + "Index": 1, + "Positions": [[8, 42], + [8, 41], + [8, 40], + [9, 40], + [9, 41], + [9, 42], + [11, 40], + [11, 41], + [11, 42], + [12, 42], + [12, 41], + [12, 40], + [19, 25], + [20, 25], + [18, 25], + [19, 26], + [3, 3], + [4, 3], + [5, 3], + [3, 4], + [4, 4], + [5, 4], + [3, 10], + [3, 9], + [3, 8], + [4, 8], + [4, 9], + [4, 10], + [5, 9], + [31, 7], + [32, 7], + [41, 16], + [41, 17], + [40, 17], + [34, 17], + [35, 17], + [35, 16]], + "Indices": [0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0] + }, + { + "Index": 2, + "Positions": [[43, 26], + [31, 24], + [32, 33], + [9, 24], + [24, 7], + [22, 43], + [25, 31], + [5, 43]], + "Indices": [0, + 1, + 2, + 2, + 3, + 3, + 0, + 1] + }], + "StaticKeys": [], + "StaticPickups": [], + "Start": [45, 35], + "Exits": [{ + "Rect": [6, + 19, + 7, + 9], + "Mission": 1, + "Hidden": false + }] + }, + { + "Title": "The hideout II", + "Description": "You start collecting clues as some paramilitary units enter the cave and start attacking.", + "Type": "Static", + "Width": 48, + "Height": 48, + "ExitStyle": "plate2", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Defend yourself", + "Type": "Kill", + "Index": 0, + "Count": 12, + "Required": 10, + "Flags": 0 + }, + { + "Description": "Collect data", + "Type": "Collect", + "Pickup": "chip1", + "Count": 2, + "Required": 2, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [4, + 5, + 6, + 7], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Powergun", + "Pistol", + "Machine gun", + "Shotgun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "848484ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "008400ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "5": { + "Name": "tile", + "Type": "Floor", + "Style": "stone", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "stone", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,1,1,1,0,0,1,1,1,1,0,0,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4", + "4,1,1,1,1,1,0,0,1,1,0,0,0,1,0,1,1,1,4,4,4,4,4,4,4,4,4,1,1,1,4,4,4,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4", + "1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,4,4,4,4,1,1,1,1,1,0,1,4,4,4,1,3,3,3,3,3,1,4,4,1,4,4,4,4,4", + "1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4,1,1,0,0,1,1,0,1,1,1,4,1,3,3,3,3,3,1,1,1,1,4,4,4,4,4", + "1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,1,1,1,0,0,0,0,0,1,1,1,1,1,3,3,3,3,3,1,1,1,1,4,4,4,4,4", + "1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,1,3,3,3,3,3,1,1,0,1,1,1,4,4,4", + "1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,5,5,5,5,5,5,5,5,5,5,5,1,3,3,3,3,3,1,0,0,1,1,1,4,4,4", + "1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,5,5,5,5,5,1,1,5,5,5,5,1,1,2,2,2,1,1,0,0,0,1,1,4,4,4", + "1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,5,5,5,5,5,1,1,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,1,1,4,4", + "1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,5,5,5,5,1,1,1,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,1,1,4,4", + "1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,1,1,1,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,1,1,1,4,4", + "1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,1,1,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,1,1,1,4", + "1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,1,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,1,1,4", + "4,4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,1,4", + "4,4,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4", + "4,4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,4", + "4,4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4", + "4,4,1,1,1,1,0,0,0,1,1,2,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4", + "4,4,4,4,4,1,1,1,1,1,3,3,3,3,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4", + "4,4,4,4,4,1,1,1,1,1,3,3,3,3,1,1,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4,4", + "4,4,4,4,4,1,1,1,1,1,3,3,3,3,1,1,1,0,1,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1", + "4,4,4,4,4,1,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1", + "4,4,4,4,4,1,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1", + "4,4,4,4,4,1,3,3,3,3,3,3,3,3,1,1,1,0,0,1,1,1,4,4,4,4,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1", + "4,4,4,4,4,1,3,3,3,3,3,3,3,3,1,1,1,0,0,0,0,1,1,4,4,4,4,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,1,1,1,1,1,3,3,3,3,1,1,0,0,0,0,0,0,1,4,4,4,4,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,1,0,1,1,1,1,3,3,3,3,1,1,0,0,0,0,0,1,1,4,1,4,4,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,1,1,1,0,1,1,1,1,3,3,3,3,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1", + "1,1,1,0,0,0,0,0,1,1,1,2,2,1,1,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1", + "1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0", + "1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0", + "4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0", + "4,4,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1", + "4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,0,0,1,1,1,1,4,4,4,4,4", + "4,4,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,1,1,4,4,1,1,0,0,1,1,1,1,4,4,4,4,4", + "4,4,1,0,0,0,0,1,1,0,0,0,1,0,1,1,1,4,1,1,0,0,1,0,0,0,0,0,0,1,0,1,1,4,4,4,1,1,1,1,1,4,4,4,4,4,4,4", + "4,4,1,1,0,0,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,0,0,1,1,1,1,1,1,4,4,4,4,1,1,1,4,4,4,4,4,4,4,4,4", + "4,4,1,1,1,1,1,4,4,4,4,1,1,1,1,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "barrel_blue", + "Positions": [[3, 36], + [17, 24], + [18, 24], + [21, 26], + [14, 2], + [28, 3], + [28, 4]] + }, + { + "MapObject": "table_steel", + "Positions": [[36, 3], + [9, 22], + [6, 22]] + }, + { + "MapObject": "chair", + "Positions": [[7, 24], + [38, 5], + [34, 5]] + }, + { + "MapObject": "box3", + "Positions": [[28, 12], + [34, 25], + [7, 29], + [15, 41]] + }, + { + "MapObject": "crate", + "Positions": [[45, 24], + [25, 29], + [24, 29]] + }, + { + "MapObject": "wall_stuff", + "Positions": [[30, 30], + [8, 3]] + }, + { + "MapObject": "barrel_flame", + "Positions": [[32, 29], + [31, 29], + [33, 32], + [17, 25], + [20, 26]] + }, + { + "MapObject": "box3_green", + "Positions": [[24, 5], + [24, 4], + [25, 4], + [21, 40]] + }, + { + "MapObject": "barrel_skull", + "Positions": [[25, 43], + [24, 44], + [24, 43]] + }, + { + "MapObject": "wall_goo", + "Positions": [[41, 6]] + }, + { + "MapObject": "crate2", + "Positions": [[34, 28], + [16, 3], + [18, 13], + [18, 12], + [3, 29], + [1, 31], + [2, 31], + [3, 30]] + }, + { + "MapObject": "box3_red_wreck", + "Positions": [[38, 17], + [37, 15], + [37, 16], + [37, 18], + [36, 18], + [36, 16]] + }, + { + "MapObject": "rocket_wreck", + "Positions": [[37, 17], + [3, 6], + [11, 2], + [2, 5], + [3, 5], + [31, 34], + [32, 31], + [32, 32], + [33, 32], + [32, 30]] + }, + { + "MapObject": "crate2_wreck", + "Positions": [[8, 13], + [7, 13], + [6, 11], + [7, 11], + [7, 12], + [19, 13], + [19, 12], + [19, 11], + [18, 11], + [16, 3], + [17, 4], + [18, 5], + [45, 25], + [46, 26], + [46, 25], + [35, 28], + [35, 27], + [34, 27], + [34, 26], + [11, 13], + [10, 15], + [10, 14], + [5, 5], + [5, 7], + [5, 8], + [5, 6], + [6, 5], + [6, 4], + [5, 4], + [4, 4], + [4, 3], + [10, 43], + [7, 41], + [8, 42], + [9, 42], + [5, 34], + [6, 37], + [6, 36], + [6, 35], + [5, 33], + [4, 32], + [5, 32]] + }, + { + "MapObject": "table_wood_wreck", + "Positions": [[7, 22], + [8, 22], + [35, 3], + [37, 3]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[42, 34], + [44, 26], + [35, 37], + [31, 24], + [44, 34], + [25, 8], + [43, 13], + [32, 35], + [36, 5], + [35, 6]], + "Indices": [0, + 0, + 1, + 1, + 2, + 2, + 3, + 3, + 0, + 1] + }, + { + "Index": 1, + "Positions": [[37, 4], + [9, 23]], + "Indices": [0, 0] + }], + "StaticKeys": [], + "StaticPickups": [], + "Start": [11, 23], + "Exits": [{ + "Rect": [43, + 31, + 4, + 9], + "Mission": 2, + "Hidden": false + }] + }, + { + "Title": "Way to the base", + "Description": "As you leave the cave, you check the terrain for snipers. It's more a habit, but you actually find some. Get the hell out of the area!", + "Type": "Static", + "Width": 55, + "Height": 46, + "ExitStyle": "plate", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Get rid of the snipers", + "Type": "Kill", + "Index": 0, + "Count": 6, + "Required": 0, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [8], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Shotgun", + "Powergun", + "Sniper rifle", + "Pistol"], + "Song": "", + "TileClasses": { + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "664411ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "00a400ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "stone", + "Mask": "94802cff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,1,1,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4", + "0,0,0,0,3,3,0,0,0,0,3,3,3,3,0,0,0,0,0,1,1,0,0,3,3,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "0,0,0,3,3,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1", + "0,0,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1", + "0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1", + "0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "0,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,3,3,3,3,3,3,0,3,3,0,0,0,3,0,0,0,0,0,0,0,0,0,1", + "0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,3,3,3,3,3,3,3,0,0,3,0,3,0,3,3,0,0,0,0,1,1", + "0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,3,0,0,3,3,3,0,0,0,0,0,3,3,3,3,0,0,1,1", + "0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,3,3,3,3,0,3,0,0,0,0,0,3,3,0,0,1,1,1", + "0,0,1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,1,0,0,3,3,3,3,3,0,0,1,1,0,0,3,3,3,0,1,1,1", + "1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,3,3,0,0,3,0,0,1,0,0,0,3,3,3,0,0,1,1", + "1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,3,3,3,3,0,0,0,0,0,0,0,3,3,3,0,0,0,1", + "1,1,1,1,1,1,0,0,0,0,0,3,0,0,3,3,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,3,3,3,0,0,0,0,1", + "1,1,1,1,1,1,0,0,0,0,3,3,3,3,3,3,3,3,0,0,1,0,1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,3,0,0,3,0,0,0,0,0,3,0,0,3,0,0,1,1", + "1,1,1,1,1,1,0,0,0,0,3,3,3,0,0,0,3,0,0,0,0,0,1,0,0,0,0,3,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1", + "1,1,1,1,0,0,0,0,0,3,3,0,0,3,3,3,3,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1", + "1,1,1,1,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1", + "1,1,1,1,0,0,0,3,3,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,1,1,1,1,1", + "1,1,1,0,0,0,3,3,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1", + "1,1,0,0,0,0,3,3,0,0,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1", + "1,1,0,0,0,0,3,0,0,0,1,1,1,1,0,1,1,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,3,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,1,1,1", + "1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1", + "1,1,0,0,3,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,1,1,1", + "1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,1,1,1", + "1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,3,3,0,3,3,3,3,3,3,3,3,0,0,0,3,3,3,3,3,3,0,0,0,3,3,3,3,0,3,3,3,0,1,1,1,1", + "1,0,0,0,0,3,0,0,0,0,0,0,0,0,0,3,3,3,3,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,0,3,3,0,0,0,0,0,0,0,1,1,1,1", + "1,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,3,3,0,3,3,3,3,3,3,3,3,0,3,0,0,0,0,0,0,0,0,0,3,3,0,3,3,0,0,0,0,0,0,0,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,1,1,1,1,1", + "1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,3,3,3,3,3,3,3,0,3,3,0,0,0,1,0,0,0,0,0,0,0,0,0,3,3,0,1,1,0,0,0,0,1,1,1,0,0", + "4,1,1,1,0,0,0,0,1,0,0,0,1,4,1,0,0,0,0,0,3,3,3,3,3,0,3,3,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0", + "4,4,4,1,0,0,0,0,1,1,0,0,1,4,1,0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0", + "4,4,4,1,1,1,0,1,1,1,0,0,1,4,1,1,0,0,0,0,0,0,3,3,3,0,0,0,0,1,1,1,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,4,4,4,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,1,1,1,1,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0", + "4,4,4,4,4,1,1,1,1,1,1,1,1,4,4,4,1,1,1,1,1,1,0,0,0,0,0,0,0,1,4,4,4,4,4,1,4,4,1,1,1,0,0,0,0,0,3,3,3,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,1,4,4,4,4,4,4,4,4,4,4,1,1,1,1,0,0,0,0,0,1,4,4,4,4,4,4,1,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "4,4,4,4,4,4,4,4,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,4,4,1,1,0,0,0,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "tree", + "Positions": [[43, 33], + [25, 32], + [22, 37], + [23, 32], + [49, 16], + [35, 10], + [13, 5]] + }, + { + "MapObject": "wall_goo", + "Positions": [[19, 6], + [22, 25], + [44, 38]] + }, + { + "MapObject": "wall_stuff", + "Positions": [[38, 29], + [31, 17], + [30, 17], + [33, 7], + [7, 2]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[17, 28], + [4, 20]] + }, + { + "MapObject": "tree_autumn", + "Positions": [[24, 34]] + }, + { + "MapObject": "tree_dead", + "Positions": [[11, 18], + [26, 14], + [40, 10]] + }, + { + "MapObject": "crate2", + "Positions": [[40, 6], + [41, 6], + [41, 7], + [42, 7]] + }, + { + "MapObject": "table_wood_wreck", + "Positions": [[10, 1]] + }, + { + "MapObject": "egg_wreck", + "Positions": [[6, 32], + [37, 11]] + }, + { + "MapObject": "tree_autumn_wreck", + "Positions": [[41, 35]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[47, 32], + [44, 40], + [27, 31], + [26, 18], + [49, 18], + [39, 13]], + "Indices": [0, + 0, + 0, + 0, + 0, + 0] + }], + "StaticKeys": [], + "StaticPickups": [], + "Start": [3, 6], + "Exits": [{ + "Rect": [51, + 35, + 3, + 10], + "Mission": 3, + "Hidden": false + }] + }, + { + "Title": "Dept. for Information Security", + "Description": "The files contain information about a weapon trade. A lot of high-tech explosives have been bought for a lot of money. The papers also include security codes for the buyers computer. You know an IT expert that could help, but you better hurry, because the opponent party is after her.", + "Type": "Classic", + "Width": 60, + "Height": 60, + "ExitStyle": "hazard", + "KeyStyle": "plain", + "Objectives": [{ + "Description": "Answer the attack", + "Type": "Kill", + "Index": 0, + "Count": 10, + "Required": 10, + "Flags": 0 + }, + { + "Description": "Find the IT expert before the enemy does", + "Type": "Rescue", + "Index": 16, + "Count": 1, + "Required": 1, + "Flags": 4 + }, + { + "Description": "RTFM for next time", + "Type": "Collect", + "Pickup": "paper2", + "Count": 1, + "Required": 0, + "Flags": 0 + }, + { + "Description": "Find a fiber lamp", + "Type": "Collect", + "Pickup": "holo", + "Count": 1, + "Required": 0, + "Flags": 0 + }], + "Enemies": [14, + 13, + 12, + 11, + 10, + 9], + "SpecialChars": [15], + "MapObjectDensities": [{ + "MapObject": "cabinet_server", + "Density": 5 + }, + { + "MapObject": "plant", + "Density": 5 + }, + { + "MapObject": "chair", + "Density": 5 + }, + { + "MapObject": "barrel_blue", + "Density": 0 + }, + { + "MapObject": "crate", + "Density": 15 + }, + { + "MapObject": "crate2", + "Density": 5 + }, + { + "MapObject": "terminal", + "Density": 15 + }, + { + "MapObject": "bookshelf", + "Density": 5 + }, + { + "MapObject": "safe2", + "Density": 5 + }], + "EnemyDensity": 20, + "Weapons": ["Knife", + "Pistol", + "Shotgun"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "5c5c84ff", + "MaskAlt": "94802cff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "striped", + "Mask": "848484ff", + "MaskAlt": "94802cff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "844400ff", + "MaskAlt": "94802cff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "alien", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 18, + "WallLength": 8, + "CorridorWidth": 1, + "Rooms": { + "Count": 14, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Sergeant Fourquad", + "Description": "It turns out, a guy Sergeant Fourquad is planning something terrible. He plans to blow up the next Ogre Space Station to start a war and to stay employed. You decide to end this madness and ask the IT expert to switch off the intruder alert.", + "Type": "Static", + "Width": 35, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Rid some guards to get into the building.", + "Type": "Kill", + "Index": 0, + "Count": 11, + "Required": 11, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [18], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "dd4444ff", + "MaskAlt": "ccccccff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "bbbbbbff", + "MaskAlt": "ccccccff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "5": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "22cc22ff", + "MaskAlt": "ccccccff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "22cc22ff", + "MaskAlt": "ccccccff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,1,2,2,2,1,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,1", + "1,1,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,1", + "4,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,1", + "4,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,1", + "4,3,1,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,1,2,2,2,1,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1", + "1,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,2,2,2,2,1,1,1,1,0,0,0,0,0,1", + "1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1", + "1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1", + "1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1", + "1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1", + "1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1", + "1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1", + "1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1", + "1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,1,5,5,5,5,5,1", + "1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,0,0,0,0,5,1,5,5,5,5,5,1", + "1,2,2,2,2,1,1,1,1,1,1,1,1,1,0,0,0,0,0,4,4,4,4,0,0,0,0,5,1,1,1,5,5,5,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,4,4,4,4,0,0,0,0,5,1,5,5,5,5,5,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,4,4,4,4,0,0,0,0,5,1,5,5,5,5,5,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,4,4,4,4,0,0,0,0,5,1,5,5,5,5,5,1", + "1,3,3,3,3,1,3,3,1,3,3,3,3,1,0,0,0,0,0,4,4,4,4,0,0,0,0,5,1,5,5,5,5,5,1", + "1,3,3,3,3,1,3,3,1,3,3,3,3,1,0,0,0,0,0,4,4,4,4,0,0,0,0,5,1,5,5,5,5,5,1", + "1,3,3,3,3,1,3,3,1,3,3,3,3,1,0,0,0,0,0,4,4,4,4,0,0,0,0,5,2,5,5,5,5,5,1", + "1,3,3,3,3,1,3,3,1,3,3,3,3,1,0,0,0,0,0,4,4,4,4,0,0,0,0,0,2,0,0,0,0,0,1", + "1,3,3,3,3,1,3,3,1,3,3,3,3,1,0,0,0,0,0,4,4,4,4,0,0,0,0,0,2,0,0,0,0,0,1", + "1,3,3,3,3,1,3,3,1,3,3,3,3,1,0,0,0,0,0,4,4,4,4,0,0,0,0,0,2,0,0,0,0,0,1", + "1,3,3,3,3,1,3,3,1,3,3,3,3,1,0,0,0,0,0,4,4,4,4,0,0,0,0,0,2,0,0,0,0,0,1", + "1,3,3,3,3,1,3,3,1,3,3,3,3,1,0,0,0,0,0,4,4,4,4,0,0,0,0,0,1,0,0,0,0,0,1", + "1,3,3,3,3,1,3,3,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1", + "1,3,3,3,3,1,3,3,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1", + "1,3,3,3,3,1,3,3,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1", + "1,3,3,3,3,1,3,3,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1", + "1,3,3,3,3,1,3,3,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1", + "1,3,3,3,3,1,3,3,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,256,256,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,256,256,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "cabinet_server", + "Positions": [[7, 30], + [6, 33], + [7, 36], + [6, 39], + [7, 42], + [4, 30], + [4, 36], + [4, 42], + [9, 33], + [9, 39]] + }, + { + "MapObject": "terminal", + "Positions": [[11, 27]] + }, + { + "MapObject": "table_clothed", + "Positions": [[12, 27]] + }, + { + "MapObject": "rod", + "Positions": [[16, 2], + [7, 21], + [25, 44], + [16, 44], + [25, 19]] + }, + { + "MapObject": "tree", + "Positions": [[11, 18], + [24, 32], + [24, 21], + [19, 39], + [15, 26], + [25, 41]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[17, 8]] + }, + { + "MapObject": "crate2", + "Positions": [[7, 1], + [8, 1], + [9, 1], + [8, 2]] + }, + { + "MapObject": "table_wood", + "Positions": [[25, 8], + [21, 11]] + }, + { + "MapObject": "chair", + "Positions": [[26, 8], + [22, 11], + [20, 11], + [21, 10], + [25, 9]] + }, + { + "MapObject": "tree_dead", + "Positions": [[31, 44]] + }, + { + "MapObject": "bookshelf", + "Positions": [[23, 1]] + }, + { + "MapObject": "plant", + "Positions": [[19, 1], + [27, 1], + [4, 21], + [1, 21]] + }, + { + "MapObject": "barrel_skull", + "Positions": [[27, 28]] + }, + { + "MapObject": "crate", + "Positions": [[33, 22]] + }, + { + "MapObject": "box3_gray", + "Positions": [[5, 44], + [8, 44], + [5, 29], + [8, 29]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[2, 21], + [15, 12], + [23, 5], + [20, 3], + [25, 4], + [25, 12], + [31, 33], + [31, 16], + [18, 33], + [25, 24], + [20, 7]], + "Indices": [0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0] + }], + "StaticKeys": [{ + "Index": 0, + "Positions": [[11, 28]] + }], + "StaticPickups": [], + "Start": [4, 6], + "Exits": [{ + "Rect": [28, + 1, + 6, + 10], + "Mission": 5, + "Hidden": false + }] + }, + { + "Title": "Inside the mansion", + "Description": "The IT expert manages to switch off the security systems. Now it's your turn to blow up the explosives and take out the sergeant.", + "Type": "Static", + "Width": 35, + "Height": 43, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Take him out", + "Type": "Kill", + "Index": 0, + "Count": 1, + "Required": 1, + "Flags": 0 + }, + { + "Description": "Blow up the explosives", + "Type": "Destroy", + "MapObject": "rocket", + "Count": 180, + "Required": 100, + "Flags": 0 + }], + "Enemies": [18], + "SpecialChars": [19], + "MapObjectDensities": [], + "EnemyDensity": 2, + "Weapons": ["Knife", + "Shotgun", + "Pistol"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "848484ff", + "MaskAlt": "700000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "aaaaaaff", + "MaskAlt": "700000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "grid", + "Mask": "a3cc2bff", + "MaskAlt": "700000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "3,3,3,3,3,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "3,3,3,3,3,2,0,0,0,0,0,2,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,1", + "3,3,3,3,3,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "3,3,3,3,3,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "3,3,3,3,3,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,2,2,1,1,1,2,2,2,2,2,1,1,1,2,2,1,1,1,2,2,1,1,1,2,2,1,1,1,2,2,1,1,1,1", + "1,3,0,0,1,1,3,0,0,0,3,1,1,0,0,0,3,1,3,0,0,3,1,3,0,0,3,1,3,0,0,3,1,3,1", + "1,3,0,0,3,1,3,0,0,0,3,1,3,0,0,0,3,3,3,0,0,3,3,3,0,0,3,3,3,0,0,3,3,3,1", + "1,3,0,0,3,1,3,0,0,0,3,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,0,0,3,1,3,0,0,0,3,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,0,0,3,1,3,0,0,0,3,1,3,0,0,0,3,3,3,0,0,3,3,3,0,0,3,3,3,0,0,0,3,0,1", + "1,3,0,0,3,1,3,0,0,0,3,1,3,0,0,0,1,3,1,0,0,1,3,1,0,0,1,3,1,0,0,1,3,1,1", + "1,3,0,0,3,1,3,0,0,0,3,1,3,0,0,0,3,3,3,0,0,3,3,3,0,0,3,3,3,0,0,3,3,3,1", + "1,3,0,0,3,1,3,0,0,0,3,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,0,0,3,1,3,0,0,0,3,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,0,0,3,1,3,0,0,0,3,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,0,0,3,1,3,0,0,0,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,1", + "1,3,0,0,3,1,3,0,0,0,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,0,3,1,1", + "1,3,0,0,3,1,3,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,1", + "1,3,0,0,3,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,0,0,3,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,0,0,3,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,0,0,3,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,0,0,3,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,3,0,1", + "1,3,0,0,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,0,3,1,1", + "1,3,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,1", + "1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "terminal", + "Positions": [[18, 6], + [31, 6]] + }, + { + "MapObject": "table_steel", + "Positions": [[30, 6], + [24, 1], + [25, 1]] + }, + { + "MapObject": "chair", + "Positions": [[31, 7], + [19, 6]] + }, + { + "MapObject": "bookshelf", + "Positions": [[29, 1], + [30, 1], + [31, 1]] + }, + { + "MapObject": "box3_gray", + "Positions": [[12, 1], + [13, 1], + [14, 1]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[30, 9]], + "Indices": [0] + }, + { + "Index": 1, + "Positions": [[17, 22], + [16, 17], + [18, 17], + [22, 22], + [23, 17], + [21, 17], + [26, 17], + [28, 17], + [27, 22], + [32, 22], + [31, 17], + [33, 17], + [17, 18], + [22, 18], + [27, 18], + [32, 18], + [16, 21], + [18, 21], + [21, 21], + [23, 21], + [26, 21], + [28, 21], + [31, 21], + [33, 21], + [26, 23], + [28, 23], + [31, 23], + [33, 23], + [16, 23], + [18, 23], + [21, 23], + [23, 23], + [16, 27], + [18, 27], + [21, 27], + [23, 27], + [26, 27], + [28, 27], + [13, 27], + [12, 22], + [12, 19], + [12, 20], + [12, 21], + [12, 18], + [12, 23], + [12, 24], + [12, 25], + [12, 26], + [12, 27], + [29, 28], + [32, 28], + [33, 27], + [33, 29], + [33, 34], + [33, 36], + [32, 35], + [29, 35], + [28, 29], + [26, 29], + [24, 29], + [22, 29], + [20, 29], + [18, 29], + [16, 29], + [14, 29], + [12, 29], + [10, 29], + [10, 27], + [10, 25], + [10, 23], + [10, 21], + [10, 19], + [6, 19], + [6, 21], + [6, 23], + [6, 25], + [6, 27], + [6, 29], + [6, 31], + [6, 33], + [7, 34], + [9, 34], + [11, 34], + [13, 34], + [15, 34], + [17, 34], + [19, 34], + [21, 34], + [23, 34], + [25, 34], + [27, 34], + [28, 34], + [28, 36], + [27, 36], + [25, 36], + [23, 36], + [21, 36], + [19, 36], + [17, 36], + [15, 36], + [13, 36], + [11, 36], + [9, 36], + [7, 36], + [5, 36], + [4, 35], + [4, 33], + [4, 31], + [4, 29], + [4, 27], + [4, 25], + [4, 23], + [4, 21], + [4, 19], + [33, 37], + [33, 38], + [33, 39], + [33, 40], + [33, 41], + [32, 41], + [31, 41], + [30, 41], + [29, 41], + [28, 41], + [27, 41], + [26, 41], + [25, 41], + [24, 41], + [23, 41], + [22, 41], + [21, 41], + [20, 41], + [19, 41], + [18, 41], + [17, 41], + [16, 41], + [15, 41], + [14, 41], + [13, 41], + [12, 41], + [11, 41], + [10, 41], + [9, 41], + [8, 41], + [7, 41], + [6, 41], + [5, 41], + [4, 41], + [3, 41], + [2, 41], + [1, 41], + [1, 40], + [1, 39], + [1, 38], + [1, 37], + [1, 36], + [1, 35], + [1, 34], + [1, 33], + [1, 32], + [1, 31], + [1, 30], + [1, 29], + [1, 28], + [1, 27], + [1, 26], + [1, 25], + [1, 24], + [1, 23], + [1, 20], + [1, 22], + [1, 21], + [1, 19], + [1, 18], + [14, 19], + [14, 20], + [14, 21], + [14, 22], + [14, 23], + [14, 24]], + "Indices": [0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0] + }], + "StaticKeys": [], + "StaticPickups": [], + "Start": [2, 6], + "Exits": [] + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/bem.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/bem.cdogscpn/campaign.json new file mode 100644 index 00000000..d30e1edb --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/bem.cdogscpn/campaign.json @@ -0,0 +1,10 @@ +{ + "Version": 15, + "Title": "Bug-Eyed Monsters", + "Author": "Ronny Wester", + "Description": "These irrational foes pop up now and again. Unpredictable and vicious, their primary goal seems to be to make a nuisance of themselves rather than actually attaining any specific goals.", + "Ammo": false, + "WeaponPersist": false, + "SkipWeaponMenu": false, + "Missions": 9 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/bem.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/bem.cdogscpn/characters.json new file mode 100644 index 00000000..505cfde5 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/bem.cdogscpn/characters.json @@ -0,0 +1,486 @@ +{ + "Version": 13, + "Characters": [{ + "Class": "Jones", + "PlayerTemplateName": "Soldier", + "HairType": "beret", + "Skin": "d25106ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "149c14ff", + "Hair": "ff0000ff", + "speed": 256, + "Gun": "Powergun", + "maxHealth": 40, + "flags": 33685504, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 15, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "882800ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "149c14ff", + "Hair": "ff0000ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 33685504, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 15, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "ff8136ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "149c14ff", + "Hair": "ff0000ff", + "speed": 256, + "Gun": "Flamer", + "maxHealth": 40, + "flags": 33685504, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 15, + "actionDelay": 15 + }, + { + "Class": "Jones", + "PlayerTemplateName": "Concerned citizen", + "HairType": "flattop", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "ff6c00ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "882800ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "hogan", + "Skin": "ff8136ff", + "Arms": "ffffffff", + "Body": "9c9c9cff", + "Legs": "363636ff", + "Hair": "9c9c9cff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beard", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ff8136ff", + "Legs": "363636ff", + "Hair": "363636ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "PlayerTemplateName": "Innocent bystander", + "HairType": "ponytail", + "Skin": "d25106ff", + "Arms": "363636ff", + "Body": "9c0000ff", + "Legs": "b79536ff", + "Hair": "9c0000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ff8136ff", + "Legs": "363636ff", + "Hair": "9c0000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "58589cff", + "Legs": "363636ff", + "Hair": "ff8136ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Bug-eye", + "Skin": "9c589cff", + "Arms": "9c589cff", + "Body": "58589cff", + "Legs": "9c589cff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Browny gun", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 35, + "probabilityToTrack": 25, + "probabilityToShoot": 12, + "actionDelay": 15 + }, + { + "Class": "Bug-eye", + "Skin": "9c0000ff", + "Arms": "9c0000ff", + "Body": "58589cff", + "Legs": "9c0000ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Browny gun", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 27, + "actionDelay": 15 + }, + { + "Class": "Bug-eye", + "Skin": "149c14ff", + "Arms": "149c14ff", + "Body": "58589cff", + "Legs": "149c14ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Browny gun", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 85, + "probabilityToTrack": 70, + "probabilityToShoot": 27, + "actionDelay": 15 + }, + { + "Class": "Bug-eye", + "Skin": "9c589cff", + "Arms": "9c589cff", + "Body": "58589cff", + "Legs": "9c589cff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Petrify gun", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 20, + "probabilityToTrack": 55, + "probabilityToShoot": 32, + "actionDelay": 15 + }, + { + "Class": "Bug-eye", + "Skin": "b79536ff", + "Arms": "b79536ff", + "Body": "58589cff", + "Legs": "b79536ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Chemo gun", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 35, + "probabilityToTrack": 25, + "probabilityToShoot": 12, + "actionDelay": 15 + }, + { + "Class": "Mad bug-eye", + "Skin": "9c9c9cff", + "Arms": "9c9c9cff", + "Body": "9c0000ff", + "Legs": "9c9c9cff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Powergun", + "maxHealth": 80, + "flags": 8389632, + "probabilityToMove": 50, + "probabilityToTrack": 50, + "probabilityToShoot": 12, + "actionDelay": 10 + }, + { + "Class": "Mad bug-eye", + "Skin": "ff8136ff", + "Arms": "ff8136ff", + "Body": "9c5858ff", + "Legs": "ff8136ff", + "Hair": "000000ff", + "speed": 384, + "Gun": "Knife", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 100, + "probabilityToTrack": 80, + "probabilityToShoot": 0, + "actionDelay": 10 + }, + { + "Class": "Bug-eye", + "Skin": "9c589cff", + "Arms": "9c589cff", + "Body": "58589cff", + "Legs": "9c589cff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 35, + "probabilityToTrack": 25, + "probabilityToShoot": 5, + "actionDelay": 15 + }, + { + "Class": "Bug-eye", + "Skin": "b79536ff", + "Arms": "b79536ff", + "Body": "58589cff", + "Legs": "b79536ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 35, + "probabilityToTrack": 25, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Bug-eye", + "Skin": "ffffffff", + "Arms": "ffffffff", + "Body": "58589cff", + "Legs": "ffffffff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Knife", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 55, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Bug-eye", + "Skin": "9c0000ff", + "Arms": "9c0000ff", + "Body": "58589cff", + "Legs": "9c0000ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Flamer", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 27, + "actionDelay": 15 + }, + { + "Class": "Bug-eye", + "Skin": "9c9c9cff", + "Arms": "9c9c9cff", + "Body": "9c9c9cff", + "Legs": "9c9c9cff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Browny gun", + "maxHealth": 40, + "flags": 2048, + "probabilityToMove": 35, + "probabilityToTrack": 25, + "probabilityToShoot": 12, + "actionDelay": 15 + }, + { + "Class": "Bug-eye", + "Skin": "9c9c9cff", + "Arms": "9c9c9cff", + "Body": "9c9c9cff", + "Legs": "9c9c9cff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Knife", + "maxHealth": 40, + "flags": 2048, + "probabilityToMove": 60, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "PlayerTemplateName": "Scientist", + "HairType": "professor", + "Skin": "882800ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 5, + "probabilityToShoot": 0, + "actionDelay": 20 + }, + { + "Class": "Jones", + "HairType": "professor", + "Skin": "ff8136ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "9c9c9cff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 5, + "probabilityToShoot": 0, + "actionDelay": 20 + }, + { + "Class": "Jones", + "HairType": "dutch", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "ffffffff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 5, + "probabilityToShoot": 0, + "actionDelay": 20 + }, + { + "Class": "Jones", + "HairType": "beard", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "9c0000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 5, + "probabilityToShoot": 0, + "actionDelay": 20 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "ff8136ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "363636ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 5, + "probabilityToShoot": 0, + "actionDelay": 20 + }, + { + "Class": "Mad bug-eye", + "Skin": "ff6c00ff", + "Arms": "ff6c00ff", + "Body": "ff6c00ff", + "Legs": "ff6c00ff", + "Hair": "000000ff", + "speed": 384, + "Gun": "Molotovs", + "maxHealth": 500, + "flags": 41944576, + "probabilityToMove": 80, + "probabilityToTrack": 80, + "probabilityToShoot": 10, + "actionDelay": 10 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/bem.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/bem.cdogscpn/missions.json new file mode 100644 index 00000000..4be5c166 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/bem.cdogscpn/missions.json @@ -0,0 +1,1303 @@ +{ + "Missions": [{ + "Title": "They are destroying our base!", + "Description": "All of a sudden aliens started popping out of nowhere all over the place. Fortunately they seem quite disorganized or we would surely have lost the base by now. We must eliminate this attacking force, though...", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Defeat the attack", + "Type": "Kill", + "Index": 0, + "Count": 20, + "Required": 15, + "Flags": 0 + }], + "Enemies": [0, + 1, + 2], + "SpecialChars": [10, + 13, + 17], + "MapObjectDensities": [{ + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "chair", + "Density": 10 + }, + { + "MapObject": "column", + "Density": 5 + }, + { + "MapObject": "bookshelf", + "Density": 20 + }, + { + "MapObject": "table_wood", + "Density": 30 + }, + { + "MapObject": "safe", + "Density": 5 + }, + { + "MapObject": "terminal", + "Density": 20 + }, + { + "MapObject": "barrel", + "Density": 10 + }, + { + "MapObject": "rocket", + "Density": 5 + }], + "EnemyDensity": 10, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "5c5c84ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "848484ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "700070ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 20, + "WallLength": 20, + "CorridorWidth": 1, + "Rooms": { + "Count": 10, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 3, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "What are they up to now?", + "Description": "Now the goggle-eyes are rampaging through a suburb! They are killing innocent civilians for no reason...we have got to stop them!", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Eliminate the monsters", + "Type": "Kill", + "Index": 0, + "Count": 20, + "Required": 20, + "Flags": 0 + }], + "Enemies": [3, + 4, + 5, + 6, + 7, + 8, + 9], + "SpecialChars": [10, + 11, + 12, + 13, + 17, + 19], + "MapObjectDensities": [{ + "MapObject": "tree", + "Density": 50 + }, + { + "MapObject": "table_clothed", + "Density": 30 + }, + { + "MapObject": "bookshelf", + "Density": 40 + }, + { + "MapObject": "box_wood", + "Density": 5 + }, + { + "MapObject": "table_wood", + "Density": 20 + }, + { + "MapObject": "table_wood_candle", + "Density": 20 + }, + { + "MapObject": "barrel_wood", + "Density": 10 + }, + { + "MapObject": "plant", + "Density": 50 + }, + { + "MapObject": "chair", + "Density": 10 + }], + "EnemyDensity": 30, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "008484ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "007000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "94802cff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 0, + "WallLength": 0, + "CorridorWidth": 1, + "Rooms": { + "Count": 25, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 2, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Rescue threatened scientists", + "Description": "There may be some fiendish plot behind this madness after all. Our foes are attacking a little known laboratory doing research on our big-eyed opponents. The other attacks may have been diversions. Still, you never know with these critters. Enough already, we must save the staff...", + "Type": "Classic", + "Width": 64, + "Height": 32, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Eradicate the attacking force", + "Type": "Kill", + "Index": 0, + "Count": 25, + "Required": 25, + "Flags": 0 + }], + "Enemies": [27, + 26, + 25, + 24, + 23], + "SpecialChars": [20, + 12, + 18, + 17, + 14, + 13], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 10 + }, + { + "MapObject": "box", + "Density": 10 + }, + { + "MapObject": "box2", + "Density": 10 + }, + { + "MapObject": "cabinet", + "Density": 50 + }, + { + "MapObject": "chair", + "Density": 10 + }, + { + "MapObject": "bookshelf", + "Density": 50 + }, + { + "MapObject": "table_steel", + "Density": 25 + }, + { + "MapObject": "safe", + "Density": 5 + }, + { + "MapObject": "table_lab", + "Density": 20 + }], + "EnemyDensity": 20, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "008484ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "707070ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "biggrid", + "Mask": "848484ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 0, + "WallLength": 0, + "CorridorWidth": 1, + "Rooms": { + "Count": 25, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Enough is enough!", + "Description": "We are now in a position where we may repay the B.E.M.s for their actions. We have uncovered a B.E.M. ship carrying an arsenal of rockets which they are probably planning to unleash on us at the earliest moment possible. Now, wouldn't it be nice if they were to detonate onboard instead?", + "Type": "Classic", + "Width": 30, + "Height": 64, + "ExitStyle": "hazard", + "KeyStyle": "cube", + "Objectives": [{ + "Description": "Blow up the rockets", + "Type": "Destroy", + "MapObject": "rocket", + "Count": 20, + "Required": 15, + "Flags": 0 + }], + "Enemies": [21, + 20, + 19, + 18, + 17, + 15, + 16, + 14, + 13, + 10, + 11, + 12], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "column", + "Density": 20 + }, + { + "MapObject": "box_green", + "Density": 5 + }, + { + "MapObject": "box_metal_green", + "Density": 5 + }, + { + "MapObject": "bench", + "Density": 10 + }, + { + "MapObject": "box_gray", + "Density": 5 + }, + { + "MapObject": "box_red", + "Density": 5 + }, + { + "MapObject": "wall_goo", + "Density": 5 + }, + { + "MapObject": "goo", + "Density": 5 + }], + "EnemyDensity": 25, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "840084ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "striped", + "Mask": "847024ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "striped", + "Mask": "007070ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "alien", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 50, + "WallLength": 10, + "CorridorWidth": 1, + "Rooms": { + "Count": 15, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "They are robbing a BANK???", + "Description": "They never cease to amaze me. Now they are robbing banks too...the shrink department guys think it may be something they have picked up from television broadcasts...you know, the archetypical bad guy so to speak. Anyway, we can't have bubble-eyes stealing citizens' savings, can we?", + "Type": "Classic", + "Width": 48, + "Height": 32, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Fend off the \"bank-robbers from space\"", + "Type": "Kill", + "Index": 0, + "Count": 25, + "Required": 25, + "Flags": 0 + }, + { + "Description": "Safeguard any loot you come across", + "Type": "Collect", + "Pickup": "sack", + "Count": 6, + "Required": 0, + "Flags": 1 + }], + "Enemies": [3, + 4, + 5, + 6, + 7, + 8, + 9], + "SpecialChars": [16, + 15, + 21, + 22, + 13, + 17], + "MapObjectDensities": [{ + "MapObject": "cabinet", + "Density": 50 + }, + { + "MapObject": "plant", + "Density": 50 + }, + { + "MapObject": "chair", + "Density": 10 + }, + { + "MapObject": "table_wood", + "Density": 20 + }, + { + "MapObject": "bookshelf", + "Density": 10 + }, + { + "MapObject": "safe", + "Density": 30 + }, + { + "MapObject": "terminal", + "Density": 20 + }], + "EnemyDensity": 20, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "484870ff", + "MaskAlt": "707070ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "847024ff", + "MaskAlt": "707070ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "000084ff", + "MaskAlt": "707070ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 0, + "WallLength": 0, + "CorridorWidth": 1, + "Rooms": { + "Count": 20, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Retrieve the stolen money", + "Description": "Despite your valiant, and ultimately successful, efforts, the buggers took off with a considerable amount of dough. Now, the city can do without that kind of strain on the treasury...soooo...we will just have to retrieve the funds won't we?", + "Type": "Classic", + "Width": 32, + "Height": 64, + "ExitStyle": "hazard", + "KeyStyle": "cube", + "Objectives": [{ + "Description": "Find as much money as possible", + "Type": "Collect", + "Pickup": "sack", + "Count": 32, + "Required": 25, + "Flags": 0 + }], + "Enemies": [10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "goo", + "Density": 5 + }, + { + "MapObject": "wall_goo", + "Density": 5 + }, + { + "MapObject": "box_red", + "Density": 5 + }, + { + "MapObject": "box_metal_green", + "Density": 5 + }, + { + "MapObject": "box_green", + "Density": 5 + }, + { + "MapObject": "box_gray", + "Density": 5 + }, + { + "MapObject": "column", + "Density": 20 + }, + { + "MapObject": "bench", + "Density": 10 + }], + "EnemyDensity": 25, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "484870ff", + "MaskAlt": "94802cff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "striped", + "Mask": "008484ff", + "MaskAlt": "94802cff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "striped", + "Mask": "008400ff", + "MaskAlt": "94802cff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "alien", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 50, + "WallLength": 10, + "CorridorWidth": 1, + "Rooms": { + "Count": 12, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "On the offensive...", + "Description": "Okeeey...our top minds have come up with a plan to put an end to this nonsense. These B.E.M. fellows, they're highly hierarchical you see...so we take out the head and the body crumbles, see? You don't? Well, shut up and follow orders then, will'ya?", + "Type": "Classic", + "Width": 32, + "Height": 64, + "ExitStyle": "hazard", + "KeyStyle": "cube", + "Objectives": [{ + "Description": "Steal B.E.M. technology", + "Type": "Collect", + "Pickup": "pci_card", + "Count": 5, + "Required": 3, + "Flags": 4 + }, + { + "Description": "Any gadget may prove helpful...", + "Type": "Collect", + "Pickup": "holo", + "Count": 2, + "Required": 0, + "Flags": 5 + }, + { + "Description": "Data files are good, too", + "Type": "Collect", + "Pickup": "disk2", + "Count": 5, + "Required": 0, + "Flags": 5 + }, + { + "Description": "Blueprints are a great help!", + "Type": "Collect", + "Pickup": "blueprint", + "Count": 2, + "Required": 0, + "Flags": 5 + }], + "Enemies": [22, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "goo", + "Density": 5 + }, + { + "MapObject": "wall_goo", + "Density": 5 + }, + { + "MapObject": "box_red", + "Density": 5 + }, + { + "MapObject": "box_metal_green", + "Density": 5 + }, + { + "MapObject": "box_green", + "Density": 5 + }, + { + "MapObject": "box_gray", + "Density": 5 + }, + { + "MapObject": "column", + "Density": 20 + }, + { + "MapObject": "bench", + "Density": 10 + }], + "EnemyDensity": 30, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "94802cff", + "MaskAlt": "008484ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "striped", + "Mask": "008400ff", + "MaskAlt": "008484ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "striped", + "Mask": "840000ff", + "MaskAlt": "008484ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "alien", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 50, + "WallLength": 10, + "CorridorWidth": 1, + "Rooms": { + "Count": 12, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Board and seize an enemy vessel", + "Description": "The B.E.M. scout vessel 'Har-Har-Har' - they must be doing this just to taunt us I'm sure - is vulnerable to a quick assault by a small elite force...hey, come back here...no, you may go to the bathroom afterwards!", + "Type": "Classic", + "Width": 32, + "Height": 64, + "ExitStyle": "hazard", + "KeyStyle": "cube", + "Objectives": [{ + "Description": "Eliminate the crew members", + "Type": "Kill", + "Index": 0, + "Count": 30, + "Required": 30, + "Flags": 0 + }, + { + "Description": "Seize the remote to the bridge controls", + "Type": "Collect", + "Pickup": "radio", + "Count": 1, + "Required": 1, + "Flags": 4 + }], + "Enemies": [], + "SpecialChars": [22, + 21, + 18, + 17, + 16, + 15], + "MapObjectDensities": [{ + "MapObject": "goo", + "Density": 5 + }, + { + "MapObject": "wall_goo", + "Density": 5 + }, + { + "MapObject": "box_red", + "Density": 5 + }, + { + "MapObject": "box_metal_green", + "Density": 5 + }, + { + "MapObject": "box_green", + "Density": 5 + }, + { + "MapObject": "box_gray", + "Density": 5 + }, + { + "MapObject": "column", + "Density": 20 + }, + { + "MapObject": "bench", + "Density": 10 + }], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "008484ff", + "MaskAlt": "000070ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "striped", + "Mask": "484870ff", + "MaskAlt": "000070ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "striped", + "Mask": "000084ff", + "MaskAlt": "000070ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "alien", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 50, + "WallLength": 10, + "CorridorWidth": 1, + "Rooms": { + "Count": 12, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Mister Congeniality he\/she\/it ain't...", + "Description": "Actually, that remote was for the self-destruction mechanism, but you'd only have been nervous had you known. What's with the sour faces? It ended well, didn't it? Anyway, I've got a treat for you. You have been chosen to put an end to this conflict by nailing the head S.O.B. itself!", + "Type": "Classic", + "Width": 24, + "Height": 24, + "ExitStyle": "hazard", + "KeyStyle": "cube", + "Objectives": [{ + "Description": "Kill the Big Bug-Eye!", + "Type": "Kill", + "Index": 0, + "Count": 1, + "Required": 1, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [28], + "MapObjectDensities": [{ + "MapObject": "goo", + "Density": 5 + }, + { + "MapObject": "wall_goo", + "Density": 5 + }, + { + "MapObject": "box_red", + "Density": 5 + }, + { + "MapObject": "box_metal_green", + "Density": 5 + }, + { + "MapObject": "box_green", + "Density": 5 + }, + { + "MapObject": "box_gray", + "Density": 5 + }, + { + "MapObject": "column", + "Density": 20 + }], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "94802cff", + "MaskAlt": "008484ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "striped", + "Mask": "008400ff", + "MaskAlt": "008484ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "striped", + "Mask": "840000ff", + "MaskAlt": "008484ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "alien", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 10, + "WallLength": 4, + "CorridorWidth": 1, + "Rooms": { + "Count": 0, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/bullets.json new file mode 100644 index 00000000..d6bf7646 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/bullets.json @@ -0,0 +1,189 @@ +{ + "Version": 1, + "Bullets": [ + { + "Name": "piecemarker_bullet", + "Pic": { + "Type": "Directional", + "Sprites": "9mm" + }, + "Speed": 1000, + "Range": 50, + "Power": 12 + }, + { + "Name": "pwn3r_bullet", + "Pic": { + "Type": "Directional", + "Sprites": "9mm" + }, + "Speed": 1000, + "Range": 50, + "Power": 12 + }, + { + "Name": "pn21_bullet", + "Pic": { + "Type": "Directional", + "Sprites": "9mm" + }, + "Speed": 1000, + "Range": 50, + "Power": 15 + }, + { + "Name": "77_bullet", + "Pic": { + "Type": "Directional", + "Sprites": "9mm" + }, + "Speed": 1000, + "Range": 50, + "Power": 10 + }, + { + "Name": "jb007_bullet", + "Pic": { + "Type": "Directional", + "Sprites": "9mm" + }, + "Speed": 1000, + "Range": 50, + "Power": 20 + }, + { + "Name": "desert_hawk_bullet", + "Pic": { + "Type": "Directional", + "Sprites": "9mm" + }, + "Speed": 1000, + "Range": 50, + "Power": 35 + }, + + + { + "Name": "mag_bullet", + "Speed": 1000, + "Range": 300, + "Power": 10 + }, + { + "Name": "md5_bullet", + "Speed": 1000, + "Range": 300, + "Power": 12 + }, + { + "Name": "milit_bullet", + "Speed": 1000, + "Range": 300, + "Power": 12 + }, + { + "Name": "m500_bullet", + "Speed": 1000, + "Range": 300, + "Power": 12 + }, + { + "Name": "x90_bullet", + "Speed": 1000, + "Range": 300, + "Power": 12 + }, + { + "Name": "angry_rabbit_bullet", + "Speed": 1000, + "Range": 300, + "Power": 12 + }, + + + { + "Name": "sg1_bullet", + "Speed": 1000, + "Range": 50, + "Power": 15 + }, + { + "Name": "sg2_bullet", + "Speed": 1000, + "Range": 50, + "Power": 17 + }, + + + { + "Name": "poshlinov_bullet", + "Speed": 1000, + "Range": 300, + "Power": 23 + }, + { + "Name": "gs49_bullet", + "Speed": 1000, + "Range": 300, + "Power": 15 + }, + { + "Name": "storm_bullet", + "Speed": 1000, + "Range": 300, + "Power": 14 + }, + { + "Name": "gh55b_bullet", + "Speed": 1000, + "Range": 300, + "Power": 17 + }, + { + "Name": "pow9_bullet", + "Speed": 1000, + "Range": 300, + "Power": 21 + }, + { + "Name": "raging_pitbull_bullet", + "Speed": 1000, + "Range": 300, + "Power": 22 + }, + + + { + "Name": "hitpro_bullet", + "Speed": 2000, + "Range": 500, + "Power": 100 + }, + { + "Name": "snp6plus_bullet", + "Speed": 2000, + "Range": 500, + "Power": 140 + }, + { + "Name": "1s1k_bullet", + "Speed": 2000, + "Range": 500, + "Power": 200 + }, + + + { + "Name": "mg5000_bullet", + "Speed": 900, + "Range": 300, + "Power": 5 + }, + { + "Name": "mg6000_bullet", + "Speed": 1000, + "Range": 300, + "Power": 6 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/campaign.json new file mode 100644 index 00000000..6cf37de3 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/campaign.json @@ -0,0 +1,7 @@ +{ + "Version": 3, + "Title": "Gun Game", + "Author": "Wuzzy", + "Description": "In each mission of this campaign, you will get a single gun and your enemy will get the same one. Your goal is always to kill all the enemies.", + "Missions": 25 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/characters.json new file mode 100644 index 00000000..0d6bed7d --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/characters.json @@ -0,0 +1,402 @@ +{ + "Characters": [{ + "face": 0, + "skin": 11, + "arm": 11, + "body": 11, + "leg": 11, + "hair": 0, + "speed": 320, + "Gun": "Piecemarker", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 55, + "probabilityToShoot": 80, + "actionDelay": 15 + }, + { + "face": 1, + "skin": 10, + "arm": 11, + "body": 11, + "leg": 11, + "hair": 0, + "speed": 320, + "Gun": "PWN3r", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 55, + "probabilityToShoot": 80, + "actionDelay": 15 + }, + { + "face": 3, + "skin": 11, + "arm": 11, + "body": 10, + "leg": 2, + "hair": 0, + "speed": 320, + "Gun": "Pn-21", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 55, + "probabilityToShoot": 80, + "actionDelay": 15 + }, + { + "face": 16, + "skin": 11, + "arm": 11, + "body": 11, + "leg": 11, + "hair": 12, + "speed": 320, + "Gun": "Seven-Seven", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 55, + "probabilityToShoot": 80, + "actionDelay": 15 + }, + { + "face": 10, + "skin": 11, + "arm": 1, + "body": 1, + "leg": 11, + "hair": 1, + "speed": 320, + "Gun": "JB007", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 55, + "probabilityToShoot": 80, + "actionDelay": 15 + }, + { + "face": 12, + "skin": 10, + "arm": 11, + "body": 11, + "leg": 11, + "hair": 8, + "speed": 320, + "Gun": "Desert Hawk", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 55, + "probabilityToShoot": 80, + "actionDelay": 15 + }, + { + "face": 1, + "skin": 10, + "arm": 4, + "body": 4, + "leg": 4, + "hair": 2, + "speed": 320, + "Gun": "Mag", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 55, + "probabilityToShoot": 80, + "actionDelay": 15 + }, + { + "face": 4, + "skin": 10, + "arm": 4, + "body": 4, + "leg": 4, + "hair": 4, + "speed": 320, + "Gun": "MD5", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 55, + "probabilityToShoot": 80, + "actionDelay": 15 + }, + { + "face": 10, + "skin": 10, + "arm": 4, + "body": 4, + "leg": 4, + "hair": 2, + "speed": 320, + "Gun": "Milit", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 55, + "probabilityToShoot": 80, + "actionDelay": 15 + }, + { + "face": 6, + "skin": 10, + "arm": 4, + "body": 4, + "leg": 4, + "hair": 3, + "speed": 320, + "Gun": "M500", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 55, + "probabilityToShoot": 80, + "actionDelay": 15 + }, + { + "face": 8, + "skin": 10, + "arm": 4, + "body": 4, + "leg": 4, + "hair": 4, + "speed": 320, + "Gun": "X90", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 55, + "probabilityToShoot": 80, + "actionDelay": 15 + }, + { + "face": 8, + "skin": 11, + "arm": 4, + "body": 4, + "leg": 4, + "hair": 2, + "speed": 320, + "Gun": "Angry Rabbit", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 90, + "probabilityToShoot": 60, + "actionDelay": 10 + }, + { + "face": 3, + "skin": 1, + "arm": 8, + "body": 8, + "leg": 10, + "hair": 7, + "speed": 320, + "Gun": "SG1", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 90, + "probabilityToShoot": 60, + "actionDelay": 10 + }, + { + "face": 6, + "skin": 10, + "arm": 9, + "body": 9, + "leg": 12, + "hair": 12, + "speed": 320, + "Gun": "SG2", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 100, + "probabilityToShoot": 75, + "actionDelay": 5 + }, + { + "face": 0, + "skin": 11, + "arm": 0, + "body": 0, + "leg": 0, + "hair": 4, + "speed": 320, + "Gun": "Poshlinov", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 75, + "probabilityToTrack": 85, + "probabilityToShoot": 75, + "actionDelay": 5 + }, + { + "face": 6, + "skin": 1, + "arm": 0, + "body": 0, + "leg": 0, + "hair": 6, + "speed": 320, + "Gun": "GS-49", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 75, + "probabilityToTrack": 85, + "probabilityToShoot": 75, + "actionDelay": 5 + }, + { + "face": 11, + "skin": 1, + "arm": 0, + "body": 0, + "leg": 0, + "hair": 6, + "speed": 320, + "Gun": "STORM", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 85, + "probabilityToShoot": 75, + "actionDelay": 5 + }, + { + "face": 3, + "skin": 11, + "arm": 0, + "body": 0, + "leg": 0, + "hair": 6, + "speed": 320, + "Gun": "GH55b", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 85, + "probabilityToShoot": 75, + "actionDelay": 5 + }, + { + "face": 11, + "skin": 1, + "arm": 0, + "body": 0, + "leg": 0, + "hair": 7, + "speed": 320, + "Gun": "POW9", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 90, + "probabilityToShoot": 90, + "actionDelay": 5 + }, + { + "face": 12, + "skin": 11, + "arm": 0, + "body": 0, + "leg": 0, + "hair": 1, + "speed": 320, + "Gun": "Raging Pitbull", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 80, + "probabilityToShoot": 75, + "actionDelay": 5 + }, + { + "face": 1, + "skin": 1, + "arm": 8, + "body": 9, + "leg": 8, + "hair": 6, + "speed": 256, + "Gun": "HITPRO", + "maxHealth": 50, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 100, + "probabilityToShoot": 75, + "actionDelay": 5 + }, + { + "face": 1, + "skin": 1, + "arm": 9, + "body": 10, + "leg": 9, + "hair": 6, + "speed": 256, + "Gun": "SNP6+", + "maxHealth": 50, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 100, + "probabilityToShoot": 75, + "actionDelay": 5 + }, + { + "face": 1, + "skin": 1, + "arm": 9, + "body": 12, + "leg": 12, + "hair": 6, + "speed": 256, + "Gun": "1S1K", + "maxHealth": 50, + "flags": 0, + "probabilityToMove": 30, + "probabilityToTrack": 100, + "probabilityToShoot": 50, + "actionDelay": 5 + }, + { + "face": 4, + "skin": 1, + "arm": 3, + "body": 3, + "leg": 6, + "hair": 6, + "speed": 320, + "Gun": "MG5000", + "maxHealth": 60, + "flags": 0, + "probabilityToMove": 75, + "probabilityToTrack": 90, + "probabilityToShoot": 100, + "actionDelay": 10 + }, + { + "face": 16, + "skin": 1, + "arm": 3, + "body": 3, + "leg": 6, + "hair": 9, + "speed": 320, + "Gun": "MG6000", + "maxHealth": 60, + "flags": 0, + "probabilityToMove": 90, + "probabilityToTrack": 80, + "probabilityToShoot": 100, + "actionDelay": 5 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/1s1k.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/1s1k.png new file mode 100644 index 00000000..c9deb67e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/1s1k.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/9mm_3x3.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/9mm_3x3.png new file mode 100644 index 00000000..21ded4e4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/9mm_3x3.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/angry_rabbit.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/angry_rabbit.png new file mode 100644 index 00000000..8c286d10 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/angry_rabbit.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/desert_hawk.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/desert_hawk.png new file mode 100644 index 00000000..ffe9856a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/desert_hawk.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/gh55b.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/gh55b.png new file mode 100644 index 00000000..83a64fbc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/gh55b.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/gs49.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/gs49.png new file mode 100644 index 00000000..be073b9b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/gs49.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/hitpro.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/hitpro.png new file mode 100644 index 00000000..ffd0395c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/hitpro.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/jb007.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/jb007.png new file mode 100644 index 00000000..9cbb2ccc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/jb007.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/m500.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/m500.png new file mode 100644 index 00000000..9304a504 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/m500.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/mag.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/mag.png new file mode 100644 index 00000000..349fe877 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/mag.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/md5.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/md5.png new file mode 100644 index 00000000..a74a7eb6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/md5.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/mg5000.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/mg5000.png new file mode 100644 index 00000000..6dcbde9b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/mg5000.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/mg6000.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/mg6000.png new file mode 100644 index 00000000..ad62171c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/mg6000.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/milit.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/milit.png new file mode 100644 index 00000000..4644d013 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/milit.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/piecemarker.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/piecemarker.png new file mode 100644 index 00000000..8726f29d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/piecemarker.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/pn21.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/pn21.png new file mode 100644 index 00000000..8852d1e2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/pn21.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/poshlinov.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/poshlinov.png new file mode 100644 index 00000000..d9b6eccd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/poshlinov.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/pow9.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/pow9.png new file mode 100644 index 00000000..84a56f23 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/pow9.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/pwn3r.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/pwn3r.png new file mode 100644 index 00000000..3d0b1d79 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/pwn3r.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/raging_pitbull.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/raging_pitbull.png new file mode 100644 index 00000000..f1aa097f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/raging_pitbull.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/seven-seven.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/seven-seven.png new file mode 100644 index 00000000..7b6b051f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/seven-seven.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/sg1.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/sg1.png new file mode 100644 index 00000000..39391d81 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/sg1.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/sg2.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/sg2.png new file mode 100644 index 00000000..966b5952 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/sg2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/snp6plus.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/snp6plus.png new file mode 100644 index 00000000..0f07653e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/snp6plus.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/storm.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/storm.png new file mode 100644 index 00000000..f17557ca Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/storm.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/x90.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/x90.png new file mode 100644 index 00000000..dbb17217 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/graphics/x90.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/guns.json new file mode 100644 index 00000000..707b5b4e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/guns.json @@ -0,0 +1,287 @@ +{ + "Version": 1, + "Guns": [ + { + "Name": "Piecemarker", + "Icon": "piecemarker", + "Description": "Weapon class: Pistol\nDamage: 12\nRate of fire: 87 round/min\nDispersion: 0 degrees\nRange: 50\nSpeed: 1000\nCost: 1", + "Bullet": "piecemarker_bullet", + "Cost": 1, + "Lock": 48, + "Sound": "piecemarker", + "Brass": "brass" + }, + { + "Name": "PWN3r", + "Icon": "pwn3r", + "Description": "Weapon class: Pistol\nDamage: 12\nRate of fire: 120 round/min\nDispersion: 0 degrees\nRange: 50\nSpeed: 1000\nCost: 1", + "Bullet": "pwn3r_bullet", + "Cost": 1, + "Lock": 35, + "Sound": "pwn3r", + "Brass": "brass" + }, + { + "Name": "Pn-21", + "Icon": "pn21", + "Description": "Weapon class: Pistol\nDamage: 15\nRate of fire: 110 round/min\nDispersion: 0 degrees\nRange: 50\nSpeed: 1000\nCost: 1", + "Bullet": "pn21_bullet", + "Cost": 1, + "Lock": 38, + "Sound": "pn21", + "Brass": "brass" + }, + { + "Name": "Seven-Seven", + "Icon": "seven-seven", + "Description": "Weapon class: Pistol\nDamage: 10\nRate of fire: 110 round/min\nDispersion: 0 degrees\nRange: 50\nSpeed: 1000\nCost: 1", + "Bullet": "77_bullet", + "Cost": 1, + "Lock": 38, + "Sound": "77", + "Brass": "brass" + }, + { + "Name": "JB007", + "Icon": "jb007", + "Description": "Weapon class: Pistol\nDamage: 20\nRate of fire: 100 round/min\nDispersion: 0 degrees\nRange: 50\nSpeed: 1000\nCost: 1", + "Bullet": "jb007_bullet", + "Cost": 1, + "Lock": 42, + "Sound": "jb007", + "Brass": "brass" + }, + { + "Name": "Desert Hawk", + "Icon": "desert_hawk", + "Description": "Weapon class: Pistol\nDamage: 35\nRate of fire: 105 round/min\nDispersion: 0 degrees\nRange: 50\nSpeed: 1000\nCost: 1", + "Bullet": "desert_hawk_bullet", + "Cost": 1, + "Lock": 40, + "Sound": "desert_hawk", + "Brass": "brass" + }, + + + { + "Name": "Mag", + "Icon": "mag", + "Description": "Weapon class: Sub-machine gun\nDamage: 10\nRate of fire: 525 round/min\nDispersion: 2.9 degrees\nRange: 300\nSpeed: 1000\nCost: 1", + "Bullet": "mag_bullet", + "Cost": 1, + "Lock": 8, + "Recoil": 0.05, + "Sound": "mag", + "Brass": "brass" + }, + { + "Name": "MD5", + "Icon": "md5", + "Description": "Weapon class: Sub-machine gun\nDamage: 12\nRate of fire: 600 round/min\nDispersion: 3.6 degrees\nRange: 300\nSpeed: 1000\nCost: 1", + "Bullet": "md5_bullet", + "Cost": 1, + "Lock": 7, + "Recoil": 0.06, + "Sound": "md5", + "Brass": "brass" + }, + { + "Name": "Milit", + "Icon": "milit", + "Description": "Weapon class: Sub-machine gun\nDamage: 12\nRate of fire: 700 round/min\nDispersion: 4.6 degrees\nRange: 300\nSpeed: 1000\nCost: 1", + "Bullet": "milit_bullet", + "Cost": 1, + "Lock": 6, + "Recoil": 0.09, + "Sound": "milit", + "Brass": "brass" + }, + { + "Name": "M500", + "Icon": "m500", + "Description": "Weapon class: Sub-machine gun\nDamage: 12\nRate of Fire: 700 round/min\nDispersion: 5.7 degrees\nRange: 300\nSpeed: 1000\nCost: 1", + "Bullet": "m500_bullet", + "Cost": 1, + "Lock": 6, + "Recoil": 0.1, + "Sound": "m500", + "Brass": "brass" + }, + { + "Name": "X90", + "Icon": "x90", + "Description": "Weapon class: Sub-machine gun\nDamage: 12\nRate of fire: 840 round/min\nDispersion: 9.7 degrees\nRange: 300\nSpeed: 1000\nCost: 2", + "Bullet": "x90_bullet", + "Cost": 1, + "Lock": 5, + "Recoil": 0.17, + "Sound": "x90", + "Brass": "brass" + }, + { + "Name": "Angry Rabbit", + "Icon": "angry_rabbit", + "Description": "Weapon class: Sub-machine gun\nDamage: 12\nRate of fire: 700 round/min\nDispersion: 6.9 degrees\nRange: 300\nSpeed: 1000\nCost: 1", + "Bullet": "angry_rabbit_bullet", + "Cost": 1, + "Lock": 6, + "Recoil": 0.12, + "Sound": "angry_rabbit", + "Brass": "brass" + }, + + + { + "Name": "SG1", + "Icon": "sg1", + "Description": "Weapon class: Shotgun\nBullets per shot: 5\nDamage: 15 per bullet (max. 75)\nRate of fire: 70 round/min\nBullet spread: 13.2 degrees\nRange: 50\nSpeed: 1000\nCost: 2", + "Bullet": "sg1_bullet", + "Cost": 2, + "Lock": 60, + "Sound": "sg1", + "ReloadLead": 10, + "ReloadSound": "shotgun_r", + "SpreadCount": 5, + "SpreadWidth": 0.23, + "Brass": "shotshell" + }, + { + "Name": "SG2", + "Icon": "sg2", + "Description": "Weapon class: Shotgun\nBullets per shot: 5\nDamage: 17 (max. 85)\nRate of fire: 84 round/min\nBullet spread: 16.0 degrees\nRange: 50\nSpeed: 1000\nCost: 2", + "Bullet": "sg2_bullet", + "Cost": 2, + "Lock": 50, + "Sound": "sg2", + "ReloadLead": 10, + "ReloadSound": "shotgun_r", + "SpreadCount": 5, + "SpreadWidth": 0.28, + "Brass": "shotshell" + }, + + + { + "Name": "Poshlinov", + "Icon": "poshlinov", + "Description": "Weapon class: Rifle\nDamage: 23\nRate of fire: 466 round/min\nDispersion: 9.7 degrees\nRange: 300\nSpeed: 1000\nCost: 2", + "Bullet": "poshlinov_bullet", + "Cost": 2, + "Lock": 9, + "Recoil": 0.17, + "Sound": "poshlinov", + "Brass": "brass_big" + }, + { + "Name": "GS-49", + "Icon": "gs49", + "Description": "Weapon class: Rifle\nDamage: 15\nRate of fire: 420 round/min\nDispersion: 11.5 degrees\nRange: 300\nSpeed: 1000\nCost: 2", + "Bullet": "gs49_bullet", + "Cost": 2, + "Lock": 10, + "Recoil": 0.2, + "Sound": "gs49", + "Brass": "brass_big" + }, + { + "Name": "STORM", + "Icon": "storm", + "Description": "Weapon class: Rifle\nDamage: 14\nRate of fire: 466 round/min\nDispersion: 10.9 degrees\nRange: 300\nSpeed: 1000\nCost: 2", + "Bullet": "storm_bullet", + "Cost": 2, + "Lock": 9, + "Recoil": 0.19, + "Sound": "storm", + "Brass": "brass_big" + }, + { + "Name": "GH55b", + "Icon": "gh55b", + "Description": "Weapon class: Rifle\nDamage: 17\nRate of fire: 382 round/min\nDispersion: 11.5 degrees\nRange: 300\nSpeed: 1000\nCost: 2", + "Bullet": "gh55b_bullet", + "Cost": 2, + "Lock": 11, + "Recoil": 0.2, + "Sound": "gh55b", + "Brass": "brass_big" + }, + { + "Name": "POW9", + "Icon": "pow9", + "Description": "Weapon class: Rifle\nDamage: 17\nRate of fire: 267 round/min\nDispersion: 5.7 degrees\nRange: 300\nSpeed: 1000\nCost: 2", + "Bullet": "pow9_bullet", + "Cost": 2, + "Lock": 17, + "Recoil": 0.10, + "Sound": "pow9", + "Brass": "brass_big" + }, + { + "Name": "Raging Pitbull", + "Icon": "raging_pitbull", + "Description": "Weapon class: Rifle\nDamage: 22\nRate of fire: 525 round/min\nDispersion: 14.3 degrees\nRange: 300\nSpeed: 1000\nCost: 2", + "Bullet": "raging_pitbull_bullet", + "Cost": 2, + "Lock": 8, + "Recoil": 0.25, + "Sound": "raging_pitbull", + "Brass": "brass_big" + }, + + + { + "Name": "HITPRO", + "Icon": "hitpro", + "Description": "Weapon class: Sniper rifle\nDamage: 100\nRate of fire: 42 round/min\nDispersion: 0 degrees\nRange: 500\nSpeed: 2000\nCost: 5", + "Bullet": "hitpro_bullet", + "Cost": 5, + "Lock": 100, + "Sound": "hitpro", + "Brass": "brass_big" + }, + { + "Name": "SNP6+", + "Icon": "snp6plus", + "Description": "Weapon class: Sniper rifle\nDamage: 140\nRate of fire: 24 round/min\nDispersion: 0 degrees\nRange: 500\nSpeed: 2000\nCost: 5", + "Bullet": "snp6plus_bullet", + "Cost": 5, + "Lock": 175, + "Sound": "snp6plus", + "Brass": "brass_big" + }, + { + "Name": "1S1K", + "Icon": "1s1k", + "Description": "Weapon class: Sniper rifle\nDamage: 200\nRate of fire: 13.8 round/min\nDispersion: 0 degrees\nRange: 500\nSpeed: 2000\nCost: 8", + "Bullet": "1s1k_bullet", + "Cost": 8, + "Lock": 300, + "Sound": "1s1k", + "Brass": "brass_big" + }, + + + { + "Name": "MG5000", + "Icon": "mg5000", + "Description": "Weapon class: Machine gun\nDamage: 5\nRate of fire: 1050 round/min\nDispersion: 28.7 degrees\nRange: 300\nSpeed: 900\nCost: 1", + "Bullet": "mg5000_bullet", + "Cost": 1, + "Lock": 4, + "Recoil": 0.5, + "Sound": "mg5000", + "Brass": "brass_big" + }, + { + "Name": "MG6000", + "Icon": "mg6000", + "Description": "Weapon class: Machine gun\nDamage: 6\nRate of fire: 2100 round/min\nDispersion: 34.4 degrees\nRange: 300\nSpeed: 900\nCost: 1", + "Bullet": "mg6000_bullet", + "Cost": 1, + "Lock": 3, + "Recoil": 0.6, + "Sound": "mg6000", + "Brass": "brass_big" + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/missions.json new file mode 100644 index 00000000..21a08dc3 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/missions.json @@ -0,0 +1,1402 @@ +{ + "Missions": [{ + "Title": "Piecemarker Challenge", + "Description": "This mission involves the Piecemarker, a mediocre pistol. All pistols have a short range, perfect accuracy and they are rather slow.", + "Type": "Classic", + "Width": 70, + "Height": 35, + "WallStyle": 6, + "FloorStyle": 2, + "RoomStyle": 2, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [{ + "Description": "Kill all the enemies!", + "Type": "Kill", + "Index": 0, + "Count": 10, + "Required": 10, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [0], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["Piecemarker"], + "Song": "", + "WallColor": 21, + "FloorColor": 22, + "RoomColor": 22, + "AltColor": 22, + "Walls": 0, + "WallLength": 0, + "CorridorWidth": 1, + "Rooms": { + "Count": 0, + "Min": 0, + "Max": 0, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": false, + "Min": 0, + "Max": 0 + }, + "Pillars": { + "Count": 50, + "Min": 2, + "Max": 3 + } + }, + { + "Title": "PWN3r Challenge", + "Description": "", + "Type": "Classic", + "Width": 48, + "Height": 48, + "WallStyle": 6, + "FloorStyle": 2, + "RoomStyle": 3, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [{ + "Description": "Kill all the enemies!", + "Type": "Kill", + "Index": 0, + "Count": 10, + "Required": 10, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [1], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["PWN3r"], + "Song": "", + "WallColor": 22, + "FloorColor": 22, + "RoomColor": 22, + "AltColor": 23, + "Walls": 0, + "WallLength": 0, + "CorridorWidth": 0, + "Rooms": { + "Count": 0, + "Min": 0, + "Max": 0, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": false, + "Min": 0, + "Max": 0 + }, + "Pillars": { + "Count": 50, + "Min": 3, + "Max": 3 + } + }, + { + "Title": "Pn-21 Challenge", + "Description": "", + "Type": "Classic", + "Width": 45, + "Height": 42, + "WallStyle": 6, + "FloorStyle": 2, + "RoomStyle": 3, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [{ + "Description": "Kill all the enemies!", + "Type": "Kill", + "Index": 0, + "Count": 10, + "Required": 10, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [2], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["Pn-21"], + "Song": "", + "WallColor": 23, + "FloorColor": 22, + "RoomColor": 22, + "AltColor": 23, + "Walls": 0, + "WallLength": 0, + "CorridorWidth": 1, + "Rooms": { + "Count": 0, + "Min": 0, + "Max": 0, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": false, + "Min": 0, + "Max": 0 + }, + "Pillars": { + "Count": 50, + "Min": 2, + "Max": 2 + } + }, + { + "Title": "Seven-Seven Challenge", + "Description": "", + "Type": "Classic", + "Width": 61, + "Height": 61, + "WallStyle": 6, + "FloorStyle": 2, + "RoomStyle": 3, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [{ + "Description": "Kill all the enemies!", + "Type": "Kill", + "Index": 0, + "Count": 15, + "Required": 15, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [3], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["Seven-Seven"], + "Song": "", + "WallColor": 21, + "FloorColor": 23, + "RoomColor": 22, + "AltColor": 23, + "Walls": 0, + "WallLength": 0, + "CorridorWidth": 2, + "Rooms": { + "Count": 0, + "Min": 0, + "Max": 0, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": false, + "Min": 0, + "Max": 0 + }, + "Pillars": { + "Count": 50, + "Min": 3, + "Max": 4 + } + }, + { + "Title": "JB007 Challenge", + "Description": "", + "Type": "Classic", + "Width": 61, + "Height": 65, + "WallStyle": 6, + "FloorStyle": 2, + "RoomStyle": 3, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [{ + "Description": "Kill all the enemies!", + "Type": "Kill", + "Index": 0, + "Count": 15, + "Required": 15, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [4], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["JB007"], + "Song": "", + "WallColor": 22, + "FloorColor": 23, + "RoomColor": 22, + "AltColor": 23, + "Walls": 0, + "WallLength": 0, + "CorridorWidth": 1, + "Rooms": { + "Count": 0, + "Min": 0, + "Max": 0, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": false, + "Min": 0, + "Max": 0 + }, + "Pillars": { + "Count": 50, + "Min": 2, + "Max": 6 + } + }, + { + "Title": "Desert Hawk Challenge", + "Description": "The Desert Hawk is our strongest pistol and you can some serious damage with it. It is also quite fast for a pistol.", + "Type": "Classic", + "Width": 64, + "Height": 48, + "WallStyle": 6, + "FloorStyle": 2, + "RoomStyle": 2, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [{ + "Description": "Kill all the enemies.", + "Type": "Kill", + "Index": 0, + "Count": 20, + "Required": 20, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [5], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["Desert Hawk"], + "Song": "", + "WallColor": 23, + "FloorColor": 23, + "RoomColor": 23, + "AltColor": 21, + "Walls": 0, + "WallLength": 10, + "CorridorWidth": 0, + "Rooms": { + "Count": 0, + "Min": 5, + "Max": 5, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 1, + "WallPad": 2 + }, + "Squares": 1, + "Doors": { + "Enabled": false, + "Min": 1, + "Max": 4 + }, + "Pillars": { + "Count": 40, + "Min": 3, + "Max": 7 + } + }, + { + "Title": "Mag Challenge", + "Description": "You will use the Mag in this challenge, the first sub-machine gun. Sub-machine guns are fast guns with a good range but poor accuracy.", + "Type": "Classic", + "Width": 80, + "Height": 60, + "WallStyle": 1, + "FloorStyle": 7, + "RoomStyle": 5, + "ExitStyle": 1, + "KeyStyle": 0, + "DoorStyle": 3, + "Objectives": [{ + "Description": "Kill all the enemies!", + "Type": "Kill", + "Index": 0, + "Count": 20, + "Required": 20, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [6], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["Mag"], + "Song": "", + "WallColor": 18, + "FloorColor": 20, + "RoomColor": 20, + "AltColor": 0, + "Walls": 13, + "WallLength": 10, + "CorridorWidth": 2, + "Rooms": { + "Count": 13, + "Min": 7, + "Max": 13, + "Edge": true, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 1, + "Doors": { + "Enabled": false, + "Min": 2, + "Max": 2 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "MD5 Challenge", + "Description": "", + "Type": "Classic", + "Width": 75, + "Height": 60, + "WallStyle": 1, + "FloorStyle": 7, + "RoomStyle": 5, + "ExitStyle": 1, + "KeyStyle": 0, + "DoorStyle": 3, + "Objectives": [{ + "Description": "Kill all the enemies!", + "Type": "Kill", + "Index": 0, + "Count": 20, + "Required": 20, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [7], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["MD5"], + "Song": "", + "WallColor": 18, + "FloorColor": 19, + "RoomColor": 20, + "AltColor": 0, + "Walls": 13, + "WallLength": 10, + "CorridorWidth": 2, + "Rooms": { + "Count": 13, + "Min": 7, + "Max": 15, + "Edge": true, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 1, + "Doors": { + "Enabled": false, + "Min": 2, + "Max": 3 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Milit Challenge", + "Description": "", + "Type": "Classic", + "Width": 80, + "Height": 61, + "WallStyle": 1, + "FloorStyle": 7, + "RoomStyle": 5, + "ExitStyle": 1, + "KeyStyle": 0, + "DoorStyle": 3, + "Objectives": [{ + "Description": "Kill all the enemies!", + "Type": "Kill", + "Index": 0, + "Count": 20, + "Required": 20, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [8], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["Milit"], + "Song": "", + "WallColor": 18, + "FloorColor": 18, + "RoomColor": 19, + "AltColor": 0, + "Walls": 13, + "WallLength": 10, + "CorridorWidth": 2, + "Rooms": { + "Count": 13, + "Min": 7, + "Max": 13, + "Edge": true, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 2, + "Doors": { + "Enabled": false, + "Min": 2, + "Max": 2 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "M500 Challenge", + "Description": "", + "Type": "Classic", + "Width": 80, + "Height": 61, + "WallStyle": 1, + "FloorStyle": 7, + "RoomStyle": 5, + "ExitStyle": 1, + "KeyStyle": 0, + "DoorStyle": 3, + "Objectives": [{ + "Description": "Kill all the enemies!", + "Type": "Kill", + "Index": 0, + "Count": 20, + "Required": 20, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [9], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["M500"], + "Song": "", + "WallColor": 19, + "FloorColor": 18, + "RoomColor": 18, + "AltColor": 0, + "Walls": 20, + "WallLength": 12, + "CorridorWidth": 2, + "Rooms": { + "Count": 13, + "Min": 7, + "Max": 15, + "Edge": true, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 2, + "Doors": { + "Enabled": false, + "Min": 2, + "Max": 2 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Angry Rabbit Challenge", + "Description": "", + "Type": "Classic", + "Width": 71, + "Height": 71, + "WallStyle": 1, + "FloorStyle": 7, + "RoomStyle": 5, + "ExitStyle": 1, + "KeyStyle": 0, + "DoorStyle": 3, + "Objectives": [{ + "Description": "Kill all the enemies!", + "Type": "Kill", + "Index": 0, + "Count": 20, + "Required": 20, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [11], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["Angry Rabbit"], + "Song": "", + "WallColor": 20, + "FloorColor": 19, + "RoomColor": 19, + "AltColor": 0, + "Walls": 9, + "WallLength": 10, + "CorridorWidth": 2, + "Rooms": { + "Count": 13, + "Min": 7, + "Max": 13, + "Edge": true, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 1, + "Doors": { + "Enabled": false, + "Min": 2, + "Max": 2 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "X90 Challenge", + "Description": "", + "Type": "Classic", + "Width": 80, + "Height": 80, + "WallStyle": 1, + "FloorStyle": 7, + "RoomStyle": 5, + "ExitStyle": 1, + "KeyStyle": 0, + "DoorStyle": 3, + "Objectives": [{ + "Description": "Kill all the enemies!", + "Type": "Kill", + "Index": 0, + "Count": 20, + "Required": 20, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [10], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["X90"], + "Song": "", + "WallColor": 20, + "FloorColor": 20, + "RoomColor": 23, + "AltColor": 0, + "Walls": 25, + "WallLength": 17, + "CorridorWidth": 2, + "Rooms": { + "Count": 20, + "Min": 7, + "Max": 14, + "Edge": true, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 1, + "Doors": { + "Enabled": false, + "Min": 2, + "Max": 2 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "SG1 Challenge", + "Description": "The SG1 is a shotgun. This shotgun fires 5 bullets at once. Shotguns are most effective in a close range.", + "Type": "Classic", + "Width": 48, + "Height": 48, + "WallStyle": 1, + "FloorStyle": 5, + "RoomStyle": 10, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 3, + "Objectives": [{ + "Description": "Kill all the enemies!", + "Type": "Kill", + "Index": 0, + "Count": 15, + "Required": 15, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [12], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["SG1"], + "Song": "", + "WallColor": 0, + "FloorColor": 14, + "RoomColor": 20, + "AltColor": 18, + "Walls": 16, + "WallLength": 4, + "CorridorWidth": 1, + "Rooms": { + "Count": 6, + "Min": 7, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 1, + "WallPad": 1 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 10, + "Min": 1, + "Max": 2 + } + }, + { + "Title": "SG2 Challenge", + "Description": "The SG2 is a shotgun. It is faster and more damaging than the SG1 and quite a dangerous weapon.", + "Type": "Classic", + "Width": 62, + "Height": 62, + "WallStyle": 1, + "FloorStyle": 5, + "RoomStyle": 10, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 3, + "Objectives": [{ + "Description": "Kill all the enemies!", + "Type": "Kill", + "Index": 0, + "Count": 15, + "Required": 15, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [13], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["SG2"], + "Song": "", + "WallColor": 2, + "FloorColor": 12, + "RoomColor": 21, + "AltColor": 21, + "Walls": 12, + "WallLength": 4, + "CorridorWidth": 1, + "Rooms": { + "Count": 10, + "Min": 8, + "Max": 11, + "Edge": true, + "Overlap": false, + "Walls": 1, + "WallLength": 3, + "WallPad": 2 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 10, + "Min": 4, + "Max": 4 + } + }, + { + "Title": "Poshlinov Challenge", + "Description": "", + "Type": "Classic", + "Width": 62, + "Height": 80, + "WallStyle": 1, + "FloorStyle": 7, + "RoomStyle": 7, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [{ + "Description": "Kill all the enemies!", + "Type": "Kill", + "Index": 0, + "Count": 15, + "Required": 15, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [14], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["Poshlinov"], + "Song": "", + "WallColor": 7, + "FloorColor": 17, + "RoomColor": 8, + "AltColor": 0, + "Walls": 12, + "WallLength": 4, + "CorridorWidth": 1, + "Rooms": { + "Count": 10, + "Min": 8, + "Max": 11, + "Edge": true, + "Overlap": false, + "Walls": 1, + "WallLength": 3, + "WallPad": 2 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 10, + "Min": 4, + "Max": 4 + } + }, + { + "Title": "GS-49 Challenge", + "Description": "", + "Type": "Classic", + "Width": 62, + "Height": 57, + "WallStyle": 1, + "FloorStyle": 7, + "RoomStyle": 8, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [{ + "Description": "Kill all the enemies!", + "Type": "Kill", + "Index": 0, + "Count": 15, + "Required": 15, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [15], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["GS-49"], + "Song": "", + "WallColor": 6, + "FloorColor": 15, + "RoomColor": 8, + "AltColor": 0, + "Walls": 12, + "WallLength": 4, + "CorridorWidth": 1, + "Rooms": { + "Count": 12, + "Min": 7, + "Max": 11, + "Edge": true, + "Overlap": false, + "Walls": 1, + "WallLength": 3, + "WallPad": 2 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 10, + "Min": 4, + "Max": 4 + } + }, + { + "Title": "STORM Challenge", + "Description": "", + "Type": "Classic", + "Width": 50, + "Height": 50, + "WallStyle": 1, + "FloorStyle": 7, + "RoomStyle": 8, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [{ + "Description": "Kill all the enemies!", + "Type": "Kill", + "Index": 0, + "Count": 15, + "Required": 15, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [16], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["STORM"], + "Song": "", + "WallColor": 8, + "FloorColor": 17, + "RoomColor": 8, + "AltColor": 0, + "Walls": 12, + "WallLength": 4, + "CorridorWidth": 1, + "Rooms": { + "Count": 6, + "Min": 7, + "Max": 11, + "Edge": true, + "Overlap": false, + "Walls": 1, + "WallLength": 3, + "WallPad": 2 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 10, + "Min": 4, + "Max": 4 + } + }, + { + "Title": "GH55b", + "Description": "", + "Type": "Classic", + "Width": 65, + "Height": 55, + "WallStyle": 1, + "FloorStyle": 7, + "RoomStyle": 8, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [{ + "Description": "Kill all the enemies!", + "Type": "Kill", + "Index": 0, + "Count": 15, + "Required": 15, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [17], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["GH55b"], + "Song": "", + "WallColor": 8, + "FloorColor": 17, + "RoomColor": 8, + "AltColor": 0, + "Walls": 12, + "WallLength": 4, + "CorridorWidth": 1, + "Rooms": { + "Count": 6, + "Min": 7, + "Max": 11, + "Edge": true, + "Overlap": false, + "Walls": 1, + "WallLength": 3, + "WallPad": 2 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 5, + "Min": 2, + "Max": 4 + } + }, + { + "Title": "POW9 Challenge", + "Description": "", + "Type": "Classic", + "Width": 62, + "Height": 62, + "WallStyle": 1, + "FloorStyle": 7, + "RoomStyle": 8, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [{ + "Description": "Kill all the enemies!", + "Type": "Kill", + "Index": 0, + "Count": 15, + "Required": 15, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [18], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["POW9"], + "Song": "", + "WallColor": 6, + "FloorColor": 15, + "RoomColor": 6, + "AltColor": 0, + "Walls": 24, + "WallLength": 4, + "CorridorWidth": 1, + "Rooms": { + "Count": 6, + "Min": 7, + "Max": 12, + "Edge": true, + "Overlap": false, + "Walls": 1, + "WallLength": 3, + "WallPad": 2 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 10, + "Min": 4, + "Max": 4 + } + }, + { + "Title": "Raging Pitbull Challenge", + "Description": "", + "Type": "Classic", + "Width": 40, + "Height": 80, + "WallStyle": 1, + "FloorStyle": 7, + "RoomStyle": 8, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [{ + "Description": "Kill all the enemies!", + "Type": "Kill", + "Index": 0, + "Count": 15, + "Required": 15, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [19], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["Raging Pitbull"], + "Song": "", + "WallColor": 6, + "FloorColor": 15, + "RoomColor": 6, + "AltColor": 0, + "Walls": 24, + "WallLength": 4, + "CorridorWidth": 2, + "Rooms": { + "Count": 6, + "Min": 5, + "Max": 12, + "Edge": true, + "Overlap": false, + "Walls": 1, + "WallLength": 3, + "WallPad": 2 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 10, + "Min": 4, + "Max": 4 + } + }, + { + "Title": "HITPRO Challenge", + "Description": "", + "Type": "Classic", + "Width": 48, + "Height": 48, + "WallStyle": 1, + "FloorStyle": 4, + "RoomStyle": 0, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [{ + "Description": "", + "Type": "Kill", + "Index": 0, + "Count": 10, + "Required": 10, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [20], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["HITPRO"], + "Song": "", + "WallColor": 2, + "FloorColor": 0, + "RoomColor": 2, + "AltColor": 0, + "Walls": 8, + "WallLength": 12, + "CorridorWidth": 0, + "Rooms": { + "Count": 1, + "Min": 7, + "Max": 11, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": false, + "Min": 0, + "Max": 0 + }, + "Pillars": { + "Count": 7, + "Min": 2, + "Max": 4 + } + }, + { + "Title": "SNP6+ Challenge", + "Description": "", + "Type": "Classic", + "Width": 40, + "Height": 67, + "WallStyle": 1, + "FloorStyle": 4, + "RoomStyle": 0, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [{ + "Description": "", + "Type": "Kill", + "Index": 0, + "Count": 10, + "Required": 10, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [21], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["SNP6+"], + "Song": "", + "WallColor": 2, + "FloorColor": 0, + "RoomColor": 2, + "AltColor": 0, + "Walls": 14, + "WallLength": 13, + "CorridorWidth": 0, + "Rooms": { + "Count": 1, + "Min": 7, + "Max": 11, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": false, + "Min": 0, + "Max": 0 + }, + "Pillars": { + "Count": 7, + "Min": 2, + "Max": 4 + } + }, + { + "Title": "1S1K Challenge", + "Description": "", + "Type": "Classic", + "Width": 60, + "Height": 59, + "WallStyle": 1, + "FloorStyle": 4, + "RoomStyle": 0, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [{ + "Description": "", + "Type": "Kill", + "Index": 0, + "Count": 13, + "Required": 13, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [22], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["1S1K"], + "Song": "", + "WallColor": 2, + "FloorColor": 0, + "RoomColor": 2, + "AltColor": 0, + "Walls": 8, + "WallLength": 12, + "CorridorWidth": 0, + "Rooms": { + "Count": 2, + "Min": 7, + "Max": 11, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": false, + "Min": 0, + "Max": 0 + }, + "Pillars": { + "Count": 10, + "Min": 3, + "Max": 6 + } + }, + { + "Title": "MG5000 Challenge", + "Description": "", + "Type": "Classic", + "Width": 60, + "Height": 60, + "WallStyle": 3, + "FloorStyle": 3, + "RoomStyle": 0, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [{ + "Description": "", + "Type": "Kill", + "Index": 0, + "Count": 13, + "Required": 13, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [23], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["MG5000"], + "Song": "", + "WallColor": 5, + "FloorColor": 3, + "RoomColor": 3, + "AltColor": 3, + "Walls": 0, + "WallLength": 0, + "CorridorWidth": 0, + "Rooms": { + "Count": 5, + "Min": 0, + "Max": 0, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": false, + "Min": 0, + "Max": 0 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "MG6000 Challenge", + "Description": "", + "Type": "Classic", + "Width": 75, + "Height": 75, + "WallStyle": 3, + "FloorStyle": 3, + "RoomStyle": 0, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [{ + "Description": "", + "Type": "Kill", + "Index": 0, + "Count": 15, + "Required": 15, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [24], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["MG6000"], + "Song": "", + "WallColor": 3, + "FloorColor": 5, + "RoomColor": 5, + "AltColor": 5, + "Walls": 0, + "WallLength": 0, + "CorridorWidth": 2, + "Rooms": { + "Count": 5, + "Min": 8, + "Max": 11, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": false, + "Min": 1, + "Max": 2 + }, + "Pillars": { + "Count": 11, + "Min": 6, + "Max": 7 + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/1s1k.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/1s1k.ogg new file mode 100644 index 00000000..594cfcb6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/1s1k.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/77.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/77.ogg new file mode 100644 index 00000000..f83bf2e3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/77.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/angry_rabbit.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/angry_rabbit.ogg new file mode 100644 index 00000000..ab1e81f7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/angry_rabbit.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/desert_hawk.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/desert_hawk.ogg new file mode 100644 index 00000000..29cf865d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/desert_hawk.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/gh55b.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/gh55b.ogg new file mode 100644 index 00000000..7628feb5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/gh55b.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/gs49.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/gs49.ogg new file mode 100644 index 00000000..303ad185 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/gs49.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/hitpro.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/hitpro.ogg new file mode 100644 index 00000000..d3cd4b0d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/hitpro.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/jb007.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/jb007.ogg new file mode 100644 index 00000000..f0b665d7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/jb007.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/m500.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/m500.ogg new file mode 100644 index 00000000..bc17a9ca Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/m500.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/mag.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/mag.ogg new file mode 100644 index 00000000..e332dea5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/mag.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/md5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/md5.ogg new file mode 100644 index 00000000..7a9c6e81 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/md5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/mg5000.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/mg5000.ogg new file mode 100644 index 00000000..51387a83 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/mg5000.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/mg6000.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/mg6000.ogg new file mode 100644 index 00000000..8a3a582d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/mg6000.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/milit.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/milit.ogg new file mode 100644 index 00000000..a8540b6a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/milit.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/piecemarker.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/piecemarker.ogg new file mode 100644 index 00000000..826059f8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/piecemarker.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/pn21.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/pn21.ogg new file mode 100644 index 00000000..1e74cf80 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/pn21.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/poshlinov.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/poshlinov.ogg new file mode 100644 index 00000000..c55ab44c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/poshlinov.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/pow9.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/pow9.ogg new file mode 100644 index 00000000..b616b23d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/pow9.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/pwn3r.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/pwn3r.ogg new file mode 100644 index 00000000..2ff83ebe Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/pwn3r.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/raging_pitbull.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/raging_pitbull.ogg new file mode 100644 index 00000000..599b0793 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/raging_pitbull.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/sg1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/sg1.ogg new file mode 100644 index 00000000..e6d29150 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/sg1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/sg2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/sg2.ogg new file mode 100644 index 00000000..bdc6c36d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/sg2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/snp6plus.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/snp6plus.ogg new file mode 100644 index 00000000..9d3d1bfd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/snp6plus.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/storm.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/storm.ogg new file mode 100644 index 00000000..e34d8027 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/storm.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/x90.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/x90.ogg new file mode 100644 index 00000000..e2a6bcf2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/Wuzzy/gungame.cdogscpn/sounds/x90.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/followtheleader.cpn b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/followtheleader.cpn new file mode 100644 index 00000000..589267b3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/followtheleader.cpn differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/bullets.json new file mode 100644 index 00000000..f246e00c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/bullets.json @@ -0,0 +1,365 @@ +{ + "Version": 2, + "Bullets": [ + { + "Name": "spreadgun_bullet", + "Pic": { + "Type": "Normal", + "Pic": "spreadgun_bullet" + }, + "Speed": 1000, + "Range": 50, + "Power": 5, + "Mass": 5, + "Spark": "", + "HitSounds": { + "Object": "spreadgun_hit_hard", + "Flesh": "spreadgun_hit", + "Wall": "spreadgun_hit" + } + }, + { + "Name": "vulcan_bullet", + "Pic": { + "Type": "Directional", + "Sprites": "vulcan_bullet" + }, + "Speed": 1000, + "Range": 50, + "Power": 3, + "Mass": 3, + "Spark": "", + "HitSounds": { + "Object": "vulcan_hit", + "Flesh": "vulcan_hit", + "Wall": "vulcan_hit" + } + }, + { + "Name": "chaser2_bullet", + "Pic": { + "Type": "Normal", + "Pic": "chaser2_bullet" + }, + "Speed": 1200, + "Range": 60, + "Power": 3, + "Mass": 3, + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "" + }, + "SeekFactor": 11 + }, + { + "Name": "grenade", + "Pic": { + "Type": "Animated", + "Sprites": "grenade", + "TicksPerFrame": 4 + }, + "Speed": 340, + "Range": 80, + "Power": 1, + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "" + }, + "WallBounces": true, + "Falling": { + "GravityFactor": 1 + }, + "OutOfRangeGuns": [ + "grenade_explosion1", + "grenade_explosion2", + "grenade_explosion3" + ], + "HitGuns": [ + "grenade_explosion1", + "grenade_explosion2", + "grenade_explosion3" + ] + }, + { + "Name": "grenade_fireball1", + "Pic": { + "Type": "Animated", + "Sprites": "fireball", + "TicksPerFrame": 3 + }, + "Speed": 0, + "Range": 40, + "Power": 1, + "Size": [7, 5], + "HurtAlways": true, + "Persists": true, + "Spark": "", + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "" + }, + "Falling": { + "GravityFactor": 1, + "FallsDown": false + } + }, + { + "Name": "grenade_fireball2", + "Pic": { + "Type": "Animated", + "Sprites": "fireball", + "Count": -8, + "TicksPerFrame": 3 + }, + "Speed": 0, + "Range": 48, + "Power": 0, + "Size": [7, 5], + "HurtAlways": true, + "Persists": true, + "Spark": "", + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "" + }, + "Falling": { + "GravityFactor": 1, + "FallsDown": false + } + }, + { + "Name": "grenade_fireball3", + "Pic": { + "Type": "Animated", + "Sprites": "fireball", + "Count": -16, + "TicksPerFrame": 3 + }, + "Speed": 0, + "Range": 56, + "Power": 0, + "Size": [7, 5], + "HurtAlways": true, + "Persists": true, + "Spark": "", + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "" + }, + "Falling": { + "GravityFactor": 1, + "FallsDown": false + } + }, + { + "Name": "laser_designator", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Speed": 2300, + "Range": 20, + "Power": 0, + "Spark": "", + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "" + }, + "Falling": { + "GravityFactor": 10 + }, + "HitsObjects": false, + "OutOfRangeGuns": [ + "laser_dot" + ], + "HitGuns": [ + "laser_dot" + ] + }, + { + "Name": "laser_dot", + "Pic": { + "Type": "Animated", + "Sprites": "laser_dot", + "TicksPerFrame": 1 + }, + "Speed": 0, + "Range": 300, + "Power": 0, + "Spark": "", + "HitsObjects": false, + "Persists": true, + "OutOfRangeGuns": [ + "nuke_incoming" + ] + }, + { + "Name": "nuke_incoming", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Speed": 0, + "Range": 1, + "Power": 0, + "Spark": "", + "HitsObjects": false, + "Persists": true, + "Falling": { + "GravityFactor": -1 + }, + "OutOfRangeGuns": [ + "nuclear_strike" + ] + }, + { + "Name": "nuke", + "Pic": { + "Type": "Animated", + "Sprites": "nuke", + "TicksPerFrame": 1 + }, + "ShadowSize": [6, 4], + "Speed": 0, + "Range": 100, + "Power": 0, + "Spark": "", + "HitsObjects": false, + "Persists": true, + "Falling": { + "GravityFactor": 1, + "DestroyOnDrop": true, + "DropGuns": [ + "big_explosion1", + "big_explosion2", + "explosion1", + "explosion2", + "explosion3", + "frag_explosion" + ] + }, + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "" + } + }, + { + "Name": "big_explosion_spawner1", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Speed": 800, + "Range": 14, + "Power": 0, + "Spark": "", + "HitsObjects": false, + "Persists": true, + "OutOfRangeGuns": [ + "explosion1", + "explosion2", + "explosion3" + ] + }, + { + "Name": "big_explosion_spawner2", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Speed": 800, + "Range": 28, + "Power": 0, + "Spark": "", + "HitsObjects": false, + "Persists": true, + "OutOfRangeGuns": [ + "explosion1", + "explosion2", + "explosion3" + ] + }, + { + "Name": "booby_trap_pod", + "Pic": { + "Type": "Animated", + "Sprites": "crystal", + "TicksPerFrame": 8 + }, + "Speed": 400, + "Range": 60, + "Power": 0, + "ShadowSize": [4, 3], + "Size": [4, 4], + "Spark": "", + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "bounce" + }, + "WallBounces": true, + "HitsObjects": false, + "Falling": { + "GravityFactor": 1, + "Bounces": true + }, + "OutOfRangeGuns": [ + "booby_trap_deployer" + ] + }, + { + "Name": "booby_trap", + "Pic": { + "Type": "Normal", + "Pic": "health" + }, + "Range": -1, + "Persists": true, + "ProximityGuns": [ + "fire_explosion" + ] + }, + { + "Name": "spearhead", + "Pic": { + "Type": "Directional", + "Sprites": "spearhead" + }, + "Speed": 700, + "Range": 60, + "Power": 10, + "Mass": -60.0, + "Size": [3, 3], + "Special": "Petrify", + "HitSounds": { + "Flesh": "get_over_here" + } + }, + { + "Name": "laser_point", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Speed": 40960, + "Range": 1, + "Power": 0, + "Mass": 0.0, + "Size": [1, 1], + "Special": "Flame", + "Spark": "laser_point", + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "" + } + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/campaign.json new file mode 100644 index 00000000..f57683e2 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/campaign.json @@ -0,0 +1,12 @@ +{ + "Version": 16, + "Title": "Fun with Guns", + "Author": "Cong", + "Description": "This campaign is a demonstration of the custom weapons available in C-Dogs SDL. Check out the campaign files to see how the weapons were made!", + "Ammo": false, + "WeaponPersist": false, + "SkipWeaponMenu": false, + "RandomPickups": true, + "DoorOpenTicks": 70, + "Missions": 1 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/character_classes.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/character_classes.json new file mode 100644 index 00000000..b21f55d4 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/character_classes.json @@ -0,0 +1,21 @@ +{ + "Version": 2, + "Characters": [ + { + "Name": "Mech", + "Vehicle": true, + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/jones" + }, + "Body": "mech", + "DeathSprites": "explosion", + "Mass": 500, + "Sounds": "mech", + "BloodColor": "aabbaa", + "Footsteps": "mech", + "FootstepsDistancePlus": 0 + } + ] + } + \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/characters.json new file mode 100644 index 00000000..8b1475b9 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/characters.json @@ -0,0 +1,38 @@ +{ + "Version": 13, + "Characters": [{ + "Class": "Jones", + "HairType": "flattop", + "Skin": "ff8136ff", + "Arms": "9c0000ff", + "Body": "9c0000ff", + "Legs": "363636ff", + "Hair": "9c0000ff", + "Feet": "363636ff", + "speed": 128, + "Gun": "Dynamite", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 40, + "probabilityToTrack": 15, + "probabilityToShoot": 0, + "actionDelay": 30 + }, + { + "Class": "Mech", + "Skin": "e6fce6ff", + "Arms": "660c00ff", + "Body": "aabbaaff", + "Legs": "aabbaaff", + "Hair": "e0f0e0ff", + "Feet": "aabbaaff", + "speed": 128, + "Gun": "Quad Machine Gun", + "maxHealth": 300, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/chaser2_bullet.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/chaser2_bullet.png new file mode 100644 index 00000000..36a96299 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/chaser2_bullet.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/crystal_8x8.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/crystal_8x8.png new file mode 100644 index 00000000..bf450ec5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/crystal_8x8.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/crystal_8x8.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/crystal_8x8.txt new file mode 100644 index 00000000..60cca93d --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/crystal_8x8.txt @@ -0,0 +1,4 @@ +Adapted from Rotating Crystal Animation (8-Step) +by qubodup +http://opengameart.org/content/rotating-crystal-animation-8-step +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/grenade_12x12.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/grenade_12x12.png new file mode 100644 index 00000000..b9b13178 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/grenade_12x12.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/laser_beam_64x64.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/laser_beam_64x64.png new file mode 100644 index 00000000..4238e234 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/laser_beam_64x64.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/laser_dot_4x4.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/laser_dot_4x4.png new file mode 100644 index 00000000..3deac1fe Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/laser_dot_4x4.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/muzzle_flash_thin_32x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/muzzle_flash_thin_32x32.png new file mode 100644 index 00000000..2f758d80 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/muzzle_flash_thin_32x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/muzzle_flash_thin_32x32.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/muzzle_flash_thin_32x32.txt new file mode 100644 index 00000000..74e4e43b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/muzzle_flash_thin_32x32.txt @@ -0,0 +1,5 @@ +Adapted from Space Ship Construction Kit +By Skorpio +http://opengameart.org/content/space-ship-construction-kit + +http://creativecommons.org/licenses/by-sa/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/nuke_32x75.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/nuke_32x75.png new file mode 100644 index 00000000..281d788c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/nuke_32x75.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/nuke_32x75.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/nuke_32x75.txt new file mode 100644 index 00000000..9ed7cd80 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/nuke_32x75.txt @@ -0,0 +1,8 @@ +Animated fighter spaceship by MillionthVector +http://opengameart.org/content/animated-fighter-spaceship +http://millionthvector.blogspot.de +http://creativecommons.org/licenses/by/3.0/ + +Animated particle effects #2 by para +http://opengameart.org/content/animated-particle-effects-2 +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/spearhead.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/spearhead.txt new file mode 100644 index 00000000..2a00e589 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/spearhead.txt @@ -0,0 +1,5 @@ +spear_shaft and spearhead +Derived from Top down game assets. +by LetargicDev +http://opengameart.org/content/top-down-game-assets +http://creativecommons.org/publicdomain/zero/1.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/spearhead_13x13.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/spearhead_13x13.png new file mode 100644 index 00000000..d5992aba Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/spearhead_13x13.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/spreadgun_bullet.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/spreadgun_bullet.png new file mode 100644 index 00000000..42dab38a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/spreadgun_bullet.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/vulcan_bullet_7x7.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/vulcan_bullet_7x7.png new file mode 100644 index 00000000..0684975c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/graphics/vulcan_bullet_7x7.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/guns.json new file mode 100644 index 00000000..6614b95e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/guns.json @@ -0,0 +1,187 @@ +{ + "Version": 3, + "Guns": [ + { + "Name": "Spread Gun", + "Description": "The spread gun rapidly fires 5 energy balls per shot in a broad angle.\n\nDamage: 5 per bullet (max. 25)\nRate of fire: 420 round/min\nLifespan: 0.71s\nSpeed: 1000\nCost: 2", + "Bullet": "spreadgun_bullet", + "Cost": 2, + "Lock": 10, + "Sound": "spreadgun", + "SwitchSound": "switch", + "SpreadCount": 5, + "SpreadWidth": 0.25 + }, + { + "Name": "Vulcan", + "Description": "The Vulcan is a rather quick gun which fires its projectiles in a broad range, it also is very accurate.\n\nDamage: 3 per bullet (max. 21)\nRate of fire: 525 round/min\nLifespan: 0.71s\nSpeed: 1000\nCost: 5", + "Bullet": "vulcan_bullet", + "Cost": 5, + "Lock": 8, + "Sound": "vulcan", + "SwitchSound": "switch", + "SpreadCount": 7, + "SpreadWidth": 0.23 + }, + { + "Name": "Chaser2", + "Description": "Chaser2 is a rapidly firing energy rifle which fires fast but weak projectiles which will follow and fly towards the nearest enemy. The projectiles are very effective in chasing their targets.\n\nDamage: 3\nRate of fire: 840 round/min\nLifespan: 0.85s\nSpeed: 1200\nCost: 2", + "Bullet": "chaser2_bullet", + "Cost": 2, + "Lock": 5, + "Sound": "chaser2", + "SwitchSound": "switch", + "Recoil": 0.8, + "MuzzleFlashParticle": "muzzle_flash_chaser2" + }, + { + "Name": "Stick Grenade", + "Description": "The stick grenade will explode on impact with a player or an object and continously cause massive local damage.\n\nDamage: Local explosion\nRate of fire: 210 round/min\nLifespan: 1.14s\nSpeed: 340\nCost: 5", + "Pic": "", + "Bullet": "grenade", + "Cost": 5, + "Lock": 20, + "Sound": "", + "SwitchSound": "grenade_pickup", + "Elevation": 24 + }, + { + "Description": "You will order a nuclear strike in a fixed distance from your position into your viewing direction or at least to the nearest wall. A siren will go off and a small red dot designates the impact position. About 4.5 seconds later, a nuclear missile will impact and causes a massive explosion, destruction and death.\n\nDamage: Huge explosion, devastating\nRate of fire: 8.4 round/min\nCost: 50", + "Name": "Nuclear Strike", + "Bullet": "laser_designator", + "Cost": 50, + "Lock": 500, + "Sound": "laser_designator", + "SwitchSound": "switch", + "MuzzleFlashParticle": "muzzle_flash_laser_beam" + }, + { + "Name": "Booby Trap", + "Description": "The booby trap is a weapon which is thrown onto the ground. When on the ground, a visual deception module activates and will make the trap look like a health pack. Any player (including the trapper) in proximity to the fake health pack will trigger the booby trap, which will explode in a ball of hot (and deadly) fire.\n\nDamage: Fire\nRate of fire: 42 round/min\nCost: 6", + "Bullet": "booby_trap_pod", + "Cost": 6, + "Lock": 100, + "Sound": "bottle_pop", + "ReloadSound": "package_r", + "SwitchSound": "package_r", + "ReloadLead": 15, + "Recoil": 0.4, + "Elevation": 20, + "MuzzleFlashParticle": "muzzle_flash_thin" + }, + { + "Name": "Scorpion Spear", + "Bullet": "spearhead", + "Cost": 15, + "Lock": 100, + "Sound": "swoosh_echo", + "SwitchSound": "switch" + }, + { + "Name": "Laser Pointer", + "Bullet": "laser_point", + "Cost": 0, + "Lock": 1, + "Sound": "", + "SwitchSound": "switch", + "MuzzleFlashParticle": "" + }, + { + "Name": "Quad Machine Gun", + "Icon": "machine_gun", + "CanDrop": false, + "Guns": ["quad_mg", "quad_mg"], + "SwitchSound": "switch", + "Lock": 3 + }, + { + "Name": "Pistol and Powergun", + "Icon": "powergun", + "CanDrop": false, + "Guns": ["Powergun", "Pistol"], + "SwitchSound": "switch", + "Lock": 6 + } + ], + "PseudoGuns" : [ + { + "Pic": "", + "Name": "grenade_explosion1", + "Bullet": "grenade_fireball1", + "ElevationLow": 14, + "ElevationHigh": 14, + "Sound": "grenade" + }, + { + "Pic": "", + "Name": "grenade_explosion2", + "Bullet": "grenade_fireball2", + "ElevationLow": 22, + "ElevationHigh": 22 + }, + { + "Pic": "", + "Name": "grenade_explosion3", + "Bullet": "grenade_fireball3", + "ElevationLow": 30, + "ElevationHigh": 30 + }, + { + "Pic": "", + "Name": "laser_dot", + "Bullet": "laser_dot", + "ElevationLow": 0, + "ElevationHigh": 0, + "Sound": "nuke_alarm" + }, + { + "Pic": "", + "Name": "nuke_incoming", + "Bullet": "nuke_incoming", + "ElevationLow": 3000, + "ElevationHigh": 3000, + "Sound": "" + }, + { + "Pic": "", + "Name": "nuclear_strike", + "Bullet": "nuke", + "ElevationLow": -10, + "ElevationHigh": -10, + "Sound": "nuke_fall" + }, + { + "Pic": "", + "Name": "big_explosion1", + "Bullet": "big_explosion_spawner1", + "SpreadCount": 6, + "SpreadWidth": 1.05 + }, + { + "Pic": "", + "Name": "big_explosion2", + "Bullet": "big_explosion_spawner2", + "SpreadCount": 8, + "SpreadWidth": 0.79 + }, + { + "Name": "booby_trap_deployer", + "Bullet": "booby_trap", + "Sound": "puff", + "MuzzleHeight": 0 + }, + { + "Pic": "quad_chaingun", + "Name": "quad_mg", + "Bullet": "mg", + "Cost": 4, + "Lock": 6, + "Sound": "lmg", + "SpreadCount": 2, + "Recoil": 0.2, + "MuzzleHeight": 12, + "MuzzleFlashParticle": "muzzle_flash_mg", + "Brass": "brass_big" + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/missions.json new file mode 100644 index 00000000..938537dd --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/missions.json @@ -0,0 +1,130 @@ +{ + "Missions": [{ + "Title": "Mission 1", + "Description": "", + "Type": "Classic", + "Width": 38, + "Height": 38, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [], + "Enemies": [0, + 1, + 0, + 0, + 0], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 105 + }, + { + "MapObject": "box", + "Density": 55 + }], + "EnemyDensity": 35, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol", + "Spread Gun", + "Chaser2", + "Stick Grenade", + "Vulcan", + "Nuclear Strike", + "Booby Trap", + "Scorpion Spear", + "Laser Pointer", + "Akimbo Pistols", + "Pistol and Powergun"], + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "343448ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "5c5c84ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "840000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 10, + "WallLength": 8, + "CorridorWidth": 2, + "Rooms": { + "Count": 0, + "Min": 0, + "Max": 0, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "ExitEnabled": true, + "Doors": { + "Enabled": false, + "Min": 0, + "Max": 0, + "RandomPos": false + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/particles.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/particles.json new file mode 100644 index 00000000..9330d953 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/particles.json @@ -0,0 +1,26 @@ +{ + "Version": 1, + "Particles": [ + { + "Name": "muzzle_flash_chaser2", + "Sprites": "particles/muzzle_flash", + "Mask": "66ff66" + }, + { + "Name": "muzzle_flash_laser_beam", + "Sprites": "laser_beam", + "Range": 5 + }, + { + "Name": "muzzle_flash_thin", + "Sprites": "muzzle_flash_thin", + "Mask": "ccccff", + "Range": 5 + }, + { + "Name": "laser_point", + "Sprites": "laser_dot", + "Range": 1 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/chaser2.wav b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/chaser2.wav new file mode 100644 index 00000000..8d8cd0fd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/chaser2.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/get_over_here.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/get_over_here.ogg new file mode 100644 index 00000000..dec25f21 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/get_over_here.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/get_over_here.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/get_over_here.txt new file mode 100644 index 00000000..f429c4fb --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/get_over_here.txt @@ -0,0 +1,4 @@ +Adapted from Angry Ghost Voice - "Get Over Here".wav +by TheGoliath +https://www.freesound.org/people/TheGoliath/sounds/329520/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/grenade.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/grenade.txt new file mode 100644 index 00000000..d35404ca --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/grenade.txt @@ -0,0 +1,3 @@ +Boom Pack 1 by dklon +http://opengameart.org/content/boom-pack-1 +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/grenade.wav b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/grenade.wav new file mode 100644 index 00000000..1a025b21 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/grenade.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/laser_designator.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/laser_designator.txt new file mode 100644 index 00000000..119a2f89 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/laser_designator.txt @@ -0,0 +1,7 @@ +Phaser, continuous fire by peridactyloptrix +http://freesound.org/people/peridactyloptrix/sounds/216909/ +http://creativecommons.org/publicdomain/zero/1.0/ + +Warning.ogg by Serithi +http://freesound.org/people/Serithi/sounds/150326/ +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/laser_designator.wav b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/laser_designator.wav new file mode 100644 index 00000000..6371f1c8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/laser_designator.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/nuke_alarm.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/nuke_alarm.txt new file mode 100644 index 00000000..3d7eb27b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/nuke_alarm.txt @@ -0,0 +1,3 @@ +alarm_fatal.wav by sirplus +http://www.freesound.org/people/sirplus/sounds/25031/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/nuke_alarm.wav b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/nuke_alarm.wav new file mode 100644 index 00000000..97670500 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/nuke_alarm.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/nuke_fall.wav b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/nuke_fall.wav new file mode 100644 index 00000000..4cf34208 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/nuke_fall.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/puff.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/puff.ogg new file mode 100644 index 00000000..d8dbee8b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/puff.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/puff.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/puff.txt new file mode 100644 index 00000000..7385197e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/puff.txt @@ -0,0 +1,4 @@ +Adapted from Poof of Smoke +by Planman +http://freesound.org/people/Planman/sounds/208111/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/spreadgun.wav b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/spreadgun.wav new file mode 100644 index 00000000..5a4fe051 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/spreadgun.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/spreadgun_hit.wav b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/spreadgun_hit.wav new file mode 100644 index 00000000..ba305c69 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/spreadgun_hit.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/spreadgun_hit_hard.wav b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/spreadgun_hit_hard.wav new file mode 100644 index 00000000..7ea39733 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/spreadgun_hit_hard.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/swoosh_echo.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/swoosh_echo.ogg new file mode 100644 index 00000000..35703de2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/swoosh_echo.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/swoosh_echo.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/swoosh_echo.txt new file mode 100644 index 00000000..87ec19a8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/swoosh_echo.txt @@ -0,0 +1,4 @@ +Adapted from Swoosh 5 +by Electroviolence +https://www.freesound.org/people/Electroviolence/sounds/234553/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/vulcan.wav b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/vulcan.wav new file mode 100644 index 00000000..c1d1c509 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/vulcan.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/vulcan_hit.wav b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/vulcan_hit.wav new file mode 100644 index 00000000..27af872e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/funwithguns.cdogscpn/sounds/vulcan_hit.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/minimal.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/minimal.cdogscpn/campaign.json new file mode 100644 index 00000000..085bb924 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/minimal.cdogscpn/campaign.json @@ -0,0 +1,7 @@ +{ + "Version": 3, + "Title": "Minimal", + "Author": "Cong", + "Description": "Contains only one mission with no objectives, to test end screens etc.", + "Missions": 1 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/minimal.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/minimal.cdogscpn/characters.json new file mode 100644 index 00000000..04823ad3 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/minimal.cdogscpn/characters.json @@ -0,0 +1,3 @@ +{ + "Characters": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/minimal.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/minimal.cdogscpn/missions.json new file mode 100644 index 00000000..20b69022 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/minimal.cdogscpn/missions.json @@ -0,0 +1,51 @@ +{ + "Missions": [{ + "Title": "Mission 1", + "Description": "No description", + "Type": "Classic", + "Width": 16, + "Height": 16, + "WallStyle": 5, + "FloorStyle": 8, + "RoomStyle": 0, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": [], + "Song": "", + "WallColor": 12, + "FloorColor": 12, + "RoomColor": 0, + "AltColor": 0, + "Walls": 0, + "WallLength": 0, + "CorridorWidth": 1, + "Rooms": { + "Count": 0, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/objectives.cpn b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/objectives.cpn new file mode 100644 index 00000000..93e888e0 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/objectives.cpn @@ -0,0 +1,147 @@ +{ + "Version": 1, + "Title": "Objectives Test", + "Author": "Cong", + "Description": "A single mission with all objective types, for testing of objectives.", + "Missions": [{ + "Title": "The Mission", + "Description": "Lots of objectives", + "Type": "Classic", + "Width": 28, + "Height": 28, + "WallStyle": 3, + "FloorStyle": 1, + "RoomStyle": 0, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [{ + "Description": "Kill", + "Type": "Kill", + "Index": 0, + "Count": 1, + "Required": 1, + "Flags": 0 + }, + { + "Description": "Collect", + "Type": "Collect", + "Index": 10, + "Count": 1, + "Required": 1, + "Flags": 0 + }, + { + "Description": "Destroy", + "Type": "Destroy", + "Index": 29, + "Count": 1, + "Required": 1, + "Flags": 0 + }, + { + "Description": "Rescue", + "Type": "Rescue", + "Index": 1, + "Count": 1, + "Required": 1, + "Flags": 0 + }, + { + "Description": "Explore", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 100, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [0], + "Items": [], + "ItemDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker"], + "Song": "", + "WallColor": 3, + "FloorColor": 8, + "RoomColor": 0, + "AltColor": 23, + "Walls": 0, + "WallLength": 0, + "CorridorWidth": 0, + "Rooms": { + "Count": 0, + "Min": 0, + "Max": 0, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": false, + "Min": 0, + "Max": 0 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }], + "Characters": [{ + "armedBody": 1, + "unarmedBody": 0, + "face": 2, + "skin": 3, + "arm": 9, + "body": 9, + "leg": 9, + "hair": 12, + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "armedBody": 1, + "unarmedBody": 0, + "face": 3, + "skin": 4, + "arm": 7, + "body": 7, + "leg": 7, + "hair": 13, + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 40, + "flags": 1967104, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/rescue.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/rescue.cdogscpn/campaign.json new file mode 100644 index 00000000..d9f86c24 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/rescue.cdogscpn/campaign.json @@ -0,0 +1,7 @@ +{ + "Version": 7, + "Title": "Rescue objectives", + "Author": "", + "Description": "Tests various rescue objectives with different character flags", + "Missions": 4 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/rescue.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/rescue.cdogscpn/characters.json new file mode 100644 index 00000000..82c6b638 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/rescue.cdogscpn/characters.json @@ -0,0 +1,66 @@ +{ + "Characters": [{ + "Class": "Ogre", + "Skin": "00ff00", + "Arms": "404040", + "Body": "404040", + "Legs": "404040", + "Hair": "000000", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 33555456, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "ac0000", + "Arms": "404040", + "Body": "404040", + "Legs": "404040", + "Hair": "000000", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 33817600, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "8484ac", + "Arms": "404040", + "Body": "404040", + "Legs": "404040", + "Hair": "000000", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 34604032, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "fce000", + "Arms": "404040", + "Body": "404040", + "Legs": "404040", + "Hair": "000000", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 34866176, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/rescue.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/rescue.cdogscpn/missions.json new file mode 100644 index 00000000..effd9353 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/rescue.cdogscpn/missions.json @@ -0,0 +1,310 @@ +{ + "Missions": [{ + "Title": "Rescue (no flags)", + "Description": "", + "Type": "Static", + "Width": 28, + "Height": 28, + "WallStyle": 0, + "FloorStyle": 0, + "RoomStyle": 0, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": "office", + "Objectives": [{ + "Description": "Rescue (no flags)", + "Type": "Rescue", + "Index": 0, + "Count": 2, + "Required": 2, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "WallMask": "848484", + "FloorMask": "484848", + "RoomMask": "707070", + "AltMask": "008400", + "Tiles": "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,258,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "StaticItems": [], + "StaticWrecks": [], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[4, + 14], + [4, + 3]], + "Indices": [0, + 0] + }], + "StaticKeys": [{ + "Index": 0, + "Positions": [[4, + 9]] + }], + "Start": [0, + 0], + "Exit": { + "Start": [0, + 0], + "End": [0, + 0] + } + }, + { + "Title": "Rescue (prisoner)", + "Description": "", + "Type": "Static", + "Width": 28, + "Height": 28, + "WallStyle": 0, + "FloorStyle": 0, + "RoomStyle": 0, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": "office", + "Objectives": [{ + "Description": "Rescue (prisoner)", + "Type": "Rescue", + "Index": 1, + "Count": 2, + "Required": 2, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "WallMask": "848484", + "FloorMask": "484848", + "RoomMask": "707070", + "AltMask": "008400", + "Tiles": "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,3,3,3,3,3,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "StaticItems": [], + "StaticWrecks": [], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[7, + 11], + [21, + 14]], + "Indices": [0, + 0] + }], + "StaticKeys": [{ + "Index": 0, + "Positions": [[15, + 11]] + }], + "Start": [0, + 0], + "Exit": { + "Start": [0, + 0], + "End": [0, + 0] + } + }, + { + "Title": "Rescue (follower)", + "Description": "", + "Type": "Static", + "Width": 28, + "Height": 28, + "WallStyle": 0, + "FloorStyle": 0, + "RoomStyle": 0, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": "office", + "Objectives": [{ + "Description": "Rescue (follower)", + "Type": "Rescue", + "Index": 2, + "Count": 2, + "Required": 2, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "WallMask": "848484", + "FloorMask": "484848", + "RoomMask": "707070", + "AltMask": "008400", + "Tiles": "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,1,258,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "StaticItems": [], + "StaticWrecks": [], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[10, + 4], + [17, + 14]], + "Indices": [0, + 0] + }], + "StaticKeys": [{ + "Index": 0, + "Positions": [[10, + 9]] + }], + "Start": [0, + 0], + "Exit": { + "Start": [0, + 0], + "End": [0, + 0] + } + }, + { + "Title": "Rescue (both)", + "Description": "", + "Type": "Static", + "Width": 28, + "Height": 28, + "WallStyle": 0, + "FloorStyle": 0, + "RoomStyle": 0, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": "office", + "Objectives": [{ + "Description": "Rescue (both)", + "Type": "Rescue", + "Index": 3, + "Count": 2, + "Required": 2, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "WallMask": "848484", + "FloorMask": "484848", + "RoomMask": "707070", + "AltMask": "008400", + "Tiles": "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,3,3,3,3,3,258,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "StaticItems": [], + "StaticWrecks": [], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[6, + 13], + [18, + 9]], + "Indices": [0, + 0] + }], + "StaticKeys": [{ + "Index": 0, + "Positions": [[12, + 13]] + }], + "Start": [0, + 0], + "Exit": { + "Start": [0, + 0], + "End": [0, + 0] + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/bullets.json new file mode 100644 index 00000000..e5afe7a1 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/bullets.json @@ -0,0 +1,14 @@ +{ + "Version": 2, + "Bullets": [ + { + "Name": "dog_bite", + "Power": 10, + "Mass": 1.0, + "HitSounds": { + "Object": "hits/dog_growl", + "Flesh": "hits/dog_growl" + } + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/campaign.json new file mode 100644 index 00000000..e560b66b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/campaign.json @@ -0,0 +1,11 @@ +{ + "Version": 16, + "Title": "Sound Test", + "Author": "", + "Description": "", + "Ammo": false, + "WeaponPersist": false, + "SkipWeaponMenu": false, + "RandomPickups": true, + "Missions": 1 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/character_classes.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/character_classes.json new file mode 100644 index 00000000..48cbdb4a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/character_classes.json @@ -0,0 +1,15 @@ +{ + "Version": 2, + "Characters": [ + { + "Name": "Killer Dog", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/dog" + }, + "Body": "dog", + "Sounds": "dog", + "Footsteps": "dog" + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/characters.json new file mode 100644 index 00000000..302d2d77 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/characters.json @@ -0,0 +1,92 @@ +{ + "Version": 13, + "Characters": [{ + "Class": "Ogre", + "Skin": "149c14ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "c00000ff", + "Feet": "363636ff", + "speed": 0, + "Gun": "Loop 1", + "maxHealth": 40, + "flags": 42468352, + "probabilityToMove": 0, + "probabilityToTrack": 0, + "probabilityToShoot": 100, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "hogan", + "Skin": "882800ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "000000ff", + "Feet": "363636ff", + "speed": 0, + "Gun": "Loop 2", + "maxHealth": 40, + "flags": 42468352, + "probabilityToMove": 0, + "probabilityToTrack": 0, + "probabilityToShoot": 100, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "ff8136ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "000000ff", + "Feet": "363636ff", + "speed": 0, + "Gun": "Loop 3", + "maxHealth": 40, + "flags": 42468352, + "probabilityToMove": 0, + "probabilityToTrack": 0, + "probabilityToShoot": 100, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "d25106ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "000000ff", + "Feet": "363636ff", + "speed": 0, + "Gun": "Loop 4", + "maxHealth": 40, + "flags": 42468352, + "probabilityToMove": 0, + "probabilityToTrack": 0, + "probabilityToShoot": 100, + "actionDelay": 15 + }, + { + "Class": "Killer Dog", + "PlayerTemplateName": "Doggo", + "Skin": "e5ad77ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "c28d3eff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Fists", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/graphics/music_note_6x8.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/graphics/music_note_6x8.png new file mode 100644 index 00000000..2d405cda Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/graphics/music_note_6x8.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/guns.json new file mode 100644 index 00000000..2f155c3f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/guns.json @@ -0,0 +1,39 @@ +{ + "Version": 3, + "Guns": [ + { + "Name": "Loop 1", + "Lock": 134, + "Sound": "loop1", + "Brass": "music_note" + }, + { + "Name": "Loop 2", + "Lock": 134, + "Sound": "loop2", + "Brass": "music_note" + }, + { + "Name": "Loop 3", + "Lock": 99, + "Sound": "loop3", + "Brass": "music_note" + }, + { + "Name": "Loop 4", + "Lock": 105, + "Sound": "loop4", + "Brass": "music_note" + }, + { + "Pic": "", + "Name": "Dog Bite", + "Bullet": "dog_bite", + "Cost": 0, + "Lock": 80, + "Sound": "", + "CanShoot": false, + "CanDrop": false + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/missions.json new file mode 100644 index 00000000..ace3aba4 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/missions.json @@ -0,0 +1,171 @@ +{ + "Missions": [{ + "Title": "Sound Test", + "Description": "Some characters shooting in various rooms, to test the sound capabilities of C-Dogs.", + "Type": "Static", + "Width": 38, + "Height": 38, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Fists", + "Pistol", + "Dog Bite"], + "Song": "", + "TileClasses": { + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "striped", + "Mask": "703800ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "carbon", + "Mask": "847024ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "840000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,1,1,1,1,2,2,2,2,1,1,1,0,0,0,0,0,0,1,1,1,1,2,2,2,1,1,1,1,0,0,0,0,0,1", + "1,0,0,0,1,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1", + "1,0,0,0,2,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1", + "1,0,0,0,2,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1", + "1,0,0,0,2,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,1", + "1,0,0,0,2,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,1", + "1,0,0,0,1,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,1", + "1,0,0,0,1,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,1", + "1,0,0,0,1,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1", + "1,0,0,0,1,1,1,1,2,2,2,1,1,1,1,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,2,1,1,1,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [], + "StaticCharacters": [{ + "Index": 0, + "Positions": [[9, 8]] + }, + { + "Index": 1, + "Positions": [[26, 8]] + }, + { + "Index": 2, + "Positions": [[9, 33]] + }, + { + "Index": 3, + "Positions": [[30, 31]] + }], + "StaticObjectives": [], + "StaticKeys": [], + "StaticPickups": [], + "Start": [0, 0], + "Exits": [{ + "Rect": [0, + 0, + 0, + 0], + "Mission": 1, + "Hidden": false + }] + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/particles.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/particles.json new file mode 100644 index 00000000..53320b3a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/particles.json @@ -0,0 +1,12 @@ +{ + "Version": 1, + "Particles": [ + { + "Name": "music_note", + "Sprites": "music_note", + "Range": 100, + "GravityFactor": 0, + "TicksPerFrame": 10 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop1.ogg new file mode 100644 index 00000000..25a7089b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop1.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop1.txt new file mode 100644 index 00000000..832b4c27 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop1.txt @@ -0,0 +1,3 @@ +Real Drums - Short loop. heavy 1.wav by Sorrow-Fox +http://freesound.org/people/Sorrow-Fox/sounds/123890/ +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop2.ogg new file mode 100644 index 00000000..863c4a83 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop2.txt new file mode 100644 index 00000000..413d47eb --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop2.txt @@ -0,0 +1,3 @@ +Real Drums - short loop heavy 2.wav by Sorrow-Fox +http://freesound.org/people/Sorrow-Fox/sounds/123891/ +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop3.ogg new file mode 100644 index 00000000..eda8d581 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop3.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop3.txt new file mode 100644 index 00000000..b92a5168 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop3.txt @@ -0,0 +1,3 @@ +Riff_1_170BPM.wav by BDWRekordings.com +http://freesound.org/people/BDWRekordings.com/sounds/98103/ +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop4.ogg new file mode 100644 index 00000000..1a427f6e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop4.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop4.txt new file mode 100644 index 00000000..2e72e72b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/soundtest.cdogscpn/sounds/loop4.txt @@ -0,0 +1,3 @@ +hiphip.wav by johnnypanic +http://freesound.org/people/johnnypanic/sounds/21086/ +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/spawnertest.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/spawnertest.cdogscpn/campaign.json new file mode 100644 index 00000000..82f0f6b6 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/spawnertest.cdogscpn/campaign.json @@ -0,0 +1,11 @@ +{ + "Version": 16, + "Title": "Spawner Test", + "Author": "Cong", + "Description": "Testing some spawners", + "Ammo": true, + "WeaponPersist": false, + "SkipWeaponMenu": true, + "RandomPickups": false, + "Missions": 1 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/spawnertest.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/spawnertest.cdogscpn/characters.json new file mode 100644 index 00000000..af9e4154 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/spawnertest.cdogscpn/characters.json @@ -0,0 +1,4 @@ +{ + "Version": 13, + "Characters": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/spawnertest.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/spawnertest.cdogscpn/missions.json new file mode 100644 index 00000000..9e29935c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/spawnertest.cdogscpn/missions.json @@ -0,0 +1,148 @@ +{ + "Missions": [{ + "Title": "", + "Description": "", + "Type": "Static", + "Width": 16, + "Height": 16, + "ExitStyle": "plate", + "KeyStyle": "office", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "TileClasses": { + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "carbon", + "Mask": "000048ff", + "MaskAlt": "840084ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "grid", + "Mask": "848484ff", + "MaskAlt": "840084ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "Bullets ammo spawner", + "Positions": [[2, 2]] + }, + { + "MapObject": "Grenades spawner", + "Positions": [[4, 2]] + }, + { + "MapObject": "Gas tank ammo spawner", + "Positions": [[6, 2]] + }, + { + "MapObject": "Shells ammo spawner", + "Positions": [[8, 2]] + }, + { + "MapObject": "Cells ammo spawner", + "Positions": [[10, 2]] + }, + { + "MapObject": "Frag grenades ammo spawner", + "Positions": [[12, 2]] + }, + { + "MapObject": "Molotovs spawner", + "Positions": [[2, 4]] + }, + { + "MapObject": "Mines ammo spawner", + "Positions": [[4, 4], + [10, 4]] + }, + { + "MapObject": "Machine gun spawner", + "Positions": [[2, 6]] + }, + { + "MapObject": "Shotgun spawner", + "Positions": [[4, 6]] + }], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [], + "StaticPickups": [], + "Start": [0, 0], + "Exits": [{ + "Rect": [10, + 11, + 5, + 4], + "Mission": 1, + "Hidden": false + }] + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/spritetest.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/spritetest.cdogscpn/campaign.json new file mode 100644 index 00000000..0baa7ba5 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/spritetest.cdogscpn/campaign.json @@ -0,0 +1,11 @@ +{ + "Version": 16, + "Title": "Sprite test", + "Author": "", + "Description": "Missions that have various map objects to test their appearance in-game.", + "Ammo": false, + "WeaponPersist": false, + "SkipWeaponMenu": false, + "RandomPickups": true, + "Missions": 1 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/spritetest.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/spritetest.cdogscpn/characters.json new file mode 100644 index 00000000..af9e4154 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/spritetest.cdogscpn/characters.json @@ -0,0 +1,4 @@ +{ + "Version": 13, + "Characters": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/spritetest.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/spritetest.cdogscpn/missions.json new file mode 100644 index 00000000..4900b542 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/spritetest.cdogscpn/missions.json @@ -0,0 +1,477 @@ +{ + "Missions": [{ + "Title": "Untitled", + "Description": "", + "Type": "Static", + "Width": 34, + "Height": 27, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "TileClasses": { + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "484848ff", + "MaskAlt": "482400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "848484ff", + "MaskAlt": "482400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "barrel_blue", + "Positions": [[2, 1], + [2, 2], + [2, 3], + [3, 1], + [4, 1]] + }, + { + "MapObject": "box", + "Positions": [[6, 3], + [6, 2], + [6, 1], + [7, 1], + [8, 1]] + }, + { + "MapObject": "box2", + "Positions": [[10, 3], + [10, 2], + [10, 1], + [11, 1], + [12, 1]] + }, + { + "MapObject": "cabinet", + "Positions": [[14, 3], + [14, 2], + [14, 1], + [15, 1], + [16, 1]] + }, + { + "MapObject": "plant", + "Positions": [[18, 3], + [18, 2], + [18, 1], + [19, 1], + [20, 1]] + }, + { + "MapObject": "bench", + "Positions": [[22, 3], + [22, 2], + [22, 1], + [23, 1], + [24, 1]] + }, + { + "MapObject": "chair", + "Positions": [[26, 3], + [26, 2], + [26, 1], + [28, 1], + [27, 1]] + }, + { + "MapObject": "column", + "Positions": [[30, 3], + [30, 2], + [30, 1], + [31, 1], + [32, 1]] + }, + { + "MapObject": "barrel_skull", + "Positions": [[2, 7], + [2, 6], + [2, 5], + [3, 5], + [4, 5]] + }, + { + "MapObject": "barrel_wood", + "Positions": [[6, 7], + [6, 6], + [6, 5], + [7, 5], + [8, 5]] + }, + { + "MapObject": "box_gray", + "Positions": [[10, 7], + [10, 6], + [10, 5], + [11, 5], + [12, 5]] + }, + { + "MapObject": "box_green", + "Positions": [[14, 7], + [14, 6], + [14, 5], + [15, 5], + [16, 5]] + }, + { + "MapObject": "statue_ogre", + "Positions": [[18, 7], + [18, 6], + [18, 5], + [19, 5], + [20, 5]] + }, + { + "MapObject": "table_wood_candle", + "Positions": [[22, 7], + [22, 6], + [22, 5], + [23, 5], + [24, 5]] + }, + { + "MapObject": "table_wood", + "Positions": [[26, 7], + [26, 6], + [26, 5], + [27, 5], + [28, 5]] + }, + { + "MapObject": "tree_dead", + "Positions": [[30, 7], + [30, 6], + [30, 5], + [31, 5], + [32, 5]] + }, + { + "MapObject": "bookshelf", + "Positions": [[2, 11], + [2, 10], + [2, 9], + [3, 9], + [4, 9]] + }, + { + "MapObject": "box_wood", + "Positions": [[6, 11], + [6, 10], + [6, 9], + [7, 9], + [8, 9]] + }, + { + "MapObject": "table_clothed", + "Positions": [[10, 11], + [10, 10], + [10, 9], + [11, 9], + [12, 9]] + }, + { + "MapObject": "table_steel", + "Positions": [[14, 11], + [14, 10], + [14, 9], + [15, 9], + [16, 9]] + }, + { + "MapObject": "tree_autumn", + "Positions": [[18, 11], + [18, 10], + [18, 9], + [19, 9], + [20, 9]] + }, + { + "MapObject": "tree", + "Positions": [[22, 11], + [22, 10], + [22, 9], + [23, 9], + [24, 9]] + }, + { + "MapObject": "box_metal_green", + "Positions": [[26, 11], + [26, 10], + [26, 9], + [27, 9], + [28, 9]] + }, + { + "MapObject": "safe", + "Positions": [[30, 11], + [30, 10], + [30, 9], + [31, 9], + [32, 9]] + }, + { + "MapObject": "box_red", + "Positions": [[2, 15], + [2, 14], + [2, 13], + [3, 13], + [4, 13]] + }, + { + "MapObject": "table_lab", + "Positions": [[6, 15], + [6, 14], + [6, 13], + [7, 13], + [8, 13]] + }, + { + "MapObject": "terminal", + "Positions": [[10, 15], + [10, 14], + [10, 13], + [11, 13], + [12, 13]] + }, + { + "MapObject": "barrel", + "Positions": [[14, 15], + [14, 14], + [14, 13], + [15, 13], + [16, 13]] + }, + { + "MapObject": "rocket", + "Positions": [[18, 15], + [18, 14], + [18, 13], + [19, 13], + [20, 13]] + }, + { + "MapObject": "egg", + "Positions": [[22, 15], + [22, 14], + [22, 13], + [23, 13], + [24, 13]] + }, + { + "MapObject": "bloodstain", + "Positions": [[26, 13], + [27, 13], + [28, 13]] + }, + { + "MapObject": "wall_skull", + "Positions": [[30, 13], + [31, 13], + [32, 13]] + }, + { + "MapObject": "bone_blood", + "Positions": [[2, 19], + [2, 18], + [2, 17], + [3, 17], + [4, 17]] + }, + { + "MapObject": "bulletmarks", + "Positions": [[6, 17], + [7, 17], + [8, 17]] + }, + { + "MapObject": "skull", + "Positions": [[10, 17], + [10, 18], + [10, 19], + [11, 17], + [12, 17]] + }, + { + "MapObject": "blood0", + "Positions": [[14, 19], + [14, 18], + [14, 17], + [15, 17], + [16, 17]] + }, + { + "MapObject": "scratch", + "Positions": [[18, 17], + [19, 17], + [20, 17]] + }, + { + "MapObject": "wall_stuff", + "Positions": [[22, 17], + [23, 17], + [24, 17]] + }, + { + "MapObject": "wall_goo", + "Positions": [[26, 17], + [27, 17], + [28, 17]] + }, + { + "MapObject": "goo", + "Positions": [[30, 19], + [30, 18], + [30, 17], + [31, 17], + [32, 17]] + }, + { + "MapObject": "fan", + "Positions": [[2, 21], + [3, 21], + [4, 21], + [2, 22], + [2, 23]] + }, + { + "MapObject": "table_and_chairs", + "Positions": [[6, 21], + [7, 21], + [8, 21], + [6, 22], + [6, 23]] + }, + { + "MapObject": "chair_dining_left", + "Positions": [[10, 22], + [10, 23]] + }, + { + "MapObject": "chair_dining_top", + "Positions": [[11, 21], + [10, 21]] + }, + { + "MapObject": "chair_dining_right", + "Positions": [[12, 21], + [12, 22]] + }, + { + "MapObject": "rod_light", + "Positions": [[14, 21], + [14, 22], + [14, 23], + [15, 21], + [16, 21]] + }], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [], + "StaticPickups": [], + "Start": [0, 0], + "Exits": [{ + "Rect": [0, + 19, + 33, + 2], + "Mission": 1, + "Hidden": false + }], + "AltFloorsEnabled": true + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/static.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/static.cdogscpn/campaign.json new file mode 100644 index 00000000..bce756a6 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/static.cdogscpn/campaign.json @@ -0,0 +1,10 @@ +{ + "Version": 16, + "Title": "Static map", + "Author": "Cong", + "Description": "A demo of a static map, not randomly generated", + "Ammo": false, + "WeaponPersist": false, + "SkipWeaponMenu": false, + "Missions": 5 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/static.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/static.cdogscpn/characters.json new file mode 100644 index 00000000..f343f899 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/static.cdogscpn/characters.json @@ -0,0 +1,51 @@ +{ + "Version": 13, + "Characters": [{ + "Class": "Ogre", + "Skin": "149c14ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "c00000ff", + "speed": 0, + "Gun": "Confusion bombs", + "maxHealth": 40, + "flags": 8389760, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "Skin": "ff8136ff", + "Arms": "9c0000ff", + "Body": "9c0000ff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 128, + "Gun": "Confusion bombs", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 20, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 25 + }, + { + "Class": "Lady", + "Skin": "ff8136ff", + "Arms": "ff8136ff", + "Body": "9c589cff", + "Legs": "9c589cff", + "Hair": "00000000", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 40, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 21 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/static.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/static.cdogscpn/missions.json new file mode 100644 index 00000000..1f4bdf29 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/static.cdogscpn/missions.json @@ -0,0 +1,1246 @@ +{ + "Missions": [{ + "Title": "Mission 1", + "Description": "Blah blah blah", + "Type": "Static", + "Width": 33, + "Height": 16, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker"], + "Song": "", + "TileClasses": { + "6": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "31b631ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": false, + "IsRoom": false + }, + "7": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "9bfcf6ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": true, + "IsRoom": false + }, + "2": { + "Name": "door", + "Type": "Door", + "Style": "alien", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "carbon", + "Mask": "008400ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "5": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "f6ff6cff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": true, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "ff180dff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "004800ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "4": { + "Name": "wall", + "Type": "Wall", + "Style": "carbon", + "Mask": "e376f7ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,1,0,6,6,6,6,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,1,0,3,3,3,3,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,1,0,3,3,3,3,0,0,2,0,4,0,2,0,1,2,2,1,1,0,1,2,2,1,0,0,1,1,1,0,1", + "1,1,1,0,0,0,0,0,0,0,2,0,4,0,1,1,1,0,0,0,1,0,1,6,6,1,0,1,1,0,0,0,1", + "1,0,1,0,7,7,7,7,0,0,2,0,4,0,1,1,0,5,5,0,2,0,2,0,0,2,0,1,1,0,0,0,1", + "1,0,1,0,0,0,0,0,0,0,2,0,4,0,1,1,0,5,5,0,2,0,1,0,0,2,0,0,1,1,1,0,1", + "1,0,1,0,0,0,0,0,0,0,2,0,0,0,2,0,1,0,0,1,1,0,0,1,0,1,0,0,0,0,1,0,1", + "1,0,1,1,1,1,1,1,0,0,1,0,0,0,1,0,1,2,2,1,0,0,0,1,1,1,0,0,0,0,1,0,1", + "1,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "terminal", + "Positions": [[15, 1]] + }, + { + "MapObject": "terminal", + "Positions": [[17, 1]] + }, + { + "MapObject": "box_metal_green", + "Positions": [[14, 1]] + }, + { + "MapObject": "rocket", + "Positions": [[16, 1]] + }, + { + "MapObject": "barrel_skull", + "Positions": [[18, 1]] + }, + { + "MapObject": "barrel_blue", + "Positions": [] + }, + { + "MapObject": "box", + "Positions": [[24, 1], + [25, 1], + [26, 1], + [27, 1], + [27, 2], + [27, 3], + [27, 4], + [26, 4], + [25, 4], + [24, 4], + [24, 3], + [24, 2]] + }, + { + "MapObject": "cabinet", + "Positions": [] + }, + { + "MapObject": "cabinet", + "Positions": [] + }, + { + "MapObject": "scratch", + "Positions": [] + }, + { + "MapObject": "scratch", + "Positions": [] + }, + { + "MapObject": "scratch", + "Positions": [] + }, + { + "MapObject": "scratch", + "Positions": [] + }, + { + "MapObject": "scratch", + "Positions": [] + }, + { + "MapObject": "scratch", + "Positions": [] + }, + { + "MapObject": "scratch", + "Positions": [] + }, + { + "MapObject": "scratch", + "Positions": [] + }, + { + "MapObject": "scratch", + "Positions": [] + }, + { + "MapObject": "scratch", + "Positions": [] + }, + { + "MapObject": "scratch", + "Positions": [] + }, + { + "MapObject": "scratch", + "Positions": [] + }, + { + "MapObject": "scratch", + "Positions": [] + }, + { + "MapObject": "scratch", + "Positions": [] + }, + { + "MapObject": "scratch", + "Positions": [] + }, + { + "MapObject": "scratch", + "Positions": [] + }, + { + "MapObject": "egg", + "Positions": [[23, 1], + [23, 2], + [23, 3], + [23, 4], + [23, 5], + [24, 5], + [25, 5], + [26, 5], + [27, 5], + [28, 5], + [28, 4], + [28, 3], + [28, 2], + [28, 1]] + }, + { + "MapObject": "egg", + "Positions": [] + }, + { + "MapObject": "egg", + "Positions": [] + }, + { + "MapObject": "egg", + "Positions": [] + }, + { + "MapObject": "egg", + "Positions": [] + }, + { + "MapObject": "egg", + "Positions": [] + }, + { + "MapObject": "egg", + "Positions": [] + }, + { + "MapObject": "egg", + "Positions": [] + }, + { + "MapObject": "egg", + "Positions": [] + }, + { + "MapObject": "egg", + "Positions": [] + }], + "StaticCharacters": [{ + "Index": 0, + "Positions": [[25, 2], + [26, 2], + [26, 3], + [25, 3]] + }], + "StaticObjectives": [], + "StaticKeys": [], + "Start": [1, 8], + "Exits": [{ + "Rect": [12, + 0, + 8, + 3], + "Mission": 1, + "Hidden": false + }] + }, + { + "Title": "Lots of rooms", + "Description": "This map demonstrates rooms adjacent to each other, as well as free placement of keys and assignment of doors that require keys.", + "Type": "Static", + "Width": 26, + "Height": 38, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Get the goodies", + "Type": "Collect", + "Pickup": "cd", + "Count": 10, + "Required": 8, + "Flags": 6 + }], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "703800ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "707070ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "007000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,1,3,3,3,1,3,3,1,3,3,3,1,3,3,3,3,1,3,3,3,1,0,0", + "1,0,0,1,3,3,3,2,3,3,2,3,3,3,2,3,3,3,3,1,3,3,3,1,0,0", + "1,0,0,2,3,3,3,1,3,3,1,3,3,3,2,3,3,3,3,2,3,3,3,2,0,0", + "1,0,0,1,3,3,3,1,3,3,1,3,3,3,1,3,3,3,3,1,3,3,3,1,0,0", + "1,0,0,1,3,3,3,1,1,2,1,1,2,1,1,3,3,3,3,1,3,3,3,1,0,0", + "1,0,0,1,1,2,1,1,3,3,3,3,3,3,1,1,1,2,1,1,1,2,1,1,0,0", + "1,0,0,1,3,3,3,1,3,3,3,3,3,3,1,3,3,3,3,1,3,3,3,2,0,0", + "1,0,0,2,3,3,3,2,3,3,3,3,3,3,2,3,3,3,3,2,3,3,3,1,0,0", + "1,0,0,1,3,3,3,1,1,2,1,2,1,1,1,3,3,3,3,1,3,3,3,1,0,0", + "1,0,0,1,3,3,3,1,3,3,1,3,3,3,2,3,3,3,3,1,3,3,3,1,0,0", + "1,0,0,1,1,2,1,1,3,3,2,3,3,3,1,1,1,2,1,1,2,1,1,1,0,0", + "1,0,0,1,3,3,3,1,3,3,1,3,3,3,2,3,3,3,1,3,3,3,3,1,0,0", + "1,0,0,2,3,3,3,2,3,3,1,1,2,1,1,3,3,3,2,3,3,3,3,1,0,0", + "1,0,0,1,3,3,3,1,3,3,2,3,3,3,2,3,3,3,1,3,3,3,3,2,0,0", + "1,0,0,1,3,3,3,1,3,3,1,3,3,3,1,3,3,3,1,3,3,3,3,1,0,0", + "1,0,0,1,2,1,1,1,2,1,1,3,3,3,1,1,2,1,1,1,1,2,1,1,0,0", + "1,0,0,1,3,3,1,3,3,3,2,3,3,3,2,3,3,3,3,1,3,3,3,1,0,0", + "1,0,0,1,3,3,2,3,3,3,1,3,3,3,1,3,3,3,3,1,3,3,3,2,0,0", + "1,0,0,2,3,3,1,1,2,1,1,1,2,1,1,3,3,3,3,2,3,3,3,1,0,0", + "1,0,0,1,3,3,1,0,0,0,0,0,0,0,1,3,3,3,3,1,3,3,3,1,0,0", + "1,0,0,1,3,3,1,0,0,0,0,0,0,0,1,1,1,2,1,1,1,2,1,1,0,0", + "1,0,0,1,1,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,1,1,1,2,1,1,1,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,1,3,3,3,3,1,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,2,3,3,3,3,2,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,1,3,3,3,3,1,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,1,3,3,3,3,1,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,1,1,1,1,1,1,1,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,1,3,3,3,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,2,3,3,3,2,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,1,3,3,3,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,1,3,3,3,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,1,1,2,1,1,1,1,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,256,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,512,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0", + "0,0,0,512,0,0,0,1024,0,0,0,0,0,0,256,0,0,0,0,1024,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,256,0,0,0,0,2048,0,0,0,0,0,2048,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,1024,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0", + "0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,1024,0,0,0,0", + "0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,512,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,2048,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "barrel_blue", + "Positions": [[16, 27], + [17, 27], + [18, 27], + [19, 27], + [20, 27], + [17, 28], + [18, 28], + [19, 28], + [18, 29], + [17, 26], + [18, 26], + [19, 26], + [18, 25]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[22, 22], + [22, 23], + [22, 24], + [21, 24], + [21, 23], + [21, 22]], + "Indices": [0, + 0, + 0, + 0, + 0, + 0] + }], + "StaticKeys": [{ + "Index": 0, + "Positions": [[17, 23], + [17, 23]] + }, + { + "Index": 1, + "Positions": [[18, 23], + [18, 23], + [18, 23], + [18, 23]] + }, + { + "Index": 2, + "Positions": [[19, 23], + [19, 23], + [19, 23]] + }, + { + "Index": 3, + "Positions": [[20, 23], + [20, 23], + [20, 23]] + }], + "Start": [23, 29], + "Exits": [{ + "Rect": [14, + 0, + 5, + 6], + "Mission": 2, + "Hidden": false + }] + }, + { + "Title": "Pallet Town", + "Description": "This map was created by tracing over a guide image. The guide image resizes to fit the map dimensions, so the map can be resized to fit the grid of the guide image first.", + "Type": "Static", + "Width": 24, + "Height": 20, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "848484ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "wood2", + "Mask": "008400ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "007000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "4": { + "Name": "tile", + "Type": "Floor", + "Style": "water", + "Mask": "7292fcff", + "MaskAlt": "808080ff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0", + "0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0", + "0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0", + "0,0,3,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,3,0,0,0", + "0,0,3,0,0,1,1,1,1,1,0,3,0,0,1,1,1,1,1,0,3,0,0,0", + "0,0,3,0,0,1,0,0,0,1,0,3,0,0,1,0,0,0,1,0,3,0,0,0", + "0,0,3,0,0,1,2,1,1,1,0,3,0,0,1,2,1,1,1,0,3,0,0,0", + "0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0", + "0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0", + "0,0,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,3,0,0,0", + "0,0,3,3,0,0,0,0,0,0,0,3,0,1,1,1,1,1,1,1,3,0,0,0", + "0,0,3,3,0,0,0,0,0,0,0,3,0,1,0,0,0,0,0,1,3,0,0,0", + "0,0,3,3,0,0,0,0,0,0,0,3,0,1,1,1,2,1,1,1,3,0,0,0", + "0,0,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,0,0,0", + "0,0,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,3,0,0,0", + "0,0,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,3,0,0,0", + "0,0,0,0,0,0,0,4,4,4,4,3,3,3,3,3,3,3,3,3,3,0,0,0", + "0,0,0,0,0,0,0,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "tree", + "Positions": [[1, 4], + [1, 5], + [1, 6], + [1, 7], + [1, 8], + [1, 9], + [1, 10], + [0, 3], + [0, 4], + [0, 5], + [0, 6], + [0, 7], + [0, 8], + [0, 9], + [0, 10], + [0, 11], + [0, 15], + [1, 19], + [0, 19], + [0, 18], + [0, 17], + [0, 16], + [0, 14], + [0, 13], + [0, 12], + [1, 11], + [1, 12], + [1, 13], + [1, 14], + [1, 15], + [1, 16], + [1, 17], + [1, 18], + [3, 19], + [2, 19], + [4, 19], + [5, 19], + [0, 1], + [4, 0], + [5, 0], + [6, 0], + [7, 0], + [8, 0], + [9, 0], + [10, 0], + [11, 0], + [11, 1], + [10, 1], + [9, 1], + [8, 1], + [7, 1], + [6, 1], + [5, 1], + [4, 1], + [3, 0], + [2, 0], + [2, 1], + [3, 1], + [14, 0], + [15, 0], + [16, 0], + [17, 0], + [18, 0], + [19, 0], + [20, 0], + [21, 1], + [22, 1], + [23, 0], + [22, 0], + [21, 0], + [14, 1], + [15, 1], + [16, 1], + [17, 1], + [18, 1], + [19, 1], + [20, 1], + [22, 7], + [22, 8], + [22, 2], + [22, 3], + [22, 4], + [22, 5], + [22, 6], + [23, 1], + [23, 2], + [23, 3], + [23, 4], + [23, 5], + [23, 6], + [23, 7], + [23, 8], + [23, 9], + [23, 10], + [23, 11], + [23, 12], + [23, 13], + [22, 9], + [22, 10], + [22, 12], + [22, 13], + [22, 14], + [22, 15], + [22, 16], + [22, 17], + [22, 11], + [23, 14], + [23, 15], + [23, 16], + [23, 17], + [23, 18], + [23, 19], + [22, 18], + [22, 19], + [21, 19], + [20, 19], + [19, 19], + [18, 19]] + }, + { + "MapObject": "column", + "Positions": [[4, 7], + [13, 7]] + }, + { + "MapObject": "tree", + "Positions": [[1, 0]] + }, + { + "MapObject": "tree", + "Positions": [[1, 1]] + }, + { + "MapObject": "tree", + "Positions": [[0, 0]] + }, + { + "MapObject": "tree", + "Positions": [[0, 2]] + }, + { + "MapObject": "tree", + "Positions": [[1, 2]] + }, + { + "MapObject": "tree", + "Positions": [[1, 3]] + }, + { + "MapObject": "table_wood", + "Positions": [[5, 11]] + }, + { + "MapObject": "table_wood", + "Positions": [[6, 11]] + }, + { + "MapObject": "table_wood", + "Positions": [[7, 11]] + }, + { + "MapObject": "table_wood", + "Positions": [[8, 11]] + }, + { + "MapObject": "table_wood", + "Positions": [[13, 16]] + }, + { + "MapObject": "table_wood", + "Positions": [[14, 16]] + }, + { + "MapObject": "table_wood", + "Positions": [[15, 16], + [17, 16], + [18, 16]] + }, + { + "MapObject": "barrel", + "Positions": [[9, 11]] + }, + { + "MapObject": "barrel", + "Positions": [[5, 14]] + }, + { + "MapObject": "box_red", + "Positions": [[16, 16]] + }, + { + "MapObject": "tree_autumn", + "Positions": [[5, 12]] + }, + { + "MapObject": "tree_autumn", + "Positions": [[6, 12]] + }, + { + "MapObject": "tree_autumn", + "Positions": [[7, 12]] + }, + { + "MapObject": "tree_autumn", + "Positions": [[8, 12]] + }, + { + "MapObject": "tree_autumn", + "Positions": [[8, 13]] + }, + { + "MapObject": "tree_autumn", + "Positions": [[7, 13]] + }, + { + "MapObject": "tree_autumn", + "Positions": [[6, 13]] + }, + { + "MapObject": "tree_autumn", + "Positions": [[5, 13]] + }], + "StaticCharacters": [{ + "Index": 1, + "Positions": [[13, 17]] + }, + { + "Index": 2, + "Positions": [[5, 10]] + }], + "StaticObjectives": [], + "StaticKeys": [], + "Start": [6, 8], + "Exits": [{ + "Rect": [11, + 0, + 3, + 2], + "Mission": 5, + "Hidden": false + }, + { + "Rect": [5, + 5, + 4, + 2], + "Mission": 3, + "Hidden": false + }] + }, + { + "Title": "1F", + "Description": "", + "Type": "Static", + "Width": 16, + "Height": 16, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "TileClasses": { + "2": { + "Name": "", + "Type": "", + "Style": "recessed", + "Mask": "808080ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "1": { + "Name": "tile", + "Type": "Floor", + "Style": "striped", + "Mask": "d7c98eff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "0": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "848484ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + } + }, + "Tiles": ["2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2", + "2,2,2,0,1,1,1,1,1,1,1,1,0,2,2,2", + "2,2,2,0,1,1,1,1,1,1,1,1,0,2,2,2", + "2,2,2,0,1,1,1,1,1,1,1,1,0,2,2,2", + "2,2,2,0,1,1,1,1,1,1,1,1,0,2,2,2", + "2,2,2,0,1,1,1,1,1,1,1,1,0,2,2,2", + "2,2,2,0,1,1,1,1,1,1,1,1,0,2,2,2", + "2,2,2,0,1,1,1,1,1,1,1,1,0,2,2,2", + "2,2,2,0,1,1,1,1,1,1,1,1,0,2,2,2", + "2,2,2,0,2,2,2,2,2,2,2,2,0,2,2,2", + "2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "bookshelf2", + "Positions": [[4, 4], + [5, 4]] + }, + { + "MapObject": "table_wood_round_terminal", + "Positions": [[7, 4]] + }, + { + "MapObject": "wscreen1", + "Positions": [[9, 4], + [11, 4]] + }, + { + "MapObject": "table_wood", + "Positions": [[7, 9], + [8, 9], + [8, 8], + [7, 8]] + }, + { + "MapObject": "chair", + "Positions": [[6, 8], + [6, 9], + [9, 8], + [9, 9]] + }], + "StaticCharacters": [{ + "Index": 2, + "Positions": [[10, 8]] + }], + "StaticObjectives": [], + "StaticKeys": [], + "Start": [7, 6], + "Exits": [{ + "Rect": [5, + 10, + 3, + 2], + "Mission": 2, + "Hidden": false + }, + { + "Rect": [10, + 3, + 2, + 2], + "Mission": 4, + "Hidden": false + }] + }, + { + "Title": "2F", + "Description": "", + "Type": "Static", + "Width": 16, + "Height": 16, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "TileClasses": { + "2": { + "Name": "", + "Type": "", + "Style": "recessed", + "Mask": "808080ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "1": { + "Name": "tile", + "Type": "Floor", + "Style": "striped", + "Mask": "d7c98eff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "0": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "848484ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + } + }, + "Tiles": ["2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,2", + "2,2,2,0,1,1,1,1,1,1,1,1,0,2,2,2", + "2,2,2,0,1,1,1,1,1,1,1,1,0,2,2,2", + "2,2,2,0,1,1,1,1,1,1,1,1,0,2,2,2", + "2,2,2,0,1,1,1,1,1,1,1,1,0,2,2,2", + "2,2,2,0,1,1,1,1,1,1,1,1,0,2,2,2", + "2,2,2,0,1,1,1,1,1,1,1,1,0,2,2,2", + "2,2,2,0,1,1,1,1,1,1,1,1,0,2,2,2", + "2,2,2,0,1,1,1,1,1,1,1,1,0,2,2,2", + "2,2,2,0,2,2,2,2,2,2,2,2,0,2,2,2", + "2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "wscreen1", + "Positions": [[9, 4], + [11, 4]] + }, + { + "MapObject": "terminal", + "Positions": [[4, 4]] + }, + { + "MapObject": "table_steel", + "Positions": [[5, 4], + [6, 4]] + }, + { + "MapObject": "table_wood_round_clothed", + "Positions": [[4, 11]] + }, + { + "MapObject": "table_wood_round_terminal", + "Positions": [[7, 8]] + }, + { + "MapObject": "plant", + "Positions": [[10, 11]] + }, + { + "MapObject": "floor_console", + "Positions": [[7, 9]] + }], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [], + "Start": [9, 8], + "Exits": [{ + "Rect": [10, + 3, + 2, + 2], + "Mission": 3, + "Hidden": false + }] + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/tiletest.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/tiletest.cdogscpn/campaign.json new file mode 100644 index 00000000..257e468a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/tiletest.cdogscpn/campaign.json @@ -0,0 +1,7 @@ +{ + "Version": 5, + "Title": "Tile test", + "Author": "Cong", + "Description": "Bunch of maps with different tile types", + "Missions": 11 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/tiletest.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/tiletest.cdogscpn/characters.json new file mode 100644 index 00000000..04823ad3 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/tiletest.cdogscpn/characters.json @@ -0,0 +1,3 @@ +{ + "Characters": [] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/tiletest.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/tiletest.cdogscpn/missions.json new file mode 100644 index 00000000..c2494ef4 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/custom/techdemo/tiletest.cdogscpn/missions.json @@ -0,0 +1,640 @@ +{ + "Missions": [{ + "Title": "", + "Description": "Steel walls and Recessed floors", + "Type": "Static", + "Width": 16, + "Height": 16, + "WallStyle": 0, + "FloorStyle": 0, + "RoomStyle": 0, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "WallMask": "848484", + "FloorMask": "484848", + "RoomMask": "707070", + "AltMask": "008400", + "Tiles": "0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,1,2,2,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3", + "StaticItems": [], + "StaticWrecks": [], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [], + "Start": [0, + 0], + "Exit": { + "Start": [0, + 0], + "End": [0, + 0] + } + }, + { + "Title": "", + "Description": "Brick walls and tiled floors", + "Type": "Static", + "Width": 16, + "Height": 16, + "WallStyle": 1, + "FloorStyle": 1, + "RoomStyle": 1, + "ExitStyle": 1, + "KeyStyle": 0, + "DoorStyle": 1, + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "WallMask": "700000", + "FloorMask": "94802c", + "RoomMask": "74601c", + "AltMask": "008400", + "Tiles": "0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,1,2,2,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3", + "StaticItems": [], + "StaticWrecks": [], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [], + "Start": [0, + 0], + "Exit": { + "Start": [0, + 0], + "End": [0, + 0] + } + }, + { + "Title": "", + "Description": "Carbon walls and dirt floors", + "Type": "Static", + "Width": 16, + "Height": 16, + "WallStyle": 2, + "FloorStyle": 2, + "RoomStyle": 2, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 2, + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "WallMask": "840084", + "FloorMask": "482400", + "RoomMask": "844400", + "AltMask": "008400", + "Tiles": "0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,1,2,2,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3", + "StaticItems": [], + "StaticWrecks": [], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [], + "Start": [0, + 0], + "Exit": { + "Start": [0, + 0], + "End": [0, + 0] + } + }, + { + "Title": "", + "Description": "Steelwood walls and flat floors", + "Type": "Static", + "Width": 16, + "Height": 16, + "WallStyle": 3, + "FloorStyle": 3, + "RoomStyle": 3, + "ExitStyle": 1, + "KeyStyle": 0, + "DoorStyle": 3, + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "WallMask": "004848", + "FloorMask": "008484", + "RoomMask": "007070", + "AltMask": "008400", + "Tiles": "0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,1,2,2,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3", + "StaticItems": [], + "StaticWrecks": [], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [], + "Start": [0, + 0], + "Exit": { + "Start": [0, + 0], + "End": [0, + 0] + } + }, + { + "Title": "", + "Description": "Stone walls and striped floors", + "Type": "Static", + "Width": 16, + "Height": 16, + "WallStyle": 4, + "FloorStyle": 4, + "RoomStyle": 4, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "WallMask": "482400", + "FloorMask": "484870", + "RoomMask": "5c5c84", + "AltMask": "008400", + "Tiles": "0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,1,2,2,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3", + "StaticItems": [], + "StaticWrecks": [], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [], + "Start": [0, + 0], + "Exit": { + "Start": [0, + 0], + "End": [0, + 0] + } + }, + { + "Title": "", + "Description": "Plasteel walls and small square floor", + "Type": "Static", + "Width": 16, + "Height": 16, + "WallStyle": 5, + "FloorStyle": 5, + "RoomStyle": 5, + "ExitStyle": 1, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "WallMask": "008484", + "FloorMask": "484848", + "RoomMask": "848484", + "AltMask": "008400", + "Tiles": "0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,1,2,2,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3", + "StaticItems": [], + "StaticWrecks": [], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [], + "Start": [0, + 0], + "Exit": { + "Start": [0, + 0], + "End": [0, + 0] + } + }, + { + "Title": "", + "Description": "Granite walls and stone floors", + "Type": "Static", + "Width": 16, + "Height": 16, + "WallStyle": 6, + "FloorStyle": 6, + "RoomStyle": 6, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "WallMask": "484870", + "FloorMask": "74601c", + "RoomMask": "848484", + "AltMask": "008400", + "Tiles": "0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,1,2,2,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3", + "StaticItems": [], + "StaticWrecks": [], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [], + "Start": [0, + 0], + "Exit": { + "Start": [0, + 0], + "End": [0, + 0] + } + }, + { + "Title": "", + "Description": "Wood floors", + "Type": "Static", + "Width": 16, + "Height": 16, + "WallStyle": 0, + "FloorStyle": 7, + "RoomStyle": 7, + "ExitStyle": 1, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "WallMask": "004800", + "FloorMask": "844400", + "RoomMask": "94802c", + "AltMask": "008400", + "Tiles": "0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,1,2,2,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3", + "StaticItems": [], + "StaticWrecks": [], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [], + "Start": [0, + 0], + "Exit": { + "Start": [0, + 0], + "End": [0, + 0] + } + }, + { + "Title": "", + "Description": "Big grid floors", + "Type": "Static", + "Width": 16, + "Height": 16, + "WallStyle": 0, + "FloorStyle": 8, + "RoomStyle": 9, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "WallMask": "000084", + "FloorMask": "700070", + "RoomMask": "840084", + "AltMask": "008400", + "Tiles": "0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,1,2,2,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3", + "StaticItems": [], + "StaticWrecks": [], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [], + "Start": [0, + 0], + "Exit": { + "Start": [0, + 0], + "End": [0, + 0] + } + }, + { + "Title": "", + "Description": "Grid floors", + "Type": "Static", + "Width": 16, + "Height": 16, + "WallStyle": 0, + "FloorStyle": 9, + "RoomStyle": 8, + "ExitStyle": 1, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "WallMask": "94802c", + "FloorMask": "703800", + "RoomMask": "844400", + "AltMask": "008400", + "Tiles": "0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,1,2,2,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3", + "StaticItems": [], + "StaticWrecks": [], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [], + "Start": [0, + 0], + "Exit": { + "Start": [0, + 0], + "End": [0, + 0] + } + }, + { + "Title": "", + "Description": "Checker rooms", + "Type": "Static", + "Width": 16, + "Height": 16, + "WallStyle": 0, + "FloorStyle": 0, + "RoomStyle": 10, + "ExitStyle": 0, + "KeyStyle": 0, + "DoorStyle": 0, + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite", + "Chemo bombs", + "Petrify gun", + "Browny gun", + "Confusion bombs", + "Chemo gun", + "Pulse rifle", + "Heatseeker", + "Swarmer", + "Launcher", + "Pistol"], + "Song": "", + "WallMask": "004800", + "FloorMask": "000048", + "RoomMask": "840000", + "AltMask": "848484", + "Tiles": "0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,1,2,2,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3", + "StaticItems": [], + "StaticWrecks": [], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [], + "Start": [0, + 0], + "Exit": { + "Start": [0, + 0], + "End": [0, + 0] + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/ammo.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/ammo.json new file mode 100644 index 00000000..bb68372e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/ammo.json @@ -0,0 +1,73 @@ +{ + "Version": 2, + "Ammo": [ + { + "Name": "Bullets", + "Pic": { + "Type": "Normal", + "Pic": "bullet_pickup" + }, + "Sound": "bullet_pickup", + "Amount": 100, + "Max": 1000, + "Price": 600 + }, + { + "Name": "Grenades", + "Pic": { + "Type": "Normal", + "Pic": "grenade_pickup" + }, + "Sound": "grenade_pickup", + "Amount": 10, + "Max": 100, + "Price": 300 + }, + { + "Name": "Cells", + "Pic": { + "Type": "Animated", + "Sprites": "particles/cells", + "TicksPerFrame": 10 + }, + "Sound": "cells_pickup", + "Amount": 10, + "Max": 100, + "Price": 100 + }, + { + "Name": "Mini cells", + "Pic": { + "Type": "Animated", + "Sprites": "particles/mini_cells", + "TicksPerFrame": 10 + }, + "Sound": "mini_cells_pickup", + "Amount": 50, + "Max": 500, + "Price": 500 + }, + { + "Name": "Rockets", + "Pic": { + "Type": "Normal", + "Pic": "rockets" + }, + "Sound": "grenade_pickup", + "Amount": 10, + "Max": 100, + "Price": 1000 + }, + { + "Name": "Gas tank", + "Pic": { + "Type": "Normal", + "Pic": "gas_tank" + }, + "Sound": "gas_tank_pickup", + "Amount": 100, + "Max": 1000, + "Price": 500 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/bullets.json new file mode 100644 index 00000000..80d110c1 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/bullets.json @@ -0,0 +1,392 @@ +{ + "Version": 5, + "DefaultBullet": { + "Mass": 0.0, + "Spark": "spark", + "Hit": { + "Object": { + "Sound": "hits/hard" + }, + "Flesh": { + "Sound": "hits/flesh" + }, + "Wall": { + "Sound": "ricochet" + } + }, + "SeekFactor": -1 + }, + "Bullets": [ + { + "Name": "fist", + "Power": 1, + "Hit": { + "Flesh": { + "Sound": "hits/fist_flesh" + } + } + }, + { + "Name": "chainsaw", + "Power": 2, + "Hit": { + "Flesh": { + "Sound": "chainsaw" + } + } + }, + { + "Name": "chainsaw_x2", + "Power": 4, + "Hit": { + "Flesh": { + "Sound": "chainsaw" + } + } + }, + { + "Name": "chainsaw_x3", + "Power": 6, + "Hit": { + "Flesh": { + "Sound": "chainsaw" + } + } + }, + { + "Name": "chainsaw_x4", + "Power": 8, + "Hit": { + "Flesh": { + "Sound": "chainsaw" + } + } + }, + { + "Name": "chainsaw_x5", + "Power": 10, + "Hit": { + "Flesh": { + "Sound": "chainsaw" + } + } + }, + { + "Name": "monster_bite", + "Power": 1, + "Hit": { + "Flesh": { + "Sound": "monster-2" + } + } + }, + { + "Name": "monster_bite2", + "Power": 2, + "Hit": { + "Flesh": { + "Sound": "monster-2" + } + } + }, + { + "Name": "monster_bite3", + "Power": 3, + "Hit": { + "Flesh": { + "Sound": "monster-2" + } + } + }, + { + "Name": "mg", + "Pic": { + "Type": "Normal", + "Pic": "bullet_ball" + }, + "WallMark": "bullet_hole", + "Speed": 1152, + "Range": 30, + "Power": 6, + "Size": [3, 3] + }, + { + "Name": "flame", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "flame", + "TicksPerFrame": 4 + }, + "Speed": 288, + "Range": 25, + "Power": 10, + "Size": [10, 10], + "Special": { + "Effect": "Flame" + }, + "Spark": "", + "Hit": { + "Object": { + "Sound": "hits/fire" + }, + "Flesh": { + "Sound": "hits/fire" + }, + "Wall": { + "Sound": "hits/fire" + } + } + }, + { + "Name": "sniper", + "Pic": { + "Type": "Directional", + "Sprites": "particles/beam_bright" + }, + "Spark": "spark_blue", + "Speed": 960, + "Range": 70, + "Power": 60, + "Size": [5, 5] + }, + { + "Name": "grenade", + "Pic": { + "Type": "Animated", + "Sprites": "grenade", + "TicksPerFrame": 2 + }, + "ShadowSize": [6, 4], + "Speed": 384, + "Range": 50, + "Spark": "", + "Hit": { + "Object": {}, + "Flesh": {}, + "Wall": {} + }, + "Falling": { + "GravityFactor": 0.7 + }, + "OutOfRangeGuns": [ + "blast_weak", + "explosion" + ], + "HitGuns": [ + "blast_weak", + "demo_weak", + "explosion" + ], + "Size": [1, 1] + }, + { + "Name": "megarocket", + "Pic": { + "Type": "Directional", + "Sprites": "rocket" + }, + "Trail": { + "Particle": "smoke_trail_small", + "Width": 0, + "TicksPerEmit": 4 + }, + "ShadowSize": [6, 4], + "Speed": 384, + "Range": 50, + "Spark": "", + "Hit": { + "Object": {}, + "Flesh": {}, + "Wall": {} + }, + "Falling": { + "GravityFactor": 0.3 + }, + "OutOfRangeGuns": [ + "blast_strong", + "explosion" + ], + "HitGuns": [ + "blast_strong", + "demo_strong", + "explosion" + ], + "Size": [1, 1] + }, + { + "Name": "pulse", + "Pic": { + "Type": "Directional", + "Sprites": "particles/pulse" + }, + "Spark": "spark_blue", + "Speed": 768, + "Range": 50, + "Power": 10 + }, + { + "Name": "laser_dumb", + "Pic": { + "Type": "Directional", + "Sprites": "particles/beam" + }, + "Spark": "spark_red", + "Speed": 384, + "Range": 110, + "Power": 5 + }, + { + "Name": "pulse_green", + "Pic": { + "Type": "Directional", + "Sprites": "particles/pulse_green" + }, + "Spark": "spark_green", + "Speed": 768, + "Range": 110, + "Power": 10 + }, + { + "Name": "laser", + "Pic": { + "Type": "Directional", + "Sprites": "particles/beam_yellow" + }, + "Spark": "spark_yellow", + "Speed": 960, + "Range": 100, + "Power": 3 + }, + { + "Name": "turbo_laser", + "Pic": { + "Type": "Directional", + "Sprites": "particles/beam_green" + }, + "Spark": "spark_green", + "Speed": 960, + "Range": 100, + "Power": 8 + }, + { + "Name": "blast_weak", + "Range": 1, + "Power": 40, + "Size": [80, 80], + "Persists": true, + "Spark": "", + "Hit": { + "Flesh": {} + } + }, + { + "Name": "blast_strong", + "Range": 1, + "Power": 200, + "Size": [80, 80], + "Persists": true, + "Spark": "", + "Hit": { + "Flesh": {} + } + }, + { + "Name": "demo_weak", + "Range": 1, + "Power": 40, + "Size": [5, 5], + "Spark": "", + "Hit": { + "Object": {} + } + }, + { + "Name": "demo_strong", + "Range": 1, + "Power": 200, + "Size": [5, 5], + "Spark": "", + "Hit": { + "Object": {} + } + }, + { + "Name": "explosion_cast", + "SpeedLow": 4096, + "SpeedHigh": 8192, + "Range": 1, + "Hit": {}, + "OutOfRangeGuns": [ + "explosion_ball" + ] + }, + { + "Name": "explosion_ball", + "Pic": { + "Type": "Animated", + "Sprites": "particles/explosion_small", + "TicksPerFrame": 4 + }, + "Speed": 0, + "Range": 27, + "Persists": true, + "Hit": {} + }, + { + "Name": "small_fireball1", + "Pic": { + "Type": "Animated", + "Sprites": "fireball", + "TicksPerFrame": 3 + }, + "Speed": 0, + "Range": 40, + "Power": 0, + "Size": [7, 5], + "Persists": true, + "Spark": "", + "Falling": { + "GravityFactor": 1, + "FallsDown": false + } + }, + { + "Name": "small_fireball2", + "Pic": { + "Type": "Animated", + "Sprites": "fireball", + "Count": -8, + "TicksPerFrame": 3 + }, + "Speed": 0, + "Range": 48, + "Power": 0, + "Size": [7, 5], + "Persists": true, + "Spark": "", + "Falling": { + "GravityFactor": 1, + "FallsDown": false + } + }, + { + "Name": "small_fireball3", + "Pic": { + "Type": "Animated", + "Sprites": "fireball", + "Count": -16, + "TicksPerFrame": 3 + }, + "Speed": 0, + "Range": 56, + "Power": 0, + "Size": [7, 5], + "Persists": true, + "Spark": "", + "Falling": { + "GravityFactor": 1, + "FallsDown": false + } + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/campaign.json new file mode 100644 index 00000000..22fc5a02 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/campaign.json @@ -0,0 +1,17 @@ +{ + "Version": 16, + "Title": "Cyberdogs", + "Author": "Ronny Wester & Cong Xu", + "Description": "Everyone familiar with Warhammer 40k or Space Hulk\/Crusade\/Marine? \nMore or less the same thing 8-)\nYou (and optionally a buddy) assume the roles of [insert favourite martial profession here] and are sent on missions. \nAll missions consist of collecting objects\/wasting baddies\/blowing up enemy installations and then head home.", + "Ammo": true, + "SkipWeaponMenu": false, + "BuyAndSell": true, + "RandomPickups": false, + "DoorOpenTicks": 70, + "Lives": 0, + "MaxLives": 4, + "PlayerHP": 20, + "PlayerMaxHP": 50, + "PlayerExcessHP": 70, + "Missions": 10 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/characters.json new file mode 100644 index 00000000..38fd69d1 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/characters.json @@ -0,0 +1,212 @@ +{ + "Version": 14, + "Characters": [{ + "Class": "Jones", + "PlayerTemplateName": "Jones", + "Skin": "f0944bff", + "Arms": "5050a0ff", + "Body": "5050a0ff", + "Legs": "5050a0ff", + "Hair": "000000ff", + "Feet": "5050a0ff", + "Facehair": "000000ff", + "Hat": "000000ff", + "Glasses": "000000ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "excessHealth": 80, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }, + { + "Class": "Jones", + "PlayerTemplateName": "Ice", + "GlassesType": "shades", + "Skin": "f0944bff", + "Arms": "5050a0ff", + "Body": "5050a0ff", + "Legs": "5050a0ff", + "Hair": "000000ff", + "Feet": "5050a0ff", + "Facehair": "000000ff", + "Hat": "000000ff", + "Glasses": "000000ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "excessHealth": 80, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }, + { + "Class": "Jones", + "PlayerTemplateName": "WarBaby", + "HatType": "beret", + "Skin": "f0944bff", + "Arms": "5050a0ff", + "Body": "5050a0ff", + "Legs": "5050a0ff", + "Hair": "f30202ff", + "Feet": "5050a0ff", + "Facehair": "f30202ff", + "Hat": "f30202ff", + "Glasses": "f30202ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "excessHealth": 80, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }, + { + "Class": "Cyborg", + "HairType": "flattop", + "GlassesType": "cyber_shades", + "Skin": "fc8a20ff", + "Arms": "9c4f4fff", + "Body": "b45f5aff", + "Legs": "cb5c5cff", + "Hair": "0b0101ff", + "Feet": "cd5e5eff", + "Facehair": "ff1616ff", + "Hat": "ff1616ff", + "Glasses": "ff1616ff", + "speed": 192, + "Gun": "DumbGun", + "Melee": "Fists", + "maxHealth": 15, + "excessHealth": 30, + "flags": 167773312, + "probabilityToMove": 50, + "probabilityToTrack": 35, + "probabilityToShoot": 10, + "actionDelay": 25 + }, + { + "Class": "Cyborg", + "GlassesType": "cyber_shades", + "Skin": "fc8a20ff", + "Arms": "f70606ff", + "Body": "e9271cff", + "Legs": "ec1010ff", + "Hair": "0b0101ff", + "Feet": "ee0c0cff", + "Facehair": "ff1616ff", + "Hat": "ff1616ff", + "Glasses": "ff1616ff", + "speed": 384, + "Gun": "Gun", + "Melee": "Fists", + "maxHealth": 12, + "excessHealth": 24, + "flags": 167773312, + "probabilityToMove": 75, + "probabilityToTrack": 50, + "probabilityToShoot": 10, + "actionDelay": 20 + }, + { + "Class": "Cyborg", + "GlassesType": "ski_goggles", + "Skin": "fc8a20ff", + "Arms": "a6a4a4ff", + "Body": "a1a0a0ff", + "Legs": "a6a6a6ff", + "Hair": "0b0101ff", + "Feet": "dbd9d9ff", + "Facehair": "ff1616ff", + "Hat": "ff1616ff", + "Glasses": "020000ff", + "speed": 128, + "Gun": "Lazer", + "Melee": "Fists", + "maxHealth": 60, + "excessHealth": 120, + "flags": 167773312, + "probabilityToMove": 75, + "probabilityToTrack": 50, + "probabilityToShoot": 50, + "actionDelay": 25 + }, + { + "Class": "Cyborg", + "GlassesType": "cyber_shades", + "Skin": "fc8a20ff", + "Arms": "3a3a3aff", + "Body": "3f3f3fff", + "Legs": "464646ff", + "Hair": "0b0101ff", + "Feet": "434343ff", + "Facehair": "ff1616ff", + "Hat": "ff1616ff", + "Glasses": "ff1616ff", + "speed": 512, + "Gun": "Gun", + "Melee": "Chainsaw", + "maxHealth": 12, + "excessHealth": 24, + "flags": 167773312, + "probabilityToMove": 75, + "probabilityToTrack": 50, + "probabilityToShoot": 5, + "actionDelay": 10 + }, + { + "Class": "Cyborg", + "HairType": "donut", + "GlassesType": "goggles", + "Skin": "fc8a20ff", + "Arms": "9c4f4fff", + "Body": "b45f5aff", + "Legs": "cb5c5cff", + "Hair": "0b0101ff", + "Feet": "cd5e5eff", + "Facehair": "ff1616ff", + "Hat": "ff1616ff", + "Glasses": "fcfcfcff", + "speed": 256, + "Gun": "DumbGun", + "Melee": "Fists", + "maxHealth": 15, + "excessHealth": 30, + "flags": 167773312, + "probabilityToMove": 75, + "probabilityToTrack": 50, + "probabilityToShoot": 50, + "actionDelay": 15 + }, + { + "Class": "Cyborg", + "HatType": "beret", + "GlassesType": "cyber_shades", + "Skin": "fc8a20ff", + "Arms": "4a4a4aff", + "Body": "565555ff", + "Legs": "5d5d5dff", + "Hair": "0b0101ff", + "Feet": "545454ff", + "Facehair": "ff1616ff", + "Hat": "7b7b7bff", + "Glasses": "ff1616ff", + "speed": 256, + "Gun": "TurboLazer", + "Melee": "2xChainsaw", + "maxHealth": 60, + "excessHealth": 120, + "flags": 167773312, + "probabilityToMove": 50, + "probabilityToTrack": 35, + "probabilityToShoot": 50, + "actionDelay": 10 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/LICENSE.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/LICENSE.txt new file mode 100644 index 00000000..fbdc359c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/LICENSE.txt @@ -0,0 +1,3 @@ +Images extracted from Cyberdogs +By Ronny Wester +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/blaster.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/blaster.png new file mode 100644 index 00000000..85afd97f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/blaster.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/bullet_ball.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/bullet_ball.png new file mode 100644 index 00000000..513d9a18 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/bullet_ball.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chainsaw.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chainsaw.png new file mode 100644 index 00000000..c695581a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chainsaw.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/chaingun.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/chaingun.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/chaingun.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/chaingun_24x22.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/chaingun_24x22.png new file mode 100644 index 00000000..cc716d1e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/chaingun_24x22.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/chainsaw_16x20.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/chainsaw_16x20.png new file mode 100644 index 00000000..c36c2dfd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/chainsaw_16x20.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/flamer_30x22.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/flamer_30x22.png new file mode 100644 index 00000000..bc5494a9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/flamer_30x22.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/launcher_20x20.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/launcher_20x20.png new file mode 100644 index 00000000..43936358 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/launcher_20x20.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/pistol_20x20.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/pistol_20x20.png new file mode 100644 index 00000000..80952afb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/pistol_20x20.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/rifle_30x22.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/rifle_30x22.png new file mode 100644 index 00000000..ed37aa72 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/rifle_30x22.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/zapper_green_20x20.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/zapper_green_20x20.png new file mode 100644 index 00000000..bef7369a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/chars/guns/zapper_green_20x20.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/flamer.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/flamer.png new file mode 100644 index 00000000..5d7f6031 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/flamer.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/launcher.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/launcher.png new file mode 100644 index 00000000..48e64e6e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/launcher.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/megagun.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/megagun.png new file mode 100644 index 00000000..c1e5fbbe Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/megagun.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/minigun.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/minigun.png new file mode 100644 index 00000000..0c9f72a2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/minigun.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/powergun.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/powergun.png new file mode 100644 index 00000000..d7372dca Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/powergun.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/reactor_16x32.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/reactor_16x32.png new file mode 100644 index 00000000..09cdc3a0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/graphics/reactor_16x32.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/guns.json new file mode 100644 index 00000000..af12d015 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/guns.json @@ -0,0 +1,270 @@ +{ + "Version": 3, + "Guns": [ + { + "Pic": "chainsaw", + "Icon": "chainsaw", + "Name": "Chainsaw", + "Bullet": "chainsaw", + "Prerequisite": "Barefisted", + "Cost": 0, + "Lock": 0, + "Sound": "", + "SwitchSound": "chainsaw_switch", + "SoundLockLength": 50, + "CanShoot": false, + "Price": 2000, + "Auto": true + }, + { + "Pic": "chainsaw", + "Icon": "chainsaw", + "Name": "2xChainsaw", + "Bullet": "chainsaw_x2", + "Prerequisite": "Chainsaw", + "Cost": 0, + "Lock": 0, + "Sound": "", + "SwitchSound": "chainsaw_switch", + "SoundLockLength": 50, + "CanShoot": false, + "Price": 2000, + "Auto": true + }, + { + "Pic": "chainsaw", + "Icon": "chainsaw", + "Name": "3xChainsaw", + "Bullet": "chainsaw_x3", + "Prerequisite": "2xChainsaw", + "Cost": 0, + "Lock": 0, + "Sound": "", + "SwitchSound": "chainsaw_switch", + "SoundLockLength": 50, + "CanShoot": false, + "Price": 2000, + "Auto": true + }, + { + "Pic": "chainsaw", + "Icon": "chainsaw", + "Name": "4xChainsaw", + "Bullet": "chainsaw_x4", + "Prerequisite": "3xChainsaw", + "Cost": 0, + "Lock": 0, + "Sound": "", + "SwitchSound": "chainsaw_switch", + "SoundLockLength": 50, + "CanShoot": false, + "Price": 2000, + "Auto": true + }, + { + "Pic": "chainsaw", + "Icon": "chainsaw", + "Name": "5xChainsaw", + "Bullet": "chainsaw_x5", + "Prerequisite": "4xChainsaw", + "Cost": 0, + "Lock": 0, + "Sound": "", + "SwitchSound": "chainsaw_switch", + "SoundLockLength": 50, + "CanShoot": false, + "Price": 2000, + "Auto": true + }, + { + "Pic": "", + "Icon": "fist", + "Name": "Fists", + "Bullet": "fist", + "Cost": 0, + "Lock": 0, + "Sound": "", + "SoundLockLength": 20, + "SwitchSound": "knuckles", + "CanShoot": false, + "CanDrop": false, + "Auto": true + }, + { + "Pic": "chaingun", + "Name": "MiniGun", + "Icon": "minigun", + "Bullet": "mg", + "Lock": 7, + "Sound": "lmg", + "SwitchSound": "mg_switch", + "MuzzleFlashParticle": "muzzle_flash_mg", + "Brass": "brass_big", + "Ammo": "Bullets", + "Price": 3100 + }, + { + "Pic": "launcher", + "Name": "Launcher", + "Icon": "launcher", + "Bullet": "grenade", + "Lock": 30, + "Sound": "bottle_pop", + "SwitchSound": "swarmer_switch", + "Elevation": 14, + "Ammo": "Grenades", + "Price": 2800 + }, + { + "Pic": "flamer", + "Grips": 2, + "Name": "Flamer", + "Icon": "flamer", + "Bullet": "flame", + "Lock": 7, + "Sound": "flamer", + "SwitchSound": "flamer_switch", + "SoundLockLength": 36, + "MuzzleFlashParticle": "muzzle_flash_flamer", + "Ammo": "Gas tank", + "Price": 3000 + }, + { + "Name": "Powergun", + "Icon": "powergun", + "Bullet": "sniper", + "Lock": 40, + "Sound": "fusion", + "SwitchSound": "powergun_switch", + "MuzzleFlashParticle": "muzzle_flash_powergun", + "Ammo": "Cells", + "Price": 2100 + }, + { + "Pic": "blaster_yellow", + "Name": "Gun", + "Bullet": "laser", + "Lock": 30, + "Sound": "pistol", + "MuzzleFlashSprite": "muzzle_flash_big", + "MuzzleFlashColor": "ffff00", + "MuzzleFlashDuration": 5 + }, + { + "Pic": "blaster_yellow", + "Name": "TurboLazer", + "Bullet": "turbo_laser", + "Lock": 35, + "Sound": "pistol", + "MuzzleFlashSprite": "muzzle_flash_big", + "MuzzleFlashColor": "ffff00", + "MuzzleFlashDuration": 5 + }, + { + "Pic": "pistol", + "Name": "Blaster", + "Icon": "blaster", + "Bullet": "pulse", + "Lock": 12, + "Sound": "pistol", + "SwitchSound": "pulse_switch", + "MuzzleFlashParticle": "muzzle_flash_pulse", + "Ammo": "Mini cells", + "Price": 1500 + }, + { + "Pic": "rifle", + "Grips": 2, + "Name": "MegaGun", + "Icon": "megagun", + "Bullet": "megarocket", + "Lock": 30, + "Sound": "swell", + "SwitchSound": "heatseeker_switch", + "Elevation": 5, + "MuzzleFlashParticle": "muzzle_flash_heatseeker", + "Ammo": "Rockets", + "Shake": { + "Amount": 8, + "CameraSubjectOnly": true + }, + "Price": 6500 + }, + { + "Name": "DumbGun", + "Bullet": "laser_dumb", + "Lock": 40, + "Sound": "pistol", + "MuzzleFlashColor": "ff0000" + }, + { + "Pic": "zapper_green", + "Name": "Lazer", + "Bullet": "pulse_green", + "Lock": 65, + "Sound": "pulse", + "MuzzleFlashSprite": "muzzle_flash_big", + "MuzzleFlashColor": "00ff00", + "MuzzleFlashDuration": 5 + } + ], + "PseudoGuns" : [ + { + "Name": "blast_weak", + "Bullet": "blast_weak", + "Sound": "explosion_small" + }, + { + "Name": "demo_weak", + "Bullet": "demo_weak", + "Sound": "" + }, + { + "Name": "blast_strong", + "Bullet": "blast_strong", + "Sound": "explosion" + }, + { + "Name": "demo_strong", + "Bullet": "demo_strong", + "Sound": "" + }, + { + "Name": "explosion", + "Bullet": "explosion_cast", + "Sound": "", + "Recoil": 6.28, + "SpreadCount": 5, + "Shake": { + "Amount": 10 + } + }, + { + "Name": "explosion_ball", + "Bullet": "explosion_ball", + "Sound": "" + }, + { + "Pic": "", + "Name": "small_explosion1", + "Bullet": "small_fireball1", + "ElevationLow": 14, + "ElevationHigh": 14, + "Sound": "explosion" + }, + { + "Pic": "", + "Name": "small_explosion2", + "Bullet": "small_fireball2", + "ElevationLow": 22, + "ElevationHigh": 22 + }, + { + "Pic": "", + "Name": "small_explosion3", + "Bullet": "small_fireball3", + "ElevationLow": 30, + "ElevationHigh": 30 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/map_objects.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/map_objects.json new file mode 100644 index 00000000..d622faca --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/map_objects.json @@ -0,0 +1,77 @@ +{ + "Version": 4, + "MapObjects": [ + { + "Name": "crate", + "Pic": { + "Type": "Normal", + "Pic": "crate" + }, + "Wreck": { + "MapObject": "crate_wreck" + }, + "Health": 30, + "Flags": ["FreeInFront"] + }, + { + "Name": "box", + "Pic": { + "Type": "Normal", + "Pic": "box" + }, + "Wreck": { + "MapObject": "box_wreck" + }, + "Health": 20, + "Flags": ["FreeInFront"] + }, + { + "Name": "box3_gray", + "Pic": { + "Type": "Normal", + "Pic": "box3_gray" + }, + "Wreck": { + "MapObject": "box3_gray_wreck" + }, + "Health": 30, + "Flags": ["FreeInFront"] + }, + { + "Name": "cabinet_server", + "Pic": { + "Type": "Animated", + "Sprites": "cabinet_server", + "TicksPerFrame": 20 + }, + "Wreck": { + "MapObject": "cabinet_server_wreck" + }, + "Health": 120, + "Flags": ["FreeInFront"] + }, + { + "Name": "reactor", + "Pic": { + "Type": "Animated", + "Sprites": "reactor", + "TicksPerFrame": 4 + }, + "Wreck": { + "MapObject": "safe_wreck", + "Sound": "explosion" + }, + "Health": 280, + "Flags": ["FreeInFront", "Inside"], + "DestroyGuns": [ + "big_quake", + "small_explosion1", + "small_explosion2", + "small_explosion3" + ], + "DamageSmoke": { + "HealthThreshold": 0.5 + } + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/missions.json new file mode 100644 index 00000000..43ab2567 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/missions.json @@ -0,0 +1,2036 @@ +{ + "Missions": [{ + "Title": "", + "Description": "Retrieve at least 6 objects", + "Type": "Classic", + "Width": 100, + "Height": 100, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Retrieve objects", + "Type": "Collect", + "Pickups": ["folder", + "disk1", + "pci_card", + "paper", + "teddy"], + "Count": 12, + "Required": 6, + "Flags": 0 + }, + { + "Description": "Demolition", + "Type": "Destroy", + "MapObjects": ["crate", + "box", + "box3_gray", + "cabinet_server"], + "Count": 400, + "Required": 0, + "Flags": 1 + }], + "Enemies": [3], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "fan", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 10 + }, + { + "MapObject": "blood1", + "Density": 10 + }, + { + "MapObject": "blood2", + "Density": 10 + }, + { + "MapObject": "bulletmarks", + "Density": 50 + }, + { + "MapObject": "skull", + "Density": 10 + }, + { + "MapObject": "rocket_wreck", + "Density": 10 + }, + { + "MapObject": "bloodstain", + "Density": 20 + }, + { + "MapObject": "bloodstain1", + "Density": 20 + }], + "PickupCounts": [{ + "Pickup": "gun_Powergun", + "Count": 1 + }, + { + "Pickup": "gun_MiniGun", + "Count": 1 + }, + { + "Pickup": "gun_Launcher", + "Count": 1 + }, + { + "Pickup": "gun_Flamer", + "Count": 1 + }, + { + "Pickup": "gun_Blaster", + "Count": 1 + }, + { + "Pickup": "armor", + "Count": 1 + }, + { + "Pickup": "max_armor", + "Count": 2 + }, + { + "Pickup": "life", + "Count": 2 + }], + "EnemyDensity": 13, + "Weapons": ["Fists", + "Chainsaw", + "2xChainsaw", + "3xChainsaw", + "4xChainsaw", + "5xChainsaw", + "MiniGun", + "Launcher", + "Flamer", + "Powergun", + "Blaster", + "MegaGun"], + "WeaponPersist": true, + "SkipDebrief": false, + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "acacacff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "303030ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "303030ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + } + }, + "Walls": 140, + "WallLength": 20, + "CorridorWidth": 2, + "Rooms": { + "Count": 30, + "Min": 7, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 1, + "WallPad": 1 + }, + "Squares": 1, + "ExitEnabled": true, + "Doors": { + "Enabled": false, + "Min": 2, + "Max": 2, + "RandomPos": false + }, + "Pillars": { + "Count": 0, + "Min": 2, + "Max": 3 + } + }, + { + "Title": "", + "Description": "Retrieve at least 8 objects", + "Type": "Classic", + "Width": 100, + "Height": 100, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Retrieve objects", + "Type": "Collect", + "Pickups": ["folder", + "disk1", + "pci_card", + "paper", + "teddy"], + "Count": 16, + "Required": 8, + "Flags": 0 + }, + { + "Description": "Demolition", + "Type": "Destroy", + "MapObjects": ["crate", + "box", + "box3_gray", + "cabinet_server"], + "Count": 400, + "Required": 0, + "Flags": 1 + }], + "Enemies": [3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 3, + 5], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "fan", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 10 + }, + { + "MapObject": "blood1", + "Density": 10 + }, + { + "MapObject": "blood2", + "Density": 10 + }, + { + "MapObject": "bulletmarks", + "Density": 50 + }, + { + "MapObject": "skull", + "Density": 10 + }, + { + "MapObject": "rocket_wreck", + "Density": 10 + }, + { + "MapObject": "bloodstain", + "Density": 20 + }, + { + "MapObject": "bloodstain1", + "Density": 20 + }], + "PickupCounts": [{ + "Pickup": "gun_Powergun", + "Count": 1 + }, + { + "Pickup": "gun_MiniGun", + "Count": 1 + }, + { + "Pickup": "gun_Launcher", + "Count": 1 + }, + { + "Pickup": "gun_Flamer", + "Count": 1 + }, + { + "Pickup": "gun_Blaster", + "Count": 1 + }, + { + "Pickup": "armor", + "Count": 2 + }, + { + "Pickup": "max_armor", + "Count": 2 + }, + { + "Pickup": "life", + "Count": 2 + }], + "EnemyDensity": 30, + "Weapons": ["Fists", + "Chainsaw", + "2xChainsaw", + "3xChainsaw", + "4xChainsaw", + "5xChainsaw", + "MiniGun", + "Launcher", + "Flamer", + "Powergun", + "Blaster", + "MegaGun"], + "WeaponPersist": true, + "SkipDebrief": false, + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "34345cff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare2", + "Mask": "282848ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare2", + "Mask": "282848ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + } + }, + "Walls": 140, + "WallLength": 20, + "CorridorWidth": 2, + "Rooms": { + "Count": 30, + "Min": 7, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 1, + "WallPad": 1 + }, + "Squares": 1, + "ExitEnabled": true, + "Doors": { + "Enabled": false, + "Min": 2, + "Max": 2, + "RandomPos": false + }, + "Pillars": { + "Count": 0, + "Min": 2, + "Max": 3 + } + }, + { + "Title": "", + "Description": "Retrieve at least 10 objects", + "Type": "Classic", + "Width": 100, + "Height": 100, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Retrieve objects", + "Type": "Collect", + "Pickups": ["folder", + "disk1", + "pci_card", + "paper", + "teddy"], + "Count": 20, + "Required": 10, + "Flags": 0 + }, + { + "Description": "Demolition", + "Type": "Destroy", + "MapObjects": ["crate", + "box", + "box3_gray", + "cabinet_server"], + "Count": 400, + "Required": 0, + "Flags": 1 + }], + "Enemies": [3, + 3, + 3, + 3, + 5], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "fan", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 10 + }, + { + "MapObject": "blood1", + "Density": 10 + }, + { + "MapObject": "blood2", + "Density": 10 + }, + { + "MapObject": "bulletmarks", + "Density": 50 + }, + { + "MapObject": "skull", + "Density": 10 + }, + { + "MapObject": "rocket_wreck", + "Density": 10 + }, + { + "MapObject": "bloodstain", + "Density": 20 + }, + { + "MapObject": "bloodstain1", + "Density": 20 + }], + "PickupCounts": [{ + "Pickup": "gun_Powergun", + "Count": 1 + }, + { + "Pickup": "gun_MiniGun", + "Count": 1 + }, + { + "Pickup": "gun_Launcher", + "Count": 1 + }, + { + "Pickup": "gun_Flamer", + "Count": 1 + }, + { + "Pickup": "gun_Blaster", + "Count": 1 + }, + { + "Pickup": "armor", + "Count": 3 + }, + { + "Pickup": "max_armor", + "Count": 2 + }, + { + "Pickup": "life", + "Count": 2 + }], + "EnemyDensity": 37, + "Weapons": ["Fists", + "Chainsaw", + "2xChainsaw", + "3xChainsaw", + "4xChainsaw", + "5xChainsaw", + "MiniGun", + "Launcher", + "Flamer", + "Powergun", + "Blaster", + "MegaGun"], + "WeaponPersist": true, + "SkipDebrief": false, + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "303030ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "584418ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "584418ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + } + }, + "Walls": 140, + "WallLength": 20, + "CorridorWidth": 2, + "Rooms": { + "Count": 30, + "Min": 7, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 1, + "WallPad": 1 + }, + "Squares": 1, + "ExitEnabled": true, + "Doors": { + "Enabled": false, + "Min": 2, + "Max": 2, + "RandomPos": false + }, + "Pillars": { + "Count": 0, + "Min": 2, + "Max": 3 + } + }, + { + "Title": "", + "Description": "Retrieve at least 12 objects", + "Type": "Classic", + "Width": 100, + "Height": 100, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Retrieve objects", + "Type": "Collect", + "Pickups": ["folder", + "disk1", + "pci_card", + "paper", + "teddy"], + "Count": 24, + "Required": 12, + "Flags": 0 + }, + { + "Description": "Demolition", + "Type": "Destroy", + "MapObjects": ["crate", + "box", + "box3_gray", + "cabinet_server"], + "Count": 400, + "Required": 0, + "Flags": 1 + }], + "Enemies": [3, + 3, + 3, + 3, + 5, + 6], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "fan", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 10 + }, + { + "MapObject": "blood1", + "Density": 10 + }, + { + "MapObject": "blood2", + "Density": 10 + }, + { + "MapObject": "bulletmarks", + "Density": 50 + }, + { + "MapObject": "skull", + "Density": 10 + }, + { + "MapObject": "rocket_wreck", + "Density": 10 + }, + { + "MapObject": "bloodstain", + "Density": 20 + }, + { + "MapObject": "bloodstain1", + "Density": 20 + }], + "PickupCounts": [{ + "Pickup": "gun_Powergun", + "Count": 1 + }, + { + "Pickup": "gun_MiniGun", + "Count": 1 + }, + { + "Pickup": "gun_Launcher", + "Count": 1 + }, + { + "Pickup": "gun_Flamer", + "Count": 1 + }, + { + "Pickup": "gun_Blaster", + "Count": 1 + }, + { + "Pickup": "armor", + "Count": 4 + }, + { + "Pickup": "max_armor", + "Count": 2 + }, + { + "Pickup": "life", + "Count": 2 + }], + "EnemyDensity": 42, + "Weapons": ["Fists", + "Chainsaw", + "2xChainsaw", + "3xChainsaw", + "4xChainsaw", + "5xChainsaw", + "MiniGun", + "Launcher", + "Flamer", + "Powergun", + "Blaster", + "MegaGun"], + "WeaponPersist": true, + "SkipDebrief": false, + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "303030ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "303030ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "303030ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + } + }, + "Walls": 140, + "WallLength": 20, + "CorridorWidth": 2, + "Rooms": { + "Count": 30, + "Min": 7, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 1, + "WallPad": 1 + }, + "Squares": 1, + "ExitEnabled": true, + "Doors": { + "Enabled": false, + "Min": 2, + "Max": 2, + "RandomPos": false + }, + "Pillars": { + "Count": 0, + "Min": 2, + "Max": 3 + } + }, + { + "Title": "", + "Description": "Eliminate at least 70 enemies, Blow up 1 reactor", + "Type": "Classic", + "Width": 100, + "Height": 100, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Retrieve objects", + "Type": "Collect", + "Pickups": ["folder", + "disk1", + "pci_card", + "paper", + "teddy"], + "Count": 12, + "Required": 0, + "Flags": 0 + }, + { + "Description": "Kill enemies", + "Type": "Kill", + "Index": 0, + "Count": 90, + "Required": 70, + "Flags": 0 + }, + { + "Description": "Destroy the reactor", + "Type": "Destroy", + "MapObjects": ["reactor"], + "Count": 1, + "Required": 1, + "Flags": 0 + }, + { + "Description": "Demolition", + "Type": "Destroy", + "MapObjects": ["crate", + "box", + "box3_gray", + "cabinet_server"], + "Count": 400, + "Required": 0, + "Flags": 1 + }], + "Enemies": [], + "SpecialChars": [3, + 3, + 3, + 5, + 5], + "MapObjectDensities": [{ + "MapObject": "fan", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 10 + }, + { + "MapObject": "blood1", + "Density": 10 + }, + { + "MapObject": "blood2", + "Density": 10 + }, + { + "MapObject": "bulletmarks", + "Density": 50 + }, + { + "MapObject": "skull", + "Density": 10 + }, + { + "MapObject": "rocket_wreck", + "Density": 10 + }, + { + "MapObject": "bloodstain", + "Density": 20 + }, + { + "MapObject": "bloodstain1", + "Density": 20 + }], + "PickupCounts": [{ + "Pickup": "gun_Powergun", + "Count": 1 + }, + { + "Pickup": "gun_MiniGun", + "Count": 1 + }, + { + "Pickup": "gun_Launcher", + "Count": 1 + }, + { + "Pickup": "gun_Flamer", + "Count": 1 + }, + { + "Pickup": "gun_Blaster", + "Count": 1 + }, + { + "Pickup": "armor", + "Count": 5 + }, + { + "Pickup": "max_armor", + "Count": 2 + }, + { + "Pickup": "life", + "Count": 2 + }], + "EnemyDensity": 0, + "Weapons": ["Fists", + "Chainsaw", + "2xChainsaw", + "3xChainsaw", + "4xChainsaw", + "5xChainsaw", + "MiniGun", + "Launcher", + "Flamer", + "Powergun", + "Blaster", + "MegaGun"], + "WeaponPersist": true, + "SkipDebrief": false, + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "303030ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "584418ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "584418ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + } + }, + "Walls": 140, + "WallLength": 20, + "CorridorWidth": 2, + "Rooms": { + "Count": 30, + "Min": 7, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 1, + "WallPad": 1 + }, + "Squares": 1, + "ExitEnabled": true, + "Doors": { + "Enabled": false, + "Min": 2, + "Max": 2, + "RandomPos": false + }, + "Pillars": { + "Count": 0, + "Min": 2, + "Max": 3 + } + }, + { + "Title": "", + "Description": "Retrieve at least 8 objects, Eliminate at least 40 enemies", + "Type": "Classic", + "Width": 100, + "Height": 100, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Retrieve objects", + "Type": "Collect", + "Pickups": ["folder", + "disk1", + "pci_card", + "paper", + "teddy"], + "Count": 12, + "Required": 8, + "Flags": 0 + }, + { + "Description": "Kill enemies", + "Type": "Kill", + "Index": 0, + "Count": 100, + "Required": 40, + "Flags": 0 + }, + { + "Description": "Demolition", + "Type": "Destroy", + "MapObjects": ["crate", + "box", + "box3_gray", + "cabinet_server"], + "Count": 400, + "Required": 0, + "Flags": 1 + }], + "Enemies": [], + "SpecialChars": [3, + 3, + 3, + 5, + 4, + 7], + "MapObjectDensities": [{ + "MapObject": "fan", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 10 + }, + { + "MapObject": "blood1", + "Density": 10 + }, + { + "MapObject": "blood2", + "Density": 10 + }, + { + "MapObject": "bulletmarks", + "Density": 50 + }, + { + "MapObject": "skull", + "Density": 10 + }, + { + "MapObject": "rocket_wreck", + "Density": 10 + }, + { + "MapObject": "bloodstain", + "Density": 20 + }, + { + "MapObject": "bloodstain1", + "Density": 20 + }], + "PickupCounts": [{ + "Pickup": "gun_Powergun", + "Count": 1 + }, + { + "Pickup": "gun_MiniGun", + "Count": 1 + }, + { + "Pickup": "gun_Launcher", + "Count": 1 + }, + { + "Pickup": "gun_Flamer", + "Count": 1 + }, + { + "Pickup": "gun_Blaster", + "Count": 1 + }, + { + "Pickup": "armor", + "Count": 6 + }, + { + "Pickup": "max_armor", + "Count": 2 + }, + { + "Pickup": "life", + "Count": 2 + }], + "EnemyDensity": 0, + "Weapons": ["Fists", + "Chainsaw", + "2xChainsaw", + "3xChainsaw", + "4xChainsaw", + "5xChainsaw", + "MiniGun", + "Launcher", + "Flamer", + "Powergun", + "Blaster", + "MegaGun"], + "WeaponPersist": true, + "SkipDebrief": false, + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "303030ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "584418ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "584418ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + } + }, + "Walls": 140, + "WallLength": 20, + "CorridorWidth": 2, + "Rooms": { + "Count": 30, + "Min": 7, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 1, + "WallPad": 1 + }, + "Squares": 1, + "ExitEnabled": true, + "Doors": { + "Enabled": false, + "Min": 2, + "Max": 2, + "RandomPos": false + }, + "Pillars": { + "Count": 0, + "Min": 2, + "Max": 3 + } + }, + { + "Title": "", + "Description": "Retrieve at least 18 objects, Blow up 2 reactors", + "Type": "Classic", + "Width": 100, + "Height": 100, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Retrieve objects", + "Type": "Collect", + "Pickups": ["folder", + "disk1", + "pci_card", + "paper", + "teddy"], + "Count": 24, + "Required": 18, + "Flags": 0 + }, + { + "Description": "Destroy reactors", + "Type": "Destroy", + "MapObjects": ["reactor"], + "Count": 2, + "Required": 2, + "Flags": 0 + }, + { + "Description": "Demolition", + "Type": "Destroy", + "MapObjects": ["crate", + "box", + "box3_gray", + "cabinet_server"], + "Count": 400, + "Required": 0, + "Flags": 1 + }], + "Enemies": [3, + 3, + 3, + 3, + 4, + 4, + 4, + 7, + 7, + 7], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "fan", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 10 + }, + { + "MapObject": "blood1", + "Density": 10 + }, + { + "MapObject": "blood2", + "Density": 10 + }, + { + "MapObject": "bulletmarks", + "Density": 50 + }, + { + "MapObject": "skull", + "Density": 10 + }, + { + "MapObject": "rocket_wreck", + "Density": 10 + }, + { + "MapObject": "bloodstain", + "Density": 20 + }, + { + "MapObject": "bloodstain1", + "Density": 20 + }], + "PickupCounts": [{ + "Pickup": "gun_Powergun", + "Count": 1 + }, + { + "Pickup": "gun_MiniGun", + "Count": 1 + }, + { + "Pickup": "gun_Launcher", + "Count": 1 + }, + { + "Pickup": "gun_Flamer", + "Count": 1 + }, + { + "Pickup": "gun_Blaster", + "Count": 1 + }, + { + "Pickup": "armor", + "Count": 7 + }, + { + "Pickup": "max_armor", + "Count": 2 + }, + { + "Pickup": "life", + "Count": 2 + }], + "EnemyDensity": 50, + "Weapons": ["Fists", + "Chainsaw", + "2xChainsaw", + "3xChainsaw", + "4xChainsaw", + "5xChainsaw", + "MiniGun", + "Launcher", + "Flamer", + "Powergun", + "Blaster", + "MegaGun"], + "WeaponPersist": true, + "SkipDebrief": false, + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "34345cff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "303030ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "303030ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + } + }, + "Walls": 140, + "WallLength": 20, + "CorridorWidth": 2, + "Rooms": { + "Count": 30, + "Min": 7, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 1, + "WallPad": 1 + }, + "Squares": 1, + "ExitEnabled": true, + "Doors": { + "Enabled": false, + "Min": 2, + "Max": 2, + "RandomPos": false + }, + "Pillars": { + "Count": 0, + "Min": 2, + "Max": 3 + } + }, + { + "Title": "", + "Description": "Eliminate at least 100 enemies, Blow up 2 reactors", + "Type": "Classic", + "Width": 100, + "Height": 100, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Retrieve objects", + "Type": "Collect", + "Pickups": ["folder", + "disk1", + "pci_card", + "paper", + "teddy"], + "Count": 24, + "Required": 0, + "Flags": 0 + }, + { + "Description": "Kill enemies", + "Type": "Kill", + "Index": 0, + "Count": 140, + "Required": 100, + "Flags": 0 + }, + { + "Description": "Destroy reactors", + "Type": "Destroy", + "MapObjects": ["reactor"], + "Count": 2, + "Required": 2, + "Flags": 0 + }, + { + "Description": "Demolition", + "Type": "Destroy", + "MapObjects": ["crate", + "box", + "box3_gray", + "cabinet_server"], + "Count": 400, + "Required": 0, + "Flags": 1 + }], + "Enemies": [], + "SpecialChars": [3, + 3, + 5, + 6, + 4, + 7, + 8], + "MapObjectDensities": [{ + "MapObject": "fan", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 10 + }, + { + "MapObject": "blood1", + "Density": 10 + }, + { + "MapObject": "blood2", + "Density": 10 + }, + { + "MapObject": "bulletmarks", + "Density": 50 + }, + { + "MapObject": "skull", + "Density": 10 + }, + { + "MapObject": "rocket_wreck", + "Density": 10 + }, + { + "MapObject": "bloodstain", + "Density": 20 + }, + { + "MapObject": "bloodstain1", + "Density": 20 + }], + "PickupCounts": [{ + "Pickup": "gun_Powergun", + "Count": 1 + }, + { + "Pickup": "gun_MiniGun", + "Count": 1 + }, + { + "Pickup": "gun_Launcher", + "Count": 1 + }, + { + "Pickup": "gun_Flamer", + "Count": 1 + }, + { + "Pickup": "gun_Blaster", + "Count": 1 + }, + { + "Pickup": "armor", + "Count": 8 + }, + { + "Pickup": "max_armor", + "Count": 2 + }, + { + "Pickup": "life", + "Count": 2 + }], + "EnemyDensity": 0, + "Weapons": ["Fists", + "Chainsaw", + "2xChainsaw", + "3xChainsaw", + "4xChainsaw", + "5xChainsaw", + "MiniGun", + "Launcher", + "Flamer", + "Powergun", + "Blaster", + "MegaGun"], + "WeaponPersist": true, + "SkipDebrief": false, + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "34345cff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "303030ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "303030ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + } + }, + "Walls": 140, + "WallLength": 20, + "CorridorWidth": 2, + "Rooms": { + "Count": 30, + "Min": 7, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 1, + "WallPad": 1 + }, + "Squares": 1, + "ExitEnabled": true, + "Doors": { + "Enabled": false, + "Min": 2, + "Max": 2, + "RandomPos": false + }, + "Pillars": { + "Count": 0, + "Min": 2, + "Max": 3 + } + }, + { + "Title": "", + "Description": "Retrieve at least 22 objects", + "Type": "Classic", + "Width": 100, + "Height": 100, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Retrieve objects", + "Type": "Collect", + "Pickups": ["folder", + "disk1", + "pci_card", + "paper", + "teddy"], + "Count": 28, + "Required": 22, + "Flags": 0 + }, + { + "Description": "Demolition", + "Type": "Destroy", + "MapObjects": ["crate", + "box", + "box3_gray", + "cabinet_server"], + "Count": 400, + "Required": 0, + "Flags": 1 + }], + "Enemies": [3, + 4, + 4, + 7, + 7], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "fan", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 10 + }, + { + "MapObject": "blood1", + "Density": 10 + }, + { + "MapObject": "blood2", + "Density": 10 + }, + { + "MapObject": "bulletmarks", + "Density": 50 + }, + { + "MapObject": "skull", + "Density": 10 + }, + { + "MapObject": "rocket_wreck", + "Density": 10 + }, + { + "MapObject": "bloodstain", + "Density": 20 + }, + { + "MapObject": "bloodstain1", + "Density": 20 + }], + "PickupCounts": [{ + "Pickup": "gun_Powergun", + "Count": 1 + }, + { + "Pickup": "gun_MiniGun", + "Count": 1 + }, + { + "Pickup": "gun_Launcher", + "Count": 1 + }, + { + "Pickup": "gun_Flamer", + "Count": 1 + }, + { + "Pickup": "gun_Blaster", + "Count": 1 + }, + { + "Pickup": "armor", + "Count": 9 + }, + { + "Pickup": "max_armor", + "Count": 2 + }, + { + "Pickup": "life", + "Count": 2 + }], + "EnemyDensity": 57, + "Weapons": ["Fists", + "Chainsaw", + "2xChainsaw", + "3xChainsaw", + "4xChainsaw", + "5xChainsaw", + "MiniGun", + "Launcher", + "Flamer", + "Powergun", + "Blaster", + "MegaGun"], + "WeaponPersist": true, + "SkipDebrief": false, + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "34345cff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "303030ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "303030ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + } + }, + "Walls": 140, + "WallLength": 20, + "CorridorWidth": 2, + "Rooms": { + "Count": 30, + "Min": 7, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 1, + "WallPad": 1 + }, + "Squares": 1, + "ExitEnabled": true, + "Doors": { + "Enabled": false, + "Min": 2, + "Max": 2, + "RandomPos": false + }, + "Pillars": { + "Count": 0, + "Min": 2, + "Max": 3 + } + }, + { + "Title": "The Final Showdown!", + "Description": "Retrieve at least 24 objects", + "Type": "Classic", + "Width": 100, + "Height": 100, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Retrieve objects", + "Type": "Collect", + "Pickups": ["folder", + "disk1", + "pci_card", + "paper", + "teddy"], + "Count": 30, + "Required": 24, + "Flags": 0 + }, + { + "Description": "Demolition", + "Type": "Destroy", + "MapObjects": ["crate", + "box", + "box3_gray", + "cabinet_server"], + "Count": 400, + "Required": 0, + "Flags": 1 + }], + "Enemies": [3, + 4, + 4, + 5, + 5, + 6, + 6, + 7, + 7, + 8, + 8], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "fan", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 10 + }, + { + "MapObject": "blood1", + "Density": 10 + }, + { + "MapObject": "blood2", + "Density": 10 + }, + { + "MapObject": "bulletmarks", + "Density": 50 + }, + { + "MapObject": "skull", + "Density": 10 + }, + { + "MapObject": "rocket_wreck", + "Density": 10 + }, + { + "MapObject": "bloodstain", + "Density": 20 + }, + { + "MapObject": "bloodstain1", + "Density": 20 + }], + "PickupCounts": [{ + "Pickup": "gun_Powergun", + "Count": 1 + }, + { + "Pickup": "gun_MiniGun", + "Count": 1 + }, + { + "Pickup": "gun_Launcher", + "Count": 1 + }, + { + "Pickup": "gun_Flamer", + "Count": 1 + }, + { + "Pickup": "gun_Blaster", + "Count": 1 + }, + { + "Pickup": "armor", + "Count": 10 + }, + { + "Pickup": "max_armor", + "Count": 2 + }, + { + "Pickup": "life", + "Count": 2 + }], + "EnemyDensity": 64, + "Weapons": ["Fists", + "Chainsaw", + "2xChainsaw", + "3xChainsaw", + "4xChainsaw", + "5xChainsaw", + "MiniGun", + "Launcher", + "Flamer", + "Powergun", + "Blaster", + "MegaGun"], + "WeaponPersist": true, + "SkipDebrief": false, + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "34345cff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "303030ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "303030ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + } + }, + "Walls": 140, + "WallLength": 20, + "CorridorWidth": 2, + "Rooms": { + "Count": 30, + "Min": 7, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 1, + "WallPad": 1 + }, + "Squares": 1, + "ExitEnabled": true, + "Doors": { + "Enabled": false, + "Min": 2, + "Max": 2, + "RandomPos": false + }, + "Pillars": { + "Count": 0, + "Min": 2, + "Max": 3 + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/pickups.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/pickups.json new file mode 100644 index 00000000..a5e83030 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/pickups.json @@ -0,0 +1,95 @@ +{ + "Version": 3, + "Pickups": [ + { + "Name": "folder", + "Pic": { + "Type": "Normal", + "Pic": "folder" + }, + "Effects": [{ + "Type": "Score", + "Score": 200 + }] + }, + { + "Name": "disk1", + "Pic": { + "Type": "Normal", + "Pic": "disk1" + }, + "Effects": [{ + "Type": "Score", + "Score": 200 + }] + }, + { + "Name": "pci_card", + "Pic": { + "Type": "Normal", + "Pic": "pci_card" + }, + "Effects": [{ + "Type": "Score", + "Score": 200 + }] + }, + { + "Name": "paper", + "Pic": { + "Type": "Normal", + "Pic": "paper" + }, + "Effects": [{ + "Type": "Score", + "Score": 200 + }] + }, + { + "Name": "teddy", + "Pic": { + "Type": "Normal", + "Pic": "teddy" + }, + "Effects": [{ + "Type": "Score", + "Score": 200 + }] + }, + { + "Name": "armor", + "Pic": { + "Type": "Normal", + "Pic": "armor_green" + }, + "Effects": [{ + "Type": "Health", + "Health": 50 + }] + }, + { + "Name": "max_armor", + "Pic": { + "Type": "Normal", + "Pic": "armor_blue" + }, + "Effects": [{ + "Type": "Health", + "Health": 70, + "ExceedMax": true + }] + }, + { + "Name": "life", + "Pic": { + "Type": "Normal", + "Pic": "heart" + }, + "Effects": [{ + "Type": "Lives", + "Lives": 1 + }], + "Sound": "1up" + } + ] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/sounds/1up.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/sounds/1up.ogg new file mode 100644 index 00000000..aa98b4d7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/sounds/1up.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/sounds/1up.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/sounds/1up.txt new file mode 100644 index 00000000..aaade46b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/cyberdogs.cdogscpn/sounds/1up.txt @@ -0,0 +1,4 @@ +Derived from SFX: The Ultimate 2017 16 bit Mini pack +By phoenix1291 +https://opengameart.org/content/sfx-the-ultimate-2017-16-bit-mini-pack +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell.cdogscpn/LICENSE.md b/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell.cdogscpn/LICENSE.md new file mode 100644 index 00000000..2660d3e8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell.cdogscpn/LICENSE.md @@ -0,0 +1,45 @@ +## creative commons + +# CC0 1.0 Universal + +``` +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. +``` + +### Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. + +1. __Copyright and Related Rights.__ A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; + + ii. moral rights retained by the original author(s) and/or performer(s); + + iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; + + iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; + + v. rights protecting the extraction, dissemination, use and reuse of data in a Work; + + vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and + + vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. + +2. __Waiver.__ To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. + +3. __Public License Fallback.__ Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. + +4. __Limitations and Disclaimers.__ + + a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. + + b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. + + c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. + + d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell.cdogscpn/bullets.json new file mode 100644 index 00000000..70a4afcf --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell.cdogscpn/bullets.json @@ -0,0 +1,13 @@ +{ + "Version": 1, + "Bullets": [ + { + "Name": "air", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Power": 0 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell.cdogscpn/campaign.json new file mode 100644 index 00000000..2f871673 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell.cdogscpn/campaign.json @@ -0,0 +1,11 @@ +{ + "Version": 16, + "Title": "Development Hell", + "Author": "Sauer2", + "Description": "You work for a military data center in a desert nearby Texas. Suddenly all security bots run amok and start to kill all researchers.", + "Ammo": false, + "WeaponPersist": false, + "SkipWeaponMenu": false, + "RandomPickups": true, + "Missions": 6 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell.cdogscpn/characters.json new file mode 100644 index 00000000..3f46b080 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell.cdogscpn/characters.json @@ -0,0 +1,411 @@ +{ + "Version": 13, + "Characters": [{ + "Class": "Jones", + "HairType": "flattop", + "Skin": "ff8136ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "ff6c00ff", + "Feet": "363636ff", + "speed": 256, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 39977984, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 5 + }, + { + "Class": "Jones", + "HairType": "beard", + "Skin": "d25106ff", + "Arms": "004870ff", + "Body": "004464ff", + "Legs": "00282cff", + "Hair": "c00000ff", + "Feet": "00282cff", + "speed": 256, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 39977984, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 23 + }, + { + "Class": "Jones", + "HairType": "beard", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "363636ff", + "Feet": "363636ff", + "speed": 256, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 39977984, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 23 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "f4944cff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "ac5400ff", + "Hair": "8c4400ff", + "Feet": "ac5400ff", + "speed": 256, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 39977984, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 23 + }, + { + "Class": "Jones", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "5c5c5cff", + "Legs": "004870ff", + "Hair": "363636ff", + "Feet": "004870ff", + "speed": 256, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 39977984, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 23 + }, + { + "Class": "Jones", + "HairType": "shades", + "Skin": "603000ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "003038ff", + "Hair": "004800ff", + "Feet": "003038ff", + "speed": 256, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 39977984, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 23 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "c0ac3cff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "00ac00ff", + "Hair": "402000ff", + "Feet": "00ac00ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 39977984, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 5, + "actionDelay": 23 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "502800ff", + "Arms": "ffffffff", + "Body": "00c0c0ff", + "Legs": "363636ff", + "Hair": "5c345cff", + "Feet": "363636ff", + "speed": 256, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 39977984, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 23 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "f4944cff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "fcfcfcff", + "Hair": "fce000ff", + "Feet": "fcfcfcff", + "speed": 256, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 39977984, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 23 + }, + { + "Class": "Jones", + "HairType": "shades", + "Skin": "d25106ff", + "Arms": "fc9000ff", + "Body": "fc9000ff", + "Legs": "004870ff", + "Hair": "363636ff", + "Feet": "004870ff", + "speed": 320, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 39977984, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 23 + }, + { + "Class": "Jones", + "HairType": "hogan", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "fc1800ff", + "Legs": "363636ff", + "Hair": "fc6800ff", + "Feet": "363636ff", + "speed": 256, + "Gun": "Pistol", + "maxHealth": 40, + "flags": 39977984, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 5, + "actionDelay": 23 + }, + { + "Class": "Jones", + "HairType": "dutch", + "Skin": "804000ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "00fc00ff", + "Feet": "363636ff", + "speed": 256, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 39977984, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 23 + }, + { + "Class": "Jones", + "HairType": "dutch", + "Skin": "c0ac3cff", + "Arms": "ffffffff", + "Body": "484848ff", + "Legs": "363636ff", + "Hair": "341c00ff", + "Feet": "363636ff", + "speed": 256, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 39977984, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 23 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "00fcfcff", + "Legs": "348434ff", + "Hair": "882800ff", + "Feet": "348434ff", + "speed": 256, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 39977984, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "hogan", + "Skin": "882800ff", + "Arms": "ffffffff", + "Body": "5c5c5cff", + "Legs": "004870ff", + "Hair": "58589cff", + "Feet": "004870ff", + "speed": 256, + "Gun": "Pistol", + "maxHealth": 40, + "flags": 39977984, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Cyborg", + "HairType": "cyborg", + "Skin": "ffffffff", + "Arms": "000000ff", + "Body": "000000ff", + "Legs": "000000ff", + "Hair": "ff0000ff", + "Feet": "000000ff", + "speed": 128, + "Gun": "Chemo gun", + "maxHealth": 100, + "flags": 25691648, + "probabilityToMove": 100, + "probabilityToTrack": 80, + "probabilityToShoot": 12, + "actionDelay": 5 + }, + { + "Class": "Mad bug-eye", + "Skin": "fcb800ff", + "Arms": "a00000ff", + "Body": "fce000ff", + "Legs": "840000ff", + "Hair": "840000ff", + "Feet": "840000ff", + "speed": 256, + "Gun": "Chemo bombs", + "maxHealth": 50, + "flags": 16778752, + "probabilityToMove": 50, + "probabilityToTrack": 15, + "probabilityToShoot": 17, + "actionDelay": 19 + }, + { + "Class": "Mad bug-eye", + "Skin": "fcb800ff", + "Arms": "ac0000ff", + "Body": "fc6800ff", + "Legs": "e00000ff", + "Hair": "ff8136ff", + "Feet": "e00000ff", + "speed": 256, + "Gun": "Chemo bombs", + "maxHealth": 50, + "flags": 16778752, + "probabilityToMove": 50, + "probabilityToTrack": 15, + "probabilityToShoot": 17, + "actionDelay": 19 + }, + { + "Class": "Mad bug-eye", + "Skin": "9c0000ff", + "Arms": "9c0000ff", + "Body": "9c0000ff", + "Legs": "9c0000ff", + "Hair": "b79536ff", + "Feet": "9c0000ff", + "speed": 256, + "Gun": "Molotovs", + "maxHealth": 50, + "flags": 16778752, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 7, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "9c0000ff", + "Arms": "9c0000ff", + "Body": "363636ff", + "Legs": "fc4000ff", + "Hair": "c00000ff", + "Feet": "fc4000ff", + "speed": 512, + "Gun": "Grenades", + "maxHealth": 50, + "flags": 16778752, + "probabilityToMove": 55, + "probabilityToTrack": 45, + "probabilityToShoot": 2, + "actionDelay": 22 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "9c0000ff", + "Arms": "9c0000ff", + "Body": "363636ff", + "Legs": "9c0000ff", + "Hair": "c00000ff", + "Feet": "9c0000ff", + "speed": 512, + "Gun": "Knife", + "maxHealth": 50, + "flags": 16778752, + "probabilityToMove": 55, + "probabilityToTrack": 45, + "probabilityToShoot": 2, + "actionDelay": 22 + }, + { + "Class": "Robot", + "Skin": "000000ff", + "Arms": "363636ff", + "Body": "000000ff", + "Legs": "363636ff", + "Hair": "9c0000ff", + "Feet": "363636ff", + "speed": 512, + "Gun": "Molotovs", + "maxHealth": 500, + "flags": 25232896, + "probabilityToMove": 55, + "probabilityToTrack": 55, + "probabilityToShoot": 100, + "actionDelay": 15 + }, + { + "Class": "Robot", + "Skin": "ffffffff", + "Arms": "9c9c9cff", + "Body": "ffffffff", + "Legs": "9c9c9cff", + "Hair": "58589cff", + "Feet": "9c9c9cff", + "speed": 512, + "Gun": "Knife", + "maxHealth": 200, + "flags": 16778752, + "probabilityToMove": 75, + "probabilityToTrack": 100, + "probabilityToShoot": 0, + "actionDelay": 12 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell.cdogscpn/guns.json new file mode 100644 index 00000000..bc02b337 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell.cdogscpn/guns.json @@ -0,0 +1,14 @@ +{ + "Version": 1, + "Guns": [ + { + "Pic": "", + "Icon": "plant", + "Name": "Lack of motivation", + "Description": "You don't feel like fighting against military grade security bots, protected by high-tech fiber-steel-foam plating and equipped with nerve gas. The best weapon in range are some small arms anyway.", + "Bullet": "air", + "Recoil": "9999", + "Sound": "" + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell.cdogscpn/missions.json new file mode 100644 index 00000000..d81b22f1 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell.cdogscpn/missions.json @@ -0,0 +1,1658 @@ +{ + "Missions": [{ + "Title": "Countermeasures", + "Description": "Fighting the robots makes no sense. Focus on obtaining data drives your coworkers left at their workplace. At least one of them probably contains a virus that can shut down the bots.", + "Type": "Static", + "Width": 64, + "Height": 53, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Collect the data drives", + "Type": "Collect", + "Pickup": "disk3", + "Count": 9, + "Required": 6, + "Flags": 0 + }, + { + "Description": "The Game.png", + "Type": "Collect", + "Pickup": "disk2", + "Count": 1, + "Required": 0, + "Flags": 1 + }, + { + "Description": "Can't hurt to have the bot blueprints...", + "Type": "Collect", + "Pickup": "folder2", + "Count": 1, + "Required": 0, + "Flags": 0 + }], + "Enemies": [0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 15, + "Weapons": ["Lack of motivation"], + "Song": "devhell1.xm", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "carbon", + "Mask": "848484ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "grid", + "Mask": "c0ac3cff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "5": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,1,0,0,5,5,5,5,1,1,3,1,1,5,5,5,0,0,0,1,0,0,0,0,0,0,1,1,3,1,1,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,1,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,1,0,0,5,5,5,5,1,3,3,3,1,5,5,5,0,0,0,1,0,0,0,0,0,0,1,3,3,3,1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,1,0,0,5,5,5,5,1,5,5,5,1,5,5,5,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,1,1,1,1,0,0,0,1,1,1,1", + "1,0,0,0,1,1,1,1,0,0,5,1,1,1,1,5,5,5,1,5,5,5,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,0,0,0,3,3,0,0,0,0,0,0,3,3,0,0,0,1,0,0,1,2,2,2,1,0,0,1", + "1,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,1,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,1,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,1,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,0,0,0,1,1,1,1,5,5,5,1,5,5,5,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,0,0,0,1,0,0,0,3,3,0,0,0,0,0,0,3,3,0,0,0,1,0,0,0,0,0,0,0,1,1,1", + "1,0,0,0,0,0,0,1,0,0,5,5,5,5,1,5,5,5,1,5,5,5,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,1,0,0,0,0,0,0,0,3,1,1", + "1,0,0,0,0,0,0,1,0,0,5,5,5,5,1,5,5,5,1,5,5,5,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,1,0,0,0,0,0,0,0,3,3,1", + "1,0,0,0,0,0,0,1,0,0,5,5,5,5,1,5,5,5,1,5,5,5,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,1,0,0,0,0,0,0,0,3,1,1", + "1,0,0,0,0,0,0,1,0,0,5,5,5,5,1,5,5,5,1,0,5,5,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,3,3,0,0,0,0,0,0,3,3,0,0,0,1,0,0,0,0,0,0,0,1,1,1", + "1,0,0,0,0,0,0,1,0,0,5,5,5,5,1,5,5,5,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,1,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,1,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,1,1,1,5,5,5,1,5,5,5,1,5,5,5,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,1,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,1,0,1,1,1,5,5,5,5,5,1,5,5,5,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,3,3,0,0,0,0,0,0,3,3,0,0,0,1,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,1,1,1,1,2,2,2,1,1,1,1", + "4,4,4,4,4,4,4,4,1,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,1,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,1,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,0,0,0,1,0,0,0,3,3,0,0,0,0,0,0,3,3,0,0,0,1,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,0,0,0,3,3,0,0,0,0,0,0,3,3,0,0,0,1,1,1,1,2,2,2,1,1,1,1", + "1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,1,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,3,3,3,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,3,0,1,0,3,3,3,3,3,3,0,0,3,3,3,3,3,3,0,1,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,3,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,1,0,0,1,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,0,0,0,0,1,1,1,1,1,1,1,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,1,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,1,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,2048,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "table_wood_round_terminal", + "Positions": [[12, 1], + [5, 1], + [8, 10], + [1, 10], + [24, 1], + [20, 10], + [5, 26], + [6, 26], + [12, 26], + [20, 16], + [19, 16], + [27, 10], + [24, 26], + [22, 26], + [28, 16], + [31, 28], + [61, 26], + [62, 26], + [60, 26], + [56, 26], + [55, 26], + [54, 26], + [57, 35], + [32, 38], + [33, 38], + [25, 38], + [18, 38]] + }, + { + "MapObject": "table_steel", + "Positions": [[6, 1], + [13, 1], + [2, 10], + [9, 10], + [23, 1], + [19, 10], + [21, 10], + [13, 26], + [26, 10], + [23, 26], + [26, 16], + [27, 16], + [21, 16], + [29, 1], + [28, 1], + [55, 9], + [55, 8], + [17, 38], + [26, 38], + [24, 38]] + }, + { + "MapObject": "chair", + "Positions": [[5, 2], + [12, 2], + [1, 11], + [8, 11], + [6, 27], + [12, 27], + [21, 11], + [22, 1], + [7, 22], + [5, 22], + [31, 29], + [22, 27], + [24, 27], + [28, 17], + [20, 17], + [27, 11], + [31, 1], + [31, 2], + [31, 3], + [54, 9], + [61, 28], + [54, 28], + [56, 28], + [18, 39], + [25, 39], + [31, 39], + [19, 39]] + }, + { + "MapObject": "bookshelf", + "Positions": [[5, 6], + [10, 10], + [9, 1], + [8, 1], + [1, 1], + [13, 6], + [12, 6], + [6, 9], + [24, 12], + [23, 12], + [19, 1], + [20, 1], + [21, 1], + [23, 6], + [1, 25], + [10, 25], + [11, 26], + [28, 10], + [30, 26], + [30, 16], + [31, 26], + [19, 38], + [31, 38]] + }, + { + "MapObject": "crate2", + "Positions": [[6, 6], + [27, 1], + [26, 2], + [26, 1], + [30, 1], + [29, 2], + [57, 34], + [56, 35], + [56, 39], + [57, 37], + [52, 40], + [15, 41]] + }, + { + "MapObject": "table", + "Positions": [[6, 22]] + }, + { + "MapObject": "plant", + "Positions": [[11, 22], + [55, 5], + [61, 5]] + }, + { + "MapObject": "cabinet_server", + "Positions": [[39, 3], + [39, 7], + [39, 11], + [39, 15], + [39, 19], + [39, 23], + [39, 27], + [42, 3], + [42, 7], + [42, 11], + [42, 15], + [42, 19], + [42, 27], + [40, 3], + [41, 3], + [40, 7], + [41, 7], + [40, 11], + [41, 11], + [40, 15], + [41, 15], + [40, 19], + [41, 19], + [40, 23], + [41, 23], + [42, 23], + [40, 27], + [41, 27], + [50, 3], + [49, 3], + [48, 3], + [47, 3], + [47, 7], + [48, 7], + [49, 7], + [50, 7], + [47, 11], + [48, 11], + [49, 11], + [50, 11], + [47, 15], + [48, 15], + [49, 15], + [50, 15], + [47, 19], + [48, 19], + [49, 19], + [50, 19], + [47, 23], + [48, 23], + [49, 23], + [50, 23], + [47, 27], + [48, 27], + [49, 27], + [50, 27]] + }, + { + "MapObject": "blood1", + "Positions": [[57, 11]] + }, + { + "MapObject": "bone_blood", + "Positions": [[33, 5]] + }, + { + "MapObject": "bulletmarks", + "Positions": [[36, 22]] + }, + { + "MapObject": "blood0", + "Positions": [[34, 19]] + }, + { + "MapObject": "blood2", + "Positions": [[33, 25]] + }, + { + "MapObject": "crate", + "Positions": [[52, 34], + [54, 35], + [55, 34], + [54, 34], + [56, 40], + [55, 41]] + }, + { + "MapObject": "box3_gray", + "Positions": [[53, 34], + [61, 19]] + }, + { + "MapObject": "box3_green", + "Positions": [[57, 38], + [52, 35]] + }, + { + "MapObject": "safe_wreck", + "Positions": [[13, 18], + [13, 16], + [12, 16], + [11, 16], + [10, 16], + [13, 19], + [13, 20], + [14, 17]] + }, + { + "MapObject": "table_wreck", + "Positions": [[13, 17]] + }], + "StaticCharacters": [{ + "Index": 15, + "Positions": [[16, 3], + [34, 3], + [16, 28], + [34, 28], + [61, 11], + [12, 35]] + }], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[2, 11], + [24, 2], + [30, 28], + [41, 16], + [5, 27], + [60, 27], + [55, 35], + [17, 39], + [14, 40]], + "Indices": [0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0] + }, + { + "Index": 1, + "Positions": [[24, 11]], + "Indices": [0] + }, + { + "Index": 2, + "Positions": [[32, 39]], + "Indices": [0] + }], + "StaticKeys": [], + "StaticPickups": [], + "Start": [3, 2], + "Exits": [{ + "Rect": [43, + 31, + 3, + 2], + "Mission": 1, + "Hidden": false + }] + }, + { + "Title": "Strange noises", + "Description": "The software doesn't disable the robots. Instead they disappear, as well as your coworkers. You hear a strange noise from the basement...", + "Type": "Static", + "Width": 40, + "Height": 40, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Explore the basement", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 100, + "Flags": 0 + }, + { + "Description": "Defend yourself", + "Type": "Kill", + "Index": 0, + "Count": 9, + "Required": 0, + "Flags": 1 + }, + { + "Description": "What a weird device.", + "Type": "Collect", + "Pickup": "radio2", + "Count": 1, + "Required": 0, + "Flags": 1 + }], + "Enemies": [], + "SpecialChars": [16, + 17, + 18], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Pistol"], + "Song": "devhell2.ogg", + "TileClasses": { + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "carbon", + "Mask": "848484ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "804000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "5": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,3,3,3,3,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,3,3,3,3,3,3,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,3,3,1,3,3,3,3,3,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,1,0,3,3,3,3,1,3,3,3,3,3,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,3,3,3,3,3,3,3,3,3,1,0,0,0,1,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1", + "1,0,0,0,0,3,3,3,3,3,3,3,3,3,1,5,5,5,1,5,1,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,1,1,1,1,5,1,5,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,3,3,3,3,3,3,3,3,5,1,1,5,1,5,1,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,3,3,3,3,3,1,3,3,5,5,1,5,1,5,1,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,3,3,3,3,3,3,5,5,5,5,5,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1", + "1,0,0,0,0,0,0,0,3,3,3,3,5,5,5,5,5,5,1,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,5,3,3,5,5,5,5,5,5,5,1,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1", + "1,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,1,5,5,5,5,5,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,1,5,5,5,5,5,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,4,4,4,4,4,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,4,4,4,4,4,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,4,4,4,4,4,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,4,4,4,4,4,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,4,4,4,4,4,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,4,4,4,4,4,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "cabinet_server", + "Positions": [[2, 28], + [2, 30], + [2, 32], + [2, 34], + [2, 36], + [4, 28], + [4, 30], + [4, 32], + [4, 34], + [4, 36], + [2, 18], + [2, 20], + [4, 20], + [6, 20], + [2, 22], + [4, 22], + [6, 22], + [12, 22], + [14, 22], + [16, 22], + [16, 20]] + }, + { + "MapObject": "table_wood_round_terminal", + "Positions": [[10, 27], + [35, 1], + [34, 1], + [33, 1], + [32, 1], + [31, 1]] + }, + { + "MapObject": "chair", + "Positions": [[10, 29], + [33, 2]] + }, + { + "MapObject": "box3_gray", + "Positions": [[16, 2], + [12, 2], + [10, 2], + [9, 2], + [9, 1], + [10, 1], + [12, 1], + [13, 1], + [13, 2], + [15, 2], + [15, 1], + [16, 1], + [7, 1], + [7, 2], + [6, 2], + [6, 1], + [4, 1], + [4, 2], + [3, 2], + [3, 1]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[22, 23], + [23, 23], + [24, 24], + [26, 23], + [21, 33], + [22, 33], + [22, 34], + [23, 34]] + }, + { + "MapObject": "barrel_skull", + "Positions": [[24, 33]] + }, + { + "MapObject": "crate2", + "Positions": [[20, 23], + [20, 24], + [25, 24], + [25, 23], + [27, 38], + [26, 38], + [25, 38], + [24, 38], + [23, 38], + [24, 37], + [25, 37], + [26, 37], + [27, 37]] + }, + { + "MapObject": "barrel", + "Positions": [[21, 24], + [21, 23]] + }, + { + "MapObject": "crate", + "Positions": [[19, 27], + [19, 28]] + }, + { + "MapObject": "safe2", + "Positions": [[30, 27], + [31, 24], + [32, 24], + [35, 24], + [37, 24], + [35, 27], + [36, 27], + [37, 27], + [30, 30], + [32, 30], + [35, 30], + [31, 33], + [32, 33], + [36, 33], + [36, 1], + [37, 1]] + }, + { + "MapObject": "blood0", + "Positions": [[27, 9]] + }, + { + "MapObject": "skull", + "Positions": [[28, 9]] + }, + { + "MapObject": "cabinet_server_wreck", + "Positions": [[4, 18], + [6, 18], + [6, 16], + [7, 17], + [10, 20], + [9, 22], + [8, 20], + [8, 19], + [14, 21], + [14, 20], + [12, 20], + [13, 19], + [14, 19]] + }, + { + "MapObject": "safe_wreck", + "Positions": [[5, 16], + [10, 17], + [13, 15], + [12, 16], + [10, 13], + [8, 14], + [7, 19]] + }, + { + "MapObject": "safe2_wreck", + "Positions": [[30, 24], + [31, 27], + [32, 27], + [36, 24], + [36, 30], + [37, 30], + [31, 30], + [30, 33], + [37, 34], + [35, 33], + [30, 36], + [31, 36], + [32, 36], + [35, 36], + [36, 36], + [37, 35]] + }, + { + "MapObject": "table_wood_wreck", + "Positions": [[23, 25]] + }, + { + "MapObject": "crate2_wreck", + "Positions": [[21, 27], + [22, 28], + [23, 35], + [25, 34], + [26, 34]] + }, + { + "MapObject": "table_wreck", + "Positions": [[15, 7]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 2, + "Positions": [[32, 2]], + "Indices": [0] + }], + "StaticKeys": [], + "StaticPickups": [], + "Start": [15, 29], + "Exits": [{ + "Rect": [5, + 12, + 9, + 8], + "Mission": 2, + "Hidden": false + }] + }, + { + "Title": "Enter the portal", + "Description": "As it seems, you have opened a portal from hell in the server room. Since you're not willing to leave it open, you grab some guns and jump into it...", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Defend yourself!", + "Type": "Kill", + "Index": 0, + "Count": 20, + "Required": 20, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [16, + 17, + 18], + "MapObjectDensities": [{ + "MapObject": "wall_skull", + "Density": 15 + }, + { + "MapObject": "bone_blood", + "Density": 20 + }, + { + "MapObject": "skull", + "Density": 20 + }], + "EnemyDensity": 0, + "Weapons": ["Shotgun", + "Pistol", + "Machine gun"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "840000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "stone", + "Mask": "480000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 6, + "WallLength": 40, + "CorridorWidth": 1, + "Rooms": { + "Count": 7, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "ExitEnabled": false, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "The dimension linker", + "Description": "Turns out that those demons were planning an invasion, using the so called dimension linker. Better steal the linker from them.", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "plain", + "Objectives": [{ + "Description": "Get the dimension linker!", + "Type": "Collect", + "Pickup": "radio2", + "Count": 1, + "Required": 1, + "Flags": 4 + }], + "Enemies": [16, + 17, + 18, + 19, + 20], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "bone_blood", + "Density": 10 + }, + { + "MapObject": "skull", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 10 + }], + "EnemyDensity": 20, + "Weapons": ["Shotgun", + "Machine gun", + "Pistol"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "480000ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "840000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "840000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 37, + "WallLength": 21, + "CorridorWidth": 1, + "Rooms": { + "Count": 2, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "ExitEnabled": true, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 2 + }, + "Pillars": { + "Count": 2, + "Min": 0, + "Max": 2 + } + }, + { + "Title": "There is always that one guy.", + "Description": "Out of the sudden, some kind of demon overlord grabs the device. Get it back!", + "Type": "Static", + "Width": 24, + "Height": 24, + "ExitStyle": "plate", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Get the device from its cold, dead hands.", + "Type": "Kill", + "Index": 0, + "Count": 1, + "Required": 1, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [21], + "MapObjectDensities": [{ + "MapObject": "bone_blood", + "Density": 10 + }, + { + "MapObject": "skull", + "Density": 25 + }], + "EnemyDensity": 0, + "Weapons": ["Shotgun", + "Pistol", + "Machine gun"], + "Song": "devhell1.xm", + "TileClasses": { + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "3c3c3cff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "848484ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "840000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1", + "1,3,3,3,3,3,3,0,3,0,0,3,0,3,3,0,0,0,0,3,3,0,0,1", + "1,3,3,3,3,3,3,3,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,1", + "1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,0,0,0,0,3,0,0,0,0,0,0,0,0,1,0,1,1,1", + "1,0,0,0,0,0,0,1,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,3,0,3,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,1,0,0,0,1,0,1", + "1,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,3,1,1,3,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,3,1,1,3,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,1,0,0,0,0,3,3,3,3,0,0,0,0,0,0,0,1,0,1", + "1,0,0,1,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,3,0,3,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,1,1,0,3,3,0,1,1,0,0,0,0,0,0,0,1", + "1,0,0,0,1,0,0,0,1,0,3,3,3,3,0,1,0,0,0,1,0,0,0,1", + "1,0,0,0,0,0,0,0,1,3,0,3,3,3,3,1,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,3,3,3,3,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,1,3,3,0,0,3,0,1,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "statue_behemoth", + "Positions": [[9, 14], + [14, 9], + [9, 9], + [14, 14], + [2, 1], + [3, 1]] + }, + { + "MapObject": "wall_skull", + "Positions": [[4, 1], + [1, 1]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[16, 4]], + "Indices": [0] + }], + "StaticKeys": [], + "StaticPickups": [], + "Start": [11, 19], + "Exits": [{ + "Rect": [8, + 17, + 7, + 5], + "Mission": 5, + "Hidden": false + }] + }, + { + "Title": "Strange noises", + "Description": "The portal is closed, the device is smashed, everything seems fine. Suddenly, bright schemes appear, shouting \"Nothing shall leave hell alive!\"", + "Type": "Static", + "Width": 40, + "Height": 40, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Convince them otherwise!", + "Type": "Kill", + "Index": 0, + "Count": 7, + "Required": 7, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [22], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Pistol", + "Machine gun", + "Shotgun"], + "Song": "devhell2.ogg", + "TileClasses": { + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "carbon", + "Mask": "848484ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "804000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "5": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,3,3,3,3,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,3,3,3,3,3,3,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,3,3,1,3,3,3,3,3,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,1,0,3,3,3,3,1,3,3,3,3,3,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,3,3,3,3,3,3,3,3,3,1,0,0,0,1,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1", + "1,0,0,0,0,3,3,3,3,3,3,3,3,3,1,5,5,5,1,5,1,5,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,1,1,1,1,5,1,5,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,3,3,3,3,3,3,3,3,5,1,1,5,1,5,1,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,3,3,3,3,3,1,3,3,5,5,1,5,1,5,1,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,3,3,3,3,3,3,5,5,5,5,5,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1", + "1,0,0,0,0,0,0,0,3,3,3,3,5,5,5,5,5,5,1,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,5,3,3,5,5,5,5,5,5,5,1,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1", + "1,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,1,5,5,5,5,5,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,1,5,5,5,5,5,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,4,4,4,4,4,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,4,4,4,4,4,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,4,4,4,4,4,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,4,4,4,4,4,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,4,4,4,4,4,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,4,4,4,4,4,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "cabinet_server", + "Positions": [[2, 28], + [2, 30], + [2, 32], + [2, 34], + [2, 36], + [4, 28], + [4, 30], + [4, 32], + [4, 34], + [4, 36], + [2, 18], + [2, 20], + [4, 20], + [6, 20], + [2, 22], + [4, 22], + [6, 22], + [12, 22], + [14, 22], + [16, 22], + [16, 20]] + }, + { + "MapObject": "table_wood_round_terminal", + "Positions": [[10, 27], + [35, 1], + [34, 1], + [33, 1], + [32, 1], + [31, 1]] + }, + { + "MapObject": "chair", + "Positions": [[10, 29], + [33, 2]] + }, + { + "MapObject": "box3_gray", + "Positions": [[16, 2], + [12, 2], + [10, 2], + [9, 2], + [9, 1], + [10, 1], + [12, 1], + [13, 1], + [13, 2], + [15, 2], + [15, 1], + [16, 1], + [7, 1], + [7, 2], + [6, 2], + [6, 1], + [4, 1], + [4, 2], + [3, 2], + [3, 1]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[22, 23], + [23, 23], + [24, 24], + [26, 23], + [21, 33], + [22, 33], + [22, 34], + [23, 34]] + }, + { + "MapObject": "barrel_skull", + "Positions": [[24, 33]] + }, + { + "MapObject": "crate2", + "Positions": [[20, 23], + [20, 24], + [25, 24], + [25, 23], + [27, 38], + [26, 38], + [25, 38], + [24, 38], + [23, 38], + [24, 37], + [25, 37], + [26, 37], + [27, 37]] + }, + { + "MapObject": "barrel", + "Positions": [[21, 24], + [21, 23]] + }, + { + "MapObject": "crate", + "Positions": [[19, 27], + [19, 28]] + }, + { + "MapObject": "safe2", + "Positions": [[30, 27], + [31, 24], + [32, 24], + [35, 24], + [37, 24], + [35, 27], + [36, 27], + [37, 27], + [30, 30], + [32, 30], + [35, 30], + [31, 33], + [32, 33], + [36, 33], + [36, 1], + [37, 1]] + }, + { + "MapObject": "blood0", + "Positions": [[27, 9]] + }, + { + "MapObject": "skull", + "Positions": [[28, 9]] + }, + { + "MapObject": "bloodstain", + "Positions": [[8, 27], + [9, 5], + [30, 17], + [27, 23]] + }, + { + "MapObject": "bulletmarks", + "Positions": [[34, 20], + [11, 19], + [9, 27], + [8, 13]] + }, + { + "MapObject": "blood1", + "Positions": [[13, 13], + [31, 5], + [32, 25], + [37, 35], + [22, 14]] + }, + { + "MapObject": "cabinet_server_wreck", + "Positions": [[4, 18], + [6, 18], + [6, 16], + [7, 17], + [10, 20], + [9, 22], + [8, 20], + [8, 19], + [14, 21], + [14, 20], + [12, 20], + [13, 19], + [14, 19]] + }, + { + "MapObject": "safe_wreck", + "Positions": [[5, 16], + [10, 17], + [13, 15], + [12, 16], + [10, 13], + [8, 14], + [7, 19]] + }, + { + "MapObject": "safe2_wreck", + "Positions": [[30, 24], + [31, 27], + [32, 27], + [36, 24], + [36, 30], + [37, 30], + [31, 30], + [30, 33], + [37, 34], + [35, 33], + [30, 36], + [31, 36], + [32, 36], + [35, 36], + [36, 36], + [37, 35]] + }, + { + "MapObject": "table_wood_wreck", + "Positions": [[23, 25]] + }, + { + "MapObject": "crate2_wreck", + "Positions": [[21, 27], + [22, 28], + [23, 35], + [25, 34], + [26, 34]] + }, + { + "MapObject": "table_wreck", + "Positions": [[15, 7]] + }], + "StaticCharacters": [], + "StaticObjectives": [], + "StaticKeys": [], + "StaticPickups": [], + "Start": [15, 29], + "Exits": [] + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell1.xm b/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell1.xm new file mode 100644 index 00000000..69cecd47 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell1.xm differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell2.ogg new file mode 100644 index 00000000..1c4bc62b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/devhell2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/distress.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/distress.cdogscpn/campaign.json new file mode 100644 index 00000000..00254c51 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/distress.cdogscpn/campaign.json @@ -0,0 +1,10 @@ +{ + "Version": 15, + "Title": "Distress call from scientific outpost", + "Author": "Ronny Wester", + "Description": "A distress call from a remote science outpost sends our heroes on what seems to be yet another routine assignment. But it is not long before a far more sinister truth reveals itself...", + "Ammo": false, + "WeaponPersist": false, + "SkipWeaponMenu": false, + "Missions": 18 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/distress.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/distress.cdogscpn/characters.json new file mode 100644 index 00000000..e9b72646 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/distress.cdogscpn/characters.json @@ -0,0 +1,526 @@ +{ + "Version": 13, + "Characters": [{ + "Class": "Jones", + "HairType": "flattop", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "58589cff", + "Hair": "b79536ff", + "speed": 384, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "PlayerTemplateName": "Scientist", + "HairType": "professor", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "58589cff", + "Hair": "ffffffff", + "speed": 384, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beard", + "Skin": "882800ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "58589cff", + "Hair": "9c9c9cff", + "speed": 384, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "882800ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "58589cff", + "Hair": "000000ff", + "speed": 384, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "ff8136ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "58589cff", + "Hair": "000000ff", + "speed": 384, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "58589cff", + "Hair": "9c0000ff", + "speed": 384, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "58589cff", + "Hair": "9c0000ff", + "speed": 256, + "Gun": "Knife", + "maxHealth": 20, + "flags": 0, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "professor", + "Skin": "ff8136ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "58589cff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Knife", + "maxHealth": 20, + "flags": 0, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "dutch", + "Skin": "882800ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "58589cff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Knife", + "maxHealth": 20, + "flags": 0, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Robot", + "Skin": "363636ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 320, + "Gun": "Knife", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 90, + "probabilityToTrack": 60, + "probabilityToShoot": 0, + "actionDelay": 10 + }, + { + "Class": "Robot", + "Skin": "363636ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "9c0000ff", + "speed": 320, + "Gun": "Knife", + "maxHealth": 40, + "flags": 1536, + "probabilityToMove": 100, + "probabilityToTrack": 60, + "probabilityToShoot": 20, + "actionDelay": 10 + }, + { + "Class": "Robot", + "Skin": "363636ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "ff6c00ff", + "speed": 384, + "Gun": "Knife", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 100, + "probabilityToTrack": 60, + "probabilityToShoot": 0, + "actionDelay": 10 + }, + { + "Class": "Robot", + "Skin": "363636ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "149c14ff", + "speed": 320, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 8389632, + "probabilityToMove": 90, + "probabilityToTrack": 60, + "probabilityToShoot": 10, + "actionDelay": 10 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "58589cff", + "Hair": "ff6c00ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 40, + "flags": 1835008, + "probabilityToMove": 60, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 5 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "882800ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "149c14ff", + "Hair": "ff0000ff", + "speed": 256, + "Gun": "Flamer", + "maxHealth": 40, + "flags": 4325376, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "ff8136ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "149c14ff", + "Hair": "ff0000ff", + "speed": 256, + "Gun": "Powergun", + "maxHealth": 40, + "flags": 4325376, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "d25106ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "149c14ff", + "Hair": "ff0000ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 4325376, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Robot", + "Skin": "363636ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "9c589cff", + "speed": 320, + "Gun": "Confusion bombs", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 90, + "probabilityToTrack": 60, + "probabilityToShoot": 10, + "actionDelay": 10 + }, + { + "Class": "Jones", + "PlayerTemplateName": "Alpha Commando", + "HairType": "eye_patch", + "Skin": "d25106ff", + "Arms": "363636ff", + "Body": "149c14ff", + "Legs": "149c14ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Powergun", + "maxHealth": 100, + "flags": 41943040, + "probabilityToMove": 80, + "probabilityToTrack": 90, + "probabilityToShoot": 25, + "actionDelay": 5 + }, + { + "Class": "Jones", + "PlayerTemplateName": "Alpha Marksman", + "HairType": "flattop", + "Skin": "d25106ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "149c14ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 4325376, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Jones", + "PlayerTemplateName": "Alpha Leader", + "HairType": "flattop", + "Skin": "ff8136ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "149c14ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Flamer", + "maxHealth": 40, + "flags": 4325376, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "882800ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "149c14ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Shotgun", + "maxHealth": 40, + "flags": 4325376, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Jones", + "Skin": "d25106ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "149c14ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 4325376, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Jones", + "Skin": "ff8136ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "149c14ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Powergun", + "maxHealth": 40, + "flags": 4325376, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Jones", + "Skin": "882800ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "149c14ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 4325376, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "d25106ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "149c14ff", + "Hair": "ff0000ff", + "speed": 256, + "Gun": "Flamer", + "maxHealth": 40, + "flags": 4194304, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "d25106ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "149c14ff", + "Hair": "ff0000ff", + "speed": 256, + "Gun": "Shotgun", + "maxHealth": 40, + "flags": 4194304, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "882800ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "149c14ff", + "Hair": "ff0000ff", + "speed": 256, + "Gun": "Powergun", + "maxHealth": 40, + "flags": 4194304, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "882800ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "149c14ff", + "Hair": "ff0000ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 4194304, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "ff8136ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "149c14ff", + "Hair": "ff0000ff", + "speed": 256, + "Gun": "Powergun", + "maxHealth": 40, + "flags": 4194304, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "ff8136ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "149c14ff", + "Hair": "ff0000ff", + "speed": 256, + "Gun": "Shrapnel bombs", + "maxHealth": 40, + "flags": 4194304, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 10, + "actionDelay": 15 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/distress.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/distress.cdogscpn/missions.json new file mode 100644 index 00000000..346fdde9 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/distress.cdogscpn/missions.json @@ -0,0 +1,2562 @@ +{ + "Missions": [{ + "Title": "Entrance", + "Description": "Now that we have arrived at the trouble spot we need to know what's going on. Group Alpha will perform a routine reconnaissance sweep of the ground floor of the facility.", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Scan the first floor", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 80, + "Flags": 0 + }], + "Enemies": [0, + 1, + 2, + 3, + 5, + 4, + 6], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 50 + }, + { + "MapObject": "box2", + "Density": 50 + }, + { + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "plant", + "Density": 30 + }, + { + "MapObject": "chair", + "Density": 20 + }, + { + "MapObject": "bookshelf", + "Density": 40 + }, + { + "MapObject": "terminal", + "Density": 10 + }, + { + "MapObject": "table_steel", + "Density": 20 + }, + { + "MapObject": "safe", + "Density": 5 + }], + "EnemyDensity": 3, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "848484ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "007070ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "5c5c84ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 60, + "WallLength": 25, + "CorridorWidth": 1, + "Rooms": { + "Count": 20, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 2, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "The log files", + "Description": "Ok, the surroundings are - relatively - safe. God knows what has gotten into the science people, they act more nutty than usual. Can't get anything useful out of them. It looks as though we are going to find out for ourselves. To that end I'm sending you after the station logs. They are kept on writable compact discs. Find them and bring them back.", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Get the log CDs", + "Type": "Collect", + "Pickup": "cd", + "Count": 5, + "Required": 5, + "Flags": 4 + }], + "Enemies": [0, + 1, + 2, + 3, + 4, + 6, + 7, + 8], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 25 + }, + { + "MapObject": "box2", + "Density": 25 + }, + { + "MapObject": "cabinet", + "Density": 50 + }, + { + "MapObject": "plant", + "Density": 30 + }, + { + "MapObject": "chair", + "Density": 20 + }, + { + "MapObject": "bookshelf", + "Density": 50 + }, + { + "MapObject": "table_steel", + "Density": 40 + }, + { + "MapObject": "safe", + "Density": 15 + }], + "EnemyDensity": 6, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "848484ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "007070ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "5c5c84ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 45, + "WallLength": 25, + "CorridorWidth": 1, + "Rooms": { + "Count": 15, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Rescue effort", + "Description": "Good work bringing back those log files! While you were out the comms people picked up some interesting signals. It appears as though at least one of the research guys is still comparatively sane and, quite understandably, scared witless. Well, he's trapped on the level below so you will just have to go down there and get him...", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Rescue the trapped scientist", + "Type": "Rescue", + "Index": 13, + "Count": 1, + "Required": 1, + "Flags": 0 + }], + "Enemies": [0, + 6, + 7, + 8], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 40 + }, + { + "MapObject": "box", + "Density": 40 + }, + { + "MapObject": "box2", + "Density": 40 + }, + { + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "chair", + "Density": 10 + }, + { + "MapObject": "table_steel", + "Density": 20 + }, + { + "MapObject": "box_wood", + "Density": 40 + }], + "EnemyDensity": 4, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "707070ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "004848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "484870ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 100, + "WallLength": 75, + "CorridorWidth": 1, + "Rooms": { + "Count": 5, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "The basement", + "Description": "The science geek you pulled out is more coherent than the rest...but is not making more sense. \"Monsters in the basement\"...yeah, right. Xenophobia and paranoia if you ask me. Anyway, do me a favor and check EVERY inch of that basement. Ok, forget the favor...it's an ORDER!", + "Type": "Classic", + "Width": 50, + "Height": 50, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Search the basement...", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 100, + "Flags": 0 + }], + "Enemies": [8, + 7, + 6], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "box2", + "Density": 40 + }, + { + "MapObject": "barrel_blue", + "Density": 40 + }, + { + "MapObject": "box", + "Density": 40 + }, + { + "MapObject": "box_wood", + "Density": 40 + }, + { + "MapObject": "barrel", + "Density": 40 + }], + "EnemyDensity": 5, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "707070ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "004848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "484870ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 100, + "WallLength": 30, + "CorridorWidth": 1, + "Rooms": { + "Count": 50, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "The laboratory", + "Description": "Miss Science Geek insists there are bogeymen under the bed. She claims the first encounters with the xenomorphs - her words - was while experimenting with a new plasma-wave modulator - no, I don't know what that is. The gizmo is in the laboratory, section seven. Go fetch will'ya", + "Type": "Classic", + "Width": 48, + "Height": 32, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Get the plasma-wave modulator", + "Type": "Collect", + "Pickup": "holo", + "Count": 1, + "Required": 1, + "Flags": 4 + }], + "Enemies": [6, + 7, + 8, + 8, + 7, + 6], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "cabinet", + "Density": 10 + }, + { + "MapObject": "chair", + "Density": 5 + }, + { + "MapObject": "table_steel", + "Density": 30 + }, + { + "MapObject": "safe", + "Density": 5 + }, + { + "MapObject": "table_lab", + "Density": 20 + }, + { + "MapObject": "terminal", + "Density": 10 + }], + "EnemyDensity": 10, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "707070ff", + "MaskAlt": "707070ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "biggrid", + "Mask": "707070ff", + "MaskAlt": "707070ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "848484ff", + "MaskAlt": "707070ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 50, + "WallLength": 25, + "CorridorWidth": 1, + "Rooms": { + "Count": 64, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "The other laboratory", + "Description": "Thanks...for the holographic projection unit. Looks like we gave you wrong directions there...you went to the wrong lab. Sorry about that. Anyway, the real McCoy apparently looks like a computer circuit board or something.", + "Type": "Classic", + "Width": 64, + "Height": 32, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Get the REAL plasma-wave modulator!", + "Type": "Collect", + "Pickup": "pci_card", + "Count": 1, + "Required": 1, + "Flags": 4 + }], + "Enemies": [6, + 7, + 8, + 8, + 7, + 6, + 9], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "cabinet", + "Density": 10 + }, + { + "MapObject": "chair", + "Density": 5 + }, + { + "MapObject": "table_steel", + "Density": 30 + }, + { + "MapObject": "safe", + "Density": 5 + }, + { + "MapObject": "table_lab", + "Density": 20 + }, + { + "MapObject": "terminal", + "Density": 10 + }], + "EnemyDensity": 10, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "707070ff", + "MaskAlt": "707070ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "biggrid", + "Mask": "707070ff", + "MaskAlt": "707070ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "848484ff", + "MaskAlt": "707070ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 50, + "WallLength": 25, + "CorridorWidth": 1, + "Rooms": { + "Count": 40, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 1, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Aliens?", + "Description": "Now don't you start as well! You're sure? Hmm...we have lost contacts with two scout teams. I put that down to the rock walls or possibly some more loonie science geeks wielding kitchen utensils but...what was that?...what IS that? Aaaah...get them, get them, get them!!", + "Type": "Classic", + "Width": 64, + "Height": 40, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Repel xenomorph attack!", + "Type": "Kill", + "Index": 0, + "Count": 25, + "Required": 25, + "Flags": 9 + }], + "Enemies": [0, + 1, + 2, + 3, + 4, + 5, + 16, + 15, + 14], + "SpecialChars": [9], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 50 + }, + { + "MapObject": "box2", + "Density": 50 + }, + { + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "plant", + "Density": 30 + }, + { + "MapObject": "chair", + "Density": 20 + }, + { + "MapObject": "bookshelf", + "Density": 20 + }, + { + "MapObject": "terminal", + "Density": 10 + }, + { + "MapObject": "table_steel", + "Density": 40 + }, + { + "MapObject": "safe", + "Density": 5 + }], + "EnemyDensity": 10, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "848484ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "007070ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "5c5c84ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 60, + "WallLength": 40, + "CorridorWidth": 1, + "Rooms": { + "Count": 25, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 2, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Let's evaluate the situation", + "Description": "We are obviously faced with a hostile contact of unknown specifications here. The immediate threat has been neutralized, now we need to retake the initiative. Phase one:", + "Type": "Classic", + "Width": 64, + "Height": 40, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Secure the basement", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 100, + "Flags": 0 + }, + { + "Description": "Eliminate any hostile threat you encounter", + "Type": "Kill", + "Index": 0, + "Count": 13, + "Required": 13, + "Flags": 9 + }], + "Enemies": [16, + 15, + 14], + "SpecialChars": [9], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 50 + }, + { + "MapObject": "box2", + "Density": 50 + }, + { + "MapObject": "barrel_blue", + "Density": 40 + }, + { + "MapObject": "barrel", + "Density": 30 + }, + { + "MapObject": "box_wood", + "Density": 20 + }], + "EnemyDensity": 10, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "707070ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "004848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "484870ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 60, + "WallLength": 40, + "CorridorWidth": 1, + "Rooms": { + "Count": 25, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 2, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Caverns...", + "Description": "OK, we have found an entrance to a deeper level. It seems these are old tunnels that were excavated but never used in the construction of the facilities. We have to assume the xenomorphs came through those tunnels.", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "plain", + "Objectives": [{ + "Description": "Scout the tunnels", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 75, + "Flags": 8 + }], + "Enemies": [9, + 9, + 9, + 10, + 16], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "goo", + "Density": 10 + }, + { + "MapObject": "wall_goo", + "Density": 10 + }, + { + "MapObject": "scratch", + "Density": 10 + }, + { + "MapObject": "wall_stuff", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 5 + }, + { + "MapObject": "skull", + "Density": 5 + }, + { + "MapObject": "bone_blood", + "Density": 5 + }, + { + "MapObject": "bloodstain", + "Density": 5 + }, + { + "MapObject": "wall_skull", + "Density": 5 + }], + "EnemyDensity": 20, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "74601cff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "700000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "700000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 75, + "WallLength": 15, + "CorridorWidth": 1, + "Rooms": { + "Count": 8, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 1, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Establish a perimeter", + "Description": "Right, our course of action is clear. We press forward, push the xenomorphs back and eliminate the hostile presence on this rock. What do you mean 'maybe it's their rock'? Are you some kind of xenomorph sympathizer maybe? How would you like to lead this assault?", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "plain", + "Objectives": [{ + "Description": "Eliminate all xenomorphs", + "Type": "Kill", + "Index": 0, + "Count": 46, + "Required": 46, + "Flags": 9 + }], + "Enemies": [14, + 15, + 16], + "SpecialChars": [9, + 9, + 10, + 11, + 12, + 9], + "MapObjectDensities": [{ + "MapObject": "goo", + "Density": 10 + }, + { + "MapObject": "wall_goo", + "Density": 10 + }, + { + "MapObject": "scratch", + "Density": 15 + }, + { + "MapObject": "wall_stuff", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 10 + }, + { + "MapObject": "skull", + "Density": 5 + }, + { + "MapObject": "bone_blood", + "Density": 5 + }, + { + "MapObject": "bloodstain", + "Density": 10 + }, + { + "MapObject": "wall_skull", + "Density": 5 + }, + { + "MapObject": "bulletmarks", + "Density": 15 + }], + "EnemyDensity": 10, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "74601cff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "700000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "700000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 75, + "WallLength": 10, + "CorridorWidth": 1, + "Rooms": { + "Count": 8, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 1, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Push forward", + "Description": "Ha! The bastards are on the run...ha-ha-ha...watch them scurry...ha-ha. Forward! Rampage, burn and pillage. Ha-ha, this is what war is all about...glorious victory! Ha-ha-ha!", + "Type": "Classic", + "Width": 64, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "plain", + "Objectives": [{ + "Description": "Push forward", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 75, + "Flags": 9 + }], + "Enemies": [14, + 15, + 16, + 10, + 11, + 17, + 12, + 9, + 12, + 9, + 10, + 9], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "goo", + "Density": 10 + }, + { + "MapObject": "wall_goo", + "Density": 10 + }, + { + "MapObject": "scratch", + "Density": 20 + }, + { + "MapObject": "wall_stuff", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 20 + }, + { + "MapObject": "skull", + "Density": 5 + }, + { + "MapObject": "bone_blood", + "Density": 10 + }, + { + "MapObject": "bloodstain", + "Density": 20 + }, + { + "MapObject": "wall_skull", + "Density": 5 + }, + { + "MapObject": "bulletmarks", + "Density": 15 + }, + { + "MapObject": "egg", + "Density": 30 + }], + "EnemyDensity": 30, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "482400ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "482400ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "482400ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "alien", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 60, + "WallLength": 20, + "CorridorWidth": 1, + "Rooms": { + "Count": 0, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 2, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "A strategic edge!", + "Description": "Hit them where it hurts! That's what my papa always did, he-he. We will take out those eggs...that should teach 'em a lesson..he-he-he. Don't look at me that way soldier! I'll have you court-martialled I will! Go. Go, go, GOOO!!", + "Type": "Classic", + "Width": 64, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "plain", + "Objectives": [{ + "Description": "Destroy all alien eggs", + "Type": "Destroy", + "MapObject": "egg", + "Count": 30, + "Required": 20, + "Flags": 9 + }], + "Enemies": [14, + 15, + 16, + 10, + 11, + 17, + 12, + 9, + 12, + 9, + 10, + 9], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "goo", + "Density": 10 + }, + { + "MapObject": "wall_goo", + "Density": 10 + }, + { + "MapObject": "scratch", + "Density": 25 + }, + { + "MapObject": "wall_stuff", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 25 + }, + { + "MapObject": "skull", + "Density": 5 + }, + { + "MapObject": "bone_blood", + "Density": 15 + }, + { + "MapObject": "bloodstain", + "Density": 30 + }, + { + "MapObject": "wall_skull", + "Density": 5 + }, + { + "MapObject": "bulletmarks", + "Density": 30 + }], + "EnemyDensity": 30, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "482400ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "482400ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "482400ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "alien", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 60, + "WallLength": 20, + "CorridorWidth": 1, + "Rooms": { + "Count": 0, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 2, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Oh shit!", + "Description": "Destroying their eggs REALLY pissed them off...boy, are we in trouble now. I don't care what the commander says - he's lost it anyway - I'm outta here...", + "Type": "Classic", + "Width": 64, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "plain", + "Objectives": [], + "Enemies": [14, + 15, + 16, + 10, + 11, + 17, + 12, + 9, + 12, + 9, + 10, + 9], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "goo", + "Density": 10 + }, + { + "MapObject": "wall_goo", + "Density": 10 + }, + { + "MapObject": "scratch", + "Density": 25 + }, + { + "MapObject": "wall_stuff", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 25 + }, + { + "MapObject": "skull", + "Density": 5 + }, + { + "MapObject": "bone_blood", + "Density": 15 + }, + { + "MapObject": "bloodstain", + "Density": 30 + }, + { + "MapObject": "wall_skull", + "Density": 5 + }, + { + "MapObject": "bulletmarks", + "Density": 30 + }, + { + "MapObject": "egg", + "Density": 10 + }], + "EnemyDensity": 60, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "482400ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "482400ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "482400ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "alien", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 60, + "WallLength": 20, + "CorridorWidth": 1, + "Rooms": { + "Count": 0, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 2, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Traitors? Us?", + "Description": "The commander has lost it big-time. He will waste every soul in the squadron if he carries on like this. We need to get in touch with HQ fast!", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "plain", + "Objectives": [{ + "Description": "Get the satellite linkup control", + "Type": "Collect", + "Pickup": "radio", + "Count": 1, + "Required": 1, + "Flags": 4 + }], + "Enemies": [14, + 15, + 16, + 10, + 17, + 12, + 11, + 9, + 10, + 9, + 9, + 9], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "goo", + "Density": 10 + }, + { + "MapObject": "wall_goo", + "Density": 10 + }, + { + "MapObject": "scratch", + "Density": 15 + }, + { + "MapObject": "wall_stuff", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 10 + }, + { + "MapObject": "skull", + "Density": 5 + }, + { + "MapObject": "bone_blood", + "Density": 5 + }, + { + "MapObject": "bloodstain", + "Density": 10 + }, + { + "MapObject": "wall_skull", + "Density": 5 + }, + { + "MapObject": "bulletmarks", + "Density": 15 + }], + "EnemyDensity": 10, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "74601cff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "700000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "700000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 75, + "WallLength": 10, + "CorridorWidth": 1, + "Rooms": { + "Count": 8, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 1, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Relieve the commander of his duties", + "Description": "HQ shares your concerns regarding the mental state of the commander. You are now in charge and have full authority to resolve the situation as you see fit. Unfortunately the men are divided. Some have discarded their berets and joined you, others remain misguidedly loyal to the insane commander. There is only one way to solve this...", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "plain", + "Objectives": [{ + "Description": "Retire the former commander", + "Type": "Kill", + "Index": 0, + "Count": 1, + "Required": 1, + "Flags": 5 + }], + "Enemies": [19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30], + "SpecialChars": [18], + "MapObjectDensities": [{ + "MapObject": "goo", + "Density": 10 + }, + { + "MapObject": "wall_goo", + "Density": 10 + }, + { + "MapObject": "scratch", + "Density": 15 + }, + { + "MapObject": "wall_stuff", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 10 + }, + { + "MapObject": "skull", + "Density": 5 + }, + { + "MapObject": "bone_blood", + "Density": 5 + }, + { + "MapObject": "bloodstain", + "Density": 10 + }, + { + "MapObject": "wall_skull", + "Density": 5 + }, + { + "MapObject": "bulletmarks", + "Density": 15 + }], + "EnemyDensity": 25, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "74601cff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "700000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "700000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 75, + "WallLength": 10, + "CorridorWidth": 1, + "Rooms": { + "Count": 8, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 1, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Get out...", + "Description": "The aliens are everywhere. Run for your lives!", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "plain", + "Objectives": [], + "Enemies": [19, + 20, + 24, + 10, + 17, + 12, + 11, + 9, + 10, + 9, + 9, + 9], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "goo", + "Density": 10 + }, + { + "MapObject": "wall_goo", + "Density": 10 + }, + { + "MapObject": "scratch", + "Density": 15 + }, + { + "MapObject": "wall_stuff", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 10 + }, + { + "MapObject": "skull", + "Density": 5 + }, + { + "MapObject": "bone_blood", + "Density": 5 + }, + { + "MapObject": "bloodstain", + "Density": 10 + }, + { + "MapObject": "wall_skull", + "Density": 5 + }, + { + "MapObject": "bulletmarks", + "Density": 15 + }], + "EnemyDensity": 50, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "74601cff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "700000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "700000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 75, + "WallLength": 10, + "CorridorWidth": 1, + "Rooms": { + "Count": 8, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 1, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Keep running...", + "Description": "Head for the ship...no time to waste... Yikes! Looks like the commander was stopped just in time - there is enough firepower here to stirfry the entire rock!", + "Type": "Classic", + "Width": 64, + "Height": 32, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [], + "Enemies": [17, + 19, + 22, + 12, + 11, + 10, + 9, + 12, + 9, + 20, + 11, + 0], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 50 + }, + { + "MapObject": "box2", + "Density": 50 + }, + { + "MapObject": "barrel_blue", + "Density": 40 + }, + { + "MapObject": "barrel", + "Density": 30 + }, + { + "MapObject": "box_wood", + "Density": 20 + }, + { + "MapObject": "box_metal_green", + "Density": 35 + }, + { + "MapObject": "rocket", + "Density": 20 + }, + { + "MapObject": "box_red", + "Density": 20 + }, + { + "MapObject": "bulletmarks", + "Density": 20 + }, + { + "MapObject": "scratch", + "Density": 20 + }, + { + "MapObject": "blood0", + "Density": 20 + }, + { + "MapObject": "bloodstain", + "Density": 20 + }], + "EnemyDensity": 60, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "707070ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "004848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "484870ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 60, + "WallLength": 40, + "CorridorWidth": 1, + "Rooms": { + "Count": 25, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 2, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "The exit", + "Description": "Almost there. Go for the launch pad. Go, go, go...", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [], + "Enemies": [9, + 11, + 10, + 12, + 17, + 11, + 10, + 9, + 1, + 20, + 22, + 21], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 50 + }, + { + "MapObject": "box2", + "Density": 50 + }, + { + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "barrel_skull", + "Density": 40 + }, + { + "MapObject": "box_red", + "Density": 40 + }, + { + "MapObject": "bookshelf", + "Density": 40 + }, + { + "MapObject": "terminal", + "Density": 10 + }, + { + "MapObject": "table_steel", + "Density": 20 + }, + { + "MapObject": "safe", + "Density": 5 + }, + { + "MapObject": "skull", + "Density": 25 + }, + { + "MapObject": "scratch", + "Density": 20 + }, + { + "MapObject": "blood0", + "Density": 30 + }, + { + "MapObject": "bulletmarks", + "Density": 40 + }, + { + "MapObject": "bloodstain", + "Density": 40 + }, + { + "MapObject": "box_metal_green", + "Density": 40 + }, + { + "MapObject": "rocket", + "Density": 40 + }], + "EnemyDensity": 60, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "848484ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "007070ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "5c5c84ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 60, + "WallLength": 25, + "CorridorWidth": 1, + "Rooms": { + "Count": 20, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 2, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/bullets.json new file mode 100644 index 00000000..39c109eb --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/bullets.json @@ -0,0 +1,128 @@ +{ + "Version": 5, + "Bullets": [ + { + "Name": "chainsaw", + "Power": 3, + "Hit": { + "Object": { + "Sound": "chainsaw" + }, + "Flesh": { + "Sound": "chainsaw" + } + } + }, + { + "Name": "10mm", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail", + "Width": 1.0 + }, + "WallMark": "bullet_hole", + "Speed": 35000, + "Range": 1, + "Power": 10, + "Mass": 0.2 + }, + { + "Name": "pellet", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "trail", + "Width": 1.0 + }, + "WallMark": "bullet_hole", + "Speed": 25000, + "Range": 1, + "Power": 10, + "Mass": 0.2 + }, + { + "Name": "fireball", + "Pic": { + "Type": "Animated", + "Sprites": "fireball_small", + "TicksPerFrame": 4 + }, + "Speed": 350, + "Range": 200, + "Power": 18, + "Mass": 18.0, + "Size": [3, 3], + "Special": { + "Effect": "Flame" + }, + "Spark": "fireball_hit", + "Hit": { + "Object": { + "Sound": "hits/fire" + }, + "Flesh": { + "Sound": "hits/fire" + }, + "Wall": { + "Sound": "hits/fire" + } + } + }, + { + "Name": "fireball_green", + "Pic": { + "Type": "Animated", + "Sprites": "fireball_green", + "TicksPerFrame": 4 + }, + "Speed": 550, + "Range": 300, + "Power": 40, + "Mass": 40.0, + "Size": [3, 3], + "Special": { + "Effect": "Flame" + }, + "Spark": "fireball_green_hit", + "Hit": { + "Object": { + "Sound": "hits/fire" + }, + "Flesh": { + "Sound": "hits/fire" + }, + "Wall": { + "Sound": "hits/fire" + } + } + }, + { + "Name": "monster_bite", + "Power": 10, + "Hit": { + "Object": { + "Sound": "hits/knife_hard" + }, + "Flesh": { + "Sound": "monster-2" + } + } + }, + { + "Name": "nukage", + "Hit": { + "Flesh": {} + }, + "Power": 1, + "Special": { + "Effect": "Poison", + "Ticks": 3 + } + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/campaign.json new file mode 100644 index 00000000..43086a86 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/campaign.json @@ -0,0 +1,11 @@ +{ + "Version": 16, + "Title": "Doom", + "Author": "Cong", + "Description": "Stuck on Mars for insubordination, you are a marine who has just arrived at the dullest assignment in the system. They say your employer, UAC, are performing secret experiments to do with teleportation, but what could go wrong with that?", + "Ammo": true, + "SkipWeaponMenu": true, + "RandomPickups": false, + "DoorOpenTicks": 70, + "Missions": 9 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/character_classes.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/character_classes.json new file mode 100644 index 00000000..a3d9c73b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/character_classes.json @@ -0,0 +1,15 @@ +{ + "Version": 2, + "Characters": [ + { + "Name": "Demon", + "HeadPics": { + "Type": "Directional", + "Sprites": "chars/heads/ogre" + }, + "Body": "demon", + "Sounds": "ogre", + "BloodColor": "ff0000" + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/characters.json new file mode 100644 index 00000000..164fec9f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/characters.json @@ -0,0 +1,128 @@ +{ + "Version": 13, + "Characters": [{ + "Class": "Cyborg", + "Skin": "b79536ff", + "Arms": "646464ff", + "Body": "646464ff", + "Legs": "646464ff", + "Hair": "ff1313ff", + "Feet": "c20006ff", + "speed": 128, + "Gun": "Marine Shotgun", + "maxHealth": 20, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 10, + "probabilityToShoot": 2, + "actionDelay": 20 + }, + { + "Class": "Cyborg", + "HairType": "flattop", + "Skin": "b79536ff", + "Arms": "b79536ff", + "Body": "cbac99ff", + "Legs": "a8782eff", + "Hair": "55ad34ff", + "Feet": "5f8752ff", + "speed": 192, + "Gun": "Marine Pistol", + "maxHealth": 30, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 20 + }, + { + "Class": "Ogre", + "Skin": "984b19ff", + "Arms": "ad6713ff", + "Body": "a35b15ff", + "Legs": "a16216ff", + "Hair": "c00000ff", + "Feet": "a85b10ff", + "speed": 192, + "Gun": "Imp Fireball", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 7, + "actionDelay": 15 + }, + { + "Class": "Demon", + "HairType": "horns", + "Skin": "ff76f5ff", + "Arms": "ff76f5ff", + "Body": "ff76f5ff", + "Legs": "ff76f5ff", + "Hair": "d9d9a8ff", + "Feet": "ff76f5ff", + "speed": 320, + "Gun": "Monster Bite", + "maxHealth": 70, + "flags": 1024, + "probabilityToMove": 60, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 13 + }, + { + "Class": "Demon", + "HairType": "horns", + "Skin": "93458dff", + "Arms": "91418bff", + "Body": "95458fff", + "Legs": "91428bff", + "Hair": "837070ff", + "Feet": "91428bff", + "speed": 320, + "Gun": "Monster Bite", + "maxHealth": 70, + "flags": 3072, + "probabilityToMove": 60, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 13 + }, + { + "Class": "Ogre", + "HairType": "horns", + "Skin": "ff76aaff", + "Arms": "ee74aeff", + "Body": "ff769bff", + "Legs": "bd5f27ff", + "Hair": "585757ff", + "Feet": "bf6028ff", + "speed": 256, + "Gun": "Baron Fireball", + "maxHealth": 500, + "flags": 33555456, + "probabilityToMove": 40, + "probabilityToTrack": 25, + "probabilityToShoot": 12, + "actionDelay": 10 + }, + { + "Class": "Jones", + "PlayerTemplateName": "Doomguy", + "HairType": "helmet", + "Skin": "f4944cff", + "Arms": "00a400ff", + "Body": "00a400ff", + "Legs": "27942aff", + "Hair": "94802cff", + "Feet": "948029ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/armor_bonus.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/armor_bonus.png new file mode 100644 index 00000000..cf8f5f76 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/armor_bonus.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/armor_bonus.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/armor_bonus.txt new file mode 100644 index 00000000..aac81ba5 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/armor_bonus.txt @@ -0,0 +1,4 @@ +Derived from Dungeon Crawl 32x32 tiles +by Chris Hamons (maintainer) +http://opengameart.org/content/dungeon-crawl-32x32-tiles +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/barrel_nukage.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/barrel_nukage.txt new file mode 100644 index 00000000..a5d4fb44 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/barrel_nukage.txt @@ -0,0 +1,2 @@ +Derived from C-Dogs data +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/barrel_nukage_16x22.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/barrel_nukage_16x22.png new file mode 100644 index 00000000..47071191 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/barrel_nukage_16x22.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/barrel_nukage_wreck.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/barrel_nukage_wreck.png new file mode 100644 index 00000000..6436676f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/barrel_nukage_wreck.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/barrel_nukage_wreck.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/barrel_nukage_wreck.txt new file mode 100644 index 00000000..a5d4fb44 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/barrel_nukage_wreck.txt @@ -0,0 +1,2 @@ +Derived from C-Dogs data +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/bullet_pickup2.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/bullet_pickup2.png new file mode 100644 index 00000000..5d693ea6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/bullet_pickup2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/bullet_pickup2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/bullet_pickup2.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/bullet_pickup2.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/candelabra.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/candelabra.txt new file mode 100644 index 00000000..31121740 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/candelabra.txt @@ -0,0 +1,3 @@ +Derived from Misc. Dark Fantasy Scenery Sprites by Gwes +https://opengameart.org/content/misc-dark-fantasy-scenery-sprites +http://creativecommons.org/publicdomain/zero/1.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/candelabra_16x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/candelabra_16x24.png new file mode 100644 index 00000000..06f7b5d1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/candelabra_16x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/candle.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/candle.txt new file mode 100644 index 00000000..31121740 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/candle.txt @@ -0,0 +1,3 @@ +Derived from Misc. Dark Fantasy Scenery Sprites by Gwes +https://opengameart.org/content/misc-dark-fantasy-scenery-sprites +http://creativecommons.org/publicdomain/zero/1.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/candle_9x14.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/candle_9x14.png new file mode 100644 index 00000000..295ce7f3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/candle_9x14.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/data.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/data.json new file mode 100644 index 00000000..ef48cfe3 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/data.json @@ -0,0 +1,45 @@ +{ + "Version": 2, + "Order": [ + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_r", "gun_l", "legs", "body", "head"], + ["gun_l", "legs", "body", "head", "gun_r"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "body", "head", "gun_r", "gun_l"], + ["legs", "gun_r", "body", "head", "gun_l"], + ["gun_r", "gun_l", "legs", "body", "head"] + ], + "Offsets": { + "Frame": { + "Head": { + "stand": [[0, 10]], + "idle": [[0, 10]], + "run": [ + [0, 11], [0, 10], [0, 9], [0, 10], [0, 11], [0, 10], [0, 9], [0, 10] + ] + }, + "Body": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Legs": { + "stand": [[0, 6]], + "idle": [[0, 6]] + }, + "Gun": { + "stand": [[0, 6]], + "idle": [[0, 6]], + "run": [[0, 7], [0, 6], [0, 5], [0, 6], [0, 7], [0, 6], [0, 5], [0, 6]] + } + }, + "Dir": { + "Head": [ + [0, -2], [2, -1], [4, 0], [2, 1], [0, 2], [-2, 1], [-4, 0], [-2, -1] + ], + "Gun": [ + [7, -2], [6, 0], [4, 2], [-1, 4], [-6, 2], [-6, -1], [-3, -3], [0, -3] + ] + } + } +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/legs_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/legs_idle_24x24.png new file mode 100644 index 00000000..2bbf9027 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/legs_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/legs_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/legs_run_24x24.png new file mode 100644 index 00000000..5b332ed4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/legs_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/src.blend b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/src.blend new file mode 100644 index 00000000..762bfc6a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/src.blend differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/src.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/src.txt new file mode 100644 index 00000000..6d424eab --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/src.txt @@ -0,0 +1,4 @@ +Adapted from Sprite Base Model +by Wind astella +http://opengameart.org/content/sprite-base-model +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/upper_idle_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/upper_idle_24x24.png new file mode 100644 index 00000000..7f7339fd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/upper_idle_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/upper_idle_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/upper_idle_handgun_24x24.png new file mode 100644 index 00000000..2ad687f3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/upper_idle_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/upper_run_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/upper_run_24x24.png new file mode 100644 index 00000000..0d843038 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/upper_run_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/upper_run_handgun_24x24.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/upper_run_handgun_24x24.png new file mode 100644 index 00000000..fde1d197 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/chars/bodies/demon/upper_run_handgun_24x24.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/computer_map.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/computer_map.txt new file mode 100644 index 00000000..fdb3290e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/computer_map.txt @@ -0,0 +1,4 @@ +Derived from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/computer_map_13x13.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/computer_map_13x13.png new file mode 100644 index 00000000..2ecc4358 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/computer_map_13x13.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/firestick.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/firestick.txt new file mode 100644 index 00000000..2d5e6f79 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/firestick.txt @@ -0,0 +1,9 @@ +Derived from + +[LPC] Animated water and fire by Sharm +https://opengameart.org/content/lpc-animated-water-and-fire +http://creativecommons.org/licenses/by/3.0/ + +Misc. Dark Fantasy Scenery Sprites by Gwes +https://opengameart.org/content/misc-dark-fantasy-scenery-sprites +http://creativecommons.org/publicdomain/zero/1.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/firestick_11x30.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/firestick_11x30.png new file mode 100644 index 00000000..14865a46 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/firestick_11x30.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/health_bonus.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/health_bonus.png new file mode 100644 index 00000000..4c689ab4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/health_bonus.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/health_bonus.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/health_bonus.txt new file mode 100644 index 00000000..aac81ba5 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/health_bonus.txt @@ -0,0 +1,4 @@ +Derived from Dungeon Crawl 32x32 tiles +by Chris Hamons (maintainer) +http://opengameart.org/content/dungeon-crawl-32x32-tiles +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/pillar.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/pillar.png new file mode 100644 index 00000000..ee13995a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/pillar.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/rockets2.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/rockets2.png new file mode 100644 index 00000000..ceb49cc4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/rockets2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/rockets2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/rockets2.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/rockets2.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/shells2.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/shells2.png new file mode 100644 index 00000000..71e70820 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/shells2.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/shells2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/shells2.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/shells2.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/stimpack.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/stimpack.png new file mode 100644 index 00000000..ef2cc6b1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/stimpack.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/stimpack.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/stimpack.txt new file mode 100644 index 00000000..568c6535 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/stimpack.txt @@ -0,0 +1,4 @@ +Adapted from Various inventory 24 pixel icon set +By OceansDream +http://opengameart.org/content/various-inventory-24-pixel-icon-set +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/supercharge.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/supercharge.png new file mode 100644 index 00000000..727dd77b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/supercharge.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/supercharge.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/supercharge.txt new file mode 100644 index 00000000..fdb3290e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/supercharge.txt @@ -0,0 +1,4 @@ +Derived from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/warning_sign.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/warning_sign.png new file mode 100644 index 00000000..02656fa3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/graphics/warning_sign.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/guns.json new file mode 100644 index 00000000..7d2f91d7 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/guns.json @@ -0,0 +1,109 @@ +{ + "Version": 2, + "Guns": [ + { + "Pic": "", + "Icon": "fist", + "Name": "Fists", + "Bullet": "fist", + "Cost": 0, + "Lock": 30, + "Sound": "", + "SwitchSound": "knuckles", + "CanShoot": false, + "CanDrop": false, + "Auto": true + }, + { + "Pic": "chainsaw", + "Icon": "chainsaw", + "Name": "Chainsaw", + "Description": "What's a chainsaw doing on Mars? Who cares, as long as your enemy is ripped to pieces!", + "Bullet": "chainsaw", + "Prerequisite": "Fists", + "Cost": 0, + "Lock": 0, + "Sound": "", + "SwitchSound": "chainsaw_switch", + "SoundLockLength": 50, + "CanShoot": false, + "Auto": true + }, + { + "Pic": "pistol", + "Name": "Marine Pistol", + "Icon": "pistol", + "Description": "Standard issue sidearm, low rate of fire and damage. Recommend engaging at a distance.", + "Bullet": "10mm", + "Cost": 0, + "Lock": 18, + "Sound": "pistol", + "Recoil": 0.05, + "Brass": "brass", + "Ammo": "Bullets" + }, + { + "Pic": "shotgun", + "Grips": 2, + "Name": "Marine Shotgun", + "Icon": "shotgun", + "Bullet": "pellet", + "Cost": 5, + "Lock": 70, + "ReloadLead": 10, + "Sound": "marine_shotgun", + "ReloadSound": "shotgun_r", + "SwitchSound": "shotgun_r", + "SpreadCount": 7, + "SpreadWidth": 0.1, + "MuzzleFlashParticle": "muzzle_flash_shotgun", + "Brass": "shotshell", + "Ammo": "Shells" + }, + { + "Pic": "chaingun", + "Name": "Chaingun", + "Icon": "machine_gun", + "Bullet": "10mm", + "Prerequisite": "Marine Pistol", + "Cost": 1, + "Lock": 8, + "Sound": "mg", + "SwitchSound": "mg_switch", + "Recoil": 0.3, + "MuzzleFlashParticle": "muzzle_flash_mg", + "Brass": "brass_big", + "Ammo": "Bullets" + }, + { + "Name": "Imp Fireball", + "Pic": "", + "Bullet": "fireball", + "Cost": 1, + "Lock": 100, + "Sound": "fireball", + "MuzzleFlashParticle": "", + "CanDrop": false + }, + { + "Name": "Baron Fireball", + "Pic": "", + "Bullet": "fireball_green", + "Cost": 5, + "Lock": 50, + "Sound": "fireball", + "MuzzleFlashParticle": "", + "CanDrop": false + }, + { + "Pic": "", + "Name": "Monster Bite", + "Bullet": "monster_bite", + "Cost": 0, + "Lock": 20, + "Sound": "", + "CanShoot": false, + "CanDrop": false + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/map_objects.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/map_objects.json new file mode 100644 index 00000000..ad45f212 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/map_objects.json @@ -0,0 +1,81 @@ +{ + "Version": 3, + "MapObjects": [ + { + "Name": "barrel_nukage", + "Pic": { + "Type": "Animated", + "Sprites": "barrel_nukage", + "TicksPerFrame": 10 + }, + "Wreck": "barrel_nukage_wreck", + "Health": 20, + "DestroyGuns": [ + "explosion1", + "explosion2", + "explosion3" + ] + }, + { + "Name": "barrel_nukage_wreck", + "Pic": { + "Type": "Normal", + "Pic": "barrel_nukage_wreck" + }, + "Health": 0, + "DrawBelow": true + }, + { + "Name": "pillar", + "Pic": { + "Type": "Normal", + "Pic": "pillar" + }, + "Wreck": "safe_wreck", + "Health": 500 + }, + { + "Name": "candelabra", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "candelabra", + "TicksPerFrame": 6 + }, + "Wreck": "table_wood_round_wreck", + "Health": 40 + }, + { + "Name": "warning_sign", + "Pic": { + "Type": "Normal", + "Pic": "warning_sign" + }, + "Offset": [-6, -9], + "Health": 0, + "Flags": ["OnWall"] + }, + { + "Name": "firestick", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "firestick", + "TicksPerFrame": 6 + }, + "Wreck": "chair_wreck", + "Size": [8, 5], + "Offset": [-6, -28], + "Health": 40 + }, + { + "Name": "candle", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "candle", + "TicksPerFrame": 6 + }, + "Size": [8, 5], + "Offset": [-5, -12], + "Health": 0 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/missions.json new file mode 100644 index 00000000..dee596a6 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/missions.json @@ -0,0 +1,10808 @@ +{ + "Missions": [{ + "Title": "Hangar", + "Description": "", + "Type": "Static", + "Width": 100, + "Height": 95, + "ExitStyle": "hazard", + "KeyStyle": "chip", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Fists", "Marine Pistol"], + "WeaponPersist": true, + "SkipDebrief": false, + "TileClasses": { + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "806020ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "838383ff", + "MaskAlt": "004d07ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "10": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "e7ba84ff", + "MaskAlt": "808080ff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "11": { + "Name": "tile", + "Type": "Floor", + "Style": "biggrid", + "Mask": "808080ff", + "MaskAlt": "808080ff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "12": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "959595ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "13": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "aa7b45ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "14": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "7b5c32ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "15": { + "Name": "tile", + "Type": "Floor", + "Style": "water", + "Mask": "55ad61ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "nukage" + }, + "16": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "ffca44ff", + "MaskAlt": "cbad4cff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "17": { + "Name": "tile", + "Type": "Floor", + "Style": "grate", + "Mask": "8a6931ff", + "MaskAlt": "808080ff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "18": { + "Name": "wall", + "Type": "Wall", + "Style": "colony", + "Mask": "484848ff", + "MaskAlt": "0000afff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "19": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "a3a3a3ff", + "MaskAlt": "7e7141ff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "2": { + "Name": "door", + "Type": "Door", + "Style": "doom", + "Mask": "fcfcfcff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + }, + "20": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "62523cff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "404040ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "5": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "12258cff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "6": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "808080ff", + "MaskAlt": "808080ff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "7": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "c6c5c5ff", + "MaskAlt": "b68614ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "8": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "c6c5c5ff", + "MaskAlt": "507e46ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "9": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "c6c5c5ff", + "MaskAlt": "797878ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + } + }, + "Tiles": ["4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,11,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,11,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,11,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,11,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,11,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,11,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,11,3,3,12,12,12,12,12,3,3,3,3,3,3,3,3,3,3,11,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,11,3,3,12,12,12,12,12,3,3,3,3,3,3,3,3,3,3,11,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,11,3,3,12,12,12,12,12,3,3,3,18,18,18,18,3,3,3,11,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,11,3,3,12,12,12,12,12,3,3,3,5,5,5,18,3,3,3,11,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,11,3,3,3,3,3,3,3,3,3,3,5,5,5,18,3,3,3,11,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,11,3,3,3,3,3,3,3,3,3,3,5,5,5,18,3,3,3,11,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,9,9,9,9,3,3,3,3,3,3,3,3,3,3,5,5,5,18,3,3,3,11,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,18,3,3,3,11,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,18,3,3,3,11,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,3,3,3,2,3,3,3,3,3,12,12,12,12,12,3,3,3,5,5,5,18,3,3,3,11,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,3,3,3,2,3,3,3,3,3,12,12,12,12,12,3,3,3,5,5,5,18,3,3,3,11,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,3,3,7,9,9,9,9,3,3,12,12,12,12,12,3,3,3,18,18,18,18,3,3,3,3,9,16,16,16,16,16,16,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,3,7,7,4,4,9,9,3,3,12,12,12,12,12,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,16,16,16,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,3,7,4,4,4,9,11,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,16,16,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,3,3,7,4,4,4,9,11,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,16,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,3,3,7,4,4,4,9,11,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,9,9,3,3,3,3,3,3,3,13,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,3,3,7,4,4,4,9,11,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,9,9,16,3,3,3,3,3,13,13,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,3,7,7,4,4,4,9,11,11,11,11,11,11,11,11,11,11,11,9,9,9,9,9,9,9,9,4,16,3,3,3,3,3,13,13,13,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,3,7,4,4,4,4,9,9,9,9,9,9,9,9,9,9,9,9,9,4,4,4,4,4,4,4,4,16,16,16,16,3,13,13,13,13,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,1,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,3,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,1,13,13,13,13,1,4,4,4,4,4,4,1,1,1,1,1,4,4,4,4,4,4", + "4,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,3,7,4,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,13,13,13,13,1,1,4,4,4,4,1,1,3,3,3,1,1,4,4,4,4,4", + "4,4,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,7,7,3,3,7,4,7,7,7,7,7,7,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,13,13,13,13,1,4,4,4,4,1,3,3,3,3,3,1,4,4,4,4,4", + "4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,3,3,3,3,3,3,3,3,7,7,7,0,0,0,0,0,0,0,0,0,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,13,13,13,1,4,4,4,4,1,3,3,3,3,3,1,1,4,4,4,4", + "4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,3,3,3,3,3,3,3,3,3,3,7,7,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,4,4,4,4,4,4,4,4,1,13,13,13,13,13,13,13,1,1,1,4,1,1,3,3,3,3,3,3,1,4,4,4,4", + "4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,3,3,3,3,3,3,3,3,3,3,3,3,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,4,4,4,4,4,4,4,4,1,13,13,13,13,13,13,13,13,13,1,1,1,3,3,3,3,3,3,3,1,4,4,4,4", + "4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,4,8,8,8,8,8,8,8,8,8,4,4,4,4,7,3,3,3,3,3,3,3,3,3,3,3,3,3,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,4,4,4,4,4,4,4,1,13,13,13,13,13,13,13,13,13,13,13,1,3,3,1,1,3,3,3,1,1,4,4,4", + "4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,8,8,3,3,3,3,3,3,3,8,4,4,4,4,7,3,3,3,3,3,3,3,3,3,3,3,3,3,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,4,4,4,4,4,4,1,13,13,13,13,13,13,13,13,13,13,13,13,19,3,1,1,3,3,3,3,1,4,4,4", + "4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,3,3,3,3,3,3,3,3,3,8,8,4,4,4,7,3,3,3,3,3,3,3,3,3,3,3,3,3,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,4,4,4,4,1,15,15,13,13,13,13,13,13,13,13,15,15,15,1,1,1,1,3,3,3,1,4,4,4", + "4,4,16,0,0,0,0,0,0,0,0,7,7,6,6,6,7,3,3,3,3,3,3,3,3,3,3,3,3,8,4,7,7,7,3,3,3,3,16,5,5,5,5,5,16,3,3,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,4,4,4,1,15,15,15,15,15,13,13,13,15,15,15,15,15,1,4,4,1,3,3,3,1,1,4,4", + "4,4,16,0,0,0,0,0,0,0,0,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8,7,3,3,3,3,3,3,5,5,5,5,5,5,5,5,5,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,1,15,15,15,15,13,13,13,13,15,15,15,15,15,1,4,4,1,1,3,3,3,1,4,4", + "4,4,16,0,0,0,0,0,0,0,0,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3,5,5,5,5,5,5,5,5,5,10,0,0,0,0,0,0,15,15,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,15,15,15,15,13,13,13,15,15,15,15,15,15,1,4,4,4,1,3,3,3,1,1,4", + "4,4,16,0,0,0,0,0,0,0,0,6,3,3,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,5,5,7,0,0,0,0,15,15,15,15,15,15,15,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,0,6,15,15,15,13,13,13,13,15,15,15,15,15,15,1,1,4,4,1,1,3,3,3,1,4", + "4,4,16,0,0,0,0,0,0,0,0,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,5,5,7,0,0,0,0,15,15,15,15,15,15,15,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,0,6,15,15,13,13,13,13,13,13,15,15,15,15,15,15,1,4,4,4,1,3,3,3,1,4", + "4,4,16,0,0,0,0,0,0,0,0,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,5,5,7,0,0,0,0,15,15,15,15,15,15,15,15,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,6,15,15,15,15,13,13,13,13,13,15,15,15,15,15,1,4,4,1,1,3,3,3,1,4", + "4,4,16,0,0,0,0,0,0,0,0,7,7,6,6,6,7,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,5,5,5,5,5,5,5,5,5,10,0,0,0,0,15,15,15,15,15,15,15,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,0,6,15,15,15,15,15,15,13,13,13,13,15,15,15,15,1,4,4,1,3,3,3,1,1,4", + "4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,3,3,3,3,3,3,3,3,3,3,3,8,8,3,3,3,3,3,3,3,5,5,5,5,5,5,5,5,5,10,0,0,0,0,15,15,15,15,15,15,15,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,0,6,15,15,15,15,15,15,15,15,13,13,13,15,15,15,1,4,1,1,3,3,3,1,4,4", + "4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,3,3,3,3,3,3,3,3,3,3,8,8,7,7,7,3,3,3,3,5,5,5,5,5,5,5,5,5,7,0,0,0,0,0,0,15,15,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,15,15,15,15,15,15,15,13,13,13,13,15,15,15,1,4,1,3,3,3,1,1,4,4", + "4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,8,3,3,3,3,3,3,3,3,8,4,4,4,7,3,3,3,3,16,5,5,5,5,5,16,3,3,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,15,15,15,15,15,15,13,13,13,13,15,15,15,15,1,4,1,3,3,3,1,4,4,4", + "4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,4,8,8,3,3,3,3,3,3,8,8,4,4,4,7,3,3,3,3,3,3,3,3,3,3,3,3,3,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,15,15,15,15,15,15,13,13,13,13,15,15,15,15,1,4,1,3,3,3,1,4,4,4", + "4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,4,8,8,8,8,8,8,8,8,4,4,4,4,7,3,3,3,3,3,3,3,3,3,3,3,3,3,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,15,15,15,15,15,13,13,13,13,15,15,15,15,15,1,4,1,3,3,3,1,4,4,4", + "4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,3,3,3,3,3,3,3,3,3,3,3,3,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,15,15,15,15,13,13,13,13,13,15,15,15,15,15,1,1,1,3,3,3,1,4,4,4", + "4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,4,4,4,4,4,4,4,4,4,4,4,4,4,7,3,3,3,3,3,3,3,3,3,3,3,3,3,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,15,15,15,14,13,13,13,13,15,15,15,15,15,15,3,1,1,3,3,3,1,4,4,4", + "4,4,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,3,3,3,3,3,3,3,3,3,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,15,14,14,14,14,13,13,13,13,15,15,15,15,15,3,1,1,3,3,3,1,4,4,4", + "4,4,4,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,3,3,3,3,3,3,3,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,14,14,14,14,14,14,13,13,13,13,15,1,1,3,3,3,1,3,3,3,1,4,4,4", + "4,4,4,16,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,3,3,3,3,3,7,7,4,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,14,14,14,14,14,13,1,1,1,1,1,2,2,2,1,3,3,3,1,4,4,4", + "4,4,4,4,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,3,3,7,7,7,4,4,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,1,1,1,1,14,14,1,1,1,4,4,4,1,3,3,3,1,3,3,3,1,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,4,4,4,4,7,16,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,16,0,0,0,0,0,0,0,0,0,0,7,1,4,4,1,14,14,1,4,4,4,4,4,1,3,3,3,1,3,3,3,1,1,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,16,16,16,16,0,0,0,0,0,0,0,0,16,0,0,16,0,0,0,0,0,0,0,0,0,0,1,1,4,4,1,14,14,1,4,4,4,4,1,1,3,3,3,1,1,3,3,3,1,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,16,16,16,0,0,0,16,16,16,0,0,16,0,0,0,0,0,0,0,0,1,1,1,4,4,4,1,14,14,1,4,4,1,1,1,3,3,3,3,1,1,3,3,3,1,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,16,16,16,16,4,16,20,20,16,16,0,0,0,0,16,16,16,16,16,16,16,16,16,1,14,14,1,4,4,1,3,3,3,3,3,3,1,1,3,3,3,1,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,20,20,16,16,16,16,16,16,16,4,16,16,20,20,20,20,20,19,14,14,1,4,4,1,3,3,3,3,3,3,1,1,3,3,3,1,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,20,20,16,4,4,4,4,4,4,16,16,20,20,20,20,20,20,19,14,14,1,4,4,1,3,3,3,3,3,3,1,3,3,3,1,1,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,20,20,16,4,4,4,4,4,16,16,20,20,20,20,20,20,20,19,14,14,1,4,4,1,3,3,3,3,3,3,2,3,3,3,1,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,20,20,16,4,4,4,4,16,16,20,20,20,20,20,20,20,20,19,14,14,1,4,4,1,3,3,3,3,3,3,2,3,1,1,1,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,20,20,16,4,4,4,16,16,20,20,20,20,16,16,16,16,16,1,14,14,1,4,4,1,3,3,3,3,3,1,1,1,1,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,20,20,16,16,4,16,16,20,20,20,20,16,16,4,4,4,4,1,14,14,1,4,4,1,3,3,3,1,1,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,20,20,20,16,16,16,20,20,20,20,16,16,4,4,4,4,4,1,14,14,1,4,4,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,20,20,20,20,20,20,20,20,16,16,16,4,4,4,4,4,4,1,14,14,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,16,20,20,20,20,20,20,16,16,4,4,4,4,4,4,4,4,1,2,2,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,16,20,20,20,20,16,16,4,4,4,4,4,4,4,4,4,1,14,14,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,16,16,16,16,16,4,4,4,4,4,4,4,4,4,1,1,14,14,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,14,14,14,14,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,14,14,14,1,14,14,14,14,1,14,14,14,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,14,14,14,17,13,13,13,13,17,14,14,14,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,14,14,14,17,13,13,13,13,17,14,14,14,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,14,14,14,17,13,13,13,13,17,14,14,14,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,14,14,14,17,13,13,13,13,17,14,14,14,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,14,14,14,17,13,13,13,13,17,14,14,14,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,14,14,14,17,13,13,13,13,17,14,14,14,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,14,14,14,1,14,14,14,14,1,14,14,14,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,14,14,14,14,14,14,14,14,14,14,14,14,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,14,14,14,14,14,14,14,14,14,14,14,14,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,14,14,14,14,14,14,14,14,14,14,14,14,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,14,14,14,14,14,14,14,14,14,14,14,14,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,14,14,14,14,14,14,14,14,14,14,14,14,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,13,13,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,13,13,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,13,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,2,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,13,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,13,13,13,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,13,13,13,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,13,13,13,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,13,13,13,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,13,13,13,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,13,13,13,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,256,256,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "barrel_nukage", + "Positions": [[37, 44], + [46, 41], + [43, 30], + [79, 75], + [84, 73], + [77, 73]] + }, + { + "MapObject": "blood0", + "Positions": [[41, 41], + [16, 40], + [57, 5], + [63, 23], + [69, 11], + [82, 48], + [80, 59], + [80, 73], + [86, 81], + [66, 66]] + }, + { + "MapObject": "bone_blood", + "Positions": [[41, 31], + [49, 16], + [65, 16], + [76, 32]] + }, + { + "MapObject": "rod", + "Positions": [[31, 38], + [31, 42], + [76, 34], + [86, 34], + [75, 77], + [86, 77]] + }, + { + "MapObject": "Launcher spawner", + "Positions": [[54, 41]] + }, + { + "MapObject": "Chaingun spawner", + "Positions": [[85, 70]] + }, + { + "MapObject": "wscreen1", + "Positions": [[54, 4], + [56, 4], + [57, 4], + [59, 4], + [60, 4], + [63, 4], + [65, 4], + [68, 4], + [69, 4], + [71, 4]] + }, + { + "MapObject": "wscreen2", + "Positions": [[55, 4], + [58, 4], + [61, 4], + [62, 4], + [64, 4], + [66, 4], + [67, 4], + [70, 4]] + }, + { + "MapObject": "pillar", + "Positions": [[24, 35], + [24, 44]] + }, + { + "MapObject": "candelabra", + "Positions": [[79, 82], + [82, 82]] + }, + { + "MapObject": "blood1", + "Positions": [[28, 43]] + }, + { + "MapObject": "Marine Shotgun spawner", + "Positions": [[88, 61]] + }], + "StaticCharacters": [{ + "Index": 0, + "Places": [{ + "Pos": [23, 44], + "Dir": 7 + }, + { + "Pos": [23, 35], + "Dir": 1 + }, + { + "Pos": [15, 39], + "Dir": 1 + }, + { + "Pos": [14, 40], + "Dir": 2 + }, + { + "Pos": [60, 6], + "Dir": 2 + }, + { + "Pos": [54, 23], + "Dir": 0 + }, + { + "Pos": [66, 17], + "Dir": 0 + }, + { + "Pos": [82, 35], + "Dir": 6 + }, + { + "Pos": [81, 40], + "Dir": 3 + }, + { + "Pos": [80, 49], + "Dir": 5 + }, + { + "Pos": [87, 59], + "Dir": 0 + }, + { + "Pos": [82, 73], + "Dir": 5 + }, + { + "Pos": [70, 63], + "Dir": 4 + }, + { + "Pos": [65, 66], + "Dir": 2 + }] + }, + { + "Index": 1, + "Places": [{ + "Pos": [66, 11], + "Dir": 3 + }, + { + "Pos": [66, 13], + "Dir": 7 + }, + { + "Pos": [80, 27], + "Dir": 7 + }, + { + "Pos": [83, 44], + "Dir": 1 + }, + { + "Pos": [82, 51], + "Dir": 0 + }, + { + "Pos": [86, 74], + "Dir": 4 + }, + { + "Pos": [86, 75], + "Dir": 7 + }] + }, + { + "Index": 2, + "Places": [{ + "Pos": [90, 49], + "Dir": 1 + }, + { + "Pos": [88, 50], + "Dir": 5 + }, + { + "Pos": [80, 78], + "Dir": 5 + }, + { + "Pos": [81, 92], + "Dir": 0 + }] + }], + "StaticObjectives": [], + "StaticKeys": [{ + "Index": 0, + "Positions": [[66, 15]] + }], + "StaticPickups": [{ + "Pickup": "health_bonus", + "Positions": [[22, 42], + [21, 34], + [22, 37], + [76, 24], + [78, 22], + [84, 71], + [86, 72], + [77, 71], + [75, 72], + [86, 79], + [21, 44], + [34, 48]] + }, + { + "Pickup": "armor_bonus", + "Positions": [[17, 39], + [19, 39], + [55, 5], + [65, 11], + [89, 32], + [91, 30], + [93, 31], + [94, 34], + [95, 37], + [96, 40], + [94, 44], + [95, 58], + [76, 79], + [80, 88], + [82, 88], + [80, 92], + [82, 92], + [34, 32], + [39, 30]] + }, + { + "Pickup": "armor", + "Positions": [[14, 39]] + }, + { + "Pickup": "ammo_Shells", + "Positions": [[76, 31], + [77, 51], + [80, 65]] + }, + { + "Pickup": "medikit", + "Positions": [[86, 57], + [67, 66], + [78, 78]] + }, + { + "Pickup": "ammo_Bullets", + "Positions": [[86, 71], + [75, 71]] + }, + { + "Pickup": "megaarmor", + "Positions": [[58, 41]] + }, + { + "Pickup": "stimpack", + "Positions": [[82, 90]] + }, + { + "Pickup": "shells2", + "Positions": [[48, 52], + [48, 48], + [48, 43], + [94, 51], + [88, 59], + [63, 64]] + }, + { + "Pickup": "bullet_pickup2", + "Positions": [[89, 50], + [72, 61], + [68, 64], + [76, 72], + [85, 71], + [81, 90]] + }, + { + "Pickup": "rockets2", + "Positions": [[61, 41], + [60, 54], + [66, 54]] + }], + "Start": [40, 52], + "Exits": [{ + "Rect": [80, + 88, + 2, + 5], + "Mission": 1, + "Hidden": false + }], + "AltFloorsEnabled": true + }, + { + "Title": "Nuclear Plant", + "Description": "", + "Type": "Static", + "Width": 88, + "Height": 88, + "ExitStyle": "hazard", + "KeyStyle": "chip", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Fists", "Marine Pistol"], + "WeaponPersist": true, + "SkipDebrief": false, + "TileClasses": { + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "404040ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "806040ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "10": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "a17a40ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "11": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "7e7e7eff", + "MaskAlt": "808080ff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "12": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "a18052ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "13": { + "Name": "tile", + "Type": "Floor", + "Style": "water", + "Mask": "20b100ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "nukage" + }, + "14": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "f0b76fff", + "MaskAlt": "9c9a98ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "15": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "426241ff", + "MaskAlt": "354635ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "16": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "3c3c3cff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "17": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "ffc885ff", + "MaskAlt": "fcc470ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "18": { + "Name": "wall", + "Type": "Wall", + "Style": "techwall", + "Mask": "3a3a3aff", + "MaskAlt": "ffe880ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "2": { + "Name": "door", + "Type": "Door", + "Style": "doom", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + }, + "20": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "72644fff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "21": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "bb955eff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "22": { + "Name": "wall", + "Type": "Wall", + "Style": "support", + "Mask": "8e6820ff", + "MaskAlt": "5aa65aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "23": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "bfa688ff", + "MaskAlt": "9c8667ff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "24": { + "Name": "wall", + "Type": "Wall", + "Style": "station", + "Mask": "bdb8b8ff", + "MaskAlt": "777474ff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "25": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "5b875aff", + "MaskAlt": "4e644eff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "202080ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "5": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "b88445ff", + "MaskAlt": "a17d4bff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "6": { + "Name": "wall", + "Type": "Wall", + "Style": "station", + "Mask": "808080ff", + "MaskAlt": "5b5a5aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "7": { + "Name": "tile", + "Type": "Floor", + "Style": "metal", + "Mask": "ffffffff", + "MaskAlt": "808080ff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "8": { + "Name": "wall", + "Type": "Wall", + "Style": "hightech", + "Mask": "d9a82dff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "9": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "ccfca6ff", + "MaskAlt": "9c9a98ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + } + }, + "Tiles": ["4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,1,11,11,11,1,10,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,10,10,10,11,0,0,0,0,0,11,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,17,10,4,11,0,0,0,0,0,11,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,17,17,0,0,0,0,0,0,1,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,15,15,17,17,17,17,4,4,17,17,17,0,2,0,0,0,0,3,3,11,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,0,0,0,0,0,0,0,0,0,0,17,17,17,17,0,0,0,2,0,0,0,0,3,3,11,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,0,0,0,1,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,0,6,6,6,6,6,0,17,0,0,0,0,0,0,0,17,17,17,11,0,0,0,0,0,11,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,0,6,3,3,3,6,2,15,0,0,0,0,0,0,17,17,10,10,11,1,11,11,11,1,10,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,2,22,11,11,11,0,0,15,17,0,0,0,0,0,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,0,0,0,0,0,0,6,6,17,17,17,0,0,17,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,3,0,0,0,0,0,0,3,6,4,4,17,17,17,17,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,3,0,0,0,0,0,0,3,6,4,4,4,4,4,4,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,3,0,0,0,0,0,0,3,6,4,4,4,4,4,4,10,10,10,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,3,0,0,0,0,0,0,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,3,0,0,0,0,0,0,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,3,0,0,0,0,0,0,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,20,15,0,0,0,0,0,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,20,15,22,0,0,0,22,22,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,10,10,10,10,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,20,15,22,2,2,22,22,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,20,15,22,12,12,22,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,17,17,17,17,17,17,17,17,17,17,17,4,15,20,15,22,12,12,22,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,17,17,10,10,10,10,10,10,10,10,10,17,17,15,20,15,5,20,20,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,17,17,10,10,10,10,10,10,10,10,10,10,10,17,15,20,20,23,20,20,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "17,17,10,10,10,10,10,10,10,10,10,10,10,10,17,15,15,20,23,20,20,5,15,15,15,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "17,10,10,10,10,10,10,10,10,10,10,10,10,10,17,0,15,15,15,20,20,13,13,13,15,15,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "17,10,10,10,10,10,10,10,10,10,10,10,10,10,17,15,15,15,15,20,20,13,13,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "17,10,10,10,10,10,10,10,10,10,10,10,10,10,17,15,13,13,13,20,20,13,13,13,13,15,4,4,4,15,15,15,15,15,15,15,15,15,15,15,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "17,10,10,10,10,10,10,10,10,10,10,10,10,10,17,15,13,13,13,20,20,13,13,13,13,15,4,4,4,15,13,13,13,13,13,13,13,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "17,10,10,10,10,10,10,10,10,10,10,10,10,10,17,15,13,13,13,20,20,13,13,13,13,15,4,4,4,15,13,13,13,13,13,13,13,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "17,10,10,10,10,10,10,10,15,15,11,11,11,15,15,15,13,13,13,20,20,20,20,20,20,15,4,4,4,15,13,13,13,13,12,12,12,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "17,10,10,10,10,10,10,10,15,21,21,21,21,11,0,15,13,13,13,20,20,20,20,20,20,15,4,4,4,15,13,13,13,13,12,12,12,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "17,10,10,10,10,10,10,10,15,21,21,21,21,11,0,15,15,13,13,13,13,13,13,13,20,15,4,4,4,15,13,13,13,13,12,16,12,13,13,15,4,4,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "17,10,10,10,10,10,10,10,11,21,21,21,21,11,0,15,20,20,20,20,13,13,13,13,20,15,4,4,4,15,13,13,13,13,12,12,12,13,13,15,4,4,6,7,7,7,7,7,6,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "17,10,10,10,10,10,10,10,11,21,21,21,21,15,2,15,20,20,20,20,20,20,20,20,20,15,4,4,14,15,13,13,13,13,12,12,12,13,13,15,4,4,6,6,6,0,6,6,6,4,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "17,10,10,10,10,10,10,10,11,21,13,13,13,15,0,0,0,15,20,20,20,20,20,20,20,15,4,4,14,0,0,13,13,13,13,13,13,13,13,15,4,4,4,5,5,0,5,5,4,4,4,4,4,4,4,4,4,4,4,17,17,17,17,17,5,5,5,5,11,5,2,5,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "17,10,10,10,10,10,10,10,15,21,13,0,13,15,5,0,0,15,13,13,13,13,13,13,13,15,4,14,14,0,0,13,13,13,13,13,13,13,13,15,4,4,4,5,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,3,3,3,3,3,3,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "17,10,10,10,10,10,10,10,15,21,13,13,13,15,5,0,0,5,13,13,13,13,13,13,13,15,4,14,0,0,0,15,13,13,13,13,13,13,13,15,4,4,5,5,0,0,0,5,5,4,4,4,4,4,4,4,4,4,4,4,4,5,5,3,3,3,3,3,3,3,3,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "17,17,10,10,10,10,10,10,11,21,21,21,21,15,5,0,0,5,15,13,13,13,13,13,13,15,4,14,0,0,14,15,15,15,15,15,15,15,15,15,4,4,5,0,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,5,5,5,3,3,3,3,5,5,3,3,3,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,17,17,10,10,10,10,10,11,21,21,21,21,15,5,0,0,5,15,13,13,13,13,13,13,15,4,14,0,0,14,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,5,5,5,5,5,4,4,4,5,5,5,5,0,3,3,3,5,5,5,5,3,3,3,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,1,1,10,10,10,10,15,21,21,21,21,15,5,0,0,5,15,15,15,15,15,15,15,15,4,14,0,0,14,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,0,0,2,0,3,3,5,5,4,4,5,3,3,3,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,1,1,10,10,10,15,21,21,21,21,15,5,0,0,5,4,4,4,4,4,4,4,4,4,14,0,0,14,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,5,5,5,4,4,4,5,3,3,3,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,1,1,1,15,15,21,21,21,21,15,5,0,0,5,4,4,4,4,4,4,4,4,5,14,0,0,14,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,4,4,4,4,4,5,5,3,3,5,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,0,0,21,21,21,21,15,5,0,0,5,5,4,4,4,4,4,4,5,5,0,0,0,5,5,5,5,5,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,4,4,4,4,4,4,4,4,5,3,3,5,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,0,0,21,21,21,21,15,5,0,0,0,5,5,5,5,5,5,5,5,0,0,0,0,5,5,5,5,0,0,0,0,0,0,5,5,5,5,0,0,5,5,5,0,0,0,16,0,0,0,5,5,4,4,4,0,0,8,0,0,0,8,5,3,3,5,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,0,0,15,21,21,21,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,0,0,0,0,0,0,5,3,3,5,0,0,5,20,5,5,0,0,0,0,0,0,5,4,4,4,4,0,7,8,7,7,7,8,5,3,3,5,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,0,0,15,21,21,21,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,5,3,3,5,0,0,5,20,20,5,5,0,0,0,0,0,5,4,4,4,4,0,7,8,3,3,3,8,5,3,3,5,11,11,5,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,0,0,15,15,15,15,15,15,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,5,3,3,5,0,0,5,20,20,20,5,0,0,0,0,0,5,4,4,4,4,0,7,3,3,3,3,3,3,3,3,3,3,3,11,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,0,0,0,0,0,0,25,0,15,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,2,0,0,0,0,0,0,5,2,2,5,0,0,5,20,20,20,5,0,0,0,0,0,5,4,4,4,4,0,7,3,3,3,3,3,3,3,3,3,3,3,11,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,0,0,0,0,0,0,25,0,15,4,9,9,9,9,20,20,20,20,20,9,9,9,5,0,0,0,2,0,0,0,0,0,0,5,3,3,3,0,0,5,20,20,20,5,0,0,0,0,0,5,4,4,4,4,0,7,3,3,3,3,3,3,3,3,3,3,3,11,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,0,0,0,0,0,0,25,0,15,4,9,20,20,20,20,20,20,20,20,20,20,20,5,0,0,0,5,0,0,0,0,0,0,5,3,3,3,0,0,5,20,20,20,23,0,0,0,0,0,5,4,4,4,4,0,7,8,3,3,3,3,3,3,3,3,3,3,11,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,15,15,15,15,0,0,15,15,15,4,9,20,20,20,20,20,9,20,20,20,20,20,5,2,2,5,5,0,0,0,0,0,0,5,5,5,5,0,0,5,5,5,5,5,0,0,0,0,0,5,4,4,4,4,0,7,8,4,4,4,8,5,3,3,5,11,11,5,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,4,15,15,15,15,0,0,15,4,4,4,9,20,20,20,20,20,9,20,20,20,20,20,9,20,20,9,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,4,4,4,4,0,0,8,0,0,0,8,5,3,3,5,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,4,15,20,20,0,0,0,15,4,4,4,9,20,20,9,9,9,9,9,9,9,9,9,9,20,20,9,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,4,4,4,4,4,4,4,4,4,5,3,3,5,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,15,20,20,0,0,0,15,4,4,4,9,20,20,20,20,20,20,9,9,20,20,20,20,20,20,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,4,4,4,4,4,4,5,5,3,3,5,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,20,20,15,15,15,15,15,4,4,4,9,20,20,20,20,20,20,9,9,20,20,20,20,20,20,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,4,4,4,4,5,3,3,3,5,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,20,20,15,4,4,4,4,4,4,4,9,9,9,9,9,20,20,20,20,20,20,20,20,20,20,20,5,2,2,1,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,2,0,3,5,5,5,4,4,5,3,3,3,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,20,20,15,4,4,4,6,6,6,6,6,4,4,4,9,20,20,20,20,20,20,20,20,20,20,20,9,12,12,12,9,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,3,3,3,5,5,4,5,3,3,3,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,20,20,15,4,4,4,6,20,20,20,6,4,4,4,9,9,9,20,20,20,20,9,9,9,9,20,9,12,12,12,9,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,3,3,3,3,5,5,5,3,3,3,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,20,20,15,6,6,6,6,20,20,20,6,4,4,4,9,20,20,20,20,20,20,9,20,20,9,20,9,12,12,12,9,9,5,5,5,5,5,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,20,20,6,20,20,20,20,20,20,20,6,6,6,6,6,20,20,20,20,20,20,9,20,20,9,20,9,9,9,9,9,9,9,9,9,9,5,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,3,3,3,3,3,3,3,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,20,20,6,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,9,9,9,6,20,20,9,20,20,20,20,20,9,20,20,20,20,9,5,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,3,3,3,3,3,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,20,20,6,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,9,4,4,6,20,20,9,20,20,20,20,20,9,20,20,20,20,9,5,0,0,0,0,5,4,4,4,4,4,4,4,4,4,17,17,17,17,17,17,17,17,5,5,11,11,11,5,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,20,20,6,20,20,6,6,6,20,20,20,20,20,20,20,20,20,20,9,4,4,6,20,20,9,20,20,20,20,20,9,20,20,20,20,9,5,0,0,0,0,5,4,4,4,4,4,4,4,4,17,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,20,20,24,20,20,20,6,6,6,6,6,6,20,20,6,9,20,20,9,4,4,6,20,20,9,20,20,9,9,20,20,20,20,9,20,9,5,5,0,5,5,5,4,4,4,4,4,4,4,17,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,20,20,24,20,20,20,6,6,6,20,20,20,20,20,6,9,20,20,9,4,4,6,20,20,9,20,20,9,9,20,20,20,20,9,20,9,6,5,5,5,4,4,4,4,4,4,4,4,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,20,20,24,20,20,20,6,6,6,20,20,20,20,20,6,9,20,20,6,6,6,6,20,20,9,20,20,9,9,20,20,20,20,9,20,9,6,6,6,6,6,6,6,6,6,6,6,6,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,15,15,15,6,20,20,6,6,6,6,20,20,20,20,20,6,6,20,20,20,20,20,20,20,20,9,20,20,9,9,9,9,9,9,6,20,20,20,20,20,20,6,20,20,20,20,20,20,6,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,4,4,4,6,20,20,20,20,6,6,20,20,6,6,6,6,6,20,20,20,20,20,20,20,20,9,20,20,9,20,20,20,20,20,6,20,20,20,20,20,20,6,20,20,20,20,20,20,6,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,4,4,4,6,20,20,20,20,6,6,20,20,6,6,6,6,6,6,6,20,20,20,20,20,20,9,20,20,9,20,20,20,20,20,6,20,20,20,20,20,20,6,20,20,20,20,20,20,6,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,4,4,4,6,20,20,20,20,20,20,20,20,20,20,20,20,20,20,6,20,20,20,6,6,6,9,20,20,9,20,20,20,20,20,6,6,6,20,20,20,20,20,20,20,6,6,20,20,6,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,4,4,4,6,20,20,20,20,20,20,20,20,20,20,20,20,20,20,6,20,20,20,6,6,6,9,20,20,9,20,20,6,20,20,6,6,6,20,20,20,20,20,20,20,20,20,20,20,6,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,20,20,20,20,20,20,20,6,20,20,20,6,6,6,6,20,20,6,20,20,6,20,20,20,20,6,20,20,20,20,20,20,20,20,20,20,20,6,4,17,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,20,20,20,20,20,20,20,6,20,20,20,20,20,20,20,20,20,20,20,20,6,20,20,20,20,6,20,20,20,20,20,20,20,20,20,20,20,6,4,4,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,6,20,20,20,20,6,6,6,6,6,6,6,6,6,20,20,20,6,18,18,18,4,10,10,10,10,10,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,6,20,20,20,20,6,6,20,20,20,20,20,20,20,20,20,20,24,20,20,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,20,20,20,20,20,6,6,6,6,6,6,6,6,6,6,6,6,6,6,20,20,6,6,20,20,20,20,20,20,20,20,20,20,24,20,20,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,6,20,20,6,6,20,20,20,20,20,20,20,20,20,20,24,20,20,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,20,20,6,6,20,20,20,20,20,20,20,20,20,20,6,18,18,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,20,20,6,6,6,6,6,6,6,6,6,20,20,20,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,20,20,20,20,20,20,20,20,20,20,20,20,20,20,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,20,20,20,20,20,20,20,20,20,20,20,20,20,20,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "barrel_nukage", + "Positions": [[48, 63], + [43, 57], + [55, 56], + [52, 50], + [39, 54], + [36, 60], + [68, 55], + [26, 52], + [43, 78], + [51, 76], + [40, 86], + [29, 70], + [26, 57], + [17, 78], + [11, 65], + [10, 72], + [12, 76], + [12, 36], + [22, 21], + [36, 12], + [52, 72]] + }, + { + "MapObject": "bone_blood", + "Positions": [[45, 62], + [51, 61], + [60, 62], + [68, 54], + [13, 74], + [8, 61], + [11, 50], + [37, 11]] + }, + { + "MapObject": "blood0", + "Positions": [[39, 58], + [49, 61], + [47, 66], + [55, 53], + [45, 42], + [44, 52], + [28, 43], + [34, 38], + [28, 61], + [7, 62], + [24, 38], + [19, 29], + [37, 6], + [39, 7]] + }, + { + "MapObject": "Marine Shotgun spawner", + "Positions": [[41, 50]] + }, + { + "MapObject": "Chaingun spawner", + "Positions": [[60, 68]] + }, + { + "MapObject": "Launcher spawner", + "Positions": [[55, 81]] + }, + { + "MapObject": "Chainsaw spawner", + "Positions": [[11, 41]] + }, + { + "MapObject": "wscreen1", + "Positions": [[43, 38], + [44, 38], + [45, 38], + [46, 38], + [47, 38], + [62, 50], + [29, 64], + [30, 64], + [26, 72], + [27, 72], + [24, 79], + [28, 78], + [29, 78], + [34, 78], + [35, 73], + [36, 73], + [39, 73], + [40, 77], + [42, 85], + [43, 85], + [45, 85], + [47, 85], + [49, 85], + [44, 80], + [46, 80], + [47, 80], + [49, 80], + [53, 72], + [51, 72], + [48, 72], + [47, 75], + [46, 72], + [43, 72], + [41, 66], + [38, 66], + [12, 65], + [14, 63], + [17, 66], + [19, 66], + [19, 75], + [21, 75], + [14, 75], + [13, 73], + [12, 69], + [19, 13], + [21, 13]] + }, + { + "MapObject": "wscreen2", + "Positions": [[64, 50], + [65, 50], + [66, 50], + [25, 72], + [28, 72], + [30, 78], + [31, 78], + [37, 73], + [38, 73], + [44, 85], + [46, 85], + [48, 85], + [50, 85], + [50, 80], + [45, 80], + [48, 80], + [50, 72], + [49, 72], + [45, 72], + [44, 72], + [50, 76], + [42, 72], + [40, 66], + [39, 66], + [20, 66], + [18, 66], + [18, 70], + [17, 70], + [16, 70], + [22, 75], + [20, 75], + [18, 75], + [15, 75], + [12, 73], + [10, 65], + [13, 65], + [15, 63]] + }, + { + "MapObject": "pillar", + "Positions": [[9, 47], + [12, 47]] + }, + { + "MapObject": "warning_sign", + "Positions": [[17, 32], + [23, 30]] + }, + { + "MapObject": "rod", + "Positions": [[46, 73]] + }, + { + "MapObject": "blood2", + "Positions": [[13, 66]] + }], + "StaticCharacters": [{ + "Index": 1, + "Places": [{ + "Pos": [55, 61], + "Dir": 5 + }, + { + "Pos": [51, 55], + "Dir": 3 + }, + { + "Pos": [55, 49], + "Dir": 6 + }, + { + "Pos": [55, 50], + "Dir": 0 + }, + { + "Pos": [52, 47], + "Dir": 7 + }, + { + "Pos": [36, 55], + "Dir": 1 + }, + { + "Pos": [35, 60], + "Dir": 2 + }, + { + "Pos": [35, 48], + "Dir": 0 + }, + { + "Pos": [35, 46], + "Dir": 3 + }, + { + "Pos": [39, 48], + "Dir": 2 + }, + { + "Pos": [41, 46], + "Dir": 1 + }, + { + "Pos": [44, 48], + "Dir": 3 + }, + { + "Pos": [45, 48], + "Dir": 5 + }, + { + "Pos": [61, 45], + "Dir": 3 + }, + { + "Pos": [67, 52], + "Dir": 5 + }, + { + "Pos": [67, 54], + "Dir": 7 + }, + { + "Pos": [72, 53], + "Dir": 0 + }, + { + "Pos": [31, 53], + "Dir": 1 + }, + { + "Pos": [28, 48], + "Dir": 0 + }, + { + "Pos": [23, 51], + "Dir": 5 + }, + { + "Pos": [20, 50], + "Dir": 1 + }, + { + "Pos": [29, 40], + "Dir": 4 + }, + { + "Pos": [30, 60], + "Dir": 3 + }, + { + "Pos": [36, 66], + "Dir": 2 + }, + { + "Pos": [41, 71], + "Dir": 5 + }, + { + "Pos": [48, 73], + "Dir": 1 + }, + { + "Pos": [53, 75], + "Dir": 1 + }, + { + "Pos": [46, 81], + "Dir": 4 + }, + { + "Pos": [48, 81], + "Dir": 0 + }, + { + "Pos": [53, 86], + "Dir": 4 + }, + { + "Pos": [41, 77], + "Dir": 2 + }, + { + "Pos": [26, 76], + "Dir": 4 + }, + { + "Pos": [30, 66], + "Dir": 4 + }, + { + "Pos": [30, 68], + "Dir": 2 + }, + { + "Pos": [18, 59], + "Dir": 7 + }, + { + "Pos": [26, 56], + "Dir": 2 + }, + { + "Pos": [23, 75], + "Dir": 2 + }, + { + "Pos": [16, 73], + "Dir": 5 + }, + { + "Pos": [20, 67], + "Dir": 0 + }, + { + "Pos": [16, 63], + "Dir": 1 + }, + { + "Pos": [9, 39], + "Dir": 5 + }, + { + "Pos": [12, 39], + "Dir": 1 + }, + { + "Pos": [15, 47], + "Dir": 0 + }, + { + "Pos": [16, 45], + "Dir": 4 + }, + { + "Pos": [18, 18], + "Dir": 5 + }, + { + "Pos": [20, 18], + "Dir": 2 + }, + { + "Pos": [22, 18], + "Dir": 5 + }, + { + "Pos": [40, 7], + "Dir": 3 + }, + { + "Pos": [38, 6], + "Dir": 5 + }, + { + "Pos": [39, 11], + "Dir": 1 + }, + { + "Pos": [38, 12], + "Dir": 6 + }, + { + "Pos": [37, 9], + "Dir": 7 + }, + { + "Pos": [46, 85], + "Dir": 0 + }, + { + "Pos": [46, 86], + "Dir": 1 + }] + }, + { + "Index": 2, + "Places": [{ + "Pos": [42, 50], + "Dir": 5 + }, + { + "Pos": [70, 53], + "Dir": 3 + }, + { + "Pos": [36, 38], + "Dir": 6 + }, + { + "Pos": [32, 79], + "Dir": 5 + }, + { + "Pos": [23, 55], + "Dir": 5 + }, + { + "Pos": [11, 68], + "Dir": 5 + }, + { + "Pos": [11, 70], + "Dir": 3 + }, + { + "Pos": [14, 36], + "Dir": 1 + }, + { + "Pos": [15, 40], + "Dir": 4 + }, + { + "Pos": [16, 40], + "Dir": 3 + }, + { + "Pos": [20, 16], + "Dir": 2 + }, + { + "Pos": [19, 17], + "Dir": 4 + }, + { + "Pos": [21, 17], + "Dir": 3 + }, + { + "Pos": [23, 21], + "Dir": 1 + }, + { + "Pos": [16, 21], + "Dir": 2 + }, + { + "Pos": [20, 13], + "Dir": 0 + }, + { + "Pos": [40, 10], + "Dir": 6 + }, + { + "Pos": [38, 9], + "Dir": 4 + }] + }, + { + "Index": 0, + "Places": [{ + "Pos": [68, 70], + "Dir": 1 + }, + { + "Pos": [70, 70], + "Dir": 6 + }, + { + "Pos": [77, 62], + "Dir": 0 + }, + { + "Pos": [81, 60], + "Dir": 5 + }, + { + "Pos": [81, 55], + "Dir": 1 + }, + { + "Pos": [81, 51], + "Dir": 7 + }, + { + "Pos": [73, 42], + "Dir": 4 + }, + { + "Pos": [77, 44], + "Dir": 1 + }] + }], + "StaticObjectives": [], + "StaticKeys": [{ + "Index": 3, + "Positions": [[63, 52]] + }, + { + "Index": 0, + "Positions": [[47, 53]] + }, + { + "Index": 1, + "Positions": [[36, 37]] + }], + "StaticPickups": [{ + "Pickup": "health_bonus", + "Positions": [[73, 53], + [51, 74], + [52, 74], + [53, 74], + [44, 82], + [29, 66], + [28, 55], + [20, 71], + [10, 66], + [10, 74], + [11, 58], + [7, 54], + [12, 48], + [12, 49], + [11, 49], + [23, 35], + [19, 33], + [17, 28]] + }, + { + "Pickup": "armor_bonus", + "Positions": [[65, 52], + [73, 55], + [60, 38], + [72, 61], + [70, 68], + [69, 39], + [44, 77], + [49, 77], + [28, 57], + [10, 65], + [10, 75], + [8, 58], + [11, 54], + [14, 53], + [14, 54], + [14, 55], + [7, 48], + [16, 16], + [16, 17]] + }, + { + "Pickup": "stimpack", + "Positions": [[73, 54], + [36, 35], + [45, 81], + [29, 65], + [29, 65], + [18, 21], + [18, 21]] + }, + { + "Pickup": "ammo_Shells", + "Positions": [[41, 51], + [38, 66], + [48, 72], + [48, 72], + [44, 80], + [35, 73], + [35, 73], + [30, 64], + [30, 64], + [27, 55], + [21, 80], + [16, 70], + [16, 70], + [12, 69], + [12, 69], + [19, 16], + [19, 16], + [35, 11], + [35, 11]] + }, + { + "Pickup": "armor", + "Positions": [[49, 52], + [45, 39], + [10, 69], + [10, 69]] + }, + { + "Pickup": "medikit", + "Positions": [[49, 53], + [36, 63], + [28, 56], + [28, 56], + [11, 69], + [11, 69], + [7, 67], + [7, 67], + [20, 29], + [20, 29], + [20, 28], + [20, 10], + [20, 10], + [36, 6], + [36, 6]] + }, + { + "Pickup": "ammo_Bullets", + "Positions": [[50, 49], + [69, 41], + [65, 55], + [72, 50], + [41, 74], + [53, 72], + [52, 86], + [38, 80], + [38, 80], + [29, 64], + [23, 59], + [11, 48], + [21, 16], + [21, 16]] + }, + { + "Pickup": "supercharge", + "Positions": [[76, 53]] + }, + { + "Pickup": "megaarmor", + "Positions": [[21, 22], + [21, 22]] + }, + { + "Pickup": "shells2", + "Positions": [[42, 51], + [20, 25]] + }, + { + "Pickup": "bullet_pickup2", + "Positions": [[36, 62], + [61, 38], + [61, 68], + [57, 70], + [36, 79], + [25, 80], + [23, 72], + [14, 63], + [36, 36], + [33, 10]] + }, + { + "Pickup": "rockets2", + "Positions": [[55, 80], + [56, 80], + [55, 82], + [56, 82]] + }, + { + "Pickup": "backpack", + "Positions": [[47, 50], + [56, 81]] + }], + "Start": [45, 67], + "Exits": [{ + "Rect": [36, + 6, + 4, + 6], + "Mission": 2, + "Hidden": false + }], + "AltFloorsEnabled": true + }, + { + "Title": "Toxin Refinery", + "Description": "", + "Type": "Static", + "Width": 98, + "Height": 98, + "ExitStyle": "hazard", + "KeyStyle": "chip", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Fists", "Marine Pistol"], + "WeaponPersist": true, + "SkipDebrief": false, + "TileClasses": { + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "60491fff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "404040ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "10": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "0215f5ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "11": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "797878ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "12": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "515151ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "13": { + "Name": "wall", + "Type": "Wall", + "Style": "station", + "Mask": "808080ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "14": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "939393ff", + "MaskAlt": "587b53ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "15": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "808080ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "16": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "cda774ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "17": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "adaaaaff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "18": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "bdbdbdff", + "MaskAlt": "8e9f7cff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "19": { + "Name": "wall", + "Type": "Wall", + "Style": "hightech", + "Mask": "b1b0b0ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "2": { + "Name": "door", + "Type": "Door", + "Style": "doom", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + }, + "20": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "bdbdbdff", + "MaskAlt": "807f7fff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "21": { + "Name": "wall", + "Type": "Wall", + "Style": "station", + "Mask": "9f9f9fff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "22": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "5f5f5fff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "23": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "d2d2d2ff", + "MaskAlt": "999f92ff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "stone", + "Mask": "204020ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "5": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "bdbdbdff", + "MaskAlt": "a68448ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "6": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "c99e4bff", + "MaskAlt": "aa8423ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "7": { + "Name": "tile", + "Type": "Floor", + "Style": "water", + "Mask": "42b629ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "nukage" + }, + "8": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "d7a442ff", + "MaskAlt": "95762eff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "9": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "ad8a58ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + } + }, + "Tiles": ["4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,18,18,18,18,18,18,18,18,18,18,18,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,18,15,15,15,15,15,15,15,15,15,15,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,17,17,17,17,17,17,17,17,17,17,4,4,4,4,4,4,4,4,18,15,15,15,15,15,15,15,15,15,15,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,17,17,7,7,7,7,7,7,7,7,7,17,17,17,4,4,4,4,4,4,18,15,15,18,18,15,15,15,15,15,15,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,17,7,7,7,7,7,7,7,7,7,7,7,7,7,17,17,4,4,4,4,4,18,15,15,18,18,18,18,18,15,15,15,18,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,17,17,4,4,4,4,18,15,15,18,18,18,18,18,15,15,15,15,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,17,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,17,18,4,4,4,18,15,15,18,18,15,15,18,15,15,15,15,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,18,18,18,18,18,15,15,18,18,15,15,18,15,15,15,15,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,14,14,14,14,14,14,14,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,7,7,7,7,7,7,16,16,16,16,16,16,7,7,7,7,7,7,15,15,15,18,18,15,15,18,18,15,15,18,15,15,15,15,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,14,14,14,7,7,7,7,7,7,14,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,17,7,7,7,7,16,16,16,16,16,16,16,16,16,16,7,7,7,7,15,15,15,18,18,15,15,18,18,2,2,18,15,15,15,15,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,14,14,7,7,7,7,7,7,7,7,7,14,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,7,7,7,7,16,16,16,16,16,16,16,16,16,16,16,16,7,7,7,15,15,15,15,15,15,15,18,18,15,15,15,15,15,15,15,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,14,14,7,7,7,7,7,7,7,7,7,7,7,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,8,8,8,8,8,8,8,7,7,7,16,16,16,16,7,7,7,7,7,7,16,16,16,16,7,7,15,15,15,15,15,15,15,18,18,15,15,15,15,15,15,15,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,14,7,7,7,7,7,12,12,12,12,7,7,7,14,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,15,15,15,15,15,15,15,16,16,16,16,16,16,7,7,7,7,7,7,7,7,16,16,16,16,16,15,15,15,13,13,15,15,18,18,15,15,15,15,15,15,15,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "14,14,7,7,7,12,12,12,12,12,12,12,7,7,7,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,15,15,15,15,15,15,15,16,16,16,16,16,16,7,7,7,7,7,7,7,7,7,16,16,16,16,15,15,15,13,13,15,15,18,18,15,15,15,15,15,15,15,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "14,7,7,7,7,12,12,12,12,12,12,12,7,7,7,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,15,15,15,15,15,15,15,16,16,16,16,16,16,7,7,7,7,7,7,7,7,7,16,16,16,16,15,15,15,13,13,15,15,18,18,15,15,15,15,15,15,15,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "14,7,7,7,7,12,12,12,12,14,12,12,12,7,7,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,15,15,15,15,15,15,15,16,16,16,16,16,16,7,7,7,7,7,7,7,7,16,16,16,16,16,15,15,15,13,13,15,15,18,18,15,15,15,15,15,15,15,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "14,7,7,7,12,12,12,12,12,14,12,12,12,7,7,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,15,15,15,15,8,8,8,7,7,7,16,16,16,16,7,7,7,7,7,7,16,16,16,7,7,7,15,15,15,15,15,15,15,18,18,15,15,15,0,15,15,15,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "14,7,7,7,12,12,12,12,12,12,12,12,12,7,7,14,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,8,8,15,15,15,15,8,8,17,7,7,7,7,16,16,16,16,16,16,16,16,16,16,16,7,7,7,7,15,15,15,15,15,15,15,18,18,15,15,15,0,15,15,15,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "14,7,7,7,12,12,12,12,12,12,12,12,12,7,7,14,6,0,0,0,0,6,6,4,4,4,4,4,4,4,4,4,8,15,15,15,15,15,8,8,17,7,7,7,7,7,16,16,16,16,16,16,16,16,16,7,7,7,7,7,15,15,15,18,18,15,15,18,18,18,18,18,18,18,18,18,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "14,7,7,7,12,12,12,12,12,12,12,12,12,7,7,14,6,0,0,0,0,0,6,4,4,4,4,4,4,4,4,8,8,15,15,15,15,15,15,8,17,17,7,7,7,7,7,7,16,16,16,16,16,16,7,7,7,7,7,7,15,15,15,18,18,15,15,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "14,7,7,7,12,12,14,12,12,12,12,12,12,7,7,14,6,0,0,0,0,0,6,4,4,4,4,4,4,4,4,8,15,15,15,15,15,15,15,8,4,17,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,18,18,18,18,18,18,18,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "14,7,7,7,12,12,14,12,12,12,12,12,1,6,7,6,6,0,0,0,0,0,1,1,1,1,1,1,1,4,4,8,15,15,15,15,15,15,15,8,4,17,17,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,17,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "14,7,7,7,12,12,12,12,12,12,12,1,1,6,7,7,7,7,7,0,0,0,22,12,12,12,12,12,1,1,4,8,15,15,15,15,15,15,15,8,4,4,17,17,7,7,7,7,7,7,7,7,7,7,7,7,7,7,17,17,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "14,7,7,7,12,12,12,12,12,12,12,1,1,6,7,7,7,7,7,0,0,0,22,12,12,12,12,12,12,1,4,8,15,15,15,15,15,15,15,8,4,4,4,17,17,7,7,7,7,7,7,7,7,7,7,7,7,17,17,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "14,7,7,7,12,12,12,12,12,12,12,1,1,6,6,6,6,7,7,7,6,6,1,12,12,12,12,12,12,1,1,8,15,15,15,15,15,15,15,8,4,4,4,4,17,17,17,7,7,7,7,7,7,7,7,17,17,17,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "14,14,7,7,7,12,12,12,12,12,12,12,1,1,4,4,6,7,7,7,6,6,1,12,12,12,12,12,12,12,1,8,15,15,15,15,15,15,15,8,4,4,4,4,4,4,17,17,17,17,17,0,17,17,17,17,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,14,7,7,7,7,12,12,12,12,12,12,12,1,4,4,6,7,7,7,6,6,1,1,1,12,12,12,12,12,1,8,15,15,15,15,15,15,15,8,4,4,4,4,4,4,4,4,4,4,17,0,17,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,14,7,7,7,7,7,14,14,12,12,12,12,1,1,4,5,5,6,7,7,6,6,6,6,6,12,12,12,12,1,8,8,15,15,15,15,15,8,4,4,4,4,4,4,4,4,4,4,4,17,0,17,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,18,18,18,18,18,18,18,18,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,14,14,14,7,7,7,14,14,14,12,12,12,12,1,5,5,12,5,6,7,7,7,7,7,6,12,12,12,12,1,1,8,8,15,15,15,15,8,4,4,4,4,4,4,4,4,4,4,4,17,0,17,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,18,18,0,0,0,0,0,0,0,18,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,14,14,14,7,7,14,14,14,12,12,12,12,5,12,12,5,5,7,7,7,7,7,6,12,12,12,12,1,8,8,15,15,15,15,15,8,4,4,4,4,4,4,4,4,4,4,4,17,0,17,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,18,18,18,18,18,18,0,0,0,0,0,0,0,0,0,18,18,18,18,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,14,14,7,14,4,14,12,12,12,12,21,12,12,12,13,13,6,6,6,6,1,12,12,12,12,1,8,15,15,15,15,15,15,8,4,4,4,4,4,4,4,4,4,4,17,17,0,17,17,4,4,4,4,4,4,4,4,4,4,4,4,4,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,18,18,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,14,7,7,14,4,14,14,12,12,12,21,12,12,12,12,12,13,13,4,4,1,12,12,12,12,1,8,15,15,15,15,15,15,8,4,4,4,4,4,4,4,4,4,4,17,0,0,0,17,4,4,4,4,4,4,4,4,4,4,4,4,4,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,18,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,14,14,14,14,4,4,14,14,12,12,21,12,12,12,12,12,12,13,4,4,1,12,12,12,12,8,15,15,15,15,15,15,15,8,4,4,4,4,4,4,4,4,4,4,6,2,2,2,6,4,4,4,4,4,4,4,4,4,4,4,4,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,18,18,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,13,21,21,21,12,12,12,12,12,12,13,5,4,1,12,12,12,12,8,15,15,15,15,15,15,8,8,4,20,20,20,20,20,20,20,20,20,6,0,0,0,6,4,4,4,4,4,4,4,4,4,4,4,4,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,18,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,13,12,12,12,12,12,12,12,12,12,12,5,5,1,12,12,12,12,8,15,15,15,15,15,8,8,4,4,20,0,0,0,0,0,0,0,0,2,0,0,0,6,4,4,4,4,4,4,4,4,4,4,4,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,18,19,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,5,13,12,12,12,12,13,13,12,12,12,12,12,5,5,22,22,22,22,8,15,15,15,15,8,8,20,20,20,20,0,20,20,20,20,20,0,0,2,0,0,0,6,4,4,4,4,4,4,4,4,4,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,19,4,19,19,19,4,4,4,4", + "4,4,4,4,4,4,4,4,4,5,5,5,12,12,12,12,13,13,13,13,12,12,12,12,5,5,8,12,12,12,8,15,15,15,15,8,20,20,0,0,0,0,0,0,20,20,20,20,20,6,0,0,0,6,4,4,4,4,4,4,4,4,4,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,0,0,19,19,19,0,19,19,4,4,4", + "4,4,4,4,4,4,4,4,5,5,12,12,12,12,12,12,12,13,13,13,12,12,12,12,5,5,8,12,12,12,8,15,15,15,8,20,0,0,0,0,0,0,0,0,0,0,0,20,20,6,0,0,0,6,4,4,4,4,4,4,4,4,18,18,0,0,0,0,0,0,19,0,18,18,18,18,18,18,18,18,18,18,18,18,0,0,0,0,0,19,19,0,0,0,19,4,4,4", + "4,4,4,4,4,4,4,13,13,12,12,12,12,12,12,12,12,12,13,13,13,12,12,12,12,5,8,12,12,12,8,15,15,15,8,0,0,0,0,0,0,0,0,0,0,0,0,0,20,6,6,6,6,6,4,4,4,4,4,4,4,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,19,0,0,0,19,4,4,4", + "4,4,4,4,4,4,4,13,12,12,12,12,12,12,13,12,12,12,12,13,13,13,12,12,12,5,8,12,12,12,8,15,15,15,8,0,0,0,0,0,0,0,0,0,0,0,0,0,20,4,4,4,4,4,4,4,4,4,4,4,4,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,19,4,4,4", + "4,4,4,4,4,4,4,13,12,12,12,12,12,13,13,13,12,12,12,13,13,12,12,12,12,8,12,12,12,12,8,2,2,2,8,0,19,2,2,2,19,19,19,2,2,2,19,0,20,4,4,4,4,4,4,4,4,4,4,4,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,19,4,4,4", + "4,4,4,4,4,4,5,5,12,12,12,12,13,13,13,12,12,12,13,13,12,12,12,12,5,8,12,12,12,12,8,15,15,15,8,0,2,0,0,0,0,0,0,0,0,0,2,0,20,20,4,4,4,4,4,4,4,4,4,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,19,0,0,0,19,4,4,4", + "4,4,4,4,5,5,5,12,12,12,12,12,13,13,12,12,12,13,13,13,12,12,12,12,8,12,12,12,12,12,8,15,15,15,8,0,2,0,0,0,0,0,0,0,0,0,2,0,0,20,4,4,4,4,4,4,4,4,18,18,0,0,0,0,0,0,0,0,0,0,19,0,18,18,18,18,18,18,18,18,18,18,18,18,0,0,0,0,0,19,19,0,0,0,19,4,4,4", + "4,4,4,4,13,12,12,12,12,12,12,13,13,13,12,12,13,13,13,12,12,12,12,5,8,22,22,22,22,8,8,15,15,15,8,0,2,0,0,0,0,0,0,0,0,0,2,0,0,20,4,4,4,4,4,4,4,4,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,0,0,19,19,0,0,0,19,4,4,4", + "4,4,4,5,13,12,12,12,12,12,13,13,13,12,12,13,13,13,12,12,12,12,5,5,8,12,12,12,12,8,8,15,15,15,8,0,2,0,0,0,0,0,0,0,0,0,2,0,0,20,4,4,4,4,4,4,4,18,18,0,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,19,19,0,0,0,19,4,4,4", + "4,4,4,5,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,12,12,12,5,4,8,12,12,12,12,8,8,15,15,15,8,0,2,0,0,0,0,0,0,0,0,0,2,0,0,20,4,18,18,18,18,18,18,18,0,0,0,0,18,18,4,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,18,19,19,19,19,19,19,4,4,4", + "4,4,4,5,12,12,12,12,12,12,12,12,12,12,13,13,13,13,12,12,12,5,5,4,8,12,12,12,12,8,8,15,15,15,8,8,19,0,0,0,0,0,0,0,0,0,19,19,20,20,4,18,0,0,0,0,0,0,0,0,0,0,18,4,4,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,18,4,4,4,4,4,4,4,4,4", + "4,4,5,5,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,12,12,5,4,4,8,12,12,12,12,8,8,15,15,15,15,8,0,0,0,0,0,0,0,0,0,0,0,19,4,4,4,18,0,0,0,0,0,0,0,0,0,18,18,4,4,4,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,18,18,4,4,4,4,4,4,4,4,4", + "4,4,5,12,12,12,12,12,13,13,12,12,13,13,13,12,13,13,13,12,12,5,4,4,8,12,12,12,12,8,8,15,15,15,15,9,0,0,0,0,0,0,0,0,0,0,0,19,4,4,4,18,0,0,0,0,0,0,0,0,0,18,4,4,4,4,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,18,4,4,4,4,4,4,4,4,4,4", + "4,4,5,12,12,12,12,13,13,13,13,12,13,13,13,12,12,13,12,12,12,5,5,4,8,2,2,2,8,8,8,8,15,15,15,8,0,0,0,0,0,0,0,0,0,0,0,19,4,4,18,18,0,0,18,18,18,18,0,0,0,18,4,4,4,4,4,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,18,18,4,4,4,4,4,4,4,4,4,4", + "4,4,5,5,21,12,12,12,13,13,13,13,13,13,12,12,12,12,12,12,12,12,5,4,8,12,12,12,8,8,8,8,8,15,15,8,19,0,0,0,0,0,0,0,0,0,0,19,4,4,18,0,0,0,7,7,7,18,18,0,0,18,4,4,4,4,4,18,18,18,18,18,18,18,0,0,0,0,0,0,0,0,0,18,18,18,18,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,12,21,12,12,12,12,13,13,13,13,12,12,12,12,12,12,12,12,12,5,5,8,12,12,12,12,12,12,12,12,15,15,15,8,19,19,2,2,2,2,2,19,19,19,19,4,18,18,0,0,0,7,7,7,7,18,0,0,18,4,4,4,4,4,4,4,4,4,4,4,18,18,0,0,0,0,0,0,0,18,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,1,12,21,21,21,12,12,12,13,13,13,12,12,12,12,12,12,12,12,12,12,5,8,12,12,12,12,12,12,12,12,15,15,15,8,4,19,0,0,0,0,0,2,0,0,19,18,18,0,0,0,0,7,7,7,7,18,0,0,18,4,4,4,4,4,4,4,4,4,4,4,4,18,18,18,18,18,18,18,18,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,12,12,12,12,5,12,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,5,8,12,12,12,12,12,12,12,12,15,15,15,8,4,19,0,0,0,0,0,2,0,0,19,18,0,0,0,0,0,7,7,7,7,18,0,0,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,1,12,12,12,12,5,12,12,12,12,12,12,12,12,5,12,12,5,12,12,12,12,12,8,12,12,12,12,8,8,8,8,15,15,15,8,4,19,0,0,0,0,0,2,0,0,19,18,0,0,0,0,7,7,7,7,7,18,0,0,18,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,14,14,14,14,14,14,14,14,4,4,4,4,4,4,4,4,4,4", + "1,12,12,12,12,1,5,12,12,12,12,12,12,12,5,5,5,5,5,5,12,12,12,12,5,8,12,12,12,8,8,12,8,15,15,15,8,4,19,0,0,0,0,0,19,19,19,18,0,0,0,0,7,7,7,7,7,7,18,0,0,18,14,14,14,14,14,14,14,14,14,14,14,14,14,14,4,4,4,14,14,0,0,0,0,0,0,14,4,4,4,4,4,4,4,4,4,4", + "1,12,12,12,1,1,5,12,12,12,12,12,12,12,5,4,4,4,4,4,5,12,12,12,12,8,12,12,12,12,12,12,8,15,15,15,8,4,19,19,0,0,0,0,19,0,0,0,0,0,0,7,7,7,7,7,7,7,18,0,0,18,14,0,0,0,0,0,0,0,0,0,9,0,0,14,14,4,4,14,0,0,0,0,0,0,0,14,4,4,4,4,4,4,4,4,4,4", + "1,12,12,12,1,1,5,13,12,12,12,12,12,5,5,4,4,4,4,4,4,5,5,12,12,5,8,12,12,12,12,12,8,15,15,15,8,4,4,19,19,0,0,19,19,0,0,0,0,0,7,7,7,7,7,7,7,7,0,0,0,23,0,0,0,0,0,0,0,0,0,0,9,0,0,0,14,4,14,14,0,0,0,0,0,0,0,14,4,4,4,4,4,4,4,4,4,4", + "1,12,12,12,1,1,1,13,13,13,12,12,5,5,4,4,4,4,4,4,4,4,5,5,12,12,5,8,12,12,12,12,8,15,15,15,8,4,4,4,4,0,0,4,13,0,0,0,0,0,7,7,7,7,7,7,7,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,9,0,0,0,14,4,14,0,0,0,0,0,0,0,0,14,4,4,4,4,4,4,4,4,4,4", + "1,12,12,12,12,1,1,1,1,5,5,12,5,1,1,1,1,1,1,1,1,4,4,5,12,12,12,5,8,12,12,12,8,15,15,15,8,4,4,4,4,0,0,4,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,18,14,0,0,0,0,0,0,0,0,0,9,0,0,0,14,14,14,0,0,14,14,14,2,2,2,14,4,4,4,4,4,4,4,4,4,4", + "1,1,12,12,12,12,1,1,1,1,1,5,1,11,11,11,11,11,11,11,1,4,4,5,5,12,0,0,5,8,9,9,8,0,0,0,8,4,4,4,4,0,0,4,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,18,14,14,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,14,14,14,14,0,0,0,14,4,4,4,4,4,4,4,4,4,4", + "4,1,12,12,12,12,12,12,1,1,1,11,11,11,11,11,11,11,11,11,1,4,4,4,5,0,0,0,5,8,0,0,0,0,0,0,8,4,4,4,4,0,0,4,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,14,14,0,0,0,14,14,0,0,0,0,0,9,0,0,0,14,14,14,14,14,14,14,0,0,0,0,14,4,4,4,4,4,4,4,4,4,4", + "4,1,1,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,1,4,4,4,5,5,0,0,0,8,0,0,0,0,0,0,8,4,4,4,4,0,0,4,13,13,0,0,0,0,0,18,0,0,0,0,0,18,18,18,14,14,0,0,14,14,14,0,0,0,0,0,9,0,0,0,14,4,4,4,4,14,14,0,0,0,0,14,4,4,4,4,4,4,4,4,4,4", + "4,4,1,1,1,12,12,12,11,11,11,11,11,11,11,11,11,1,11,11,1,1,1,1,1,5,5,0,0,2,0,0,0,0,0,0,8,4,4,4,4,0,0,4,18,18,0,0,0,0,18,18,13,13,13,13,13,18,4,4,14,0,0,0,14,14,14,0,0,0,0,0,9,0,0,0,14,4,4,4,4,14,0,0,0,0,0,14,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,1,1,12,12,11,11,11,11,11,11,11,1,1,1,11,11,11,11,11,11,11,8,8,8,2,8,0,0,0,0,0,0,8,4,4,4,4,0,0,4,18,5,5,2,2,2,5,4,4,4,4,4,4,4,4,4,14,0,0,0,14,14,14,9,9,9,9,9,9,0,0,0,14,4,4,4,4,14,0,0,0,0,0,14,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,1,1,1,11,11,11,11,1,1,1,1,4,1,11,11,11,11,11,11,11,9,0,0,0,0,0,0,0,0,0,8,8,4,4,4,4,0,0,4,18,5,0,0,0,0,5,4,4,4,4,4,4,4,4,4,14,0,0,0,14,14,14,0,0,0,0,0,0,0,0,0,14,4,4,4,4,14,0,14,14,14,14,14,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,1,1,1,1,1,1,4,4,4,4,1,11,11,11,11,11,11,11,9,0,0,0,0,0,0,0,0,5,5,5,1,1,4,4,0,0,4,5,5,0,0,0,0,5,5,5,4,4,4,4,4,4,4,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,14,4,4,4,4,14,0,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,11,11,11,11,10,10,11,9,0,0,0,0,0,0,0,5,5,0,0,0,1,4,4,0,0,4,5,0,0,0,0,0,0,0,5,4,4,4,4,4,4,4,14,14,0,0,0,0,0,0,0,0,0,0,0,0,0,14,4,4,4,4,4,14,0,14,4,4,4,6,6,6,6,6,6,6,6,6,6,6", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,11,11,11,11,10,10,11,9,0,0,0,0,0,0,0,2,0,0,0,0,1,4,4,0,0,4,5,0,0,0,0,0,0,0,5,4,4,4,4,4,4,4,4,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,4,4,4,4,6,6,0,6,6,4,4,6,0,0,0,0,0,0,0,0,0,6", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,11,11,11,11,11,11,11,8,0,0,0,0,0,0,0,2,0,0,0,0,1,5,4,0,0,5,5,0,0,0,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,0,0,0,6,6,6,6,0,0,0,0,0,0,0,0,0,6", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,11,11,11,11,11,11,11,8,0,0,0,0,0,8,2,5,0,0,0,0,0,5,4,0,0,5,0,0,0,0,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,6", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,8,0,0,0,0,8,5,0,0,0,0,0,0,0,5,4,0,0,5,0,0,0,0,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,6", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,0,0,0,8,5,5,0,0,0,0,0,0,0,1,1,2,2,1,0,0,0,0,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,6", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,8,8,8,8,5,0,0,0,0,6,9,9,9,7,7,7,7,7,9,9,9,6,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,6", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,9,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,6", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,9,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,6", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,9,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,6", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,9,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,6", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,9,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,6", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,9,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,6", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,9,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,9,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,9,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,6,7,7,7,6,0,0,0,0,6,7,7,6,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,6,9,9,9,6,0,0,0,0,6,9,9,6,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,2,2,2,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,512,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,512,512,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,512,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,256,256,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,1024,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "bone_blood", + "Positions": [[44, 93], + [8, 23], + [28, 31], + [68, 39], + [87, 42]] + }, + { + "MapObject": "barrel_nukage", + "Positions": [[37, 88], + [46, 85], + [31, 77], + [35, 67], + [49, 67], + [51, 78], + [31, 67], + [28, 55], + [19, 49], + [13, 55], + [23, 35], + [11, 41], + [48, 19], + [54, 9], + [65, 13], + [66, 19], + [75, 10], + [72, 46], + [78, 39], + [83, 41], + [84, 47], + [86, 33], + [66, 57], + [69, 63], + [74, 63], + [43, 41], + [38, 47]] + }, + { + "MapObject": "blood0", + "Positions": [[44, 85], + [5, 50], + [16, 32], + [85, 36]] + }, + { + "MapObject": "skull", + "Positions": [[29, 70], + [28, 62], + [38, 24], + [54, 16], + [65, 16], + [48, 62]] + }, + { + "MapObject": "rod", + "Positions": [[65, 1], + [74, 1], + [65, 36], + [65, 43]] + }, + { + "MapObject": "Marine Shotgun spawner", + "Positions": [[41, 91], + [28, 38]] + }, + { + "MapObject": "Chaingun spawner", + "Positions": [[28, 32]] + }, + { + "MapObject": "Launcher spawner", + "Positions": [[7, 17]] + }, + { + "MapObject": "Chainsaw spawner", + "Positions": [[73, 66]] + }, + { + "MapObject": "wscreen1", + "Positions": [[7, 50], + [9, 52], + [11, 54], + [13, 51], + [15, 48], + [17, 50], + [18, 44], + [20, 41], + [18, 39], + [16, 37], + [15, 41], + [13, 44], + [11, 46], + [10, 45], + [4, 45], + [8, 39], + [12, 36], + [63, 16], + [64, 16]] + }, + { + "MapObject": "wscreen2", + "Positions": [[8, 51], + [10, 53], + [12, 53], + [14, 50], + [16, 49], + [18, 49], + [17, 45], + [19, 43], + [21, 40], + [17, 38], + [14, 42], + [12, 45]] + }, + { + "MapObject": "pillar", + "Positions": [[39, 44], + [43, 44], + [35, 22], + [69, 17], + [75, 17], + [75, 45], + [78, 45], + [81, 45], + [75, 32], + [78, 32], + [81, 32]] + }, + { + "MapObject": "warning_sign", + "Positions": [[54, 3], + [46, 3]] + }], + "StaticCharacters": [{ + "Index": 2, + "Places": [{ + "Pos": [42, 83], + "Dir": 6 + }, + { + "Pos": [33, 63], + "Dir": 1 + }, + { + "Pos": [24, 64], + "Dir": 5 + }, + { + "Pos": [18, 70], + "Dir": 6 + }, + { + "Pos": [34, 54], + "Dir": 0 + }, + { + "Pos": [32, 45], + "Dir": 1 + }, + { + "Pos": [26, 55], + "Dir": 7 + }, + { + "Pos": [26, 50], + "Dir": 1 + }, + { + "Pos": [25, 44], + "Dir": 7 + }, + { + "Pos": [27, 44], + "Dir": 3 + }, + { + "Pos": [28, 44], + "Dir": 2 + }, + { + "Pos": [26, 46], + "Dir": 6 + }, + { + "Pos": [27, 46], + "Dir": 7 + }, + { + "Pos": [31, 57], + "Dir": 0 + }, + { + "Pos": [11, 57], + "Dir": 4 + }, + { + "Pos": [17, 31], + "Dir": 4 + }, + { + "Pos": [6, 22], + "Dir": 5 + }, + { + "Pos": [9, 17], + "Dir": 2 + }, + { + "Pos": [6, 14], + "Dir": 0 + }, + { + "Pos": [33, 33], + "Dir": 3 + }, + { + "Pos": [34, 26], + "Dir": 0 + }, + { + "Pos": [48, 9], + "Dir": 1 + }, + { + "Pos": [47, 17], + "Dir": 2 + }, + { + "Pos": [51, 25], + "Dir": 6 + }, + { + "Pos": [60, 13], + "Dir": 2 + }, + { + "Pos": [69, 8], + "Dir": 6 + }, + { + "Pos": [70, 8], + "Dir": 5 + }, + { + "Pos": [69, 7], + "Dir": 2 + }, + { + "Pos": [70, 7], + "Dir": 4 + }, + { + "Pos": [60, 57], + "Dir": 7 + }, + { + "Pos": [52, 50], + "Dir": 5 + }, + { + "Pos": [83, 39], + "Dir": 7 + }, + { + "Pos": [84, 31], + "Dir": 0 + }, + { + "Pos": [84, 33], + "Dir": 7 + }, + { + "Pos": [84, 44], + "Dir": 5 + }, + { + "Pos": [84, 46], + "Dir": 6 + }, + { + "Pos": [79, 60], + "Dir": 7 + }, + { + "Pos": [85, 90], + "Dir": 2 + }, + { + "Pos": [96, 81], + "Dir": 1 + }, + { + "Pos": [41, 56], + "Dir": 0 + }, + { + "Pos": [45, 54], + "Dir": 6 + }, + { + "Pos": [35, 41], + "Dir": 0 + }, + { + "Pos": [38, 37], + "Dir": 7 + }, + { + "Pos": [44, 37], + "Dir": 7 + }, + { + "Pos": [41, 37], + "Dir": 6 + }, + { + "Pos": [47, 42], + "Dir": 4 + }] + }, + { + "Index": 0, + "Places": [{ + "Pos": [40, 83], + "Dir": 2 + }, + { + "Pos": [32, 85], + "Dir": 7 + }, + { + "Pos": [49, 86], + "Dir": 7 + }, + { + "Pos": [37, 71], + "Dir": 6 + }, + { + "Pos": [27, 70], + "Dir": 7 + }, + { + "Pos": [34, 62], + "Dir": 1 + }, + { + "Pos": [29, 57], + "Dir": 0 + }, + { + "Pos": [26, 60], + "Dir": 1 + }, + { + "Pos": [21, 54], + "Dir": 6 + }, + { + "Pos": [23, 55], + "Dir": 3 + }, + { + "Pos": [18, 52], + "Dir": 2 + }, + { + "Pos": [19, 51], + "Dir": 5 + }, + { + "Pos": [20, 50], + "Dir": 2 + }, + { + "Pos": [23, 41], + "Dir": 6 + }, + { + "Pos": [5, 46], + "Dir": 6 + }, + { + "Pos": [10, 19], + "Dir": 4 + }, + { + "Pos": [33, 49], + "Dir": 4 + }, + { + "Pos": [37, 26], + "Dir": 6 + }, + { + "Pos": [35, 23], + "Dir": 6 + }, + { + "Pos": [34, 13], + "Dir": 2 + }, + { + "Pos": [46, 10], + "Dir": 2 + }, + { + "Pos": [45, 16], + "Dir": 3 + }, + { + "Pos": [58, 14], + "Dir": 2 + }, + { + "Pos": [65, 19], + "Dir": 4 + }, + { + "Pos": [65, 4], + "Dir": 6 + }, + { + "Pos": [66, 3], + "Dir": 6 + }, + { + "Pos": [45, 56], + "Dir": 7 + }, + { + "Pos": [54, 60], + "Dir": 7 + }, + { + "Pos": [50, 52], + "Dir": 3 + }, + { + "Pos": [58, 60], + "Dir": 1 + }, + { + "Pos": [70, 34], + "Dir": 1 + }, + { + "Pos": [70, 32], + "Dir": 0 + }, + { + "Pos": [70, 44], + "Dir": 3 + }, + { + "Pos": [70, 46], + "Dir": 7 + }, + { + "Pos": [82, 31], + "Dir": 1 + }, + { + "Pos": [79, 43], + "Dir": 0 + }, + { + "Pos": [96, 78], + "Dir": 5 + }, + { + "Pos": [94, 85], + "Dir": 7 + }, + { + "Pos": [92, 87], + "Dir": 4 + }, + { + "Pos": [88, 90], + "Dir": 0 + }, + { + "Pos": [40, 43], + "Dir": 0 + }, + { + "Pos": [41, 41], + "Dir": 7 + }, + { + "Pos": [42, 43], + "Dir": 3 + }] + }, + { + "Index": 1, + "Places": [{ + "Pos": [34, 70], + "Dir": 1 + }, + { + "Pos": [34, 80], + "Dir": 6 + }, + { + "Pos": [48, 71], + "Dir": 2 + }, + { + "Pos": [48, 81], + "Dir": 3 + }, + { + "Pos": [27, 66], + "Dir": 7 + }, + { + "Pos": [31, 62], + "Dir": 0 + }, + { + "Pos": [28, 36], + "Dir": 4 + }, + { + "Pos": [32, 20], + "Dir": 7 + }, + { + "Pos": [37, 16], + "Dir": 2 + }, + { + "Pos": [36, 12], + "Dir": 4 + }, + { + "Pos": [60, 8], + "Dir": 4 + }, + { + "Pos": [60, 18], + "Dir": 7 + }, + { + "Pos": [66, 4], + "Dir": 7 + }, + { + "Pos": [71, 17], + "Dir": 1 + }, + { + "Pos": [73, 17], + "Dir": 5 + }, + { + "Pos": [55, 47], + "Dir": 5 + }, + { + "Pos": [60, 50], + "Dir": 1 + }, + { + "Pos": [59, 45], + "Dir": 3 + }, + { + "Pos": [61, 43], + "Dir": 1 + }, + { + "Pos": [63, 41], + "Dir": 2 + }, + { + "Pos": [73, 46], + "Dir": 6 + }, + { + "Pos": [78, 50], + "Dir": 3 + }, + { + "Pos": [81, 50], + "Dir": 0 + }, + { + "Pos": [73, 33], + "Dir": 1 + }, + { + "Pos": [79, 30], + "Dir": 1 + }, + { + "Pos": [37, 43], + "Dir": 1 + }, + { + "Pos": [38, 41], + "Dir": 7 + }, + { + "Pos": [44, 41], + "Dir": 4 + }, + { + "Pos": [45, 43], + "Dir": 3 + }] + }, + { + "Index": 4, + "Places": [{ + "Pos": [32, 73], + "Dir": 0 + }, + { + "Pos": [10, 39], + "Dir": 7 + }] + }, + { + "Index": 3, + "Places": [{ + "Pos": [50, 74], + "Dir": 7 + }, + { + "Pos": [21, 34], + "Dir": 2 + }, + { + "Pos": [8, 44], + "Dir": 3 + }, + { + "Pos": [55, 11], + "Dir": 4 + }, + { + "Pos": [55, 16], + "Dir": 5 + }, + { + "Pos": [65, 5], + "Dir": 0 + }] + }], + "StaticObjectives": [], + "StaticKeys": [{ + "Index": 0, + "Positions": [[14, 44]] + }, + { + "Index": 1, + "Positions": [[20, 18]] + }, + { + "Index": 2, + "Positions": [[72, 16]] + }, + { + "Index": 3, + "Positions": [[51, 34]] + }], + "StaticPickups": [{ + "Pickup": "stimpack", + "Positions": [[39, 95], + [37, 69], + [37, 69], + [26, 40], + [19, 68], + [40, 14], + [57, 13], + [70, 57], + [73, 60], + [85, 31]] + }, + { + "Pickup": "health_bonus", + "Positions": [[26, 65], + [30, 61], + [26, 71], + [27, 39], + [28, 39], + [28, 40], + [5, 43], + [6, 43], + [7, 42], + [9, 38], + [10, 37], + [11, 37], + [12, 45], + [15, 42], + [19, 64], + [14, 62], + [11, 16], + [27, 25], + [27, 27], + [28, 27], + [28, 29], + [34, 48], + [31, 45], + [62, 18], + [65, 12], + [69, 15], + [70, 15], + [69, 6], + [70, 6], + [92, 38], + [92, 41], + [92, 43], + [68, 65], + [68, 66], + [74, 59], + [74, 60], + [85, 61], + [85, 63], + [83, 71], + [80, 74], + [83, 77], + [86, 74], + [39, 53], + [43, 53], + [42, 55], + [40, 55], + [43, 34], + [45, 34], + [47, 34], + [48, 34], + [71, 15]] + }, + { + "Pickup": "armor_bonus", + "Positions": [[34, 84], + [46, 72], + [34, 73], + [29, 37], + [21, 44], + [21, 43], + [7, 55], + [9, 56], + [10, 57], + [21, 69], + [24, 69], + [24, 65], + [5, 17], + [27, 29], + [62, 10], + [75, 15], + [69, 10], + [73, 57], + [83, 56], + [85, 56], + [83, 73], + [82, 74], + [84, 74], + [83, 75], + [50, 33], + [50, 36], + [52, 36], + [52, 33], + [8, 14], + [68, 1], + [70, 1], + [91, 39]] + }, + { + "Pickup": "armor", + "Positions": [[27, 42], + [6, 24], + [45, 57], + [81, 75]] + }, + { + "Pickup": "ammo_Bullets", + "Positions": [[39, 91], + [39, 91], + [37, 85], + [29, 39], + [5, 21], + [31, 37], + [51, 9], + [51, 9], + [65, 14], + [84, 38], + [85, 45]] + }, + { + "Pickup": "ammo_Shells", + "Positions": [[43, 91], + [27, 38], + [17, 28], + [18, 45], + [11, 58], + [8, 56], + [12, 62], + [15, 61], + [18, 61], + [40, 12], + [51, 18], + [66, 18], + [35, 44], + [47, 44], + [86, 37], + [85, 41]] + }, + { + "Pickup": "medikit", + "Positions": [[28, 33], + [27, 33], + [41, 83], + [20, 21], + [10, 14], + [35, 20], + [35, 20], + [51, 13], + [41, 38], + [41, 53], + [45, 69], + [84, 72], + [84, 76], + [65, 39], + [86, 45]] + }, + { + "Pickup": "supercharge", + "Positions": [[22, 67], + [83, 74]] + }, + { + "Pickup": "megaarmor", + "Positions": [[82, 72]] + }, + { + "Pickup": "bullet_pickup2", + "Positions": [[27, 32], + [29, 32]] + }, + { + "Pickup": "shells2", + "Positions": [[30, 65], + [74, 61], + [75, 61]] + }, + { + "Pickup": "rockets2", + "Positions": [[8, 17], + [51, 27], + [74, 65]] + }, + { + "Pickup": "backpack", + "Positions": [[18, 19]] + }], + "Start": [41, 95], + "Exits": [{ + "Rect": [91, + 36, + 2, + 8], + "Mission": 3, + "Hidden": false + }, + { + "Rect": [50, + 33, + 2, + 4], + "Mission": 8, + "Hidden": false + }], + "AltFloorsEnabled": true + }, + { + "Title": "Command Control", + "Description": "", + "Type": "Static", + "Width": 88, + "Height": 88, + "ExitStyle": "hazard", + "KeyStyle": "chip", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Fists", "Marine Pistol"], + "WeaponPersist": true, + "SkipDebrief": false, + "TileClasses": { + "0": { + "Name": "door", + "Type": "Door", + "Style": "doom", + "Mask": "fffafaff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "427027ff", + "MaskAlt": "526420ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "10": { + "Name": "wall", + "Type": "Wall", + "Style": "techwall", + "Mask": "515151ff", + "MaskAlt": "26a337ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "11": { + "Name": "wall", + "Type": "Wall", + "Style": "hightech", + "Mask": "808080ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "12": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "1a0c72ff", + "MaskAlt": "808080ff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "13": { + "Name": "tile", + "Type": "Floor", + "Style": "metal", + "Mask": "808080ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "14": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "deb462ff", + "MaskAlt": "c49c50ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "15": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "5d4f44ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "16": { + "Name": "tile", + "Type": "Floor", + "Style": "water", + "Mask": "48a638ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "nukage" + }, + "17": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "4a4a4aff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "18": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "513e2bff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "19": { + "Name": "wall", + "Type": "Wall", + "Style": "colony", + "Mask": "434343ff", + "MaskAlt": "666565ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "2": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "808080ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "20": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "b47640ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "21": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "563920ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "22": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "4a4a4aff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "23": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "725637ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "24": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "a3805fff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "25": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "626262ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "26": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "b6b4b4ff", + "MaskAlt": "8a8a8aff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "27": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "808080ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "28": { + "Name": "tile", + "Type": "Floor", + "Style": "wood2", + "Mask": "705c48ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "29": { + "Name": "tile", + "Type": "Floor", + "Style": "wood2", + "Mask": "b89876ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "805732ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "30": { + "Name": "tile", + "Type": "Floor", + "Style": "cobble", + "Mask": "536448ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "31": { + "Name": "wall", + "Type": "Wall", + "Style": "support", + "Mask": "515151ff", + "MaskAlt": "3768f5ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "32": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "8e8e8eff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "5": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "b6b4b4ff", + "MaskAlt": "6c8a44ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "6": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "b6b4b4ff", + "MaskAlt": "875e36ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "7": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "290ceeff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "8": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "696969ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "9": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "b6b4b4ff", + "MaskAlt": "727e5fff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + } + }, + "Tiles": ["4,4,4,4,4,4,4,4,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,14,14,17,3,3,3,3,3,3,3,3,3,3,3,3,14,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,14,17,17,3,3,3,3,3,3,3,3,3,3,3,3,3,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,14,17,17,3,3,3,3,3,3,3,3,3,3,3,3,3,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,14,17,17,3,3,3,3,3,3,3,3,3,3,3,3,3,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,14,17,17,3,3,3,3,3,3,3,3,3,3,3,3,3,31,7,7,7,7,7,7,7,7,7,7,7,7,7,31,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "14,14,14,5,5,5,5,14,17,17,3,3,3,3,1,1,1,1,1,1,1,3,3,31,7,7,7,7,7,7,7,7,7,7,7,7,7,31,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,4,4,4,4,4,4,4,4,4", + "14,17,17,5,17,17,17,14,17,17,32,32,32,32,3,3,3,3,3,3,3,3,3,31,7,7,7,7,7,7,7,7,7,7,7,7,7,31,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,10,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,10,4,4,4,4,4,4,4,4,4", + "14,17,17,17,17,17,17,32,17,17,32,32,32,32,3,3,3,3,3,3,3,3,3,0,7,7,7,11,0,11,0,0,0,0,11,7,7,31,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,10,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,10,4,4,4,4,4,4,4,4,4", + "14,17,17,17,17,17,17,32,17,17,32,32,32,32,3,3,3,3,3,3,3,3,3,0,7,7,7,0,7,0,7,7,7,7,0,7,7,31,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,10,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,10,4,4,4,4,4,4,4,4,4", + "14,17,17,17,17,17,17,32,17,17,32,32,32,32,3,3,3,3,3,3,3,3,3,0,7,7,7,0,7,0,7,7,7,7,0,7,7,31,4,4,4,4,4,4,4,4,4,4,4,4,4,4,14,14,6,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,7,7,10,4,4,4,4,4,4,4,4,4", + "14,17,17,5,17,17,17,14,17,17,3,3,3,3,1,1,1,1,1,1,1,3,3,31,7,7,7,0,7,11,11,7,7,11,11,7,7,31,4,4,14,14,14,14,14,14,14,14,14,14,14,14,14,13,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,12,7,7,10,4,4,4,4,4,4,4,4,4", + "14,14,14,5,5,5,5,14,17,17,3,3,3,3,3,3,3,3,3,3,3,3,3,31,7,7,7,0,7,7,7,7,7,7,0,7,7,31,4,14,14,13,13,13,13,13,13,13,13,13,13,13,13,13,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,12,7,7,8,8,8,8,4,4,4,4,4,4", + "4,4,4,4,4,4,4,14,17,17,3,3,3,3,3,3,3,3,3,3,3,3,3,31,7,7,7,0,7,7,7,7,7,7,0,7,7,31,14,14,13,13,13,13,13,13,13,13,13,13,13,13,13,13,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,18,18,18,0,7,7,8,4,4,4,4,4,4", + "4,4,4,4,4,4,4,14,17,17,3,3,3,3,3,3,3,3,3,3,3,3,3,31,7,7,7,0,7,7,7,7,7,7,0,7,7,31,14,13,13,13,13,13,13,13,13,13,13,13,4,4,13,13,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,18,18,18,0,7,7,8,4,4,4,4,4,4", + "4,4,4,4,4,4,4,14,17,17,3,3,3,3,3,3,3,3,3,3,3,3,3,31,7,7,7,11,11,7,7,11,11,7,0,7,7,14,13,13,13,13,13,13,13,13,14,14,14,14,14,14,13,13,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,18,18,18,0,7,7,8,4,4,4,4,4,4", + "4,4,4,4,4,4,4,14,17,17,3,3,3,3,3,3,3,3,3,3,3,3,3,31,7,7,7,0,7,7,7,7,0,7,0,7,7,14,13,13,13,13,13,13,13,14,14,4,4,4,4,14,14,13,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,0,0,8,7,7,8,4,4,4,4,4,4", + "4,4,4,4,4,4,4,14,14,17,3,3,3,3,3,3,3,3,3,3,3,3,14,31,7,7,7,0,7,7,7,7,0,7,0,7,7,14,13,13,13,13,13,13,14,14,4,4,4,4,4,4,14,14,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,7,7,7,7,7,8,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,14,14,14,14,14,0,0,14,14,14,14,14,14,14,14,31,7,7,7,11,0,0,0,0,11,0,11,7,7,14,13,13,13,13,13,14,14,4,4,4,4,4,4,4,4,14,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,7,7,7,7,7,8,4,4,4,4,4,4", + "4,4,4,1,1,1,1,1,1,1,1,1,1,28,28,1,1,1,1,1,11,11,11,31,7,7,7,7,7,7,7,7,7,7,7,7,7,14,13,13,13,13,14,14,4,4,4,4,4,4,4,4,4,4,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,7,7,7,7,7,8,4,4,4,4,4,4", + "4,4,4,1,28,28,28,28,28,28,28,29,29,29,29,12,16,16,16,16,24,24,24,22,22,22,31,31,31,7,7,7,7,7,7,7,7,14,13,13,13,14,14,4,4,4,4,4,4,4,4,4,4,4,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,8,8,8,8,8,8,4,4,4,4,4,4", + "4,4,4,1,28,28,28,28,28,28,28,29,29,29,29,12,16,16,16,16,24,24,24,24,24,24,22,22,31,7,7,7,7,7,7,7,7,14,13,13,13,14,4,4,4,4,1,4,4,4,4,4,4,4,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,1,28,28,28,28,28,28,28,29,29,29,29,12,16,16,16,16,24,24,24,24,24,24,24,22,31,7,7,7,7,7,7,7,7,14,13,13,13,14,4,4,4,4,1,1,1,1,1,1,1,1,6,6,6,7,7,7,7,7,6,6,6,3,3,3,6,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,1,28,28,1,1,1,1,1,29,29,29,29,1,16,16,16,24,24,24,24,24,24,24,24,24,22,7,7,7,7,7,7,7,7,14,13,13,13,14,4,4,4,3,1,1,3,3,3,3,3,1,1,4,11,11,11,11,11,11,11,4,1,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,1,28,28,1,1,1,1,30,12,12,12,12,1,16,16,16,24,24,24,24,24,24,24,24,24,22,31,31,7,7,7,31,31,31,14,13,13,13,14,4,4,4,1,1,3,3,3,3,3,3,3,1,1,4,4,4,4,4,4,4,4,1,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,1,28,28,28,28,28,1,30,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,22,4,31,7,7,7,31,4,4,1,3,3,3,1,1,1,1,1,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,4,4,4,1,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,1,28,28,28,28,28,1,30,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,22,31,31,7,7,7,31,4,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,4,4,1,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,1,28,28,28,28,28,28,30,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,24,7,7,7,7,7,31,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,4,1,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,1,28,28,28,28,28,28,30,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,24,24,7,7,7,7,7,31,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4", + "4,4,4,1,28,28,28,28,28,28,30,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,24,24,7,7,7,7,7,31,4,1,3,3,3,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,1,1,1,1,3,3,3,3,1,1,3,3,3,3,1,1,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,1,28,28,28,28,28,1,30,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,24,22,31,31,31,31,31,14,14,14,3,3,3,14,14,14,3,3,1,1,3,3,3,3,3,3,3,1,1,4,4,1,1,3,3,3,3,1,1,3,3,3,3,1,3,3,3,3,3,3,3,3,1,5,5,5,5,5,5,5,5", + "4,4,4,1,28,28,28,28,28,1,30,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,24,22,4,4,4,14,14,15,15,15,15,15,15,15,15,14,14,14,1,1,1,3,3,3,3,3,1,1,4,4,4,4,1,1,3,3,3,3,1,1,3,3,3,3,3,3,20,20,20,20,3,3,3,20,0,20,20,20,20,20,5", + "4,4,4,1,28,28,28,28,28,1,30,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,24,22,4,4,14,14,15,15,15,15,15,15,15,15,15,15,15,14,14,14,1,1,1,1,1,1,1,4,4,4,4,4,4,1,1,3,3,3,3,1,1,3,3,3,3,3,20,20,20,20,3,3,3,20,0,20,20,20,20,20,5", + "4,4,4,1,28,28,28,28,28,1,30,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,24,24,22,4,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,14,14,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,3,3,3,3,1,1,3,3,3,3,20,20,20,20,3,3,3,20,0,20,20,20,20,20,5", + "4,4,4,1,28,28,28,28,1,1,30,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,24,22,22,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,14,14,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,3,3,3,3,1,1,1,3,3,20,20,20,20,3,3,1,5,5,9,9,5,5,5,5", + "4,4,4,1,28,28,28,28,1,1,30,30,30,30,30,30,30,24,24,24,24,24,24,24,24,24,22,22,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,14,14,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,3,3,3,3,1,1,3,3,20,20,20,20,3,3,1,4,5,3,3,5,4,4,4", + "4,4,4,1,28,28,28,28,1,1,1,1,1,1,1,1,1,22,22,22,22,24,24,22,22,22,22,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,3,3,3,3,3,3,3,20,20,20,20,3,3,1,4,5,3,3,5,4,4,4", + "4,4,4,1,28,28,28,28,28,5,5,5,5,5,5,5,5,5,5,5,22,24,24,22,4,4,22,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,14,14,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,3,3,3,3,3,3,20,20,20,20,3,3,1,4,5,3,3,5,4,4,4", + "4,4,4,1,28,28,28,28,28,28,28,28,28,28,28,28,5,28,28,28,22,24,24,22,4,4,22,14,15,15,15,15,15,15,16,16,15,15,15,15,15,16,16,15,15,15,15,15,15,15,14,4,4,4,4,11,19,19,19,19,19,19,19,19,19,4,1,1,1,1,1,3,3,20,20,20,20,3,3,1,4,5,3,3,5,4,4,4", + "4,4,4,1,28,28,28,28,28,28,28,28,28,28,28,28,5,28,28,28,22,24,24,22,4,4,14,14,15,15,15,15,15,16,16,16,15,15,15,15,15,16,16,16,15,15,15,15,15,15,14,4,4,4,4,11,7,7,7,7,17,17,17,17,19,4,4,4,4,4,1,3,3,20,20,20,20,3,3,1,4,5,3,3,5,4,4,4", + "4,4,4,1,28,28,28,28,28,28,28,28,28,28,28,28,5,28,5,5,22,24,24,22,22,22,14,15,15,15,15,15,16,16,16,16,5,0,0,0,5,16,16,16,16,15,15,15,15,15,14,14,4,4,4,11,7,7,7,17,17,17,17,17,19,4,1,1,1,1,1,3,3,20,20,20,20,3,3,1,4,5,5,5,5,4,4,4", + "4,4,4,1,1,28,28,28,28,5,5,5,5,5,28,28,5,28,5,22,24,24,24,24,22,22,14,15,15,15,15,15,16,16,16,5,15,15,15,15,15,5,16,16,16,15,15,15,15,15,15,14,4,4,4,11,7,7,17,17,17,17,17,17,19,1,1,3,3,3,3,3,3,20,20,20,20,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,4,1,1,1,1,1,1,5,28,28,5,28,28,28,28,5,22,24,24,24,24,22,14,14,15,15,15,15,16,16,16,5,15,15,15,15,15,15,15,5,16,16,16,15,15,15,15,15,14,11,11,11,11,7,17,17,17,17,17,17,17,17,3,3,3,3,3,3,3,3,20,20,20,20,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,5,5,5,5,5,5,5,5,28,28,5,28,28,28,28,5,22,24,24,24,24,22,14,15,15,15,15,15,16,16,5,15,15,15,15,15,15,15,15,15,5,16,16,15,15,15,15,15,14,19,7,7,7,17,17,17,17,17,17,17,17,17,3,3,3,3,3,3,3,3,20,20,20,20,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,5,28,28,28,5,28,28,28,28,28,5,28,28,28,5,5,22,24,24,24,24,22,14,15,15,15,15,15,15,15,5,15,15,15,15,15,15,15,15,15,5,15,15,15,15,15,15,15,14,19,7,7,17,17,17,17,17,17,17,17,17,17,4,3,3,3,3,3,3,3,20,20,20,20,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,5,28,28,28,5,28,28,28,28,28,28,28,28,28,5,5,22,24,24,24,24,22,14,15,15,15,15,15,15,15,0,15,15,15,15,15,15,15,15,15,0,15,15,15,15,15,15,15,14,19,7,17,17,17,17,17,17,17,17,17,17,19,1,3,3,3,3,3,3,3,20,20,20,20,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,5,5,28,28,5,28,5,5,28,28,28,28,28,28,28,28,22,24,24,24,24,24,15,15,15,15,15,15,15,15,0,15,15,15,15,15,15,15,15,15,0,15,15,15,15,15,15,15,14,19,17,17,17,17,17,17,17,17,17,17,17,19,1,1,1,1,1,1,3,3,20,20,20,20,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,4,5,28,28,5,28,5,26,28,28,5,5,5,28,28,28,22,24,24,24,24,24,15,15,15,15,15,15,15,15,0,15,15,15,15,15,15,15,15,15,0,15,15,15,15,15,15,15,14,19,17,17,17,17,17,17,17,17,17,17,7,19,4,4,4,1,1,1,3,3,20,20,20,20,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,4,5,28,28,5,28,5,26,28,28,26,4,5,28,28,28,22,24,24,24,24,24,15,15,15,15,15,15,15,15,0,15,15,15,15,15,15,15,15,15,0,15,15,15,15,15,15,15,14,19,17,17,17,17,17,17,17,17,17,7,7,19,4,4,1,1,3,3,3,3,20,20,20,20,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,4,5,28,28,28,28,5,26,28,28,26,4,27,27,27,5,22,24,24,24,24,24,15,15,15,15,15,15,15,15,0,15,15,15,15,15,15,15,15,15,0,15,15,15,15,15,15,15,14,19,17,17,17,17,17,17,17,17,7,7,7,19,4,1,1,3,3,3,3,3,20,20,20,20,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,4,5,28,28,28,28,5,26,28,28,26,27,27,24,24,27,22,24,24,24,24,24,15,15,15,15,15,15,15,15,5,15,15,15,15,15,15,15,15,15,5,15,15,15,15,15,15,15,14,19,17,17,17,17,17,17,17,7,11,11,11,11,1,1,3,3,3,3,3,3,20,20,20,20,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,4,5,5,5,5,5,5,26,28,28,26,27,24,24,24,24,22,24,24,24,24,22,14,15,15,15,15,15,16,16,5,15,15,15,15,15,15,15,15,15,5,16,16,15,15,15,15,15,14,19,17,17,17,17,17,17,7,7,11,4,4,1,1,3,3,3,3,3,3,3,20,20,20,20,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,26,26,26,26,4,4,4,26,28,28,26,27,24,24,24,24,22,24,24,24,24,22,14,15,15,15,15,15,16,16,16,5,15,15,15,15,15,15,15,5,16,16,16,15,15,15,15,15,14,19,17,17,17,17,17,7,7,7,11,4,1,1,3,3,3,1,1,1,3,3,20,20,20,20,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,26,28,28,26,4,4,4,26,28,28,26,27,24,24,24,24,22,22,24,24,22,22,14,15,15,15,15,15,15,16,16,16,5,15,15,15,15,15,5,16,16,16,15,15,15,15,15,15,14,19,17,17,17,17,7,7,7,7,11,1,1,3,3,3,1,1,3,3,3,3,20,20,20,20,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,26,28,28,26,26,26,26,26,28,28,26,27,24,24,24,24,27,1,24,24,1,1,14,14,15,15,15,15,15,16,16,16,16,5,0,0,0,5,16,16,16,16,15,15,15,15,15,15,14,19,19,19,18,18,19,19,19,19,11,1,3,3,3,1,1,3,3,3,3,3,20,20,20,20,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,26,28,28,28,28,28,26,26,28,28,26,27,27,24,24,27,1,24,24,24,24,1,4,14,15,15,15,15,15,15,16,16,16,15,15,15,15,15,16,16,16,15,15,15,15,15,15,15,14,4,4,19,18,18,19,4,4,1,1,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,26,28,28,28,28,28,26,26,28,28,26,4,27,24,24,27,1,24,24,24,24,1,4,14,15,15,15,15,15,15,15,16,16,15,15,15,15,15,16,16,15,15,15,15,15,15,15,15,14,4,4,19,18,18,19,4,1,1,3,3,3,1,1,3,3,3,1,1,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,26,26,26,26,26,28,26,26,28,28,26,27,27,24,24,27,1,24,24,24,24,1,1,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,14,1,4,19,18,18,19,1,1,3,3,3,1,1,3,3,3,3,1,1,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,26,26,26,26,26,28,26,26,28,28,26,27,24,24,24,27,1,24,24,24,24,24,1,1,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1,1,1,18,18,1,1,3,3,3,1,1,1,3,3,3,1,1,1,1,1,0,0,1,1,1,1,1,4,4,4,4,4,4,4,4", + "4,4,4,26,28,28,26,26,28,26,26,28,28,26,27,24,24,27,1,1,24,24,24,24,24,24,1,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,3,3,3,3,3,3,3,3,3,1,1,4,1,3,3,3,1,4,4,4,1,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,26,28,28,26,26,28,26,26,28,28,27,24,24,24,27,1,24,24,24,24,24,24,24,24,1,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,3,3,3,3,3,3,3,3,1,1,4,4,1,3,3,3,1,4,4,4,1,18,18,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,26,28,26,26,26,28,26,26,28,28,27,24,24,24,27,1,24,24,24,24,24,24,24,24,24,1,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,3,3,3,3,3,3,3,1,1,4,4,4,1,3,3,3,1,4,4,1,1,18,18,1,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,26,28,26,26,26,28,26,26,28,28,27,24,24,24,27,1,24,24,24,24,24,24,24,24,24,24,1,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,14,14,14,14,14,14,14,1,1,1,1,1,1,1,1,4,4,4,4,1,3,3,3,1,4,4,1,1,18,18,1,1,1,1,4,4,4,4,4,4,4,4,4", + "4,4,4,26,28,28,28,28,28,28,28,28,28,27,24,24,24,27,1,24,24,24,24,24,24,24,24,24,24,24,1,1,14,14,14,15,15,15,15,15,15,15,15,15,14,22,12,12,12,22,22,4,4,4,4,4,4,4,4,1,4,4,4,4,1,3,3,3,1,4,1,1,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4", + "4,4,4,26,28,28,28,28,28,28,28,28,28,27,24,24,24,27,1,24,24,24,24,24,24,24,24,24,24,24,24,1,1,4,14,14,14,14,15,15,14,14,14,14,22,3,3,3,3,3,22,4,4,4,4,4,1,1,1,1,1,1,1,1,1,3,3,3,1,4,1,3,3,3,3,3,3,3,1,1,4,4,4,4,4,4,4,4", + "4,4,4,26,26,26,26,26,28,28,26,28,28,26,27,24,24,24,1,24,24,24,24,24,24,24,24,24,24,24,24,24,1,1,4,4,22,22,23,23,22,22,22,22,3,3,3,3,3,3,22,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,4,26,28,28,28,28,28,28,28,28,26,27,24,24,24,1,24,24,24,24,24,24,24,24,24,24,24,24,24,24,1,4,4,22,23,23,23,23,22,22,3,3,3,3,3,3,3,22,4,4,4,4,1,1,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,4,26,28,28,28,28,28,28,28,28,26,27,24,24,24,1,24,24,24,24,24,24,24,24,24,24,24,24,24,24,1,4,4,22,23,23,23,23,22,22,3,3,3,3,3,3,3,22,22,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,26,26,28,28,26,26,26,26,28,28,26,26,24,24,24,1,24,24,24,24,24,24,25,25,25,25,25,1,24,24,1,4,4,22,23,23,23,23,22,22,3,3,3,3,3,3,3,21,22,22,4,1,1,3,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,3,3,3,3,3,1,1,4,4,4,4,4,4,4", + "4,4,4,26,28,28,28,28,28,28,26,28,28,26,26,24,24,24,1,24,24,24,24,24,25,25,25,25,25,25,1,24,24,1,4,4,22,23,23,23,23,22,22,3,3,3,3,3,3,3,21,21,22,22,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4", + "4,4,4,26,28,28,28,28,28,28,26,28,28,26,26,24,24,24,1,24,24,24,24,25,25,25,25,1,1,1,1,24,24,1,4,4,22,23,23,23,23,22,22,3,3,3,3,3,3,21,21,21,21,21,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4", + "4,4,4,26,26,26,26,26,28,28,26,28,28,26,26,24,24,24,1,24,24,24,25,25,25,25,25,1,1,4,1,24,24,1,4,4,22,23,23,23,23,23,23,3,3,3,3,3,3,21,21,21,21,21,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,1,1,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4", + "4,4,4,4,26,26,26,26,28,28,26,28,28,26,26,24,24,24,1,24,24,25,25,25,1,25,25,25,1,4,1,24,24,1,4,4,22,23,23,23,23,23,23,3,3,3,3,3,21,21,21,21,21,21,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,1,1,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4", + "4,4,4,4,26,28,28,28,28,28,26,28,28,24,24,24,24,24,1,24,24,25,25,1,1,25,25,25,1,1,1,24,24,1,4,4,22,23,23,23,23,23,23,3,3,3,3,3,21,21,21,21,21,21,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,1,1,3,3,3,3,3,1,1,4,4,4,4,4,4,4", + "4,4,4,4,26,28,28,26,26,26,26,28,24,24,24,24,24,24,1,24,24,25,25,1,1,1,25,25,25,1,1,24,24,1,4,4,22,23,23,23,23,23,23,3,3,3,3,21,21,21,21,21,21,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,1,1,3,3,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,4,26,28,28,26,26,26,26,26,24,24,1,1,1,1,1,24,24,25,25,1,4,1,25,25,25,1,1,24,24,1,4,4,22,22,3,3,22,22,22,3,3,3,3,21,21,21,21,21,21,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,1,3,3,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,4,26,28,28,26,28,28,26,26,24,24,24,24,24,24,0,24,24,25,25,1,4,1,1,25,25,1,24,24,24,1,4,4,4,1,3,3,1,4,22,22,22,22,22,22,22,22,22,22,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,1,1,16,16,16,16,1,4,4,4,4,4,4,4,4", + "4,4,4,26,26,28,28,26,28,28,26,26,24,24,24,24,24,24,0,24,24,1,1,1,1,1,1,24,24,24,24,24,24,1,4,4,4,1,3,3,1,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,1,1,16,16,16,16,4,1,4,4,4,4,4,4,4,4", + "4,4,4,26,28,28,28,26,28,28,28,28,24,24,24,24,24,24,0,24,24,1,1,1,1,24,24,24,24,24,24,24,24,1,4,4,4,1,18,18,1,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,16,16,16,16,16,1,1,4,4,4,4,4,4,4,4", + "4,4,4,26,28,28,28,26,28,28,28,28,24,24,26,1,1,1,1,24,24,24,24,24,24,24,24,24,24,24,24,24,24,1,4,4,4,1,18,18,1,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,16,16,16,16,16,16,16,16,16,16,16,16,16,1,1,4,4,4,4,4,4,4,4,4", + "4,4,4,26,28,28,28,26,28,28,28,28,24,24,26,3,3,3,1,1,24,24,24,24,24,24,24,24,24,24,24,24,1,1,4,4,1,1,18,18,1,1,4,4,4,4,1,1,1,1,1,1,1,3,3,3,3,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,1,1,4,4,4,4,4,4,4,4,4,4", + "4,4,4,26,28,28,26,26,26,28,28,26,28,28,26,26,26,26,26,1,1,24,24,24,24,24,24,24,24,24,24,1,1,4,4,4,1,3,3,3,3,1,1,1,1,1,1,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,1,1,1,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,26,28,28,28,28,28,28,28,26,28,28,28,28,28,28,28,26,1,1,24,24,24,24,24,24,24,24,1,1,4,4,4,4,1,3,3,3,3,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,3,3,3,3,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,26,28,28,28,28,28,28,28,26,28,28,28,28,28,28,28,26,4,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,1,3,3,3,3,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,26,26,26,26,26,26,26,26,26,26,26,26,26,26,28,28,26,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,16,16,16,16,16,16,16,16,16,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,26,28,28,26,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,3,3,16,16,16,1,1,1,1,1,1,1,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,26,28,28,26,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,26,26,26,26,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,2048,2048,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,2048,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,2048,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,2048,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,512,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,2048,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,2048,2048,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,512,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "rod", + "Positions": [[78, 29], + [71, 29], + [78, 57], + [71, 57]] + }, + { + "MapObject": "bone_blood", + "Positions": [[86, 73], + [77, 32], + [64, 54], + [48, 64], + [5, 39]] + }, + { + "MapObject": "blood0", + "Positions": [[80, 66], + [57, 70], + [75, 44], + [59, 49], + [63, 31], + [65, 21], + [72, 13], + [67, 8], + [25, 34], + [20, 21], + [5, 20], + [21, 3], + [10, 16], + [23, 51], + [30, 80], + [78, 73], + [55, 16], + [67, 84]] + }, + { + "MapObject": "barrel_nukage", + "Positions": [[79, 17], + [72, 8], + [67, 12], + [49, 14], + [40, 14], + [40, 28], + [39, 49], + [70, 37], + [70, 51], + [58, 61], + [67, 76], + [60, 72], + [61, 74], + [63, 75], + [65, 76], + [59, 68], + [59, 70], + [59, 85], + [27, 82], + [22, 72], + [14, 83], + [4, 78], + [15, 76], + [10, 67], + [8, 55], + [5, 50], + [16, 47], + [11, 23], + [15, 12], + [34, 19]] + }, + { + "MapObject": "Chaingun spawner", + "Positions": [[40, 51]] + }, + { + "MapObject": "Marine Shotgun spawner", + "Positions": [[69, 43], + [24, 69]] + }, + { + "MapObject": "Launcher spawner", + "Positions": [[74, 67]] + }, + { + "MapObject": "wscreen1", + "Positions": [[55, 7], + [57, 7], + [59, 7], + [61, 7], + [63, 7], + [65, 7], + [67, 7], + [69, 7], + [71, 7], + [73, 7], + [75, 7], + [77, 7], + [32, 19], + [28, 16], + [30, 12], + [20, 20], + [21, 20], + [22, 20], + [54, 43]] + }, + { + "MapObject": "wscreen2", + "Positions": [[56, 7], + [58, 7], + [60, 7], + [62, 7], + [64, 7], + [66, 7], + [68, 7], + [70, 7], + [72, 7], + [74, 7], + [76, 7], + [48, 23], + [49, 23], + [50, 23], + [51, 23], + [52, 23], + [29, 12], + [33, 12], + [31, 16], + [27, 19], + [46, 63], + [47, 63], + [48, 63], + [53, 43], + [55, 43]] + }], + "StaticCharacters": [{ + "Index": 2, + "Places": [{ + "Pos": [76, 57], + "Dir": 0 + }, + { + "Pos": [78, 56], + "Dir": 6 + }, + { + "Pos": [80, 18], + "Dir": 0 + }, + { + "Pos": [31, 9], + "Dir": 3 + }, + { + "Pos": [26, 11], + "Dir": 5 + }, + { + "Pos": [14, 21], + "Dir": 7 + }, + { + "Pos": [7, 28], + "Dir": 7 + }, + { + "Pos": [5, 31], + "Dir": 1 + }, + { + "Pos": [13, 38], + "Dir": 1 + }, + { + "Pos": [8, 45], + "Dir": 0 + }, + { + "Pos": [12, 43], + "Dir": 7 + }, + { + "Pos": [17, 48], + "Dir": 7 + }, + { + "Pos": [11, 47], + "Dir": 2 + }, + { + "Pos": [12, 51], + "Dir": 3 + }, + { + "Pos": [11, 55], + "Dir": 6 + }, + { + "Pos": [4, 60], + "Dir": 4 + }, + { + "Pos": [12, 60], + "Dir": 4 + }, + { + "Pos": [5, 73], + "Dir": 1 + }, + { + "Pos": [6, 82], + "Dir": 3 + }, + { + "Pos": [17, 84], + "Dir": 4 + }, + { + "Pos": [37, 49], + "Dir": 6 + }, + { + "Pos": [36, 47], + "Dir": 0 + }, + { + "Pos": [35, 48], + "Dir": 5 + }, + { + "Pos": [41, 48], + "Dir": 3 + }, + { + "Pos": [39, 52], + "Dir": 1 + }, + { + "Pos": [39, 45], + "Dir": 3 + }, + { + "Pos": [56, 84], + "Dir": 3 + }, + { + "Pos": [61, 84], + "Dir": 3 + }, + { + "Pos": [64, 84], + "Dir": 6 + }, + { + "Pos": [66, 84], + "Dir": 3 + }, + { + "Pos": [62, 74], + "Dir": 7 + }, + { + "Pos": [57, 75], + "Dir": 1 + }, + { + "Pos": [57, 67], + "Dir": 4 + }, + { + "Pos": [55, 56], + "Dir": 1 + }, + { + "Pos": [5, 55], + "Dir": 7 + }] + }, + { + "Index": 1, + "Places": [{ + "Pos": [71, 53], + "Dir": 6 + }, + { + "Pos": [72, 55], + "Dir": 4 + }, + { + "Pos": [74, 56], + "Dir": 1 + }, + { + "Pos": [67, 51], + "Dir": 1 + }, + { + "Pos": [67, 35], + "Dir": 5 + }, + { + "Pos": [68, 13], + "Dir": 5 + }, + { + "Pos": [70, 9], + "Dir": 0 + }, + { + "Pos": [58, 14], + "Dir": 0 + }, + { + "Pos": [77, 8], + "Dir": 4 + }, + { + "Pos": [74, 13], + "Dir": 5 + }, + { + "Pos": [74, 21], + "Dir": 0 + }, + { + "Pos": [78, 17], + "Dir": 0 + }, + { + "Pos": [79, 18], + "Dir": 6 + }, + { + "Pos": [79, 14], + "Dir": 6 + }, + { + "Pos": [57, 27], + "Dir": 0 + }, + { + "Pos": [51, 29], + "Dir": 4 + }, + { + "Pos": [39, 21], + "Dir": 2 + }, + { + "Pos": [57, 47], + "Dir": 5 + }, + { + "Pos": [57, 60], + "Dir": 0 + }, + { + "Pos": [57, 66], + "Dir": 5 + }, + { + "Pos": [45, 65], + "Dir": 4 + }, + { + "Pos": [32, 20], + "Dir": 1 + }] + }, + { + "Index": 3, + "Places": [{ + "Pos": [26, 7], + "Dir": 2 + }, + { + "Pos": [5, 36], + "Dir": 3 + }, + { + "Pos": [6, 40], + "Dir": 1 + }, + { + "Pos": [6, 44], + "Dir": 1 + }, + { + "Pos": [16, 54], + "Dir": 1 + }, + { + "Pos": [17, 54], + "Dir": 3 + }, + { + "Pos": [16, 56], + "Dir": 7 + }, + { + "Pos": [4, 69], + "Dir": 7 + }, + { + "Pos": [56, 13], + "Dir": 5 + }, + { + "Pos": [71, 12], + "Dir": 2 + }, + { + "Pos": [77, 17], + "Dir": 1 + }] + }, + { + "Index": 0, + "Places": [{ + "Pos": [76, 17], + "Dir": 0 + }, + { + "Pos": [79, 15], + "Dir": 5 + }, + { + "Pos": [61, 13], + "Dir": 0 + }, + { + "Pos": [59, 8], + "Dir": 6 + }, + { + "Pos": [75, 73], + "Dir": 6 + }, + { + "Pos": [21, 79], + "Dir": 0 + }, + { + "Pos": [24, 79], + "Dir": 4 + }, + { + "Pos": [31, 77], + "Dir": 2 + }, + { + "Pos": [31, 69], + "Dir": 5 + }, + { + "Pos": [26, 69], + "Dir": 0 + }, + { + "Pos": [23, 70], + "Dir": 2 + }, + { + "Pos": [21, 16], + "Dir": 3 + }, + { + "Pos": [22, 15], + "Dir": 5 + }, + { + "Pos": [21, 4], + "Dir": 5 + }, + { + "Pos": [22, 5], + "Dir": 0 + }, + { + "Pos": [33, 13], + "Dir": 2 + }, + { + "Pos": [33, 16], + "Dir": 2 + }] + }], + "StaticObjectives": [], + "StaticKeys": [{ + "Index": 0, + "Positions": [[9, 28]] + }, + { + "Index": 1, + "Positions": [[76, 12], + [71, 64]] + }, + { + "Index": 2, + "Positions": [[41, 44]] + }, + { + "Index": 3, + "Positions": [[26, 19], + [34, 7]] + }], + "StaticPickups": [{ + "Pickup": "stimpack", + "Positions": [[37, 62], + [40, 62], + [50, 24], + [50, 24], + [50, 59], + [50, 59], + [60, 52], + [60, 52], + [74, 65], + [74, 65], + [76, 65], + [28, 68], + [18, 51], + [32, 28]] + }, + { + "Pickup": "armor_bonus", + "Positions": [[76, 19], + [77, 19], + [78, 19], + [79, 19], + [80, 19], + [76, 18], + [77, 18], + [78, 18], + [76, 67], + [74, 69], + [76, 69], + [76, 71], + [77, 71], + [79, 71], + [78, 72]] + }, + { + "Pickup": "health_bonus", + "Positions": [[38, 51], + [40, 49], + [39, 47], + [36, 46], + [37, 44], + [5, 8], + [5, 9], + [6, 9], + [5, 10], + [7, 26], + [6, 26], + [5, 29], + [6, 30], + [18, 38], + [19, 39], + [18, 47], + [4, 44], + [16, 51], + [17, 52], + [5, 59], + [9, 69], + [17, 85], + [4, 54]] + }, + { + "Pickup": "ammo_Shells", + "Positions": [[56, 8], + [72, 65], + [72, 66], + [72, 67], + [13, 77], + [11, 72], + [14, 45]] + }, + { + "Pickup": "medikit", + "Positions": [[83, 37], + [78, 65], + [7, 30], + [30, 16], + [6, 8]] + }, + { + "Pickup": "supercharge", + "Positions": [[74, 59], + [74, 59]] + }, + { + "Pickup": "ammo_Bullets", + "Positions": [[69, 36], + [64, 8], + [78, 68], + [9, 76], + [11, 61], + [11, 61], + [11, 44], + [14, 39], + [14, 39], + [8, 39], + [8, 39]] + }, + { + "Pickup": "megaarmor", + "Positions": [[61, 8], + [61, 8]] + }, + { + "Pickup": "ammo_Rockets", + "Positions": [[78, 70]] + }, + { + "Pickup": "armor", + "Positions": [[7, 31]] + }, + { + "Pickup": "shells2", + "Positions": [[83, 36]] + }, + { + "Pickup": "bullet_pickup2", + "Positions": [[22, 74], + [15, 51], + [6, 10], + [69, 49]] + }, + { + "Pickup": "rockets2", + "Positions": [[30, 13], + [35, 11]] + }, + { + "Pickup": "backpack", + "Positions": [[82, 36]] + }], + "Start": [86, 31], + "Exits": [{ + "Rect": [0, + 7, + 2, + 4], + "Mission": 4, + "Hidden": false + }], + "AltFloorsEnabled": true + }, + { + "Title": "Phobos Lab", + "Description": "", + "Type": "Static", + "Width": 88, + "Height": 98, + "ExitStyle": "hazard", + "KeyStyle": "chip", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Fists", "Marine Pistol"], + "WeaponPersist": true, + "SkipDebrief": false, + "TileClasses": { + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "water", + "Mask": "208c20ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "nukage" + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "2e3a2eff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "10": { + "Name": "tile", + "Type": "Floor", + "Style": "metal", + "Mask": "5d4629ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "11": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "8e6b3eff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "12": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "b6b3b3ff", + "MaskAlt": "5d5d5dff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "13": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "08068cff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "14": { + "Name": "wall", + "Type": "Wall", + "Style": "techwall", + "Mask": "808080ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "15": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "c29d40ff", + "MaskAlt": "a88023ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "16": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "696868ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "17": { + "Name": "tile", + "Type": "Floor", + "Style": "grate", + "Mask": "777676ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "18": { + "Name": "tile", + "Type": "Floor", + "Style": "metal", + "Mask": "7b7b7bff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "19": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "626961ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "2": { + "Name": "door", + "Type": "Door", + "Style": "doom", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + }, + "20": { + "Name": "tile", + "Type": "Floor", + "Style": "metal", + "Mask": "8e6b3eff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "21": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "4b4b4bff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "22": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "6d502eff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "23": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "a37845ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "24": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "5d5d5dff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "25": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "a7afa4ff", + "MaskAlt": "636956ff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "26": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "858585ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "27": { + "Name": "wall", + "Type": "Wall", + "Style": "techwall", + "Mask": "808080ff", + "MaskAlt": "8a8a8aff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "808060ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "5": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "777575ff", + "MaskAlt": "235d23ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "6": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "808080ff", + "MaskAlt": "695236ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "7": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "85673eff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "8": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "96a88fff", + "MaskAlt": "5f6b43ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "9": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel2", + "Mask": "808080ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + } + }, + "Tiles": ["4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,21,21,21,21,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,23,23,23,23,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,23,23,23,23,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,23,23,23,23,21,21,21,21,21,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,23,23,23,23,2,22,22,22,22,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,23,23,23,23,2,22,22,22,22,21,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,23,23,23,21,21,22,22,22,22,22,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,21,21,21,21,21,21,21,22,22,22,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,21,21,22,22,22,22,22,22,22,22,21,21,21,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,21,21,21,21,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,21,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,21,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,22,22,22,21,21,22,22,22,21,2,21,21,22,22,22,22,22,22,22,22,21,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,21,22,22,22,21,21,22,22,21,21,22,21,21,21,22,22,22,22,22,22,22,22,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,21,22,22,22,22,22,22,22,21,21,21,22,22,21,21,22,22,22,22,22,22,22,22,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,21,22,22,22,22,22,22,22,22,21,4,21,22,22,21,21,22,22,21,21,22,22,22,22,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,21,21,21,21,22,22,22,22,22,22,22,22,22,21,4,21,22,22,21,21,22,22,21,21,22,22,22,22,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,21,22,22,22,2,22,22,22,21,21,22,22,22,22,21,4,21,22,22,21,21,22,22,22,22,22,22,22,22,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,21,22,22,22,22,2,22,22,22,21,21,22,22,22,22,21,4,21,22,22,21,21,22,22,22,22,22,22,22,22,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,22,22,22,22,22,21,22,22,22,22,22,22,22,21,22,21,21,21,22,22,21,21,21,21,21,22,21,21,22,22,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,22,22,22,21,21,21,21,22,22,22,22,22,22,21,22,21,21,22,22,22,21,21,4,4,21,22,21,21,22,22,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,22,22,21,21,4,4,21,21,22,22,22,22,22,21,21,21,22,22,22,22,22,21,21,21,21,22,22,22,22,22,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,22,22,21,4,4,4,4,21,22,22,22,22,22,22,22,22,22,22,21,21,22,22,22,22,22,22,22,22,22,22,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,22,22,21,4,4,4,4,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,21,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,21,22,22,21,4,4,4,4,4,4,4,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,21,21,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,21,22,22,22,21,21,21,4,4,4,4,4,4,21,21,22,22,22,22,22,22,22,22,22,22,22,22,21,21,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,21,21,22,22,22,22,22,22,21,21,21,4,4,4,4,4,21,21,22,21,21,21,22,22,21,21,21,21,21,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,22,22,22,22,22,22,22,22,22,22,21,4,4,4,4,4,4,21,22,22,22,21,22,21,21,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,22,22,22,22,24,24,22,22,22,22,21,4,4,4,4,4,4,21,21,21,22,15,2,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,15,15,15,15,15,15,15,15,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,21,22,22,22,24,24,24,24,22,22,22,21,4,21,21,21,21,21,21,21,21,22,15,3,3,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,15,15,15,10,10,10,10,10,10,10,10,10,10,10,10,15,15,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,16,16,16,16,16,4,4,21,22,22,22,24,24,24,24,22,22,22,21,4,21,22,22,22,22,22,22,22,22,15,3,3,3,3,1,4,4,15,15,15,15,15,15,15,15,15,15,15,15,15,15,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,15,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,3,3,3,3,16,4,4,21,22,22,22,24,24,24,24,22,22,22,21,4,21,22,22,22,22,22,22,22,15,15,3,3,3,3,1,15,15,15,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,15,15,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,3,3,3,3,16,4,4,21,22,22,22,22,24,24,22,22,22,22,21,4,21,22,22,22,22,22,22,22,15,3,3,3,3,3,1,15,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,15,4", + "4,4,5,5,5,5,5,5,5,5,5,16,4,4,4,4,4,4,16,3,3,3,3,16,4,4,21,21,22,22,22,22,22,22,22,22,21,21,4,21,21,21,21,21,21,21,21,15,3,3,3,1,10,1,15,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,15,4", + "4,5,5,20,20,20,20,20,20,20,20,16,4,4,4,4,4,4,16,3,3,3,3,16,4,4,4,21,21,21,22,22,22,22,21,21,21,4,4,4,4,4,4,4,4,4,4,15,3,3,3,1,10,15,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,15,14,14,14,14,14,14,14,14,14,14,15,15,10,10,15,4", + "5,5,20,20,20,20,20,20,20,20,20,16,4,4,4,4,4,4,16,3,3,3,3,16,4,4,16,16,16,21,21,22,22,21,21,4,4,9,9,9,9,9,9,9,9,9,9,9,3,3,3,1,10,15,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,14,13,13,13,13,13,13,13,13,13,13,14,15,10,10,15,4", + "5,20,20,20,20,20,20,20,20,20,20,16,4,16,16,16,16,16,16,2,2,2,2,16,16,16,16,3,2,22,2,22,22,21,4,4,9,9,3,3,3,3,3,3,3,3,3,3,3,3,3,1,10,15,10,10,15,15,12,12,12,12,12,12,12,12,15,15,15,15,15,14,13,13,13,13,13,13,13,13,13,13,14,15,10,10,15,4", + "5,20,20,20,20,20,20,20,20,20,20,16,16,16,10,10,10,10,10,3,3,3,3,3,3,16,16,3,2,22,2,22,22,21,21,21,9,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,10,15,10,10,15,12,11,11,11,11,11,11,11,11,12,12,12,4,14,13,13,13,13,13,13,13,13,13,13,13,14,15,10,10,15,4", + "5,20,20,20,20,20,20,20,20,20,20,16,10,10,10,10,10,10,10,3,3,3,3,3,3,3,16,2,16,21,21,22,22,22,22,22,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,10,15,10,10,12,11,11,11,11,11,11,11,11,11,13,13,12,12,14,13,13,13,13,13,13,13,13,13,13,13,14,15,10,10,15,4", + "5,20,20,20,20,20,20,20,20,20,20,7,10,10,10,10,10,10,10,3,3,3,3,3,3,3,3,3,16,4,21,22,22,22,22,22,2,3,3,3,3,1,0,0,0,9,9,0,0,0,0,9,10,10,10,10,12,11,11,11,11,11,11,11,11,11,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,15,10,10,15,4", + "5,20,20,20,20,20,20,20,20,20,20,7,10,10,10,10,10,10,10,3,3,3,3,3,3,3,3,3,16,16,21,21,21,21,21,21,9,3,3,3,3,1,0,0,0,0,0,0,0,0,0,9,10,10,10,10,12,11,11,11,11,11,11,11,11,11,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,15,10,10,15,4", + "5,20,20,20,20,20,20,20,20,20,7,10,10,10,10,10,16,16,16,16,16,16,16,16,16,3,3,3,3,16,4,4,4,4,4,4,9,3,3,3,1,1,0,0,0,0,0,0,0,0,0,9,10,10,10,10,12,11,11,11,11,11,11,11,11,11,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,15,10,10,15,4", + "5,20,20,20,20,20,20,20,20,20,7,10,10,10,16,16,16,0,0,0,0,18,18,18,16,3,3,3,3,16,16,4,4,4,4,4,9,3,3,3,3,0,0,0,0,0,0,0,0,0,0,7,10,10,10,10,12,11,11,11,11,11,11,11,11,11,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,15,10,10,15,4", + "5,20,20,20,20,20,20,20,20,7,10,10,10,10,0,0,0,0,0,0,0,18,18,18,16,16,3,3,3,3,16,4,4,4,4,4,9,3,3,3,3,0,0,0,0,0,0,0,0,0,0,7,10,10,10,10,12,11,11,11,11,11,11,11,11,11,13,12,12,12,14,13,13,13,13,13,13,13,13,13,13,13,14,15,10,10,15,4", + "5,20,20,20,20,20,20,20,20,7,10,10,10,10,0,0,0,7,7,7,7,0,0,0,0,16,3,3,3,3,16,4,4,4,4,4,9,3,3,3,3,0,0,0,0,0,0,0,0,0,0,7,10,10,10,10,12,11,11,11,11,11,11,11,11,12,12,12,4,4,14,13,13,13,13,13,13,13,13,13,13,13,14,15,10,10,15,4", + "5,20,20,20,20,20,20,20,20,7,10,10,10,10,0,0,0,7,19,19,7,0,0,0,0,16,3,3,3,3,16,4,4,4,4,4,9,3,3,3,3,0,0,0,0,0,0,0,0,0,0,9,10,10,10,10,12,11,11,11,11,11,11,11,12,12,4,4,4,4,14,13,13,13,13,13,13,13,13,14,14,13,14,15,10,10,15,4", + "5,20,20,20,20,20,20,20,20,7,10,10,10,10,0,0,0,7,19,19,7,0,0,0,0,16,3,3,3,3,16,4,4,4,4,4,9,3,3,3,9,9,0,0,0,0,0,0,0,0,0,9,10,10,10,10,12,12,12,12,11,11,11,11,12,4,4,8,8,8,8,8,8,14,14,14,14,14,27,14,14,2,14,15,10,10,15,4", + "5,20,20,20,20,20,20,20,20,7,10,10,10,10,0,0,0,7,7,7,7,0,0,0,0,16,3,3,3,3,16,4,4,4,4,9,9,3,3,3,3,9,9,0,0,0,0,0,0,0,0,9,10,10,10,10,12,9,9,11,11,11,11,11,8,4,8,8,3,3,3,3,3,8,8,4,4,15,10,15,15,10,15,15,10,10,15,4", + "5,20,20,20,20,20,20,20,20,7,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,16,3,3,3,3,16,16,16,16,16,16,3,3,3,3,3,3,9,5,5,0,0,0,0,0,0,9,9,9,9,9,9,9,11,11,11,11,11,11,8,8,8,3,3,3,3,3,3,3,8,4,4,15,10,10,15,10,10,10,10,10,15,4", + "5,20,20,20,20,20,20,16,16,16,10,10,10,10,0,0,0,0,0,0,0,0,0,10,10,16,3,3,3,3,17,17,17,17,3,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,10,10,20,20,20,11,11,11,11,11,11,11,11,11,7,3,3,3,3,3,3,3,3,3,8,4,4,15,10,10,15,10,10,10,10,10,15,4", + "5,20,20,20,20,20,20,16,10,2,10,10,10,10,0,0,0,0,0,0,0,0,0,10,10,16,3,3,3,3,17,17,17,17,3,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,10,10,20,20,20,11,11,11,11,11,11,11,11,11,7,3,3,3,3,8,8,3,3,3,8,4,4,15,10,10,15,10,10,10,10,10,15,4", + "5,20,20,20,20,20,20,16,26,16,10,10,10,10,0,0,0,0,0,0,0,0,0,10,10,16,3,3,3,3,17,17,17,17,3,2,3,3,3,3,3,3,3,3,3,0,0,0,0,0,10,10,20,20,20,11,11,11,11,11,11,11,11,11,7,3,3,3,8,8,8,8,3,3,8,4,4,15,10,10,15,15,10,10,10,15,15,4", + "5,20,20,20,20,20,20,16,10,16,10,10,10,10,0,0,0,0,0,0,0,0,0,0,0,16,3,3,3,3,16,16,16,16,16,16,3,3,3,3,3,3,9,5,5,0,0,0,0,0,0,6,6,6,6,6,6,6,6,11,11,11,11,11,7,3,3,8,8,3,3,3,3,3,8,8,4,15,10,10,10,15,15,15,15,15,4,4", + "5,20,20,20,20,20,20,16,26,16,10,10,10,10,0,0,0,7,7,7,7,0,0,0,0,16,3,3,3,3,16,4,4,4,4,9,9,3,3,3,3,9,9,0,0,0,0,0,0,0,0,6,3,3,3,3,3,3,6,8,11,11,11,11,7,3,3,8,3,3,0,0,0,0,0,8,8,15,10,10,10,15,15,4,4,4,4,4", + "5,20,20,20,20,20,20,20,18,7,10,10,10,10,0,0,0,7,19,19,7,0,0,0,0,16,3,3,3,3,16,4,4,4,4,4,9,3,3,3,9,9,0,0,0,0,0,0,0,0,0,6,3,3,3,3,3,3,6,11,11,11,11,11,8,8,8,8,3,0,0,0,0,0,0,0,0,8,15,10,10,10,15,15,15,15,15,15", + "5,20,20,20,20,20,20,20,18,7,10,10,10,10,0,0,0,7,19,19,7,0,0,0,0,16,3,3,3,3,16,4,4,4,4,4,9,3,3,3,3,0,0,0,0,0,0,0,0,0,0,6,3,3,3,3,3,3,6,8,8,8,8,8,8,3,3,3,3,0,0,0,0,0,0,0,0,0,8,15,10,10,10,10,10,10,20,15", + "5,20,20,20,20,20,20,20,20,7,10,10,10,10,0,0,0,7,7,7,7,0,0,0,0,16,3,3,3,3,16,4,4,4,4,4,9,3,3,3,3,0,0,0,0,0,0,0,0,0,0,7,3,3,3,3,3,3,6,8,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,8,10,10,10,10,10,10,20,15", + "5,20,20,20,20,20,20,20,20,7,10,10,10,10,0,0,0,0,0,0,0,18,18,18,18,16,3,3,3,16,16,4,4,4,4,4,9,3,3,3,3,0,0,0,0,0,0,0,0,0,0,7,3,3,3,3,3,3,6,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,15,10,10,10,10,10,20,15", + "5,20,20,20,20,20,20,20,20,7,10,10,10,10,16,16,16,0,0,0,0,18,18,18,16,16,3,3,3,16,4,4,4,4,4,4,9,3,3,3,3,0,0,0,0,0,0,0,0,0,0,7,3,3,3,3,3,3,6,8,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,15,10,10,10,10,20,15", + "5,20,20,20,20,20,20,20,20,20,7,10,10,10,10,10,16,16,16,16,16,16,16,16,16,3,3,3,3,16,4,4,4,4,4,4,9,3,3,3,1,1,0,0,0,0,0,0,0,0,0,6,3,3,3,3,3,3,3,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,15,15,15,15,15,15,15", + "5,20,20,20,20,20,20,20,20,20,7,10,10,10,10,10,10,10,10,3,3,3,3,3,3,3,3,3,3,16,4,4,4,4,4,4,9,3,3,3,3,1,0,0,0,9,9,0,0,0,0,6,3,3,3,3,3,3,3,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,4,4,4,4,4,4,4", + "5,20,20,20,20,20,20,20,20,20,20,7,10,10,10,10,10,10,10,3,3,3,3,3,3,3,3,3,3,16,4,4,4,4,4,4,9,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,3,3,3,3,3,3,3,6,0,0,0,0,0,0,0,7,7,7,7,0,0,0,0,0,0,0,0,0,8,4,4,4,4,4,4,4", + "5,20,20,20,20,20,20,20,20,20,20,16,16,10,10,10,10,10,10,3,3,3,3,3,3,3,3,3,3,16,4,4,4,4,4,4,9,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,3,3,3,3,3,3,3,6,0,0,0,0,0,0,0,7,3,3,7,0,0,0,0,0,0,0,0,0,8,4,4,4,4,4,4,4", + "5,20,20,20,20,20,20,20,20,20,20,16,16,16,16,16,16,16,16,3,3,3,3,3,3,16,16,3,3,16,4,4,4,4,4,4,9,9,3,3,3,3,3,3,3,3,3,3,3,3,3,6,3,3,6,25,25,25,6,6,0,0,0,0,0,0,0,7,3,3,7,0,0,0,0,0,0,0,0,0,8,4,4,4,4,4,4,4", + "5,20,20,20,20,20,20,20,20,20,20,16,4,4,4,4,4,4,16,2,2,2,2,16,16,16,16,3,3,16,4,4,4,4,4,4,4,9,3,3,3,3,3,3,3,3,3,3,3,3,3,6,3,3,6,3,3,3,3,6,0,0,0,0,0,0,0,7,3,3,7,0,0,0,0,0,0,0,0,0,8,4,4,4,4,4,4,4", + "5,5,20,20,20,20,20,20,20,20,20,16,4,4,4,4,4,4,16,3,3,3,3,16,4,4,16,16,16,16,4,4,4,4,4,4,4,9,9,9,9,9,9,9,9,6,6,2,2,2,6,6,3,3,6,3,3,3,3,6,0,0,0,0,0,0,0,7,3,3,7,0,0,0,0,0,0,0,0,0,8,4,4,4,4,4,4,4", + "4,5,5,20,20,20,20,20,20,20,20,16,4,4,4,4,4,4,16,3,3,3,3,16,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,3,3,3,3,3,6,3,3,6,3,3,3,3,6,8,0,0,0,0,0,0,7,3,3,7,0,0,0,0,0,8,0,0,0,8,4,4,4,4,4,4,4", + "4,4,5,5,5,5,5,5,5,5,5,16,4,4,4,4,4,4,16,3,3,3,3,16,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,3,3,3,3,3,6,3,3,6,0,3,3,3,6,8,8,8,0,0,0,0,7,3,3,7,0,8,8,8,25,8,8,8,8,8,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,3,3,3,3,16,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,3,3,3,3,3,6,3,3,6,6,6,6,6,6,6,6,6,6,6,6,6,6,3,3,6,8,8,5,20,20,5,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,3,3,3,3,16,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,3,3,3,3,3,6,3,3,6,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,4,4,5,20,20,5,5,5,5,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,16,16,16,16,16,16,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,4,4,5,20,20,20,20,20,5,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,6,6,6,6,6,6,6,6,6,4,4,5,20,20,20,20,20,5,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,3,3,3,3,3,3,3,3,3,3,3,3,3,6,6,6,4,4,4,4,4,4,4,4,4,4,4,5,20,20,20,20,20,5,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,3,3,3,3,3,3,3,3,3,3,3,3,3,6,4,4,4,4,4,4,4,4,4,4,4,15,15,5,20,20,20,20,20,5,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,15,15,15,15,15,15,15,15,15,15,15,15,10,10,20,20,20,20,20,5,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,25,6,20,20,20,10,10,10,10,10,10,10,10,10,10,10,10,5,5,5,5,5,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,3,3,3,3,3,3,3,3,3,3,3,3,3,6,15,10,10,20,20,20,10,10,10,10,10,10,10,10,10,10,10,15,15,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,3,3,3,3,6,6,6,6,6,6,6,6,6,6,15,10,10,20,20,20,10,10,10,10,10,10,10,10,10,10,10,15,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,3,3,3,3,5,5,5,4,4,4,4,4,4,4,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,3,3,3,3,3,3,3,3,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,3,3,3,3,3,3,3,3,3,3,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,3,3,3,3,3,3,3,3,3,3,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,0,5,3,3,3,3,3,3,3,3,3,3,3,5,5,0,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,5,5,3,3,3,3,3,3,3,3,3,3,3,5,5,5,0,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,5,5,5,3,3,3,3,3,3,3,3,3,5,5,4,5,5,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,0,0,5,4,5,3,3,3,3,3,3,3,3,3,5,4,4,4,5,0,0,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,4,5,5,3,3,3,3,3,3,3,3,5,4,4,4,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,3,3,3,3,3,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,3,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "barrel_nukage", + "Positions": [[46, 66], + [51, 70], + [54, 74], + [55, 62], + [57, 62], + [47, 38], + [55, 46], + [78, 42], + [72, 38], + [58, 44], + [62, 53], + [49, 24], + [43, 20], + [56, 24], + [58, 12], + [38, 18], + [40, 10], + [45, 15], + [52, 12], + [25, 38], + [23, 51], + [23, 60], + [15, 59], + [10, 58], + [13, 50], + [11, 41]] + }, + { + "MapObject": "rod", + "Positions": [[65, 49], + [65, 53]] + }, + { + "MapObject": "Marine Shotgun spawner", + "Positions": [[43, 74], + [55, 64], + [68, 66]] + }, + { + "MapObject": "Launcher spawner", + "Positions": [[78, 73]] + }, + { + "MapObject": "Chaingun spawner", + "Positions": [[86, 56]] + }, + { + "MapObject": "Chainsaw spawner", + "Positions": [[8, 52]] + }, + { + "MapObject": "wscreen1", + "Positions": [[70, 39], + [72, 35], + [74, 35], + [75, 35], + [76, 35], + [79, 35], + [80, 35]] + }, + { + "MapObject": "wscreen2", + "Positions": [[71, 37], + [77, 35], + [78, 35], + [81, 35]] + }, + { + "MapObject": "blood3", + "Positions": [[30, 29], + [31, 29], + [32, 29], + [33, 29], + [32, 28], + [31, 28], + [31, 30], + [32, 30], + [30, 31], + [33, 31]] + }], + "StaticCharacters": [{ + "Index": 0, + "Places": [{ + "Pos": [48, 76], + "Dir": 5 + }, + { + "Pos": [69, 65], + "Dir": 7 + }, + { + "Pos": [44, 62], + "Dir": 6 + }, + { + "Pos": [43, 63], + "Dir": 6 + }, + { + "Pos": [37, 53], + "Dir": 3 + }, + { + "Pos": [39, 48], + "Dir": 1 + }, + { + "Pos": [39, 40], + "Dir": 5 + }, + { + "Pos": [42, 37], + "Dir": 7 + }, + { + "Pos": [49, 37], + "Dir": 0 + }, + { + "Pos": [45, 37], + "Dir": 2 + }, + { + "Pos": [54, 43], + "Dir": 1 + }, + { + "Pos": [53, 42], + "Dir": 5 + }, + { + "Pos": [78, 32], + "Dir": 7 + }, + { + "Pos": [84, 40], + "Dir": 4 + }, + { + "Pos": [85, 44], + "Dir": 5 + }, + { + "Pos": [73, 35], + "Dir": 1 + }, + { + "Pos": [73, 40], + "Dir": 5 + }, + { + "Pos": [72, 45], + "Dir": 0 + }, + { + "Pos": [71, 45], + "Dir": 6 + }, + { + "Pos": [74, 45], + "Dir": 0 + }, + { + "Pos": [57, 45], + "Dir": 6 + }, + { + "Pos": [62, 48], + "Dir": 0 + }, + { + "Pos": [61, 49], + "Dir": 3 + }, + { + "Pos": [61, 51], + "Dir": 3 + }, + { + "Pos": [68, 48], + "Dir": 0 + }, + { + "Pos": [70, 48], + "Dir": 2 + }, + { + "Pos": [72, 50], + "Dir": 3 + }, + { + "Pos": [49, 17], + "Dir": 2 + }, + { + "Pos": [50, 17], + "Dir": 3 + }, + { + "Pos": [53, 18], + "Dir": 6 + }, + { + "Pos": [59, 23], + "Dir": 0 + }, + { + "Pos": [45, 16], + "Dir": 6 + }, + { + "Pos": [40, 11], + "Dir": 3 + }, + { + "Pos": [50, 8], + "Dir": 1 + }, + { + "Pos": [54, 10], + "Dir": 1 + }, + { + "Pos": [19, 34], + "Dir": 2 + }, + { + "Pos": [20, 34], + "Dir": 1 + }, + { + "Pos": [21, 34], + "Dir": 0 + }, + { + "Pos": [19, 45], + "Dir": 2 + }, + { + "Pos": [19, 55], + "Dir": 2 + }, + { + "Pos": [19, 65], + "Dir": 5 + }, + { + "Pos": [19, 67], + "Dir": 1 + }, + { + "Pos": [20, 67], + "Dir": 1 + }, + { + "Pos": [22, 67], + "Dir": 7 + }, + { + "Pos": [12, 52], + "Dir": 3 + }, + { + "Pos": [12, 46], + "Dir": 6 + }] + }, + { + "Index": 3, + "Places": [{ + "Pos": [55, 42], + "Dir": 5 + }, + { + "Pos": [79, 43], + "Dir": 3 + }, + { + "Pos": [80, 40], + "Dir": 3 + }, + { + "Pos": [79, 37], + "Dir": 7 + }, + { + "Pos": [61, 39], + "Dir": 3 + }, + { + "Pos": [62, 50], + "Dir": 5 + }, + { + "Pos": [44, 1], + "Dir": 3 + }, + { + "Pos": [41, 1], + "Dir": 7 + }, + { + "Pos": [41, 4], + "Dir": 1 + }, + { + "Pos": [33, 51], + "Dir": 7 + }, + { + "Pos": [31, 50], + "Dir": 4 + }, + { + "Pos": [15, 60], + "Dir": 1 + }] + }, + { + "Index": 2, + "Places": [{ + "Pos": [55, 73], + "Dir": 2 + }, + { + "Pos": [59, 69], + "Dir": 3 + }, + { + "Pos": [52, 56], + "Dir": 6 + }, + { + "Pos": [55, 56], + "Dir": 2 + }, + { + "Pos": [58, 59], + "Dir": 0 + }, + { + "Pos": [48, 63], + "Dir": 4 + }, + { + "Pos": [52, 43], + "Dir": 5 + }, + { + "Pos": [52, 42], + "Dir": 3 + }, + { + "Pos": [58, 33], + "Dir": 1 + }, + { + "Pos": [62, 35], + "Dir": 0 + }, + { + "Pos": [65, 34], + "Dir": 6 + }, + { + "Pos": [68, 32], + "Dir": 7 + }, + { + "Pos": [62, 31], + "Dir": 0 + }, + { + "Pos": [72, 30], + "Dir": 3 + }, + { + "Pos": [74, 29], + "Dir": 4 + }, + { + "Pos": [75, 32], + "Dir": 0 + }, + { + "Pos": [85, 33], + "Dir": 5 + }, + { + "Pos": [85, 42], + "Dir": 2 + }, + { + "Pos": [66, 38], + "Dir": 3 + }, + { + "Pos": [64, 37], + "Dir": 4 + }, + { + "Pos": [62, 37], + "Dir": 6 + }, + { + "Pos": [72, 48], + "Dir": 6 + }, + { + "Pos": [27, 37], + "Dir": 4 + }, + { + "Pos": [18, 46], + "Dir": 7 + }, + { + "Pos": [18, 54], + "Dir": 0 + }, + { + "Pos": [27, 50], + "Dir": 6 + }, + { + "Pos": [27, 62], + "Dir": 5 + }, + { + "Pos": [20, 65], + "Dir": 6 + }, + { + "Pos": [22, 65], + "Dir": 1 + }] + }, + { + "Index": 1, + "Places": [{ + "Pos": [53, 53], + "Dir": 3 + }, + { + "Pos": [57, 53], + "Dir": 6 + }, + { + "Pos": [38, 61], + "Dir": 7 + }, + { + "Pos": [38, 52], + "Dir": 7 + }, + { + "Pos": [38, 49], + "Dir": 2 + }, + { + "Pos": [38, 41], + "Dir": 0 + }, + { + "Pos": [44, 37], + "Dir": 3 + }, + { + "Pos": [43, 38], + "Dir": 2 + }, + { + "Pos": [52, 46], + "Dir": 3 + }, + { + "Pos": [53, 46], + "Dir": 5 + }, + { + "Pos": [55, 45], + "Dir": 6 + }, + { + "Pos": [75, 38], + "Dir": 2 + }, + { + "Pos": [63, 39], + "Dir": 3 + }, + { + "Pos": [59, 39], + "Dir": 6 + }, + { + "Pos": [57, 50], + "Dir": 5 + }, + { + "Pos": [62, 52], + "Dir": 0 + }, + { + "Pos": [48, 4], + "Dir": 4 + }, + { + "Pos": [58, 13], + "Dir": 4 + }, + { + "Pos": [39, 21], + "Dir": 6 + }, + { + "Pos": [18, 55], + "Dir": 0 + }, + { + "Pos": [18, 45], + "Dir": 3 + }, + { + "Pos": [29, 49], + "Dir": 0 + }, + { + "Pos": [29, 51], + "Dir": 0 + }, + { + "Pos": [10, 52], + "Dir": 6 + }, + { + "Pos": [11, 51], + "Dir": 7 + }, + { + "Pos": [10, 46], + "Dir": 4 + }, + { + "Pos": [11, 47], + "Dir": 7 + }] + }, + { + "Index": 4, + "Places": [{ + "Pos": [48, 67], + "Dir": 7 + }, + { + "Pos": [68, 69], + "Dir": 1 + }, + { + "Pos": [68, 63], + "Dir": 5 + }, + { + "Pos": [19, 69], + "Dir": 0 + }, + { + "Pos": [20, 69], + "Dir": 2 + }, + { + "Pos": [16, 38], + "Dir": 2 + }, + { + "Pos": [21, 31], + "Dir": 1 + }, + { + "Pos": [19, 31], + "Dir": 5 + }, + { + "Pos": [52, 35], + "Dir": 0 + }, + { + "Pos": [49, 34], + "Dir": 1 + }, + { + "Pos": [42, 14], + "Dir": 4 + }, + { + "Pos": [47, 8], + "Dir": 7 + }, + { + "Pos": [56, 11], + "Dir": 4 + }, + { + "Pos": [60, 14], + "Dir": 5 + }] + }], + "StaticObjectives": [], + "StaticKeys": [{ + "Index": 2, + "Positions": [[53, 43]] + }, + { + "Index": 3, + "Positions": [[85, 56], + [8, 60]] + }, + { + "Index": 0, + "Positions": [[65, 51]] + }, + { + "Index": 1, + "Positions": [[68, 64]] + }], + "StaticPickups": [{ + "Pickup": "stimpack", + "Positions": [[64, 39], + [64, 37], + [42, 80], + [42, 80], + [44, 80], + [46, 80], + [48, 80], + [27, 63], + [21, 68], + [22, 33], + [22, 33], + [48, 32], + [52, 37], + [58, 37], + [70, 33], + [72, 35], + [83, 57], + [40, 31], + [40, 31]] + }, + { + "Pickup": "medikit", + "Positions": [[52, 53], + [52, 53], + [72, 74], + [72, 74], + [72, 76], + [65, 50], + [10, 65], + [10, 61], + [8, 55], + [6, 51], + [8, 46], + [9, 42], + [10, 38], + [10, 38], + [8, 50], + [54, 46], + [84, 55], + [84, 55], + [32, 27], + [32, 27], + [32, 32], + [32, 32], + [45, 31], + [43, 23], + [49, 15], + [49, 14], + [49, 14], + [50, 15], + [53, 17], + [53, 17], + [57, 23], + [60, 18], + [60, 13], + [53, 9], + [39, 14], + [39, 14], + [43, 8]] + }, + { + "Pickup": "health_bonus", + "Positions": [[69, 63], + [56, 66], + [52, 40], + [55, 40], + [52, 44], + [28, 33], + [29, 27], + [29, 29], + [29, 31], + [34, 27], + [34, 29], + [34, 31], + [27, 36]] + }, + { + "Pickup": "armor", + "Positions": [[27, 29], + [40, 80], + [52, 47], + [52, 47]] + }, + { + "Pickup": "armor_bonus", + "Positions": [[53, 76], + [52, 76], + [51, 76], + [50, 76], + [74, 73], + [76, 72], + [77, 70], + [55, 66], + [58, 66], + [52, 31], + [52, 33], + [54, 45], + [82, 57], + [84, 57]] + }, + { + "Pickup": "ammo_Shells", + "Positions": [[41, 93], + [41, 93], + [48, 93], + [48, 93], + [44, 74], + [44, 74], + [55, 54], + [56, 53], + [56, 53], + [57, 56], + [61, 75], + [61, 76], + [61, 76], + [61, 77], + [68, 62], + [68, 62], + [69, 62], + [69, 62], + [23, 49], + [48, 37], + [49, 33], + [84, 49], + [84, 49], + [42, 31], + [42, 31]] + }, + { + "Pickup": "megaarmor", + "Positions": [[78, 71], + [21, 42]] + }, + { + "Pickup": "ammo_Rockets", + "Positions": [[42, 30], + [45, 8], + [45, 8]] + }, + { + "Pickup": "ammo_Bullets", + "Positions": [[65, 52], + [43, 31]] + }, + { + "Pickup": "supercharge", + "Positions": [[7, 60]] + }, + { + "Pickup": "shells2", + "Positions": [[57, 64], + [29, 36]] + }, + { + "Pickup": "bullet_pickup2", + "Positions": [[21, 57], + [86, 57]] + }, + { + "Pickup": "rockets2", + "Positions": [[78, 70], + [36, 29]] + }, + { + "Pickup": "computer_map", + "Positions": [[82, 55]] + }, + { + "Pickup": "backpack", + "Positions": [[86, 55]] + }], + "Start": [44, 93], + "Exits": [{ + "Rect": [41, + 1, + 3, + 5], + "Mission": 5, + "Hidden": false + }], + "AltFloorsEnabled": true + }, + { + "Title": "Central Processing", + "Description": "", + "Type": "Static", + "Width": 99, + "Height": 108, + "ExitStyle": "hazard", + "KeyStyle": "chip", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Fists", "Marine Pistol"], + "WeaponPersist": true, + "SkipDebrief": false, + "TileClasses": { + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "metal", + "Mask": "808080ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "bf8f62ff", + "MaskAlt": "af7d4cff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "10": { + "Name": "wall", + "Type": "Wall", + "Style": "hightech", + "Mask": "b69652ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "11": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "8c5c2fff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "12": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "a6a6a6ff", + "MaskAlt": "4a5842ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "13": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "001291ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "14": { + "Name": "wall", + "Type": "Wall", + "Style": "station", + "Mask": "808080ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "15": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "808080ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "16": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "515151ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "17": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "bf945dff", + "MaskAlt": "808080ff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "18": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "5f5f5fff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "19": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "645640ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "2": { + "Name": "door", + "Type": "Door", + "Style": "doom", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + }, + "20": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "9a6b24ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "21": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "543c15ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "22": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "557b40ff", + "MaskAlt": "275b2fff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "23": { + "Name": "wall", + "Type": "Wall", + "Style": "techwall", + "Mask": "808080ff", + "MaskAlt": "587258ff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "water", + "Mask": "00a100ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "nukage" + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "5": { + "Name": "tile", + "Type": "Floor", + "Style": "metal", + "Mask": "aaa6a6ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "6": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "5b745fff", + "MaskAlt": "596455ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "7": { + "Name": "wall", + "Type": "Wall", + "Style": "techwall", + "Mask": "808080ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "8": { + "Name": "door", + "Type": "Door", + "Style": "tech", + "Mask": "e7d9d9ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + }, + "9": { + "Name": "wall", + "Type": "Wall", + "Style": "hightech", + "Mask": "808080ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + } + }, + "Tiles": ["4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,19,19,19,19,19,19,19,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,20,20,20,20,20,1,19,19,19,19,19,19,19,19,1,20,20,20,20,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,20,20,20,20,20,1,19,19,19,19,19,19,19,19,1,20,20,20,20,20,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,20,20,20,20,20,20,1,17,17,19,19,19,19,17,17,1,20,20,20,20,20,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,20,20,20,20,20,20,20,20,20,1,19,19,1,20,20,20,20,20,20,20,20,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,9,9,9,9,9,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,20,20,20,20,20,20,20,20,20,1,19,19,1,20,20,20,20,20,20,20,20,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,9,19,19,19,19,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,20,20,20,20,20,20,20,20,20,1,19,19,1,20,20,20,20,20,20,20,20,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,9,19,19,19,19,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,20,20,20,20,20,20,20,20,20,1,19,19,1,20,20,20,20,20,20,20,20,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,9,19,19,19,19,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,20,20,20,20,20,20,20,20,20,1,19,19,1,20,20,20,20,20,20,20,20,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,9,9,19,9,9,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,20,20,20,20,20,20,20,20,20,1,19,19,1,20,20,20,20,20,20,20,20,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,9,2,9,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,20,20,20,20,20,4,17,17,17,1,19,19,1,17,17,20,20,20,20,20,20,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,9,19,19,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,20,20,20,20,20,1,11,11,11,1,19,19,1,11,11,1,20,20,20,20,20,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,9,19,19,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,20,20,20,20,20,1,11,11,11,11,11,11,11,11,11,1,20,20,20,20,20,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,9,19,19,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,20,20,20,20,20,1,11,11,11,11,11,11,11,11,11,22,21,20,20,20,20,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,9,19,19,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,20,20,20,20,20,1,11,11,11,1,1,1,11,11,11,1,20,20,20,20,20,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,9,19,19,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,20,20,20,20,20,1,11,11,1,1,0,1,1,11,11,1,20,20,20,20,20,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,9,19,19,7,7,7,7,7,7,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,20,20,6,6,6,6,6,11,6,6,6,6,6,11,11,6,6,6,6,20,20,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,9,19,19,19,19,19,19,19,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,1,20,6,6,3,3,3,3,11,3,3,3,3,3,11,11,3,3,3,6,6,20,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,9,19,19,19,19,19,19,19,19,19,19,19,19,19,19,1,1,1,4,4,4,4,4,1,20,6,3,3,3,3,3,11,3,3,3,3,3,11,11,3,3,3,3,6,20,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "9,9,9,9,9,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,1,1,1,1,1,1,1,1,6,3,3,3,3,3,11,3,3,6,3,3,11,11,3,3,3,3,6,2,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "9,0,0,0,23,19,19,19,19,19,19,7,7,7,7,1,19,19,19,19,19,19,19,19,19,19,19,1,6,3,3,6,3,3,11,3,3,3,3,3,11,11,3,3,6,3,6,0,0,0,0,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "9,0,0,0,23,19,19,19,19,19,19,19,19,19,19,1,1,1,1,19,19,19,19,19,19,19,19,1,6,3,3,3,3,3,11,3,3,3,3,3,11,11,3,3,3,3,6,0,0,0,0,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "9,0,0,0,23,19,19,19,19,19,19,19,17,17,17,1,19,19,1,1,1,1,19,19,19,19,19,1,6,3,3,3,3,3,11,11,3,3,3,11,11,11,3,3,3,3,6,0,0,0,0,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "9,0,0,0,23,19,19,19,19,19,19,19,17,19,19,19,19,19,19,19,19,19,19,19,19,19,19,2,19,3,3,3,3,3,11,11,11,11,11,11,11,11,3,3,3,3,6,3,3,0,0,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "9,0,0,0,23,19,19,19,19,19,19,19,17,19,19,19,19,19,19,1,1,1,19,19,19,19,19,2,19,3,3,3,3,3,11,11,11,11,11,11,11,11,3,3,3,3,6,6,0,3,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "9,0,0,0,23,19,19,19,19,19,19,19,17,17,17,1,1,1,1,1,19,19,19,19,19,19,19,1,6,3,3,3,3,3,11,11,11,11,11,11,11,11,3,3,3,3,6,6,6,3,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "9,9,9,9,9,19,19,19,19,19,19,19,19,19,19,1,1,1,1,19,19,19,19,19,19,19,19,1,6,3,3,3,3,3,3,11,11,11,11,11,11,3,3,3,3,3,6,4,6,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,7,19,19,19,19,19,19,19,19,19,19,7,1,19,19,19,19,19,19,19,19,19,19,1,1,6,3,3,3,3,3,3,3,1,16,16,1,3,3,3,3,3,3,6,4,6,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,7,19,19,19,19,19,7,19,7,7,7,1,19,19,19,19,19,1,1,1,1,1,1,1,4,6,3,3,3,6,3,3,3,1,16,16,1,3,3,3,6,3,3,6,4,6,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,7,19,19,7,23,23,7,19,1,1,1,19,19,19,19,19,1,1,4,4,4,4,4,4,4,6,3,3,3,3,3,3,3,1,16,16,1,3,3,3,3,3,3,6,4,6,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,7,7,7,7,0,0,1,19,19,19,19,19,19,19,1,1,1,4,4,4,4,4,4,4,4,6,3,3,3,3,3,3,3,1,16,16,1,3,3,3,3,3,3,6,4,6,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,9,0,0,1,19,19,19,19,19,19,1,1,4,4,4,4,4,4,4,4,4,4,6,3,3,3,3,3,3,3,1,16,16,1,3,3,3,3,3,3,6,4,6,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,9,0,0,1,19,19,19,19,19,1,1,4,4,4,4,4,4,4,4,4,4,4,6,3,3,3,3,3,3,3,1,16,16,1,3,3,3,3,3,3,6,4,6,3,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,9,0,0,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,1,17,17,17,17,17,17,17,1,16,16,1,17,17,17,17,17,17,6,4,6,3,3,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,9,9,9,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1,1,6,3,3,3,3,3,3,3,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1,6,3,3,3,3,3,3,3,3,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1,6,6,6,6,6,6,6,6,3,3,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,15,15,1,1,1,15,15,1,12,2,2,12,1,15,15,1,1,15,15,1,4,4,4,4,4,4,4,6,6,3,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,15,15,15,15,15,15,15,1,12,0,0,12,1,15,15,15,15,15,15,1,4,4,4,4,4,4,4,4,6,3,3,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,15,15,15,15,15,15,1,12,12,0,0,12,1,15,15,15,15,15,15,1,4,4,4,4,4,4,4,4,6,6,3,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,15,15,15,15,15,15,12,13,13,13,13,13,12,15,15,15,15,15,15,1,4,4,4,4,4,4,4,4,4,6,3,3,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,16,16,1,1,1,1,12,13,13,13,13,13,12,1,1,1,1,16,16,1,4,4,4,4,4,4,4,4,4,6,6,3,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,16,16,1,4,4,4,12,13,13,13,13,13,12,4,4,4,1,16,16,1,4,4,4,4,4,4,4,4,4,4,6,3,3,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,16,16,1,4,4,4,12,13,13,14,14,13,12,4,4,4,1,16,16,1,4,4,4,4,4,4,4,4,4,4,6,6,3,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,16,16,1,4,4,4,12,13,13,14,14,13,12,4,4,4,1,16,16,1,4,4,4,4,4,4,4,4,4,4,4,6,3,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,16,16,1,4,4,4,12,13,13,13,13,13,12,4,4,4,1,16,16,1,4,4,4,4,4,4,4,4,4,4,4,6,3,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,16,16,1,4,4,4,12,13,13,13,13,13,12,4,4,4,1,16,16,1,4,4,4,4,4,4,4,4,4,4,4,6,3,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,16,16,1,12,12,12,12,12,12,13,13,12,12,12,12,12,12,16,16,1,4,4,4,4,4,4,4,6,6,6,6,6,3,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,16,16,16,2,16,16,13,13,13,13,13,13,13,13,16,16,2,16,16,1,4,4,4,4,4,4,4,6,3,3,3,3,3,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,16,16,16,2,16,13,13,13,13,13,13,13,13,13,13,16,2,16,16,1,4,4,6,6,6,6,6,6,3,3,3,3,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,16,16,16,2,13,13,13,13,13,13,13,13,13,13,13,13,2,16,16,1,6,6,6,3,3,3,3,6,6,6,3,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,12,13,13,13,14,14,13,13,14,13,13,13,13,12,1,1,1,6,3,3,3,3,3,3,3,3,6,3,3,6,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,12,13,13,14,14,14,13,13,14,14,13,13,13,12,0,0,6,3,3,3,3,3,3,3,3,3,3,3,3,6,4,4,4,4,4,4,1,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,12,13,14,14,14,14,13,13,14,14,14,13,13,12,12,12,6,3,3,3,3,3,3,3,3,3,3,3,6,6,4,4,4,4,4,4,1,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,12,13,14,14,13,13,13,13,13,13,14,13,13,13,0,0,0,5,5,3,3,3,3,3,3,6,6,6,6,4,4,4,4,4,1,1,1,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,12,13,14,14,13,13,13,13,13,13,14,13,13,13,0,0,0,5,5,5,5,5,5,3,3,3,3,3,6,4,1,1,1,1,1,0,2,5,3,3,3,3,3,3,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,4,4,12,13,14,14,13,13,13,13,13,13,14,13,13,13,0,0,0,5,5,5,5,5,5,5,5,5,3,3,1,1,1,0,0,0,0,0,2,5,5,5,5,5,5,5,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,1,4,4,12,13,13,14,14,14,13,13,14,14,14,13,13,12,12,12,6,3,3,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,2,5,5,5,5,5,5,5,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,1,1,4,12,13,13,14,14,14,13,13,14,14,13,13,13,12,4,4,6,3,3,3,3,3,3,5,5,5,5,5,0,0,0,0,0,0,0,0,2,5,3,3,5,3,3,3,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,0,0,1,4,12,13,13,13,14,14,13,13,14,13,13,13,13,12,4,4,6,3,3,3,3,3,3,3,3,3,5,5,0,0,0,0,0,1,1,1,1,3,3,3,5,3,3,3,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,0,0,1,1,4,12,12,13,13,13,13,13,13,13,13,13,13,12,12,4,4,6,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,4,4,1,3,3,3,5,3,3,3,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,1,4,4,4,12,13,13,13,13,13,13,13,13,13,13,12,4,4,4,6,3,3,3,3,3,3,3,3,3,3,6,6,4,4,4,4,4,4,4,1,3,3,3,5,3,3,3,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,0,1,1,1,4,4,12,12,13,13,13,13,13,13,13,13,12,12,4,4,4,6,3,3,3,3,3,3,3,3,3,3,6,4,4,4,4,4,4,4,4,1,1,1,1,0,1,1,1,1,0,0,0,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,3,3,6,6,6,6,6,6,6,1,2,2,1,6,6,6,6,6,6,4,6,6,3,3,3,3,3,3,3,17,6,6,6,6,4,4,4,4,4,4,4,4,4,1,0,0,1,1,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,6,3,3,3,3,3,3,3,3,3,1,0,0,1,3,3,3,3,3,6,6,6,6,3,3,5,5,3,17,17,18,18,18,18,6,4,4,4,4,4,4,4,4,4,1,0,0,0,1,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,6,3,3,3,3,3,3,3,3,3,3,1,0,0,1,3,3,3,3,3,3,6,6,6,6,5,5,5,17,3,18,18,18,18,18,6,4,4,4,4,6,6,6,6,6,1,0,0,0,0,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,6,3,3,3,3,3,3,3,3,3,3,3,1,0,0,1,3,3,3,3,3,3,3,6,6,6,0,0,0,0,6,18,18,18,18,18,6,6,4,4,4,6,0,0,0,6,1,1,0,0,0,1,1,1,1,1,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,1,3,3,3,3,3,3,3,6,6,6,6,0,0,6,6,18,18,18,18,18,5,6,6,6,4,6,0,0,0,6,1,1,1,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,3,3,3,3,5,5,5,5,5,5,5,5,5,0,0,0,0,5,5,5,5,3,3,3,3,6,6,6,0,0,6,6,18,18,18,18,5,5,5,5,6,6,6,0,0,0,6,1,1,1,1,0,1,1,1,1,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,3,3,3,5,5,5,5,5,5,5,5,5,5,0,0,0,0,5,5,5,5,5,3,3,3,3,6,6,0,0,6,6,18,18,18,5,5,5,5,5,5,6,6,0,0,0,6,1,3,3,3,5,3,3,3,3,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,6,6,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,5,5,5,5,5,5,3,3,3,3,6,0,0,6,6,2,2,6,5,5,5,5,5,5,5,6,0,0,0,6,1,3,3,3,5,3,3,3,3,1,1,1,1,1,1,0,0,1,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,6,0,5,5,5,5,5,5,5,5,5,5,0,0,0,0,5,5,5,5,5,5,5,3,3,3,6,2,2,6,0,0,0,9,9,9,9,5,5,5,5,6,2,2,2,6,1,3,3,3,5,3,3,3,3,1,4,4,4,4,1,0,0,1,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,5,5,5,3,3,3,3,3,3,1,0,0,1,3,3,3,5,5,5,5,5,3,6,6,0,0,0,0,0,0,9,0,0,9,6,5,5,5,5,5,5,5,5,1,3,3,3,5,3,3,3,3,1,4,4,4,4,1,0,0,1,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,5,0,0,0,0,5,3,3,3,3,3,3,3,1,0,0,1,3,3,3,3,5,5,5,5,3,6,6,0,0,0,0,0,0,9,0,0,9,6,6,5,5,5,5,5,5,5,2,5,5,5,5,5,5,5,5,1,1,1,1,1,1,1,0,1,1,1,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,5,5,0,0,0,3,3,3,3,3,3,3,3,1,0,0,1,3,3,3,3,3,5,5,5,6,1,6,0,0,0,0,0,0,9,0,0,9,6,6,6,5,5,5,5,5,5,2,5,5,5,5,5,5,5,5,0,0,0,1,3,3,3,5,3,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,0,5,5,5,0,0,6,3,3,3,3,3,3,3,1,0,0,1,3,3,3,3,3,3,5,0,0,0,1,6,6,6,7,7,7,7,8,8,7,7,7,7,7,7,7,7,7,6,1,3,3,3,5,3,3,3,3,1,0,0,1,3,3,3,5,3,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,5,5,5,5,2,0,5,5,5,5,0,6,3,3,17,17,17,17,3,1,0,0,1,3,17,17,17,3,3,3,0,0,0,0,1,1,1,7,0,0,0,0,0,0,0,0,0,0,0,0,0,7,9,9,3,3,3,5,3,3,3,3,1,0,0,1,3,3,3,5,3,3,3,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,5,0,0,0,0,2,0,5,5,5,5,0,1,1,1,5,5,5,5,1,1,0,0,1,1,5,5,5,4,3,6,0,0,0,0,0,1,1,7,0,5,5,5,5,5,5,10,5,5,5,0,0,8,0,9,3,3,3,5,3,3,3,3,1,0,0,1,3,3,3,5,3,3,3,1,1,1,1,1,4,4,4,4", + "4,4,4,4,4,4,4,4,4,6,6,1,1,0,0,5,0,1,1,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,5,5,5,5,0,0,0,0,1,6,6,0,0,0,0,0,0,1,7,0,5,5,5,5,5,5,10,5,5,5,0,0,8,0,9,3,3,3,5,3,3,3,3,1,0,0,0,5,5,5,5,5,5,5,0,0,0,0,1,4,4,4,4", + "4,4,4,4,4,4,4,4,4,6,3,6,1,0,5,0,0,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,1,1,1,0,0,0,0,0,7,7,7,0,5,5,5,5,5,5,10,5,5,5,0,0,8,0,9,1,1,1,0,1,1,1,1,1,0,0,1,3,3,3,5,3,3,3,1,1,0,0,1,1,4,4,4", + "4,4,4,4,4,4,4,4,6,6,3,3,6,1,0,5,0,0,1,0,0,0,1,2,2,1,1,1,1,0,0,0,0,0,5,5,5,5,5,5,5,5,0,0,1,4,1,1,0,0,0,0,0,0,0,0,5,5,5,5,5,5,10,5,5,5,0,0,8,0,9,4,4,1,0,1,4,4,4,1,0,0,1,3,3,3,5,3,3,3,1,1,1,0,0,1,4,4,4", + "4,4,4,4,4,4,4,6,6,3,3,3,3,6,1,0,5,0,1,0,0,0,1,0,0,1,1,1,1,0,0,0,0,5,5,5,5,5,5,5,5,5,5,0,1,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,9,4,4,1,0,1,4,4,1,1,0,0,1,3,3,3,5,3,3,3,1,4,1,0,0,1,1,4,4", + "4,4,4,4,4,4,6,6,3,3,3,3,3,3,6,1,0,5,1,0,0,0,1,5,0,1,1,1,1,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5,1,4,4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,9,4,1,1,0,1,4,4,1,0,0,0,1,3,3,3,5,3,3,3,1,4,1,1,0,0,1,4,4", + "4,4,4,4,4,4,6,3,3,3,3,3,3,6,6,6,0,5,1,2,1,1,1,5,0,1,1,1,1,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,1,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,9,1,1,0,0,1,4,4,1,0,0,0,1,1,1,1,0,1,1,1,1,4,4,1,0,0,1,4,4", + "4,4,4,4,4,6,6,3,3,3,3,6,6,6,6,0,0,0,5,0,0,1,1,5,0,1,1,1,1,1,1,1,2,2,1,1,1,5,1,1,1,1,1,1,1,4,4,4,7,7,7,7,0,5,5,5,5,5,5,10,5,5,5,5,5,5,0,0,7,9,9,1,0,0,0,1,4,4,1,0,0,1,1,1,1,0,0,1,4,4,4,4,4,1,0,0,1,4,4", + "4,4,4,4,6,6,3,3,3,3,3,6,6,6,0,0,0,0,0,5,0,0,1,5,0,1,1,1,1,1,1,6,0,0,0,6,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,7,0,5,5,5,5,5,5,10,5,5,5,5,5,5,0,0,7,1,1,0,0,0,0,1,4,4,1,0,0,1,4,1,0,0,0,1,4,4,4,4,4,1,0,0,1,1,1", + "4,4,4,4,6,3,3,3,3,3,3,3,3,6,0,0,0,0,0,0,5,0,0,5,0,1,1,1,1,1,1,6,6,0,0,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,0,5,5,5,5,5,5,10,5,5,5,5,5,5,0,0,7,1,0,0,0,0,1,1,4,4,1,0,1,1,4,1,0,0,1,1,4,4,4,4,1,1,0,0,2,0,1", + "4,4,4,6,6,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,0,5,5,5,0,1,1,1,1,1,1,1,6,0,0,0,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,0,5,5,5,5,5,5,10,5,5,5,5,5,5,0,0,7,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,0,0,1,4,4,4,4,1,1,0,0,0,2,0,1", + "4,4,4,6,3,3,3,3,6,3,3,3,3,0,0,0,0,0,6,1,1,0,0,0,0,1,1,1,1,1,1,1,6,0,0,0,6,4,4,4,4,4,4,4,4,4,4,4,9,9,9,7,0,5,5,5,5,5,5,10,5,5,5,5,5,5,0,0,7,0,0,0,1,1,4,1,3,3,3,5,3,3,3,1,0,0,1,4,4,1,1,1,0,0,0,1,1,1,1", + "4,4,4,6,3,3,3,3,3,3,3,3,3,0,0,0,0,6,6,6,1,0,0,1,1,6,6,6,6,6,6,6,6,6,0,0,6,4,4,4,4,4,4,4,4,4,4,4,9,0,0,8,0,5,5,5,5,5,5,10,5,5,5,5,5,5,0,0,7,0,0,1,1,4,4,1,3,3,3,5,3,3,3,1,0,0,1,4,4,1,0,0,0,0,1,1,4,4,4", + "4,4,4,6,3,3,3,3,3,3,3,3,0,0,0,0,0,6,6,11,6,1,0,6,11,11,11,11,11,11,11,11,11,0,0,0,6,4,4,4,4,4,4,4,4,4,4,4,9,0,0,8,0,5,5,5,5,5,5,10,5,5,5,5,5,5,0,0,7,0,0,1,4,4,4,1,3,3,3,5,3,3,3,1,0,0,1,4,1,1,0,0,0,0,1,4,4,4,4", + "4,4,4,6,6,3,3,3,3,3,3,0,0,0,3,3,6,6,11,11,11,6,1,6,11,11,11,11,11,11,11,11,11,0,0,0,6,4,4,4,4,4,4,4,4,4,4,4,9,9,9,7,0,0,0,0,0,0,0,0,0,0,0,0,7,8,8,8,7,0,0,1,1,1,1,1,3,3,3,5,3,3,3,1,0,0,1,4,1,0,0,0,0,1,1,4,4,4,4", + "4,4,4,4,6,3,3,3,3,3,3,3,0,3,3,3,3,6,6,11,11,6,6,6,11,11,11,11,11,11,11,11,11,0,0,0,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,9,0,0,1,0,0,0,0,5,5,5,5,5,5,5,0,0,0,1,1,1,0,0,1,1,1,4,4,4,4,4", + "4,4,4,4,6,6,3,3,3,3,3,3,3,3,3,3,3,3,6,11,11,11,6,6,11,11,6,6,6,6,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,9,0,0,1,0,0,0,0,5,5,5,5,5,5,5,0,0,0,1,1,0,0,0,1,4,4,4,4,4,4,4", + "4,4,4,4,4,6,6,3,3,3,3,3,3,3,3,3,3,3,3,3,11,11,11,6,11,11,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,7,7,7,7,8,8,8,8,8,8,8,7,7,7,0,0,0,9,0,0,1,0,0,1,1,3,3,3,5,3,3,3,1,0,0,1,1,0,0,1,1,4,4,4,4,4,4,4", + "4,4,4,4,4,4,6,6,3,3,3,3,3,3,3,3,3,3,3,3,3,6,11,11,11,11,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,0,0,0,0,0,0,0,9,4,9,0,0,0,9,0,0,0,0,0,1,1,3,3,3,5,3,3,3,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,6,3,3,3,3,3,3,3,3,3,3,3,3,3,6,6,11,11,11,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,0,0,0,0,0,0,0,9,4,9,9,9,9,9,0,0,0,0,0,1,1,3,3,3,5,3,3,3,1,0,0,0,0,0,1,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,1,6,3,3,3,3,3,3,6,3,3,3,3,6,6,6,11,11,11,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,9,9,9,9,9,9,9,9,9,4,4,4,4,4,1,0,0,0,0,0,1,1,3,3,3,5,3,3,3,1,1,0,0,0,0,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,6,4,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,0,1,1,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,1,3,3,3,3,3,3,3,3,3,3,3,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,1,1,1,1,0,0,1,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,1,1,3,3,3,6,3,3,3,3,3,3,3,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,1,1,1,0,0,1,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,1,1,3,3,3,1,1,6,3,3,3,3,3,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,5,5,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,1,3,3,3,3,1,4,6,6,3,3,3,3,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,0,5,5,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,1,1,3,3,3,1,1,4,4,6,3,3,3,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,5,5,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,1,0,0,0,3,1,4,4,4,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,0,0,0,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,2048,2048,2048,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "rod", + "Positions": [[36, 63], + [39, 63], + [32, 52], + [43, 52], + [36, 37], + [39, 37], + [35, 27], + [40, 27], + [33, 12]] + }, + { + "MapObject": "barrel_nukage", + "Positions": [[24, 61], + [26, 62], + [52, 81], + [57, 85], + [54, 85], + [55, 90], + [62, 85], + [64, 85], + [61, 82], + [60, 82], + [59, 82], + [57, 79], + [63, 93], + [51, 68], + [25, 23], + [26, 25], + [17, 25], + [12, 31], + [8, 18], + [9, 25], + [11, 24]] + }, + { + "MapObject": "Marine Shotgun spawner", + "Positions": [[29, 83]] + }, + { + "MapObject": "Launcher spawner", + "Positions": [[56, 74]] + }, + { + "MapObject": "Chaingun spawner", + "Positions": [[60, 88]] + }, + { + "MapObject": "wscreen1", + "Positions": [[14, 22], + [12, 22], + [11, 22], + [2, 21], + [9, 18], + [36, 55], + [41, 59], + [35, 61], + [34, 60], + [53, 81], + [55, 77], + [56, 77], + [61, 77], + [63, 77], + [66, 77]] + }, + { + "MapObject": "wscreen2", + "Positions": [[10, 18], + [13, 22], + [38, 46], + [33, 58], + [36, 61], + [39, 61], + [40, 60], + [39, 55], + [54, 81], + [60, 77], + [62, 77], + [65, 77], + [67, 77]] + }, + { + "MapObject": "candelabra", + "Positions": [[36, 1], + [39, 1]] + }, + { + "MapObject": "pillar", + "Positions": [[6, 18]] + }], + "StaticCharacters": [{ + "Index": 0, + "Places": [{ + "Pos": [14, 90], + "Dir": 0 + }, + { + "Pos": [15, 91], + "Dir": 6 + }, + { + "Pos": [21, 86], + "Dir": 4 + }, + { + "Pos": [23, 84], + "Dir": 3 + }, + { + "Pos": [16, 81], + "Dir": 1 + }, + { + "Pos": [18, 77], + "Dir": 7 + }, + { + "Pos": [25, 78], + "Dir": 2 + }, + { + "Pos": [31, 70], + "Dir": 2 + }, + { + "Pos": [44, 71], + "Dir": 2 + }, + { + "Pos": [40, 55], + "Dir": 1 + }, + { + "Pos": [50, 79], + "Dir": 1 + }, + { + "Pos": [48, 80], + "Dir": 5 + }, + { + "Pos": [50, 90], + "Dir": 0 + }, + { + "Pos": [56, 96], + "Dir": 6 + }, + { + "Pos": [59, 74], + "Dir": 3 + }, + { + "Pos": [66, 95], + "Dir": 0 + }, + { + "Pos": [33, 40], + "Dir": 3 + }, + { + "Pos": [42, 40], + "Dir": 5 + }, + { + "Pos": [51, 69], + "Dir": 6 + }, + { + "Pos": [52, 68], + "Dir": 0 + }, + { + "Pos": [66, 68], + "Dir": 7 + }, + { + "Pos": [67, 68], + "Dir": 7 + }, + { + "Pos": [74, 74], + "Dir": 3 + }, + { + "Pos": [70, 89], + "Dir": 3 + }, + { + "Pos": [81, 102], + "Dir": 6 + }, + { + "Pos": [85, 102], + "Dir": 1 + }, + { + "Pos": [84, 93], + "Dir": 1 + }, + { + "Pos": [40, 5], + "Dir": 5 + }, + { + "Pos": [41, 5], + "Dir": 4 + }, + { + "Pos": [42, 5], + "Dir": 2 + }, + { + "Pos": [43, 2], + "Dir": 3 + }, + { + "Pos": [44, 2], + "Dir": 6 + }, + { + "Pos": [45, 3], + "Dir": 5 + }, + { + "Pos": [46, 3], + "Dir": 5 + }, + { + "Pos": [37, 13], + "Dir": 4 + }, + { + "Pos": [40, 21], + "Dir": 7 + }, + { + "Pos": [36, 26], + "Dir": 7 + }, + { + "Pos": [39, 26], + "Dir": 6 + }, + { + "Pos": [26, 24], + "Dir": 1 + }, + { + "Pos": [24, 25], + "Dir": 1 + }, + { + "Pos": [13, 28], + "Dir": 5 + }, + { + "Pos": [7, 31], + "Dir": 5 + }, + { + "Pos": [8, 31], + "Dir": 6 + }, + { + "Pos": [8, 32], + "Dir": 4 + }, + { + "Pos": [7, 18], + "Dir": 0 + }, + { + "Pos": [5, 24], + "Dir": 4 + }, + { + "Pos": [2, 22], + "Dir": 2 + }, + { + "Pos": [3, 23], + "Dir": 0 + }, + { + "Pos": [2, 24], + "Dir": 0 + }, + { + "Pos": [65, 57], + "Dir": 4 + }, + { + "Pos": [67, 69], + "Dir": 4 + }, + { + "Pos": [68, 70], + "Dir": 3 + }, + { + "Pos": [4, 28], + "Dir": 0 + }, + { + "Pos": [5, 20], + "Dir": 3 + }, + { + "Pos": [69, 78], + "Dir": 2 + }] + }, + { + "Index": 1, + "Places": [{ + "Pos": [13, 89], + "Dir": 5 + }, + { + "Pos": [22, 89], + "Dir": 3 + }, + { + "Pos": [15, 79], + "Dir": 0 + }, + { + "Pos": [24, 74], + "Dir": 3 + }, + { + "Pos": [26, 76], + "Dir": 7 + }, + { + "Pos": [28, 71], + "Dir": 0 + }, + { + "Pos": [57, 93], + "Dir": 7 + }, + { + "Pos": [66, 87], + "Dir": 5 + }, + { + "Pos": [66, 80], + "Dir": 5 + }, + { + "Pos": [29, 36], + "Dir": 0 + }, + { + "Pos": [33, 36], + "Dir": 0 + }, + { + "Pos": [41, 37], + "Dir": 6 + }, + { + "Pos": [45, 39], + "Dir": 5 + }, + { + "Pos": [59, 59], + "Dir": 3 + }, + { + "Pos": [71, 66], + "Dir": 6 + }, + { + "Pos": [37, 12], + "Dir": 7 + }, + { + "Pos": [34, 14], + "Dir": 3 + }, + { + "Pos": [40, 14], + "Dir": 2 + }, + { + "Pos": [22, 22], + "Dir": 5 + }, + { + "Pos": [22, 26], + "Dir": 7 + }, + { + "Pos": [57, 77], + "Dir": 3 + }, + { + "Pos": [64, 77], + "Dir": 3 + }] + }, + { + "Index": 2, + "Places": [{ + "Pos": [19, 81], + "Dir": 3 + }, + { + "Pos": [20, 82], + "Dir": 2 + }, + { + "Pos": [38, 66], + "Dir": 4 + }, + { + "Pos": [32, 54], + "Dir": 6 + }, + { + "Pos": [43, 55], + "Dir": 3 + }, + { + "Pos": [59, 73], + "Dir": 4 + }, + { + "Pos": [57, 96], + "Dir": 1 + }, + { + "Pos": [60, 96], + "Dir": 1 + }, + { + "Pos": [65, 95], + "Dir": 5 + }, + { + "Pos": [67, 94], + "Dir": 7 + }, + { + "Pos": [43, 50], + "Dir": 4 + }, + { + "Pos": [56, 49], + "Dir": 4 + }, + { + "Pos": [57, 49], + "Dir": 0 + }, + { + "Pos": [58, 49], + "Dir": 1 + }, + { + "Pos": [59, 49], + "Dir": 7 + }, + { + "Pos": [51, 66], + "Dir": 6 + }, + { + "Pos": [52, 66], + "Dir": 0 + }, + { + "Pos": [50, 67], + "Dir": 1 + }, + { + "Pos": [54, 66], + "Dir": 5 + }, + { + "Pos": [55, 66], + "Dir": 5 + }, + { + "Pos": [56, 65], + "Dir": 0 + }, + { + "Pos": [61, 70], + "Dir": 7 + }, + { + "Pos": [67, 73], + "Dir": 1 + }, + { + "Pos": [66, 70], + "Dir": 1 + }, + { + "Pos": [76, 64], + "Dir": 3 + }, + { + "Pos": [77, 65], + "Dir": 0 + }, + { + "Pos": [84, 69], + "Dir": 0 + }, + { + "Pos": [80, 83], + "Dir": 5 + }, + { + "Pos": [86, 79], + "Dir": 0 + }, + { + "Pos": [74, 85], + "Dir": 7 + }, + { + "Pos": [71, 96], + "Dir": 5 + }, + { + "Pos": [79, 93], + "Dir": 4 + }, + { + "Pos": [95, 84], + "Dir": 6 + }, + { + "Pos": [34, 3], + "Dir": 0 + }, + { + "Pos": [35, 2], + "Dir": 2 + }, + { + "Pos": [38, 2], + "Dir": 3 + }, + { + "Pos": [40, 2], + "Dir": 0 + }, + { + "Pos": [41, 3], + "Dir": 0 + }, + { + "Pos": [11, 31], + "Dir": 7 + }, + { + "Pos": [12, 32], + "Dir": 2 + }, + { + "Pos": [12, 19], + "Dir": 2 + }, + { + "Pos": [16, 20], + "Dir": 3 + }, + { + "Pos": [15, 24], + "Dir": 0 + }, + { + "Pos": [3, 21], + "Dir": 6 + }, + { + "Pos": [3, 22], + "Dir": 6 + }, + { + "Pos": [2, 23], + "Dir": 6 + }, + { + "Pos": [3, 24], + "Dir": 1 + }, + { + "Pos": [24, 62], + "Dir": 7 + }, + { + "Pos": [24, 63], + "Dir": 1 + }, + { + "Pos": [25, 64], + "Dir": 2 + }, + { + "Pos": [33, 50], + "Dir": 6 + }, + { + "Pos": [28, 24], + "Dir": 1 + }, + { + "Pos": [69, 82], + "Dir": 6 + }, + { + "Pos": [69, 79], + "Dir": 4 + }, + { + "Pos": [49, 91], + "Dir": 5 + }] + }, + { + "Index": 4, + "Places": [{ + "Pos": [22, 78], + "Dir": 2 + }, + { + "Pos": [58, 96], + "Dir": 7 + }, + { + "Pos": [38, 39], + "Dir": 0 + }, + { + "Pos": [66, 67], + "Dir": 2 + }, + { + "Pos": [67, 67], + "Dir": 4 + }, + { + "Pos": [68, 68], + "Dir": 4 + }, + { + "Pos": [51, 70], + "Dir": 7 + }, + { + "Pos": [53, 67], + "Dir": 3 + }, + { + "Pos": [34, 20], + "Dir": 0 + }, + { + "Pos": [37, 24], + "Dir": 1 + }, + { + "Pos": [22, 23], + "Dir": 3 + }, + { + "Pos": [24, 24], + "Dir": 4 + }, + { + "Pos": [7, 33], + "Dir": 0 + }, + { + "Pos": [7, 34], + "Dir": 4 + }, + { + "Pos": [8, 34], + "Dir": 5 + }, + { + "Pos": [4, 13], + "Dir": 3 + }, + { + "Pos": [5, 13], + "Dir": 5 + }, + { + "Pos": [4, 14], + "Dir": 6 + }, + { + "Pos": [5, 14], + "Dir": 7 + }, + { + "Pos": [4, 15], + "Dir": 0 + }, + { + "Pos": [5, 15], + "Dir": 6 + }, + { + "Pos": [5, 7], + "Dir": 3 + }, + { + "Pos": [58, 73], + "Dir": 5 + }] + }, + { + "Index": 3, + "Places": [{ + "Pos": [21, 82], + "Dir": 3 + }, + { + "Pos": [35, 55], + "Dir": 7 + }, + { + "Pos": [37, 46], + "Dir": 3 + }, + { + "Pos": [35, 41], + "Dir": 5 + }, + { + "Pos": [37, 41], + "Dir": 3 + }, + { + "Pos": [39, 41], + "Dir": 1 + }, + { + "Pos": [67, 70], + "Dir": 4 + }, + { + "Pos": [51, 67], + "Dir": 3 + }, + { + "Pos": [52, 70], + "Dir": 5 + }, + { + "Pos": [10, 19], + "Dir": 5 + }, + { + "Pos": [15, 30], + "Dir": 1 + }, + { + "Pos": [4, 19], + "Dir": 6 + }, + { + "Pos": [4, 29], + "Dir": 1 + }, + { + "Pos": [1, 21], + "Dir": 0 + }, + { + "Pos": [1, 22], + "Dir": 1 + }, + { + "Pos": [1, 23], + "Dir": 6 + }, + { + "Pos": [1, 24], + "Dir": 1 + }] + }], + "StaticObjectives": [], + "StaticKeys": [{ + "Index": 3, + "Positions": [[67, 84]] + }, + { + "Index": 0, + "Positions": [[57, 67]] + }, + { + "Index": 2, + "Positions": [[12, 92]] + }, + { + "Index": 1, + "Positions": [[82, 103], + [37, 1]] + }], + "StaticPickups": [{ + "Pickup": "health_bonus", + "Positions": [[34, 78], + [35, 89], + [25, 94], + [25, 97], + [29, 92], + [20, 92], + [20, 85], + [48, 76], + [49, 76], + [49, 83], + [25, 60], + [25, 61], + [26, 61], + [52, 69], + [42, 54], + [63, 57], + [63, 59], + [66, 67], + [74, 66], + [81, 75], + [79, 83], + [73, 84], + [47, 23], + [48, 23], + [49, 23], + [49, 24], + [48, 22], + [41, 2], + [8, 24], + [8, 20], + [11, 27], + [3, 8], + [4, 8], + [5, 8], + [17, 84], + [33, 60], + [33, 49], + [32, 49], + [41, 52], + [66, 57], + [43, 49]] + }, + { + "Pickup": "armor_bonus", + "Positions": [[43, 78], + [41, 78], + [35, 91], + [24, 91], + [23, 97], + [20, 93], + [20, 94], + [4, 105], + [5, 105], + [6, 105], + [13, 88], + [17, 88], + [17, 82], + [23, 72], + [27, 78], + [28, 74], + [60, 87], + [63, 80], + [67, 93], + [35, 56], + [63, 71], + [65, 73], + [76, 59], + [80, 68], + [81, 69], + [86, 69], + [69, 92], + [84, 86], + [84, 95], + [78, 100], + [82, 102], + [84, 102], + [90, 90], + [94, 87], + [95, 87], + [95, 86], + [94, 86], + [94, 88], + [93, 81], + [24, 27], + [16, 24], + [17, 24], + [11, 32], + [7, 27], + [18, 85], + [34, 89], + [7, 21]] + }, + { + "Pickup": "stimpack", + "Positions": [[29, 84], + [12, 83], + [54, 74], + [44, 30], + [42, 78], + [43, 79], + [43, 83], + [32, 78], + [31, 79], + [29, 79], + [47, 79], + [19, 82], + [19, 82], + [21, 83], + [22, 90], + [15, 85], + [33, 87], + [34, 87], + [36, 56], + [28, 50], + [35, 44], + [52, 71], + [30, 20], + [41, 12], + [40, 1], + [26, 26], + [10, 24], + [10, 18], + [13, 27]] + }, + { + "Pickup": "medikit", + "Positions": [[50, 23], + [58, 74], + [55, 96], + [67, 95], + [69, 81], + [27, 60], + [27, 59], + [27, 58], + [19, 92], + [38, 42], + [38, 42], + [38, 40], + [37, 39], + [51, 71], + [83, 102], + [68, 67], + [50, 21], + [31, 30], + [36, 3], + [8, 33], + [14, 24], + [6, 25], + [2, 25], + [4, 9]] + }, + { + "Pickup": "armor", + "Positions": [[25, 62], + [39, 56], + [55, 70], + [55, 70], + [22, 24]] + }, + { + "Pickup": "ammo_Shells", + "Positions": [[51, 78], + [49, 90], + [49, 90], + [61, 96], + [67, 85], + [21, 81], + [16, 90], + [33, 61], + [36, 55], + [34, 49], + [54, 58], + [58, 65], + [56, 69], + [78, 57], + [81, 64], + [91, 90], + [69, 97], + [66, 69], + [68, 69], + [38, 33], + [43, 36], + [30, 39], + [35, 1], + [23, 27], + [14, 27], + [6, 23]] + }, + { + "Pickup": "ammo_Bullets", + "Positions": [[27, 91], + [26, 92], + [33, 92]] + }, + { + "Pickup": "supercharge", + "Positions": [[3, 106], + [43, 14]] + }, + { + "Pickup": "megaarmor", + "Positions": [[19, 91]] + }, + { + "Pickup": "ammo_Rockets", + "Positions": [[67, 71]] + }, + { + "Pickup": "shells2", + "Positions": [[29, 82], + [63, 79], + [26, 59], + [26, 60], + [27, 61], + [83, 103], + [49, 21], + [7, 32]] + }, + { + "Pickup": "bullet_pickup2", + "Positions": [[57, 86], + [60, 89], + [64, 80], + [93, 80], + [49, 22], + [13, 24]] + }, + { + "Pickup": "rockets2", + "Positions": [[33, 86], + [34, 86], + [47, 22], + [50, 24]] + }, + { + "Pickup": "computer_map", + "Positions": [[97, 87]] + }, + { + "Pickup": "backpack", + "Positions": [[59, 65], + [52, 74], + [48, 21]] + }], + "Start": [38, 83], + "Exits": [{ + "Rect": [3, + 7, + 3, + 3], + "Mission": 6, + "Hidden": false + }], + "AltFloorsEnabled": true + }, + { + "Title": "Computer Station", + "Description": "", + "Type": "Static", + "Width": 88, + "Height": 98, + "ExitStyle": "hazard2", + "KeyStyle": "chip", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Fists", "Marine Pistol"], + "WeaponPersist": true, + "SkipDebrief": false, + "TileClasses": { + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "metal", + "Mask": "808080ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "959594ff", + "MaskAlt": "7e603bff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "10": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "414141ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "11": { + "Name": "tile", + "Type": "Floor", + "Style": "grate", + "Mask": "6b5234ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "12": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "959594ff", + "MaskAlt": "5d7e3bff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "13": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "a36f25ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "14": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "4a391fff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "15": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "ecbd91ff", + "MaskAlt": "cd9f66ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "16": { + "Name": "wall", + "Type": "Wall", + "Style": "techwall", + "Mask": "808080ff", + "MaskAlt": "697b69ff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "17": { + "Name": "wall", + "Type": "Wall", + "Style": "bunker", + "Mask": "45543cff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "18": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "959594ff", + "MaskAlt": "788765ff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "2": { + "Name": "door", + "Type": "Door", + "Style": "doom", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "202080ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "5": { + "Name": "tile", + "Type": "Floor", + "Style": "metal", + "Mask": "c4c4c4ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "6": { + "Name": "tile", + "Type": "Floor", + "Style": "water", + "Mask": "329331ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "nukage" + }, + "7": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "706f6fff", + "MaskAlt": "808080ff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "8": { + "Name": "wall", + "Type": "Wall", + "Style": "techwall", + "Mask": "808080ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "9": { + "Name": "wall", + "Type": "Wall", + "Style": "hightech", + "Mask": "808080ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + } + }, + "Tiles": ["4,4,4,4,4,4,4,4,4,4,4,4,17,17,17,17,17,17,17,17,17,17,17,17,17,17,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,17,17,6,6,6,6,6,6,6,6,6,6,6,6,17,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,5,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,17,17,6,6,6,6,6,6,6,6,6,6,6,6,6,17,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,17,17,6,6,6,6,6,6,6,6,6,6,6,6,6,6,17,17,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "8,8,8,8,8,8,8,8,8,8,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,17,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "8,10,10,10,10,10,10,10,10,7,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,17,1,1,1,1,1,1,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "8,10,10,10,10,10,10,10,10,7,6,6,6,6,6,6,7,7,7,7,7,0,0,0,0,0,0,2,0,0,0,0,1,1,1,4,4,4,1,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "8,10,10,10,10,10,10,10,10,7,6,6,6,6,6,6,7,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,4,4,4,1,1,1,1,2,2,2,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "8,10,10,10,10,10,10,10,10,7,6,6,6,6,6,6,7,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,4,4,4,1,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "8,10,10,8,8,8,8,8,8,8,6,6,6,6,6,6,7,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "8,10,10,8,8,8,8,8,8,17,6,6,6,6,6,6,7,0,0,0,0,0,0,0,7,7,7,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "8,10,10,8,8,8,8,8,8,8,17,6,6,6,6,6,7,0,0,0,0,7,7,7,6,6,6,17,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "8,10,10,10,10,10,10,10,10,10,8,6,6,6,6,6,7,0,0,0,0,7,6,6,6,6,6,17,17,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "8,10,10,10,10,10,10,10,10,10,8,6,6,6,6,6,7,7,7,7,7,7,6,6,6,6,6,6,17,1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "8,10,10,10,10,10,10,10,10,10,8,17,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,17,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "8,10,10,10,10,10,10,10,10,10,8,17,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,17,1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,5,5,5,5,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "8,8,8,8,8,8,8,10,10,10,10,8,17,6,6,6,6,6,6,6,6,6,6,6,6,6,6,17,1,0,0,0,0,1,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,2,2,2,2,1,1,17,17,17,6,6,6,6,6,6,6,17,17,17,17,17,1,0,0,0,1,1,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,11,11,11,11,2,0,1,1,1,7,7,7,7,7,7,1,17,6,6,6,6,1,0,0,0,2,0,0,0,0,0,1,1,1,5,5,5,5,5,1,1,1,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,11,11,11,11,2,0,0,0,0,0,0,0,0,0,0,0,1,6,0,0,0,2,0,0,0,2,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,11,11,11,11,2,0,0,0,0,0,0,0,0,0,0,0,1,6,0,0,0,2,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,6,6,6,6,1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4,4,9,9,9,9,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,0,0,0,0,0,0,0,0,1,6,6,6,6,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4,9,3,3,3,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,7,6,6,6,6,7,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,1,4,9,3,3,3,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,7,6,6,6,6,7,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4,1,1,0,0,0,0,0,0,0,1,1,9,3,3,3,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,1,0,0,0,2,0,0,0,0,0,15,0,0,0,0,7,6,6,6,6,7,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,1,1,1,0,0,0,0,0,0,1,9,3,9,9,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,1,0,0,0,2,0,0,0,0,15,15,15,0,0,0,7,6,6,6,6,7,0,0,0,0,0,0,0,5,0,0,0,0,1,3,3,1,0,0,0,0,0,1,4,4,4,4,4,4,1,1,0,0,0,0,0,1,9,3,9,9,9,9,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,1,0,0,0,2,0,0,0,0,15,15,15,0,0,0,7,6,6,6,6,7,0,0,0,0,0,0,0,5,0,0,0,0,1,3,3,1,0,0,0,0,0,1,4,4,4,4,4,4,4,1,1,0,0,0,0,1,9,3,3,3,3,3,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,1,1,1,1,1,0,0,0,0,15,15,15,0,0,0,7,6,6,6,6,7,0,0,1,1,1,1,1,1,7,7,7,1,1,3,3,1,1,7,7,7,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,8,8,7,7,7,7,3,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,15,15,15,0,0,0,7,6,6,6,6,7,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,10,10,10,10,10,10,7,3,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,15,0,0,0,0,7,6,6,6,6,7,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,10,10,10,10,10,10,7,3,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,7,6,6,6,6,7,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,10,10,10,10,10,10,7,3,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,1,6,6,6,6,7,0,0,1,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,10,10,10,10,10,10,7,3,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,1,6,6,6,6,7,0,0,1,3,3,3,1,1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,1,1,1,1,1,1,0,0,0,10,10,10,10,10,10,7,3,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,0,0,0,0,0,0,0,1,6,6,6,6,1,0,0,1,3,3,3,1,12,12,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,12,1,1,1,1,1,1,0,0,0,10,10,10,10,10,10,7,3,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,17,6,6,6,6,1,0,0,1,3,3,3,1,12,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,10,10,10,10,10,10,8,2,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,0,0,0,1,6,6,6,6,6,1,0,0,1,3,3,3,1,12,0,0,0,0,0,0,5,5,5,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,8,8,8,10,10,2,11,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,6,6,6,6,6,1,0,0,1,3,3,3,1,0,0,0,8,8,8,8,16,16,16,8,8,8,8,8,8,0,2,0,0,0,0,0,0,0,0,0,0,1,1,8,10,10,2,11,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,2,2,2,1,6,6,6,6,6,1,0,0,1,3,3,3,1,0,0,0,8,10,10,10,11,11,11,10,10,10,10,10,8,0,2,0,0,0,0,0,0,0,0,0,0,1,1,8,10,10,2,11,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,6,6,6,6,6,1,0,0,0,0,0,0,2,0,0,0,8,10,10,10,10,10,10,10,10,10,10,10,8,0,2,0,0,0,0,0,0,0,0,0,0,1,1,8,10,10,2,11,9,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,17,6,6,6,6,1,0,0,0,0,0,0,2,0,0,0,8,10,8,10,10,10,10,10,8,10,10,10,8,0,1,1,1,1,1,1,7,7,7,7,7,1,1,8,8,8,8,8,15,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,0,0,1,6,6,6,6,1,0,0,0,0,0,0,2,0,0,0,8,10,8,8,10,10,10,8,8,10,10,10,8,0,0,0,0,0,0,7,13,13,13,13,13,13,13,13,13,13,13,13,15,15,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,1,17,6,6,6,1,0,0,0,0,0,0,2,0,0,0,8,10,10,10,10,10,10,10,10,10,10,10,8,0,0,0,0,0,0,7,13,13,13,13,13,13,13,13,13,13,13,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,6,6,6,1,7,7,7,7,7,1,1,5,0,0,8,10,10,10,10,10,10,10,10,10,10,10,8,8,8,8,8,0,0,7,13,13,13,13,13,13,13,13,13,13,13,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,7,6,6,6,6,6,6,6,6,6,12,5,5,0,8,8,8,8,8,8,8,8,8,8,8,10,10,10,10,10,8,0,0,7,13,13,13,13,13,13,13,13,13,13,13,13,13,15,15,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,0,0,0,0,7,6,6,6,6,6,6,6,6,12,5,5,5,0,0,0,0,0,0,0,0,0,0,8,10,10,8,8,10,8,0,0,7,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,1,1,0,0,0,7,6,6,6,6,6,6,6,6,12,5,5,5,5,0,0,0,0,0,0,0,0,0,8,10,10,8,8,10,8,0,0,7,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,15,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,1,17,7,0,0,0,0,7,6,6,6,6,6,6,6,12,5,5,5,5,5,0,0,0,0,0,0,0,0,8,10,10,10,10,10,8,0,0,7,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,17,6,7,0,0,7,6,6,6,6,6,6,6,6,12,12,12,12,5,5,5,12,12,12,12,12,0,0,8,8,8,8,8,8,8,0,0,7,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,6,6,7,0,7,6,6,6,6,6,6,6,6,6,6,6,6,12,5,5,5,12,12,12,12,12,0,0,0,0,0,0,0,0,0,0,0,7,13,13,13,13,13,13,13,14,13,13,13,13,13,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,6,6,6,7,6,6,6,6,6,6,6,6,6,6,6,6,6,7,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,5,5,5,0,0,0,0,0,0,0,0,0,0,0,12,12,12,12,12,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,5,5,5,0,0,0,0,0,0,0,0,0,0,0,12,4,4,4,4,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,0,1,17,6,6,6,6,6,6,6,6,15,15,15,6,6,6,6,6,12,5,5,5,12,12,12,2,2,12,0,0,0,0,0,12,4,4,4,4,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,1,17,6,6,6,6,6,6,6,15,6,15,6,6,6,6,6,12,5,5,0,12,12,12,0,0,12,12,12,12,12,12,12,12,12,12,12,12,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,1,0,0,1,17,6,6,6,6,6,6,15,6,15,6,6,6,6,6,12,5,0,0,12,12,12,0,0,18,0,0,0,0,0,0,0,0,0,0,0,2,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,1,0,0,1,17,17,6,6,6,6,6,6,6,6,6,6,6,6,6,12,0,0,0,12,12,12,0,0,18,0,0,0,0,0,0,0,0,0,0,0,2,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,1,0,0,1,6,6,6,6,6,6,6,6,6,6,6,6,6,6,17,12,0,0,0,0,12,12,0,0,18,0,0,0,0,0,0,0,0,0,0,0,2,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,1,0,0,1,6,6,6,17,17,17,17,17,17,17,17,17,17,17,17,12,12,0,0,0,0,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,1,0,0,1,6,6,6,6,6,6,2,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,5,5,12,0,12,12,12,12,12,12,4,4,4,4,15,13,13,13,13,13,13,13,13,13,13,13,13,13,15,15,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,1,0,0,1,17,6,6,17,17,17,17,17,17,17,17,17,17,0,0,0,12,0,0,0,0,0,5,5,2,0,14,14,14,14,14,12,12,4,4,4,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,15,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,1,1,0,0,1,6,6,6,6,6,6,6,6,6,6,17,17,0,0,0,12,12,0,0,0,0,5,5,2,0,14,14,14,14,14,14,12,4,4,4,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,15,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,1,1,0,0,1,17,6,6,6,6,6,6,6,6,6,6,17,17,0,0,0,12,12,0,0,0,5,5,2,0,14,14,14,14,14,14,12,12,4,4,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,15,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,1,1,1,0,0,1,6,6,6,6,6,6,6,6,6,6,6,17,0,0,0,0,12,0,0,0,5,5,2,0,14,14,14,14,14,14,14,12,4,4,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,15,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,1,1,0,0,1,17,6,6,6,6,6,6,6,6,6,6,17,0,0,0,0,12,0,0,0,5,5,12,0,12,12,12,14,14,14,14,12,4,4,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,15,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,6,6,6,6,6,6,6,6,6,6,17,17,12,12,12,12,0,0,0,12,12,12,12,12,12,12,12,14,14,14,12,12,4,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,15,15,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,0,0,0,0,1,6,6,6,6,6,6,6,6,13,13,13,13,12,0,0,2,0,0,0,12,5,12,12,12,12,12,12,0,0,0,0,12,4,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,15,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,0,0,0,17,17,6,6,6,6,6,6,6,13,13,13,13,12,0,0,2,0,0,0,12,5,12,12,12,12,12,12,0,0,0,0,12,12,12,12,12,7,7,7,7,7,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,15,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,0,0,0,0,17,6,6,6,6,6,6,6,13,13,17,17,12,12,12,12,0,0,0,12,5,12,12,12,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,15,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,17,0,0,0,17,17,6,6,6,6,6,6,13,13,17,12,12,12,12,0,0,0,0,12,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,15,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,0,0,0,0,17,7,7,7,7,7,7,0,17,17,12,12,12,0,0,0,0,0,12,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,15,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,15", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,17,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,17,17,0,0,0,0,7,5,5,7,0,0,0,0,0,0,0,0,0,0,0,12,12,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,12,12,12,17,0,0,0,0,0,7,5,5,7,0,0,0,0,0,0,0,0,0,0,12,12,12,0,0,0,0,0,12,0,0,0,12,12,12,12,12,12,12,12,0,0,0,0,7,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15", + "4,4,4,4,4,4,4,4,4,4,4,4,4,12,12,12,12,12,12,12,12,0,0,2,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,12,12,12,0,0,0,0,0,12,5,5,12,12,4,4,4,4,4,4,12,12,2,2,2,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15", + "4,4,4,4,4,4,4,4,4,4,4,4,4,12,11,11,11,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,12,12,0,0,0,0,0,12,0,0,12,4,4,4,4,4,4,4,4,12,0,0,0,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15", + "4,4,4,4,4,4,4,4,4,4,4,4,4,12,11,11,11,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,12,12,0,0,0,0,0,12,0,0,12,12,4,4,4,4,4,4,4,12,0,0,0,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15", + "4,4,4,4,4,4,4,4,4,4,8,8,8,8,11,11,11,2,0,0,0,0,12,17,17,17,7,7,7,7,7,7,7,7,7,12,12,12,12,12,2,12,12,12,12,12,0,0,0,0,0,12,0,0,0,12,4,4,4,4,4,4,4,12,0,0,0,0,12,12,7,7,7,7,12,12,9,7,7,7,7,9,9,13,13,13,13,15", + "4,4,4,4,4,4,4,4,4,4,8,10,10,10,10,10,10,12,12,12,12,12,12,17,17,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,0,0,0,0,12,12,0,0,0,12,12,4,4,4,4,4,4,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,9,13,13,13,13,15", + "4,4,4,4,4,4,4,4,4,4,8,10,10,10,10,10,10,8,8,8,17,17,17,6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,0,0,0,0,12,12,12,0,0,0,12,4,4,4,4,4,4,12,12,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,9,13,13,13,13,15", + "4,4,4,4,4,4,4,4,4,4,8,10,10,10,10,10,10,10,10,8,17,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,12,12,12,12,12,12,12,12,12,0,0,0,0,0,12,12,12,0,0,0,12,4,4,4,4,4,4,4,12,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,9,13,13,13,13,15", + "4,4,4,4,4,4,4,4,4,4,8,10,10,10,10,10,10,10,10,8,17,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,12,0,0,0,0,0,0,0,0,0,0,0,12,12,12,0,0,0,12,4,4,4,4,4,4,4,12,12,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,9,13,13,13,13,15", + "4,4,4,4,4,4,4,4,4,4,8,10,10,10,10,10,10,10,10,17,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,12,0,0,0,0,0,0,0,0,0,0,0,12,12,12,0,0,0,12,4,4,4,4,4,4,4,4,12,12,12,12,12,7,7,7,7,12,12,9,7,7,7,7,9,9,13,13,13,13,15", + "4,4,4,4,4,4,4,4,4,4,8,10,10,8,8,8,10,10,10,17,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,0,0,0,0,0,0,0,0,0,12,12,12,12,12,0,0,0,12,4,4,4,4,4,4,4,4,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15", + "4,4,4,4,4,4,4,4,4,4,8,10,10,8,8,8,10,10,10,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,0,0,0,0,12,12,12,12,12,12,12,12,12,12,12,0,0,0,12,4,4,4,4,4,4,4,4,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15", + "4,4,4,4,4,4,8,8,8,8,8,10,10,8,8,8,10,10,10,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,0,0,0,0,12,12,12,12,12,12,12,12,12,12,0,0,0,0,12,4,4,4,4,4,4,4,4,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15", + "4,4,4,4,4,4,8,10,10,10,10,10,10,10,10,10,10,10,10,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,4,4,4,4,4,4,4,4,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15", + "4,4,4,4,4,4,8,10,10,10,10,10,10,10,10,10,10,10,10,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,4,4,4,4,4,4,4,4,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,15,15", + "4,4,4,4,4,4,8,10,10,16,16,16,10,10,10,10,10,10,10,17,6,6,6,6,6,6,6,6,6,6,6,6,6,17,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,4,4,4,4,4,4,4,4,15,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,15,15,4,4", + "4,4,4,4,4,4,8,10,10,16,10,16,10,10,8,8,8,8,8,17,6,6,6,6,6,6,6,6,6,6,6,6,6,17,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,4,4,4,4,4,4,4,4,4,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,4,4,4,4", + "4,4,4,4,4,4,8,10,10,16,16,16,10,10,8,4,4,4,4,17,17,6,6,6,6,6,6,6,6,6,6,17,17,17,4,12,12,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,8,10,10,10,10,10,10,10,8,4,4,4,4,4,17,17,6,6,6,6,6,6,6,17,17,17,4,4,4,4,4,4,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,8,10,10,10,10,10,10,10,8,4,4,4,4,4,4,17,17,17,17,17,17,17,17,17,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,8,10,10,10,10,10,10,10,8,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,8,8,8,8,8,8,8,8,8,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,512,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "rod", + "Positions": [[39, 6], + [46, 6], + [39, 8], + [46, 8], + [42, 40], + [46, 40], + [21, 66], + [18, 55], + [17, 7], + [17, 12], + [20, 12], + [81, 81], + [81, 84], + [59, 69], + [59, 75], + [50, 70], + [50, 76]] + }, + { + "MapObject": "barrel_nukage", + "Positions": [[41, 10], + [44, 10], + [22, 34], + [18, 32], + [15, 27], + [15, 19], + [46, 50], + [35, 72], + [35, 79], + [39, 84], + [12, 89], + [17, 86], + [15, 85], + [66, 69], + [50, 74], + [21, 80]] + }, + { + "MapObject": "Marine Shotgun spawner", + "Positions": [[41, 5], + [48, 70]] + }, + { + "MapObject": "Launcher spawner", + "Positions": [[51, 45]] + }, + { + "MapObject": "Chaingun spawner", + "Positions": [[34, 81]] + }, + { + "MapObject": "Chainsaw spawner", + "Positions": [[10, 92]] + }, + { + "MapObject": "wscreen1", + "Positions": [[7, 5], + [4, 5], + [2, 5], + [3, 12], + [5, 12], + [8, 12], + [46, 38], + [48, 38], + [46, 42], + [42, 42], + [39, 45], + [41, 45], + [42, 45], + [45, 45], + [46, 45], + [49, 49], + [51, 49], + [54, 49], + [52, 44], + [54, 44], + [52, 47], + [67, 22], + [67, 27], + [69, 27], + [65, 29], + [13, 81], + [11, 81], + [10, 89], + [14, 89], + [18, 83]] + }, + { + "MapObject": "wscreen2", + "Positions": [[6, 5], + [3, 5], + [1, 5], + [4, 12], + [6, 12], + [7, 12], + [9, 12], + [10, 16], + [41, 38], + [42, 38], + [47, 38], + [49, 38], + [47, 42], + [41, 42], + [40, 45], + [43, 45], + [44, 45], + [48, 45], + [47, 45], + [50, 49], + [52, 49], + [53, 49], + [55, 49], + [53, 47], + [53, 44], + [51, 44], + [64, 29], + [66, 22], + [68, 27], + [13, 89], + [15, 89], + [12, 81], + [9, 89], + [7, 89], + [17, 83]] + }, + { + "MapObject": "pillar", + "Positions": [[50, 16], + [53, 22]] + }, + { + "MapObject": "candelabra", + "Positions": [[57, 51]] + }], + "StaticCharacters": [{ + "Index": 0, + "Places": [{ + "Pos": [37, 11], + "Dir": 6 + }, + { + "Pos": [49, 11], + "Dir": 6 + }, + { + "Pos": [40, 19], + "Dir": 7 + }, + { + "Pos": [46, 19], + "Dir": 2 + }, + { + "Pos": [66, 24], + "Dir": 0 + }, + { + "Pos": [68, 22], + "Dir": 1 + }, + { + "Pos": [68, 24], + "Dir": 7 + }, + { + "Pos": [54, 37], + "Dir": 0 + }, + { + "Pos": [42, 36], + "Dir": 7 + }, + { + "Pos": [56, 50], + "Dir": 4 + }, + { + "Pos": [30, 75], + "Dir": 7 + }, + { + "Pos": [31, 75], + "Dir": 3 + }, + { + "Pos": [31, 76], + "Dir": 3 + }, + { + "Pos": [30, 76], + "Dir": 3 + }, + { + "Pos": [21, 59], + "Dir": 0 + }, + { + "Pos": [17, 57], + "Dir": 4 + }, + { + "Pos": [20, 40], + "Dir": 5 + }, + { + "Pos": [6, 6], + "Dir": 0 + }, + { + "Pos": [9, 25], + "Dir": 6 + }, + { + "Pos": [7, 95], + "Dir": 3 + }, + { + "Pos": [13, 95], + "Dir": 7 + }, + { + "Pos": [8, 89], + "Dir": 7 + }, + { + "Pos": [39, 68], + "Dir": 5 + }, + { + "Pos": [45, 56], + "Dir": 0 + }, + { + "Pos": [45, 57], + "Dir": 5 + }, + { + "Pos": [46, 57], + "Dir": 1 + }, + { + "Pos": [61, 43], + "Dir": 3 + }, + { + "Pos": [63, 43], + "Dir": 7 + }, + { + "Pos": [70, 43], + "Dir": 7 + }, + { + "Pos": [70, 45], + "Dir": 2 + }, + { + "Pos": [61, 47], + "Dir": 6 + }, + { + "Pos": [61, 49], + "Dir": 7 + }, + { + "Pos": [76, 73], + "Dir": 4 + }, + { + "Pos": [76, 75], + "Dir": 7 + }, + { + "Pos": [70, 88], + "Dir": 7 + }, + { + "Pos": [71, 88], + "Dir": 5 + }, + { + "Pos": [72, 88], + "Dir": 7 + }, + { + "Pos": [77, 88], + "Dir": 3 + }, + { + "Pos": [78, 88], + "Dir": 4 + }, + { + "Pos": [79, 88], + "Dir": 5 + }, + { + "Pos": [76, 82], + "Dir": 1 + }, + { + "Pos": [78, 82], + "Dir": 6 + }, + { + "Pos": [65, 82], + "Dir": 2 + }, + { + "Pos": [66, 82], + "Dir": 2 + }, + { + "Pos": [67, 82], + "Dir": 7 + }, + { + "Pos": [70, 82], + "Dir": 0 + }, + { + "Pos": [71, 82], + "Dir": 0 + }, + { + "Pos": [74, 81], + "Dir": 5 + }, + { + "Pos": [52, 70], + "Dir": 6 + }, + { + "Pos": [65, 71], + "Dir": 1 + }, + { + "Pos": [48, 71], + "Dir": 1 + }, + { + "Pos": [34, 17], + "Dir": 4 + }, + { + "Pos": [36, 17], + "Dir": 1 + }, + { + "Pos": [36, 20], + "Dir": 1 + }] + }, + { + "Index": 4, + "Places": [{ + "Pos": [43, 23], + "Dir": 3 + }] + }, + { + "Index": 2, + "Places": [{ + "Pos": [39, 23], + "Dir": 6 + }, + { + "Pos": [47, 23], + "Dir": 7 + }, + { + "Pos": [39, 29], + "Dir": 5 + }, + { + "Pos": [38, 29], + "Dir": 4 + }, + { + "Pos": [46, 29], + "Dir": 0 + }, + { + "Pos": [47, 29], + "Dir": 2 + }, + { + "Pos": [21, 25], + "Dir": 5 + }, + { + "Pos": [14, 27], + "Dir": 7 + }, + { + "Pos": [67, 38], + "Dir": 4 + }, + { + "Pos": [70, 27], + "Dir": 7 + }, + { + "Pos": [50, 36], + "Dir": 1 + }, + { + "Pos": [45, 46], + "Dir": 1 + }, + { + "Pos": [52, 53], + "Dir": 0 + }, + { + "Pos": [18, 87], + "Dir": 2 + }, + { + "Pos": [18, 88], + "Dir": 5 + }, + { + "Pos": [18, 89], + "Dir": 5 + }, + { + "Pos": [36, 89], + "Dir": 4 + }, + { + "Pos": [37, 88], + "Dir": 3 + }, + { + "Pos": [37, 87], + "Dir": 2 + }, + { + "Pos": [24, 45], + "Dir": 6 + }, + { + "Pos": [24, 47], + "Dir": 3 + }, + { + "Pos": [24, 49], + "Dir": 5 + }, + { + "Pos": [19, 11], + "Dir": 0 + }, + { + "Pos": [19, 8], + "Dir": 5 + }, + { + "Pos": [23, 7], + "Dir": 3 + }, + { + "Pos": [8, 5], + "Dir": 0 + }, + { + "Pos": [11, 25], + "Dir": 4 + }, + { + "Pos": [40, 67], + "Dir": 7 + }, + { + "Pos": [45, 55], + "Dir": 6 + }, + { + "Pos": [46, 55], + "Dir": 0 + }, + { + "Pos": [69, 82], + "Dir": 0 + }, + { + "Pos": [72, 82], + "Dir": 2 + }, + { + "Pos": [80, 82], + "Dir": 7 + }, + { + "Pos": [63, 75], + "Dir": 7 + }, + { + "Pos": [46, 73], + "Dir": 2 + }, + { + "Pos": [34, 20], + "Dir": 7 + }, + { + "Pos": [34, 18], + "Dir": 6 + }, + { + "Pos": [36, 18], + "Dir": 3 + }] + }, + { + "Index": 1, + "Places": [{ + "Pos": [37, 29], + "Dir": 1 + }, + { + "Pos": [48, 29], + "Dir": 3 + }, + { + "Pos": [22, 29], + "Dir": 0 + }, + { + "Pos": [21, 30], + "Dir": 6 + }, + { + "Pos": [21, 21], + "Dir": 7 + }, + { + "Pos": [16, 21], + "Dir": 6 + }, + { + "Pos": [19, 35], + "Dir": 2 + }, + { + "Pos": [58, 24], + "Dir": 7 + }, + { + "Pos": [59, 23], + "Dir": 5 + }, + { + "Pos": [60, 22], + "Dir": 5 + }, + { + "Pos": [57, 35], + "Dir": 7 + }, + { + "Pos": [57, 39], + "Dir": 7 + }, + { + "Pos": [40, 38], + "Dir": 7 + }, + { + "Pos": [42, 43], + "Dir": 0 + }, + { + "Pos": [50, 38], + "Dir": 0 + }, + { + "Pos": [50, 43], + "Dir": 3 + }, + { + "Pos": [33, 73], + "Dir": 3 + }, + { + "Pos": [33, 75], + "Dir": 7 + }, + { + "Pos": [33, 77], + "Dir": 2 + }, + { + "Pos": [34, 74], + "Dir": 4 + }, + { + "Pos": [34, 76], + "Dir": 3 + }, + { + "Pos": [35, 75], + "Dir": 1 + }, + { + "Pos": [41, 84], + "Dir": 1 + }, + { + "Pos": [38, 89], + "Dir": 0 + }, + { + "Pos": [41, 91], + "Dir": 1 + }, + { + "Pos": [17, 49], + "Dir": 2 + }, + { + "Pos": [19, 49], + "Dir": 3 + }, + { + "Pos": [18, 51], + "Dir": 0 + }, + { + "Pos": [5, 5], + "Dir": 1 + }, + { + "Pos": [4, 6], + "Dir": 3 + }, + { + "Pos": [40, 68], + "Dir": 2 + }, + { + "Pos": [65, 78], + "Dir": 7 + }, + { + "Pos": [65, 80], + "Dir": 0 + }, + { + "Pos": [48, 62], + "Dir": 2 + }, + { + "Pos": [57, 70], + "Dir": 3 + }, + { + "Pos": [56, 74], + "Dir": 6 + }, + { + "Pos": [61, 70], + "Dir": 2 + }, + { + "Pos": [60, 74], + "Dir": 4 + }, + { + "Pos": [46, 75], + "Dir": 2 + }, + { + "Pos": [48, 85], + "Dir": 4 + }, + { + "Pos": [45, 83], + "Dir": 5 + }, + { + "Pos": [45, 84], + "Dir": 1 + }, + { + "Pos": [45, 85], + "Dir": 7 + }, + { + "Pos": [30, 42], + "Dir": 3 + }, + { + "Pos": [29, 18], + "Dir": 0 + }, + { + "Pos": [51, 91], + "Dir": 1 + }, + { + "Pos": [53, 84], + "Dir": 6 + }] + }, + { + "Index": 3, + "Places": [{ + "Pos": [18, 47], + "Dir": 1 + }, + { + "Pos": [7, 19], + "Dir": 5 + }, + { + "Pos": [6, 13], + "Dir": 5 + }, + { + "Pos": [1, 11], + "Dir": 2 + }, + { + "Pos": [9, 27], + "Dir": 4 + }, + { + "Pos": [11, 27], + "Dir": 4 + }, + { + "Pos": [12, 84], + "Dir": 6 + }] + }], + "StaticObjectives": [], + "StaticKeys": [{ + "Index": 0, + "Positions": [[67, 23]] + }, + { + "Index": 2, + "Positions": [[17, 9]] + }, + { + "Index": 3, + "Positions": [[8, 6]] + }, + { + "Index": 1, + "Positions": [[46, 67]] + }], + "StaticPickups": [{ + "Pickup": "health_bonus", + "Positions": [[22, 27], + [16, 23], + [60, 35], + [56, 37], + [63, 31], + [65, 35], + [40, 41], + [44, 41], + [47, 43], + [52, 44], + [57, 41], + [36, 60], + [37, 60], + [38, 60], + [18, 8], + [18, 10], + [20, 10], + [6, 7], + [12, 19], + [9, 12], + [9, 95], + [8, 94], + [57, 69], + [57, 75], + [65, 69], + [66, 76], + [37, 16], + [32, 29], + [46, 30], + [57, 30], + [4, 5], + [4, 5], + [6, 5], + [6, 5]] + }, + { + "Pickup": "stimpack", + "Positions": [[40, 43], + [53, 13], + [38, 34], + [54, 44], + [51, 47], + [23, 58], + [19, 24], + [9, 19], + [49, 70], + [46, 77], + [67, 80], + [66, 49]] + }, + { + "Pickup": "medikit", + "Positions": [[66, 22], + [31, 39], + [39, 64], + [37, 64], + [31, 81], + [26, 47], + [8, 7], + [18, 9], + [70, 79], + [76, 81], + [66, 86], + [73, 62], + [73, 62], + [66, 67], + [66, 67], + [59, 52], + [72, 47], + [59, 43]] + }, + { + "Pickup": "armor", + "Positions": [[14, 33]] + }, + { + "Pickup": "armor_bonus", + "Positions": [[52, 16], + [31, 6], + [18, 19], + [60, 26], + [70, 37], + [68, 23], + [57, 46], + [55, 49], + [43, 50], + [40, 51], + [40, 77], + [36, 91], + [37, 61], + [23, 47], + [23, 68], + [19, 66], + [18, 64], + [17, 55], + [11, 81], + [16, 90], + [11, 95], + [18, 83], + [46, 56], + [72, 84], + [48, 60], + [56, 67], + [52, 76], + [48, 76], + [48, 78], + [48, 81], + [46, 68], + [37, 18], + [37, 19], + [67, 22], + [46, 58], + [21, 77], + [19, 79], + [15, 79], + [45, 92], + [48, 89], + [55, 86]] + }, + { + "Pickup": "ammo_Bullets", + "Positions": [[40, 2], + [45, 2], + [33, 9], + [55, 11], + [55, 11], + [45, 58], + [45, 58]] + }, + { + "Pickup": "ammo_Shells", + "Positions": [[45, 5], + [34, 16], + [33, 30], + [42, 30], + [43, 30], + [54, 30], + [39, 67], + [17, 30], + [10, 26], + [50, 73], + [50, 75]] + }, + { + "Pickup": "supercharge", + "Positions": [[25, 19]] + }, + { + "Pickup": "ammo_Rockets", + "Positions": [[54, 46], + [52, 47]] + }, + { + "Pickup": "megaarmor", + "Positions": [[31, 55], + [75, 90]] + }, + { + "Pickup": "shells2", + "Positions": [[54, 47], + [32, 81]] + }, + { + "Pickup": "bullet_pickup2", + "Positions": [[33, 81], + [35, 81], + [14, 89], + [17, 62]] + }, + { + "Pickup": "rockets2", + "Positions": [[8, 95], + [37, 63]] + }, + { + "Pickup": "computer_map", + "Positions": [[37, 67]] + }, + { + "Pickup": "backpack", + "Positions": [[42, 81]] + }], + "Start": [41, 2], + "Exits": [{ + "Rect": [76, + 81, + 5, + 3], + "Mission": 7, + "Hidden": false + }], + "AltFloorsEnabled": true + }, + { + "Title": "Phobos Anomaly", + "Description": "", + "Type": "Static", + "Width": 158, + "Height": 201, + "ExitStyle": "hazard", + "KeyStyle": "chip", + "Objectives": [{ + "Description": "Kill the Barons", + "Type": "Kill", + "Index": 0, + "Count": 2, + "Required": 2, + "Flags": 1 + }], + "Enemies": [], + "SpecialChars": [5], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Fists", "Marine Pistol"], + "WeaponPersist": true, + "SkipDebrief": false, + "TileClasses": { + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "802020ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "404040ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "10": { + "Name": "wall", + "Type": "Wall", + "Style": "station", + "Mask": "545454ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "11": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "4f4e4eff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "12": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "c4925aff", + "MaskAlt": "7e6438ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "13": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "d4a97fff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "14": { + "Name": "door", + "Type": "Door", + "Style": "dungeon", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + }, + "15": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "a87f52ff", + "MaskAlt": "5f4c2aff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "16": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "5d5d5dff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "17": { + "Name": "tile", + "Type": "Floor", + "Style": "slab", + "Mask": "91bd79ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "2": { + "Name": "door", + "Type": "Door", + "Style": "doom", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "704b25ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "5": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "5f4a21ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "6": { + "Name": "tile", + "Type": "Floor", + "Style": "grate", + "Mask": "4d2f1eff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + }, + "7": { + "Name": "tile", + "Type": "Floor", + "Style": "water", + "Mask": "279a15ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "nukage" + }, + "8": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "353535ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "9": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "51433bff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true, + "DamageBullet": "" + } + }, + "Tiles": ["5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,1,1,1,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,16,16,16,16,16,16,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,16,17,17,17,17,16,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,16,17,17,17,17,16,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,16,17,17,17,17,16,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,16,17,17,17,17,16,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,16,16,16,16,16,16,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,16,16,16,16,16,16,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,16,16,16,16,16,16,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,16,16,16,16,16,16,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,16,16,16,16,16,16,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,16,16,16,16,16,16,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,6,6,6,6,6,6,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,6,6,6,6,6,6,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,6,6,6,6,6,6,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,6,6,6,6,6,6,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,6,6,6,6,6,6,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,6,6,6,6,6,6,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,6,6,6,6,6,6,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,6,6,6,6,6,6,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,6,6,6,6,6,6,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,6,6,6,6,6,6,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,6,6,6,6,6,6,1,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,2,2,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,0,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,0,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,0,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,0,0,0,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,0,0,0,0,0,0,0,0,0,0,0,0,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,12,12,12,12,0,0,12,12,12,12,12,0,0,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,12,12,13,12,0,0,12,13,14,13,12,0,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,12,12,13,12,0,0,12,13,14,13,12,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,0,0,12,12,13,12,0,0,12,13,12,12,12,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,0,0,0,12,14,12,0,0,12,14,12,0,0,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,0,13,13,13,13,13,13,13,13,0,0,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,0,13,13,13,13,13,13,13,13,0,0,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,0,0,0,13,13,13,13,13,13,13,13,13,13,0,0,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,0,0,0,13,13,13,13,13,13,13,13,13,13,0,0,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,0,13,13,13,13,13,13,13,13,13,13,0,0,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,0,13,13,13,13,13,13,13,13,13,13,0,0,0,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,0,0,0,0,13,13,13,13,13,13,13,13,13,13,0,0,0,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,0,0,0,0,0,13,13,13,13,13,13,13,13,0,0,0,0,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,0,0,0,0,12,14,14,14,14,12,0,0,0,0,0,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,0,0,0,12,12,9,9,9,9,12,12,0,0,0,0,0,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,0,0,0,0,0,12,12,12,9,9,9,9,12,12,12,0,0,0,0,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,0,0,0,12,12,12,5,12,9,9,9,9,12,5,12,12,12,0,0,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,0,12,12,12,5,5,12,9,9,9,9,12,5,5,5,12,12,0,0,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,0,0,12,12,5,5,5,5,12,9,9,9,9,12,5,5,5,5,12,12,0,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,0,12,12,5,5,5,5,5,12,9,9,9,9,12,5,5,5,5,5,12,12,0,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,0,12,12,5,5,5,5,5,5,12,9,9,9,9,12,5,5,5,5,5,5,12,12,0,0,0,0,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,0,0,0,12,12,5,5,5,5,5,5,5,12,9,9,9,9,12,5,5,5,5,5,5,5,12,12,0,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,0,12,12,5,5,5,5,5,5,5,5,12,9,9,9,9,12,5,5,5,5,5,5,5,5,12,12,0,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,0,12,12,5,5,5,5,5,5,5,5,5,12,9,9,9,9,12,5,5,5,5,5,5,5,5,5,12,12,0,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,0,12,12,5,5,5,5,5,5,5,5,5,5,12,9,9,9,9,12,5,5,5,5,5,5,5,5,5,5,12,12,0,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,12,5,5,5,5,5,5,5,5,5,5,5,12,9,9,9,9,12,5,5,5,5,5,5,5,5,5,5,5,12,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,9,9,9,9,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,9,9,9,9,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,9,9,9,9,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,9,9,9,9,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,9,9,9,9,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,9,9,9,9,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,9,9,9,9,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,9,9,9,9,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,9,9,9,9,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,9,9,9,9,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,9,9,9,9,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5", + "4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,9,9,9,9,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4", + "4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,9,9,9,9,9,9,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4", + "4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,9,9,9,9,9,9,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,12,9,9,9,9,9,9,9,9,12,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,12,9,9,9,9,9,9,9,9,9,9,12,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,12,12,9,9,9,9,9,9,9,9,9,9,12,12,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,12,9,9,9,9,9,9,9,9,9,9,9,9,12,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,12,9,9,9,9,9,9,9,9,9,9,9,9,12,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,12,12,9,9,9,9,9,9,9,9,9,9,12,12,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,12,9,9,9,9,9,9,9,9,9,9,12,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,12,12,9,9,9,9,9,9,9,9,12,12,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,12,9,9,9,9,9,9,9,9,12,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,12,12,9,9,9,9,9,9,12,12,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,12,9,9,9,9,9,9,12,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,10,10,10,10,10,10,4,4,4,12,12,9,9,9,9,12,12,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,10,10,11,11,11,11,10,4,4,4,4,10,9,9,9,9,10,4,4,4,4,10,10,10,10,10,10,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,10,11,11,11,11,11,10,10,4,10,10,10,9,9,9,9,10,10,10,4,10,10,11,11,11,11,10,10,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,10,10,11,11,11,11,11,11,10,10,10,9,9,9,9,9,9,9,9,10,10,10,11,11,11,11,11,11,10,10,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,10,11,11,11,11,11,11,11,11,10,10,9,9,9,9,9,9,9,9,10,10,11,11,11,11,11,11,11,11,10,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,10,11,11,11,11,11,11,11,11,10,9,9,9,9,9,9,9,9,9,9,10,11,11,11,11,11,11,11,11,10,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,10,11,11,11,11,11,11,11,11,9,9,9,9,9,9,9,9,9,9,9,9,11,11,11,11,11,11,11,11,10,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,10,11,11,11,11,11,11,11,11,9,9,9,9,9,9,9,9,9,9,9,9,11,11,11,11,11,11,11,11,10,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,10,11,11,11,11,11,11,11,11,9,9,9,9,9,9,9,9,9,9,9,9,11,11,11,11,11,11,11,11,10,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,10,11,11,11,11,11,11,11,11,10,9,9,9,9,9,9,9,9,9,9,10,11,11,11,11,11,11,11,11,10,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,4,4,4,4,4,4,4,4,4,4,4,4,10,11,11,11,11,11,11,11,11,10,10,9,9,9,9,9,9,9,9,10,10,11,11,11,11,11,11,11,11,10,4,4,4,4,4,4,4,4,4,4,4,4,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,10,10,11,11,11,11,11,11,10,10,10,9,9,9,9,9,9,9,9,10,10,10,11,11,11,11,11,11,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,10,10,11,11,11,11,10,10,4,10,10,10,9,9,9,9,10,10,10,4,10,11,11,11,11,11,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,10,11,11,11,11,10,4,4,4,4,10,9,9,9,9,10,4,4,4,10,10,11,11,11,11,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,10,10,10,10,10,10,4,4,4,4,10,2,2,2,2,10,4,4,4,4,10,10,10,10,10,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,10,9,9,9,9,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,10,9,9,9,9,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,10,9,9,9,9,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,10,9,9,9,9,10,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,8,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,8,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,3,3,3,3,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,3,3,3,3,3,3,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,3,3,3,3,3,3,3,3,3,3,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,3,3,3,3,3,3,3,3,3,3,3,3,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,2,3,3,3,3,3,3,3,3,3,3,7,7,3,3,3,3,3,3,3,6,6,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,2,3,3,3,3,3,3,3,3,3,7,7,7,7,3,3,3,3,3,3,6,6,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,2,3,3,3,3,3,3,3,3,3,7,7,7,7,3,3,3,3,3,3,6,6,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,2,3,3,3,3,3,3,3,3,3,3,7,7,3,3,3,3,3,3,3,6,6,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,6,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,6,6,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,3,3,3,3,3,3,3,3,3,3,3,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "barrel_nukage", + "Positions": [[75, 191], + [73, 191], + [73, 193], + [75, 193], + [74, 195], + [75, 197], + [77, 197], + [80, 197], + [82, 197], + [83, 195], + [82, 193], + [84, 193], + [82, 191], + [84, 191], + [83, 189], + [82, 187], + [80, 187], + [77, 187], + [74, 189], + [75, 187], + [56, 93], + [60, 93], + [58, 95], + [64, 93], + [68, 93], + [62, 95], + [66, 95], + [62, 97]] + }, + { + "MapObject": "Marine Shotgun spawner", + "Positions": [[93, 126], + [65, 161]] + }, + { + "MapObject": "Chaingun spawner", + "Positions": [[92, 161]] + }, + { + "MapObject": "firestick", + "Positions": [[75, 146], + [82, 146], + [75, 158], + [82, 158], + [75, 166], + [82, 166]] + }], + "StaticCharacters": [{ + "Index": 4, + "Places": [{ + "Pos": [64, 126], + "Dir": 7 + }, + { + "Pos": [64, 98], + "Dir": 7 + }, + { + "Pos": [66, 96], + "Dir": 1 + }, + { + "Pos": [79, 73], + "Dir": 6 + }, + { + "Pos": [79, 75], + "Dir": 2 + }, + { + "Pos": [101, 92], + "Dir": 3 + }, + { + "Pos": [99, 94], + "Dir": 6 + }, + { + "Pos": [91, 120], + "Dir": 1 + }, + { + "Pos": [92, 123], + "Dir": 5 + }] + }, + { + "Index": 3, + "Places": [{ + "Pos": [77, 191], + "Dir": 4 + }, + { + "Pos": [80, 191], + "Dir": 0 + }, + { + "Pos": [77, 194], + "Dir": 3 + }, + { + "Pos": [80, 194], + "Dir": 0 + }, + { + "Pos": [70, 156], + "Dir": 7 + }, + { + "Pos": [87, 157], + "Dir": 4 + }, + { + "Pos": [76, 189], + "Dir": 6 + }, + { + "Pos": [78, 189], + "Dir": 0 + }, + { + "Pos": [79, 189], + "Dir": 0 + }, + { + "Pos": [81, 189], + "Dir": 6 + }, + { + "Pos": [81, 195], + "Dir": 4 + }, + { + "Pos": [79, 195], + "Dir": 6 + }, + { + "Pos": [78, 195], + "Dir": 6 + }, + { + "Pos": [76, 195], + "Dir": 5 + }] + }], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[76, 105], + [81, 105]], + "Indices": [0, 0] + }], + "StaticKeys": [{ + "Index": 0, + "Positions": [[91, 192]] + }, + { + "Index": 3, + "Positions": [[78, 118]] + }, + { + "Index": 2, + "Positions": [[83, 105]] + }], + "StaticPickups": [{ + "Pickup": "stimpack", + "Positions": [[90, 195], + [89, 195], + [89, 194], + [89, 194], + [89, 194], + [89, 193], + [89, 192], + [89, 191], + [89, 190], + [90, 190], + [90, 191], + [90, 192], + [90, 193], + [55, 92]] + }, + { + "Pickup": "supercharge", + "Positions": [[82, 175]] + }, + { + "Pickup": "armor", + "Positions": [[79, 160]] + }, + { + "Pickup": "medikit", + "Positions": [[79, 164]] + }, + { + "Pickup": "bullet_pickup2", + "Positions": [[64, 192], + [90, 194], + [88, 159], + [90, 159], + [88, 163], + [90, 163], + [93, 122], + [63, 127], + [58, 93], + [76, 106], + [81, 106]] + }, + { + "Pickup": "shells2", + "Positions": [[79, 72], + [79, 76], + [67, 159], + [67, 163], + [69, 161]] + }], + "Start": [65, 192], + "Exits": [{ + "Rect": [77, + 41, + 5, + 5], + "Mission": 9, + "Hidden": false + }], + "AltFloorsEnabled": true + }, + { + "Title": "Military Base", + "Description": "", + "Type": "Static", + "Width": 68, + "Height": 68, + "ExitStyle": "hazard", + "KeyStyle": "chip", + "Objectives": [], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Fists", "Marine Pistol"], + "WeaponPersist": true, + "SkipDebrief": false, + "TileClasses": { + "0": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "e9b16bff", + "MaskAlt": "d2a259ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "1": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "726757ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "10": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "e90000ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "11": { + "Name": "door", + "Type": "Door", + "Style": "doom", + "Mask": "ffffffff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true, + "DamageBullet": "" + }, + "12": { + "Name": "", + "Type": "", + "Style": "recessed", + "Mask": "808080ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "13": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "724d2eff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "14": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "d9ac8dff", + "MaskAlt": "9c7d58ff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "15": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "b89176ff", + "MaskAlt": "695339ff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "16": { + "Name": "tile", + "Type": "Floor", + "Style": "water", + "Mask": "5ad001ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "17": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "6b9f5bff", + "MaskAlt": "446939ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "18": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "cb9433ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "19": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "88bd78ff", + "MaskAlt": "446939ff", + "CanWalk": true, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "2": { + "Name": "", + "Type": "", + "Style": "recessed", + "Mask": "808080ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "20": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "986e26ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "3": { + "Name": "wall", + "Type": "Wall", + "Style": "greenstain", + "Mask": "ffdeb5ff", + "MaskAlt": "fcd18eff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "4": { + "Name": "tile", + "Type": "Floor", + "Style": "hex", + "Mask": "51493eff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "5": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "fcfcfcff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "6": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "9f775bff", + "MaskAlt": "695339ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "7": { + "Name": "tile", + "Type": "Floor", + "Style": "grate", + "Mask": "7b6036ff", + "MaskAlt": "808080ff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "" + }, + "8": { + "Name": "wall", + "Type": "Wall", + "Style": "panel", + "Mask": "c99775ff", + "MaskAlt": "9c7d58ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false, + "DamageBullet": "" + }, + "9": { + "Name": "tile", + "Type": "Floor", + "Style": "water", + "Mask": "398500ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false, + "DamageBullet": "nukage" + } + }, + "Tiles": ["2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,6,6,6,6,6,6,6,2,2,2,2,2,2,2,2,2,2,17,17,17,17,17,17,17,17,17,17,17,17,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,6,4,4,4,4,4,6,2,2,2,2,2,2,2,2,2,17,17,9,9,9,9,9,9,9,9,9,9,17,17,17,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,6,4,4,4,4,4,6,2,2,2,2,2,2,2,2,17,17,9,9,9,9,9,9,9,9,9,9,9,9,9,17,17,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,6,4,4,4,4,4,6,2,2,2,2,2,2,2,2,17,9,9,9,9,18,18,17,17,17,17,17,17,9,9,9,17,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,6,4,4,4,4,4,6,2,2,2,2,2,2,2,2,17,9,9,9,18,18,18,17,17,4,4,4,17,17,9,9,17,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,6,4,4,4,4,4,15,6,6,6,6,6,6,2,2,17,9,9,9,17,17,6,5,6,15,15,15,6,6,9,9,6,6,6,2,2,2,2,2,2,6,6,6,6,6,6,6,6,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,6,4,4,4,4,15,4,4,4,4,4,4,6,2,2,17,9,9,9,17,6,1,1,4,4,4,4,4,4,9,9,9,4,6,2,2,2,2,2,2,6,4,4,4,4,4,4,4,6,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,6,6,6,4,15,4,4,4,4,4,4,4,6,2,17,17,9,9,9,17,5,1,1,4,4,4,4,4,4,9,9,9,4,6,2,2,2,2,2,2,6,4,1,4,4,20,4,4,4,6,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,6,15,4,4,4,4,4,4,4,4,6,17,17,19,9,9,9,17,6,4,4,4,4,4,4,9,9,9,9,9,4,6,2,2,2,2,2,2,6,4,1,1,4,4,4,4,4,4,6,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,6,4,4,4,4,9,9,4,4,4,6,17,9,19,9,9,9,17,6,4,4,9,9,9,9,9,9,9,9,9,4,6,6,6,6,6,6,6,5,4,1,1,1,4,4,4,20,4,4,6,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,6,4,4,4,9,10,10,9,4,4,6,17,9,9,17,9,9,9,9,9,9,9,9,9,9,9,9,9,4,4,4,6,6,4,4,4,4,4,4,4,1,18,1,1,4,4,4,4,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,6,4,4,9,10,10,10,10,9,4,6,17,9,9,17,9,9,9,9,9,9,9,9,9,9,9,4,4,4,4,4,15,4,4,4,4,4,4,4,4,1,1,1,1,1,4,4,4,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,6,4,4,9,9,10,10,9,9,4,6,17,9,9,17,17,9,9,9,9,9,9,9,9,4,4,4,4,4,4,4,6,6,6,6,6,6,6,5,4,1,1,1,1,1,1,4,4,20,20,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,6,4,4,4,10,9,9,10,4,4,6,17,9,9,17,17,17,17,6,4,4,4,4,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,6,4,1,1,18,1,1,1,1,4,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,6,4,4,4,9,9,9,9,4,4,6,17,9,9,9,13,19,4,15,4,4,4,4,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,6,4,1,1,1,1,1,18,1,1,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,6,6,4,4,4,4,4,4,4,4,6,17,17,9,9,13,19,4,15,4,4,4,4,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,6,4,1,1,1,1,1,1,1,1,1,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,6,6,4,4,4,4,4,4,4,6,2,17,17,17,17,17,17,6,6,6,6,6,5,11,11,5,6,6,6,6,6,2,2,2,2,2,2,6,4,4,4,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,6,6,4,4,6,6,6,6,6,2,2,2,2,2,2,2,2,2,2,2,2,0,4,4,0,2,2,2,2,2,2,2,2,2,2,2,6,6,6,6,6,6,6,6,6,6,6,6,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,5,4,4,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,4,4,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,6,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,4,4,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,6,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,4,4,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,6,6,6,6,6,6,6,6,6,6,2,2,2", + "2,2,2,2,2,2,6,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,1,1,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,6,4,4,4,4,4,4,4,4,6,2,2,2", + "2,2,2,2,2,2,6,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,1,1,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,6,4,4,4,4,4,4,4,4,6,2,2,2", + "2,2,2,2,2,2,6,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,1,1,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,6,4,4,4,4,4,4,4,4,6,2,2,2", + "2,2,2,2,2,2,6,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,1,1,3,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,8,9,9,9,9,9,9,9,9,8,2,2,2", + "2,2,6,6,6,6,6,4,4,6,6,6,6,2,2,2,2,2,2,2,2,3,3,1,1,1,1,1,1,1,1,1,1,3,3,2,2,2,2,2,2,2,6,6,6,6,6,6,6,6,6,6,2,2,8,8,9,9,9,9,9,9,9,9,8,2,2,2", + "2,2,6,4,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,2,3,3,1,1,1,1,1,1,1,1,1,1,1,1,3,3,2,2,2,2,2,2,6,4,4,4,4,4,4,4,4,6,2,2,8,9,9,9,9,9,9,9,9,9,8,2,2,2", + "2,2,6,4,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,2,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,2,2,2,2,6,4,4,4,4,4,4,4,4,6,2,2,8,9,9,9,9,9,9,9,9,9,8,2,2,2", + "2,2,6,4,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,2,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,2,2,2,2,6,4,4,4,4,4,4,4,4,6,6,6,6,9,9,9,9,9,9,9,9,9,8,2,2,2", + "2,2,6,4,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,2,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,2,2,2,2,6,4,4,4,4,4,4,4,4,6,6,4,4,9,9,9,9,9,9,7,7,7,8,2,2,2", + "2,2,8,4,4,4,8,1,1,4,4,4,5,0,0,0,0,3,3,3,3,1,1,1,1,6,7,7,7,7,6,1,1,1,1,3,3,3,3,0,0,0,5,4,4,4,4,4,4,1,1,14,4,4,4,9,9,9,7,7,7,7,13,7,8,2,2,2", + "2,2,8,1,1,1,7,1,1,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,7,4,4,4,4,7,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,1,1,14,4,4,4,9,9,9,7,13,7,7,7,7,8,2,2,2", + "2,2,8,1,1,1,7,1,1,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,7,4,4,4,4,7,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,1,1,14,4,4,4,9,9,9,7,7,7,9,9,9,8,2,2,2", + "2,2,8,1,1,1,7,1,1,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,7,4,4,4,4,7,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,1,1,14,4,4,4,9,9,9,9,9,7,7,7,9,8,2,2,2", + "2,2,8,4,4,4,8,1,1,4,4,4,5,0,0,0,0,3,3,3,3,1,1,1,1,6,7,7,7,7,6,1,1,1,1,3,3,3,3,0,0,0,5,4,4,4,4,4,4,1,1,14,4,4,4,9,9,9,9,9,7,13,7,9,8,2,2,2", + "2,2,6,4,4,4,4,4,4,4,4,4,6,12,12,12,12,12,12,12,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,2,2,2,2,6,4,4,4,4,4,4,4,4,6,6,4,4,9,9,9,9,9,7,7,7,9,8,2,2,2", + "2,2,6,4,4,4,4,4,4,4,4,4,6,12,12,12,12,12,12,12,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,2,2,2,2,6,4,4,4,4,4,4,4,4,6,6,6,6,8,8,8,8,8,8,8,8,8,8,2,2,2", + "2,2,6,4,4,4,4,4,4,4,4,4,6,12,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,2,2,2,6,6,6,6,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,6,4,4,4,4,4,4,4,4,4,6,0,0,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,3,8,8,8,8,6,4,4,15,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,6,6,6,6,6,4,4,6,6,6,6,5,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,16,16,4,4,4,15,15,6,6,6,4,4,6,6,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,6,4,4,6,2,2,2,0,0,4,4,4,4,4,4,4,4,3,3,3,3,1,1,3,3,3,3,8,1,1,16,16,16,16,4,4,4,4,6,2,6,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,6,4,4,6,2,2,2,2,0,0,0,0,0,0,0,0,0,0,2,2,3,1,1,3,2,2,2,8,1,16,16,16,16,16,16,4,4,4,6,2,6,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,6,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,1,1,3,2,2,2,8,16,16,16,1,1,1,16,16,4,4,6,2,6,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,6,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,1,1,3,2,2,2,8,16,16,16,1,1,1,16,16,16,6,6,2,6,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,6,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,4,4,0,2,2,6,6,4,16,16,1,1,1,16,16,8,6,2,2,6,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,6,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,4,4,0,2,2,6,4,4,4,16,16,16,16,16,8,8,2,2,2,6,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,6,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,4,4,0,2,2,6,4,4,4,4,16,16,16,8,8,2,2,2,2,6,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,6,6,6,6,6,11,11,6,6,6,6,6,6,2,2,2,2,2,2,2,2,2,2,2,0,4,4,0,2,2,6,4,4,4,4,4,16,8,8,6,6,6,6,6,6,11,11,6,6,6,6,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,6,4,4,4,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,6,6,6,6,6,5,4,4,5,6,6,6,15,15,4,4,4,8,8,2,6,4,4,4,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,6,4,4,4,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,6,4,4,4,4,4,4,4,4,4,4,4,4,15,4,4,6,6,2,2,6,4,1,1,1,1,1,1,1,1,1,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,6,4,4,4,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,6,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,2,2,2,6,4,1,1,1,1,1,1,1,1,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,6,4,4,4,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,6,4,4,4,4,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,6,4,1,1,1,1,1,1,1,4,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,6,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,4,4,4,6,11,11,11,11,6,4,4,4,6,6,6,6,6,6,6,6,4,1,1,1,1,1,1,4,4,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,6,4,4,4,4,4,4,4,4,4,4,4,11,4,4,4,4,4,4,4,4,4,4,11,4,4,4,4,11,4,4,4,4,4,4,4,4,4,4,11,4,1,1,1,1,1,4,4,4,6,11,6,6,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,6,4,4,4,4,4,4,4,4,4,4,4,11,4,4,4,4,4,4,4,4,4,4,11,4,4,4,4,11,4,4,4,4,4,4,4,4,4,4,11,4,1,1,1,1,4,4,4,4,11,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,6,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,4,4,4,6,11,11,11,11,6,4,4,4,6,6,6,6,6,6,6,6,4,1,1,1,4,4,4,4,4,11,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,6,4,4,4,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,6,4,4,4,4,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,6,4,1,1,4,4,4,4,4,4,11,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,6,4,6,6,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,6,4,4,4,4,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,6,4,1,4,4,4,6,11,11,11,6,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,6,4,4,4,6,4,4,4,4,4,4,4,6,2,2,2,2,2,2,6,4,4,4,4,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,6,4,4,4,4,4,11,4,4,4,4,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,6,4,4,4,4,6,11,11,6,6,6,6,6,2,2,2,2,2,2,6,11,11,11,6,6,6,6,6,6,6,6,6,6,2,2,2,2,2,2,6,6,6,6,6,6,6,4,4,4,4,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,6,4,4,4,4,6,4,4,6,6,6,6,5,6,6,6,6,6,6,6,4,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,6,6,6,6,6,6,6,6,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,6,4,4,4,4,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,2,6,6,6,6,6,6,6,5,6,6,6,6,6,6,6,6,6,6,6,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", + "2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,512,512,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,1024,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,512,512,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,512,512,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,512,512,0,0,0,0,0,0,0,0,0,0,0,0,512,512,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "barrel_nukage", + "Positions": [[8, 32], + [10, 39], + [45, 39], + [49, 29], + [49, 35], + [47, 53], + [44, 57], + [22, 60], + [23, 60], + [24, 60], + [36, 41], + [11, 56], + [7, 60], + [8, 60], + [9, 60], + [3, 55], + [3, 63], + [4, 63], + [5, 63], + [6, 63]] + }, + { + "MapObject": "candle", + "Positions": [[5, 32], + [5, 36], + [6, 16], + [11, 16], + [6, 12], + [11, 12], + [8, 10]] + }, + { + "MapObject": "Launcher spawner", + "Positions": [[8, 14]] + }, + { + "MapObject": "pillar", + "Positions": [[54, 31], + [54, 37]] + }, + { + "MapObject": "rod", + "Positions": [[51, 61], + [53, 59], + [8, 64], + [24, 64], + [21, 6]] + }, + { + "MapObject": "firestick", + "Positions": [[24, 53], + [31, 53], + [31, 58], + [24, 58]] + }, + { + "MapObject": "Chaingun spawner", + "Positions": [[38, 45]] + }, + { + "MapObject": "candelabra", + "Positions": [[5, 60]] + }, + { + "MapObject": "Marine Shotgun spawner", + "Positions": [[44, 12]] + }, + { + "MapObject": "Chainsaw spawner", + "Positions": [[48, 16]] + }], + "StaticCharacters": [{ + "Index": 2, + "Places": [{ + "Pos": [26, 33], + "Dir": 7 + }, + { + "Pos": [27, 33], + "Dir": 5 + }, + { + "Pos": [26, 35], + "Dir": 3 + }, + { + "Pos": [27, 34], + "Dir": 5 + }, + { + "Pos": [28, 33], + "Dir": 5 + }, + { + "Pos": [29, 34], + "Dir": 1 + }, + { + "Pos": [29, 33], + "Dir": 1 + }, + { + "Pos": [27, 35], + "Dir": 6 + }, + { + "Pos": [29, 35], + "Dir": 0 + }, + { + "Pos": [5, 34], + "Dir": 5 + }, + { + "Pos": [10, 34], + "Dir": 5 + }, + { + "Pos": [2, 5], + "Dir": 1 + }, + { + "Pos": [4, 5], + "Dir": 5 + }, + { + "Pos": [6, 3], + "Dir": 0 + }, + { + "Pos": [3, 3], + "Dir": 7 + }, + { + "Pos": [4, 3], + "Dir": 5 + }, + { + "Pos": [49, 33], + "Dir": 3 + }, + { + "Pos": [59, 33], + "Dir": 6 + }, + { + "Pos": [62, 32], + "Dir": 4 + }, + { + "Pos": [61, 36], + "Dir": 1 + }, + { + "Pos": [52, 60], + "Dir": 6 + }, + { + "Pos": [53, 56], + "Dir": 6 + }, + { + "Pos": [48, 61], + "Dir": 7 + }, + { + "Pos": [45, 60], + "Dir": 3 + }, + { + "Pos": [48, 58], + "Dir": 1 + }, + { + "Pos": [50, 56], + "Dir": 2 + }, + { + "Pos": [51, 53], + "Dir": 7 + }, + { + "Pos": [9, 59], + "Dir": 7 + }, + { + "Pos": [6, 57], + "Dir": 4 + }, + { + "Pos": [4, 54], + "Dir": 6 + }, + { + "Pos": [28, 8], + "Dir": 3 + }, + { + "Pos": [26, 10], + "Dir": 6 + }, + { + "Pos": [25, 8], + "Dir": 4 + }, + { + "Pos": [24, 10], + "Dir": 4 + }, + { + "Pos": [22, 6], + "Dir": 4 + }, + { + "Pos": [16, 13], + "Dir": 2 + }, + { + "Pos": [15, 15], + "Dir": 4 + }, + { + "Pos": [16, 16], + "Dir": 4 + }, + { + "Pos": [17, 16], + "Dir": 2 + }, + { + "Pos": [20, 16], + "Dir": 0 + }] + }, + { + "Index": 1, + "Places": [{ + "Pos": [28, 24], + "Dir": 5 + }, + { + "Pos": [19, 34], + "Dir": 7 + }, + { + "Pos": [36, 34], + "Dir": 4 + }, + { + "Pos": [27, 43], + "Dir": 3 + }, + { + "Pos": [49, 30], + "Dir": 5 + }] + }, + { + "Index": 0, + "Places": [{ + "Pos": [27, 46], + "Dir": 2 + }, + { + "Pos": [28, 44], + "Dir": 0 + }, + { + "Pos": [17, 35], + "Dir": 3 + }, + { + "Pos": [16, 33], + "Dir": 0 + }, + { + "Pos": [37, 33], + "Dir": 3 + }, + { + "Pos": [39, 35], + "Dir": 5 + }, + { + "Pos": [27, 23], + "Dir": 7 + }, + { + "Pos": [28, 22], + "Dir": 1 + }, + { + "Pos": [4, 30], + "Dir": 5 + }, + { + "Pos": [4, 38], + "Dir": 7 + }, + { + "Pos": [49, 34], + "Dir": 7 + }, + { + "Pos": [47, 38], + "Dir": 4 + }, + { + "Pos": [49, 37], + "Dir": 4 + }, + { + "Pos": [48, 52], + "Dir": 7 + }, + { + "Pos": [50, 53], + "Dir": 6 + }, + { + "Pos": [44, 55], + "Dir": 2 + }, + { + "Pos": [45, 58], + "Dir": 0 + }, + { + "Pos": [48, 56], + "Dir": 1 + }, + { + "Pos": [52, 57], + "Dir": 6 + }, + { + "Pos": [52, 58], + "Dir": 2 + }, + { + "Pos": [49, 61], + "Dir": 6 + }, + { + "Pos": [50, 61], + "Dir": 4 + }, + { + "Pos": [6, 55], + "Dir": 4 + }, + { + "Pos": [7, 56], + "Dir": 1 + }, + { + "Pos": [8, 57], + "Dir": 7 + }, + { + "Pos": [12, 50], + "Dir": 4 + }, + { + "Pos": [13, 51], + "Dir": 0 + }, + { + "Pos": [22, 10], + "Dir": 4 + }, + { + "Pos": [27, 8], + "Dir": 3 + }] + }, + { + "Index": 3, + "Places": [{ + "Pos": [11, 29], + "Dir": 2 + }, + { + "Pos": [11, 39], + "Dir": 7 + }, + { + "Pos": [2, 8], + "Dir": 7 + }, + { + "Pos": [5, 4], + "Dir": 5 + }, + { + "Pos": [2, 6], + "Dir": 4 + }, + { + "Pos": [3, 6], + "Dir": 5 + }, + { + "Pos": [3, 4], + "Dir": 0 + }, + { + "Pos": [28, 55], + "Dir": 0 + }, + { + "Pos": [27, 55], + "Dir": 4 + }, + { + "Pos": [26, 55], + "Dir": 2 + }, + { + "Pos": [26, 56], + "Dir": 1 + }, + { + "Pos": [27, 56], + "Dir": 7 + }, + { + "Pos": [28, 56], + "Dir": 2 + }, + { + "Pos": [29, 56], + "Dir": 6 + }] + }, + { + "Index": 4, + "Places": [{ + "Pos": [2, 9], + "Dir": 5 + }, + { + "Pos": [3, 8], + "Dir": 6 + }, + { + "Pos": [4, 8], + "Dir": 5 + }, + { + "Pos": [5, 5], + "Dir": 2 + }, + { + "Pos": [6, 5], + "Dir": 1 + }, + { + "Pos": [48, 29], + "Dir": 2 + }, + { + "Pos": [44, 38], + "Dir": 2 + }, + { + "Pos": [22, 17], + "Dir": 7 + }, + { + "Pos": [23, 16], + "Dir": 7 + }, + { + "Pos": [32, 16], + "Dir": 3 + }, + { + "Pos": [33, 15], + "Dir": 1 + }, + { + "Pos": [25, 6], + "Dir": 6 + }, + { + "Pos": [26, 6], + "Dir": 3 + }, + { + "Pos": [27, 6], + "Dir": 1 + }] + }], + "StaticObjectives": [], + "StaticKeys": [{ + "Index": 0, + "Positions": [[4, 34]] + }, + { + "Index": 1, + "Positions": [[3, 61]] + }, + { + "Index": 3, + "Positions": [[49, 57]] + }, + { + "Index": 2, + "Positions": [[29, 55]] + }], + "StaticPickups": [{ + "Pickup": "health_bonus", + "Positions": [[56, 24], + [61, 23], + [61, 25], + [62, 23], + [62, 25], + [39, 44], + [37, 46], + [3, 50], + [4, 50], + [5, 50], + [21, 63], + [21, 64], + [33, 17], + [32, 17], + [31, 17], + [33, 8], + [33, 9], + [33, 10]] + }, + { + "Pickup": "stimpack", + "Positions": [[42, 50], + [50, 55], + [18, 16], + [18, 17]] + }, + { + "Pickup": "armor_bonus", + "Positions": [[43, 30], + [43, 29], + [43, 28], + [44, 28], + [45, 28], + [49, 40], + [50, 40], + [50, 39], + [57, 23], + [57, 25], + [58, 23], + [58, 25], + [22, 51], + [23, 51], + [24, 51], + [33, 59], + [33, 60], + [32, 60], + [34, 41], + [35, 41], + [35, 42], + [34, 42], + [34, 43], + [37, 45], + [38, 44], + [38, 46], + [39, 45], + [22, 16], + [23, 17], + [24, 17], + [25, 17]] + }, + { + "Pickup": "medikit", + "Positions": [[8, 13], + [9, 14], + [53, 61], + [23, 63], + [23, 9]] + }, + { + "Pickup": "ammo_Bullets", + "Positions": [[16, 40], + [16, 42], + [44, 50], + [42, 60]] + }, + { + "Pickup": "armor", + "Positions": [[60, 24]] + }, + { + "Pickup": "ammo_Shells", + "Positions": [[52, 50]] + }, + { + "Pickup": "rockets2", + "Positions": [[9, 13], + [49, 11]] + }, + { + "Pickup": "bullet_pickup2", + "Positions": [[9, 63], + [51, 14]] + }, + { + "Pickup": "shells2", + "Positions": [[12, 63], + [46, 9]] + }, + { + "Pickup": "backpack", + "Positions": [[45, 15]] + }], + "Start": [15, 41], + "Exits": [{ + "Rect": [21, + 7, + 2, + 2], + "Mission": 3, + "Hidden": false + }], + "AltFloorsEnabled": true + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/pickups.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/pickups.json new file mode 100644 index 00000000..b10f7e1f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/pickups.json @@ -0,0 +1,153 @@ +{ + "Version": 3, + "Pickups": [ + { + "Name": "health_bonus", + "Pic": { + "Type": "Normal", + "Pic": "health_bonus" + }, + "Effects": [{ + "Type": "Health", + "Health": 1, + "ExceedMax": true + }] + }, + { + "Name": "stimpack", + "Pic": { + "Type": "Normal", + "Pic": "stimpack" + }, + "Effects": [{ + "Type": "Health", + "Health": 10 + }] + }, + { + "Name": "medikit", + "Pic": { + "Type": "Normal", + "Pic": "health" + }, + "Effects": [{ + "Type": "Health", + "Health": 25 + }] + }, + { + "Name": "supercharge", + "Pic": { + "Type": "Normal", + "Pic": "supercharge" + }, + "Effects": [{ + "Type": "Health", + "Health": 100, + "ExceedMax": true + }] + }, + { + "Name": "armor_bonus", + "Pic": { + "Type": "Normal", + "Pic": "armor_bonus" + }, + "Effects": [{ + "Type": "Health", + "Health": 1, + "ExceedMax": true + }] + }, + { + "Name": "armor", + "Pic": { + "Type": "Normal", + "Pic": "armor_green" + }, + "Effects": [{ + "Type": "Health", + "Health": 100 + }] + }, + { + "Name": "megaarmor", + "Pic": { + "Type": "Normal", + "Pic": "armor_blue" + }, + "Effects": [{ + "Type": "Health", + "Health": 200, + "ExceedMax": true + }] + }, + { + "Name": "bullet_pickup2", + "Pic": { + "Type": "Normal", + "Pic": "bullet_pickup2" + }, + "Effects": [{ + "Type": "Ammo", + "Ammo": "Bullets", + "Amount": 50 + }] + }, + { + "Name": "shells2", + "Pic": { + "Type": "Normal", + "Pic": "shells2" + }, + "Effects": [{ + "Type": "Ammo", + "Ammo": "Shells", + "Amount": 20 + }] + }, + { + "Name": "rockets2", + "Pic": { + "Type": "Normal", + "Pic": "rockets2" + }, + "Effects": [{ + "Type": "Ammo", + "Ammo": "Rockets", + "Amount": 10 + }] + }, + { + "Name": "computer_map", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "computer_map", + "TicksPerFrame": 10 + }, + "Effects": [{ + "Type": "ShowMap" + }] + }, + { + "Name": "backpack", + "Pic": { + "Type": "Normal", + "Pic": "bag" + }, + "Effects": [{ + "Type": "Ammo", + "Ammo": "Bullets", + "Amount": 10 + }, { + "Type": "Ammo", + "Ammo": "Shells", + "Amount": 4 + }, { + "Type": "Ammo", + "Ammo": "Rockets", + "Amount": 1 + }] + } + ] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/sounds/marine_shotgun.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/sounds/marine_shotgun.ogg new file mode 100644 index 00000000..26c461da Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/sounds/marine_shotgun.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/sounds/marine_shotgun.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/sounds/marine_shotgun.txt new file mode 100644 index 00000000..2f36cc3d --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/doom.cdogscpn/sounds/marine_shotgun.txt @@ -0,0 +1,4 @@ +Chaingun, pistol, rifle, shotgun shots +by Michel Baradari +http://opengameart.org/content/chaingun-pistol-rifle-shotgun-shots +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/graveintent.cdogscpn/LICENSE.md b/bios/Game Engines/C-Dogs SDL/cdogs/missions/graveintent.cdogscpn/LICENSE.md new file mode 100644 index 00000000..2660d3e8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/graveintent.cdogscpn/LICENSE.md @@ -0,0 +1,45 @@ +## creative commons + +# CC0 1.0 Universal + +``` +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. +``` + +### Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. + +1. __Copyright and Related Rights.__ A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; + + ii. moral rights retained by the original author(s) and/or performer(s); + + iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; + + iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; + + v. rights protecting the extraction, dissemination, use and reuse of data in a Work; + + vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and + + vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. + +2. __Waiver.__ To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. + +3. __Public License Fallback.__ Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. + +4. __Limitations and Disclaimers.__ + + a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. + + b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. + + c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. + + d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/graveintent.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/graveintent.cdogscpn/campaign.json new file mode 100644 index 00000000..dadd2a15 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/graveintent.cdogscpn/campaign.json @@ -0,0 +1,12 @@ +{ + "Version": 16, + "Title": "Grave Intent", + "Author": "clovehoof", + "Description": "\"Millions are screaming, the dead are still living. This Earth has died, yet no one has seen.\"\n --Electric Wizard", + "Ammo": false, + "WeaponPersist": false, + "SkipWeaponMenu": false, + "RandomPickups": true, + "DoorOpenTicks": 70, + "Missions": 7 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/graveintent.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/graveintent.cdogscpn/characters.json new file mode 100644 index 00000000..47b01cda --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/graveintent.cdogscpn/characters.json @@ -0,0 +1,141 @@ +{ + "Version": 13, + "Characters": [{ + "Class": "Bones", + "Skin": "eff377ff", + "Arms": "bd5151ff", + "Body": "645c5cff", + "Legs": "3c5f56ff", + "Hair": "ff0202ff", + "Feet": "3c5f56ff", + "speed": 240, + "Gun": "Fists", + "maxHealth": 20, + "flags": 1024, + "probabilityToMove": 90, + "probabilityToTrack": 35, + "probabilityToShoot": 2, + "actionDelay": 30 + }, + { + "Class": "Jones", + "HairType": "beard", + "Skin": "b8725cff", + "Arms": "ec1212ff", + "Body": "4665a8ff", + "Legs": "514938ff", + "Hair": "c94311ff", + "Feet": "514938ff", + "speed": 320, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 1967104, + "probabilityToMove": 90, + "probabilityToTrack": 30, + "probabilityToShoot": 0, + "actionDelay": 20 + }, + { + "Class": "Bones", + "Skin": "ff7e00ff", + "Arms": "f78313ff", + "Body": "464040ff", + "Legs": "430303ff", + "Hair": "ff0202ff", + "Feet": "430303ff", + "speed": 208, + "Gun": "Flamer", + "maxHealth": 45, + "flags": 8389632, + "probabilityToMove": 60, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 40 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "5b2d1bff", + "Arms": "c2d0baff", + "Body": "202520ff", + "Legs": "404040ff", + "Hair": "2f458eff", + "Feet": "404040ff", + "speed": 192, + "Gun": "Machine gun", + "maxHealth": 30, + "flags": 132096, + "probabilityToMove": 30, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 25 + }, + { + "Class": "Bones", + "Skin": "86dfffff", + "Arms": "3f3c7eff", + "Body": "5f2893ff", + "Legs": "508036ff", + "Hair": "ff0000ff", + "Feet": "508036ff", + "speed": 258, + "Gun": "Shotgun", + "maxHealth": 10, + "flags": 1024, + "probabilityToMove": 74, + "probabilityToTrack": 40, + "probabilityToShoot": 5, + "actionDelay": 20 + }, + { + "Class": "Bones", + "Skin": "f0f0f0ff", + "Arms": "fffcfcff", + "Body": "fffcfcff", + "Legs": "fffafaff", + "Hair": "ff0000ff", + "Feet": "fffafaff", + "speed": 510, + "Gun": "Grenades", + "maxHealth": 20, + "flags": 66688, + "probabilityToMove": 100, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Big Bones", + "Skin": "a06bf5ff", + "Arms": "a475d4ff", + "Body": "312b2bff", + "Legs": "40433fff", + "Hair": "000000ff", + "Feet": "40433fff", + "speed": 225, + "Gun": "Launcher", + "maxHealth": 500, + "flags": 33555456, + "probabilityToMove": 52, + "probabilityToTrack": 60, + "probabilityToShoot": 80, + "actionDelay": 10 + }, + { + "Class": "Big Bones", + "Skin": "be9bf3ff", + "Arms": "bc97e0ff", + "Body": "ca8dd7ff", + "Legs": "705faaff", + "Hair": "000000ff", + "Feet": "705faaff", + "speed": 360, + "Gun": "Launcher", + "maxHealth": 200, + "flags": 33555456, + "probabilityToMove": 95, + "probabilityToTrack": 60, + "probabilityToShoot": 58, + "actionDelay": 20 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/graveintent.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/graveintent.cdogscpn/missions.json new file mode 100644 index 00000000..d3b5996d --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/graveintent.cdogscpn/missions.json @@ -0,0 +1,1345 @@ +{ + "Missions": [{ + "Title": "Crash Landing", + "Description": "Once the splitting headache dies down and you can see again, you stand up. Agony. It wears off though. Always does.\n\n...\n\nThis doesn't look like the base on Tau Ceti e. Asteroid must have passed through your beam the instant you transmitted -- one in a billion chance.", + "Type": "Cave", + "Width": 24, + "Height": 48, + "ExitStyle": "plate2", + "KeyStyle": "plain2", + "Objectives": [{ + "Description": "Find out where you are", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 80, + "Flags": 0 + }], + "Enemies": [5, + 5, + 5, + 0, + 5, + 5, + 5], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "bone_blood", + "Density": 10 + }, + { + "MapObject": "wall_skull2", + "Density": 60 + }, + { + "MapObject": "blood0", + "Density": 15 + }, + { + "MapObject": "skull2", + "Density": 5 + }, + { + "MapObject": "scratch", + "Density": 40 + }], + "EnemyDensity": 2, + "Weapons": ["Knife", "Pistol"], + "Song": "graveintent1.xm", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "5c5c84ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "cobble", + "Mask": "282848ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "707070ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "FillPercent": 40, + "Repeat": 4, + "R1": 5, + "R2": 2, + "Rooms": { + "Count": 0, + "Min": 0, + "Max": 0, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "ExitEnabled": false, + "DoorsEnabled": false + }, + { + "Title": "Get the Hell out of Dodge", + "Description": "Underground. It's cold, but not enough to kill you. Lucky -- you only have a respirator.\n\nYour jumpgate must have gotten separated from you. If you want to transmit a distress signal, you have to get to the surface first -- and that's the quickest way.\n\n...But what the hell are those sounds?", + "Type": "Cave", + "Width": 48, + "Height": 48, + "ExitStyle": "plate2", + "KeyStyle": "plain2", + "Objectives": [{ + "Description": "Find your personal jumpgate", + "Type": "Collect", + "Pickup": "holo", + "Count": 1, + "Required": 1, + "Flags": 4 + }, + { + "Description": "Eliminate threats", + "Type": "Kill", + "Index": 0, + "Count": 5, + "Required": 0, + "Flags": 9 + }], + "Enemies": [5], + "SpecialChars": [0], + "MapObjectDensities": [{ + "MapObject": "bone_blood", + "Density": 10 + }, + { + "MapObject": "skull2", + "Density": 5 + }, + { + "MapObject": "rod", + "Density": 30 + }, + { + "MapObject": "wall_skull2", + "Density": 30 + }, + { + "MapObject": "bulletmarks", + "Density": 20 + }, + { + "MapObject": "wall_goo", + "Density": 70 + }], + "EnemyDensity": 10, + "Weapons": ["Knife", "Pistol"], + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "484870ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "cobble", + "Mask": "20203cff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "707070ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "FillPercent": 40, + "Repeat": 4, + "R1": 5, + "R2": 2, + "Rooms": { + "Count": 8, + "Min": 5, + "Max": 7, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "ExitEnabled": false, + "DoorsEnabled": true + }, + { + "Title": "Emergence", + "Description": "Luckily, your jumpgate had enough charge left to get you a little higher in the caves. Most people who take two jumps that quickly end up having an aneurysm.\n\nYou'll worry about it later. These things would kill you quicker.\n\nThey look almost...", + "Type": "Classic", + "Width": 48, + "Height": 36, + "ExitStyle": "plate2", + "KeyStyle": "plain2", + "Objectives": [{ + "Description": "Cut a path to the surface", + "Type": "Kill", + "Index": 0, + "Count": 15, + "Required": 15, + "Flags": 0 + }], + "Enemies": [5], + "SpecialChars": [0, + 2, + 0, + 0], + "MapObjectDensities": [{ + "MapObject": "blood3", + "Density": 20 + }, + { + "MapObject": "blood4", + "Density": 15 + }, + { + "MapObject": "gibs", + "Density": 15 + }, + { + "MapObject": "bone_blood", + "Density": 5 + }, + { + "MapObject": "rod", + "Density": 10 + }, + { + "MapObject": "statue_behemoth", + "Density": 35 + }, + { + "MapObject": "skull2", + "Density": 5 + }, + { + "MapObject": "box_wood", + "Density": 15 + }, + { + "MapObject": "barrel_skull2", + "Density": 20 + }, + { + "MapObject": "table_wood_candle", + "Density": 40 + }, + { + "MapObject": "table_wood", + "Density": 30 + }, + { + "MapObject": "bookshelf", + "Density": 40 + }, + { + "MapObject": "Shotgun spawner", + "Density": 5 + }], + "EnemyDensity": 10, + "Weapons": ["Knife", "Pistol"], + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "34345cff", + "MaskAlt": "3c3c3cff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "20203cff", + "MaskAlt": "3c3c3cff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "707070ff", + "MaskAlt": "3c3c3cff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "dungeon2", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 0, + "WallLength": 48, + "CorridorWidth": 3, + "Rooms": { + "Count": 8, + "Min": 8, + "Max": 14, + "Edge": false, + "Overlap": true, + "Walls": 1, + "WallLength": 1, + "WallPad": 2 + }, + "Squares": 0, + "ExitEnabled": true, + "Doors": { + "Enabled": true, + "Min": 2, + "Max": 3, + "RandomPos": false + }, + "Pillars": { + "Count": 6, + "Min": 2, + "Max": 2 + } + }, + { + "Title": "Rumble in the Dark", + "Description": "The air feels somehow lighter around here. The surface must be near.\n\nYou trace some unnatural tunnels into a small cavern. Before you can get closer to the rockfall leading up, you hear a dark murmur...", + "Type": "Cave", + "Width": 37, + "Height": 35, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Kill the guardian", + "Type": "Kill", + "Index": 0, + "Count": 1, + "Required": 1, + "Flags": 4 + }, + { + "Description": "Find access panels", + "Type": "Collect", + "Pickup": "circuit", + "Count": 3, + "Required": 0, + "Flags": 4 + }], + "Enemies": [0, 2], + "SpecialChars": [7], + "MapObjectDensities": [{ + "MapObject": "skull2", + "Density": 20 + }, + { + "MapObject": "bone_blood", + "Density": 15 + }, + { + "MapObject": "box3_gray", + "Density": 25 + }, + { + "MapObject": "Machine gun spawner", + "Density": 10 + }, + { + "MapObject": "box3_green", + "Density": 20 + }, + { + "MapObject": "crate", + "Density": 20 + }, + { + "MapObject": "crate2", + "Density": 20 + }, + { + "MapObject": "terminal", + "Density": 50 + }], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Pistol", + "Shotgun"], + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "484870ff", + "MaskAlt": "8484acff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "cobble", + "Mask": "301c1cff", + "MaskAlt": "8484acff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "20203cff", + "MaskAlt": "8484acff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "FillPercent": 60, + "Repeat": 2, + "R1": 6, + "R2": 3, + "Rooms": { + "Count": 6, + "Min": 6, + "Max": 6, + "Edge": true, + "Overlap": true, + "Walls": 0, + "WallLength": 1, + "WallPad": 1 + }, + "Squares": 2, + "ExitEnabled": false, + "DoorsEnabled": true + }, + { + "Title": "The Long Black Road", + "Description": "You finally made it to the surface. Not much lighter up here than it was down there, though.\n\nIs that a road...? Funny, it almost looks like Earth out there. Almost. Maybe this used to be a colony, a long time ago.\n\nThose look like some buildings in the distance. Might be an antenna you can patch into.", + "Type": "Static", + "Width": 20, + "Height": 100, + "ExitStyle": "plate2", + "KeyStyle": "plain2", + "Objectives": [], + "Enemies": [0, + 0, + 2, + 4], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "blood2", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 5 + }, + { + "MapObject": "tree_dead", + "Density": 15 + }, + { + "MapObject": "rod", + "Density": 25 + }, + { + "MapObject": "bone_blood", + "Density": 5 + }], + "EnemyDensity": 3, + "Weapons": ["Knife", + "Shotgun", + "Pistol"], + "Song": "graveintent1.xm", + "TileClasses": { + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "cobble", + "Mask": "c0c0c0ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "484870ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "2": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "202020ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + } + }, + "Tiles": ["1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1", + "0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0", + "0,0,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "1,2,2,1,3,3,3,3,3,3,3,3,3,3,3,3,1,2,2,1", + "1,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,3,3,1,2,2,2,2,2,2,2,2,2,2,2,2,1,3,3,1", + "1,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,1,1,3,3,3,3,3,3,0,0,0,1", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,1", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,1,1,1", + "0,1,1,0,3,3,3,3,3,1,1,1,3,3,3,3,0,0,0,0", + "0,1,1,0,3,3,3,1,1,1,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,1,1,3,3,3,3,3,3,3,3,3,3,3,0,1,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,0", + "0,0,0,0,3,3,3,3,3,3,1,1,3,3,3,1,1,1,1,1", + "0,0,0,0,3,3,3,3,3,3,1,1,3,3,3,3,1,1,1,1", + "0,0,0,0,3,3,3,3,3,3,3,3,3,1,1,1,1,3,1,3", + "0,0,0,0,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3", + "0,0,0,0,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3", + "0,0,0,0,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3", + "0,0,0,0,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3", + "0,0,0,0,3,3,3,3,3,1,1,3,3,3,3,1,3,3,1,1", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,1,1,0,3,3,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,1", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0", + "0,0,0,0,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,0", + "1,1,0,0,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,1", + "1,1,1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "3,1,1,1,3,3,3,3,3,3,3,3,3,3,1,1,1,1,0,1", + "3,0,1,1,3,3,3,3,3,3,3,3,3,3,1,3,3,1,1,1", + "0,0,0,0,3,3,3,3,3,3,3,3,1,1,1,3,3,3,0,0", + "0,0,0,0,3,3,3,3,3,3,1,1,1,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,1,1,3,3,3,3,3,0,3,0,0", + "0,0,0,0,3,3,3,3,3,1,1,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,1,1,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,1,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,1,1,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,1,1,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0", + "0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,512,512,512,512,512,512,512,512,512,512,512,512,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "statue_behemoth", + "Positions": [[14, 8], + [5, 8]] + }, + { + "MapObject": "wall_skull2", + "Positions": [[16, 8], + [3, 8]] + }, + { + "MapObject": "tree_dead", + "Positions": [[19, 7], + [0, 7]] + }, + { + "MapObject": "Machine gun spawner", + "Positions": [[17, 35]] + }, + { + "MapObject": "Bullets ammo spawner", + "Positions": [[17, 34], + [18, 34], + [18, 35]] + }, + { + "MapObject": "terminal", + "Positions": [[17, 63], + [14, 5]] + }, + { + "MapObject": "table_wood_candle", + "Positions": [[1, 36], + [18, 67], + [4, 2]] + }, + { + "MapObject": "wall_goo", + "Positions": [[18, 64], + [19, 63], + [14, 65], + [15, 62], + [18, 72]] + }, + { + "MapObject": "gibs", + "Positions": [[19, 65]] + }, + { + "MapObject": "bone_blood", + "Positions": [[16, 67], + [17, 69]] + }, + { + "MapObject": "skull2", + "Positions": [[14, 75]] + }], + "StaticCharacters": [{ + "Index": 0, + "Places": [{ + "Pos": [14, 16], + "Dir": 1 + }, + { + "Pos": [17, 12], + "Dir": 3 + }, + { + "Pos": [18, 18], + "Dir": 6 + }, + { + "Pos": [5, 14], + "Dir": 4 + }, + { + "Pos": [1, 18], + "Dir": 1 + }, + { + "Pos": [7, 37], + "Dir": 4 + }, + { + "Pos": [10, 40], + "Dir": 6 + }, + { + "Pos": [7, 42], + "Dir": 6 + }, + { + "Pos": [13, 44], + "Dir": 2 + }, + { + "Pos": [13, 62], + "Dir": 0 + }, + { + "Pos": [7, 56], + "Dir": 1 + }, + { + "Pos": [9, 58], + "Dir": 1 + }, + { + "Pos": [3, 69], + "Dir": 1 + }, + { + "Pos": [5, 71], + "Dir": 3 + }, + { + "Pos": [14, 87], + "Dir": 1 + }, + { + "Pos": [16, 82], + "Dir": 3 + }, + { + "Pos": [17, 86], + "Dir": 3 + }, + { + "Pos": [13, 84], + "Dir": 6 + }, + { + "Pos": [3, 88], + "Dir": 3 + }, + { + "Pos": [7, 91], + "Dir": 4 + }, + { + "Pos": [2, 93], + "Dir": 7 + }, + { + "Pos": [6, 96], + "Dir": 4 + }, + { + "Pos": [17, 75], + "Dir": 6 + }, + { + "Pos": [16, 76], + "Dir": 1 + }] + }, + { + "Index": 2, + "Places": [{ + "Pos": [1, 35], + "Dir": 4 + }, + { + "Pos": [7, 45], + "Dir": 6 + }, + { + "Pos": [10, 44], + "Dir": 5 + }, + { + "Pos": [2, 64], + "Dir": 4 + }, + { + "Pos": [10, 71], + "Dir": 6 + }, + { + "Pos": [12, 88], + "Dir": 7 + }, + { + "Pos": [3, 97], + "Dir": 7 + }, + { + "Pos": [8, 97], + "Dir": 6 + }] + }, + { + "Index": 4, + "Places": [{ + "Pos": [18, 38], + "Dir": 3 + }, + { + "Pos": [16, 65], + "Dir": 2 + }, + { + "Pos": [14, 67], + "Dir": 5 + }, + { + "Pos": [1, 79], + "Dir": 0 + }, + { + "Pos": [2, 81], + "Dir": 3 + }, + { + "Pos": [17, 73], + "Dir": 3 + }] + }], + "StaticObjectives": [], + "StaticKeys": [{ + "Index": 1, + "Positions": [[2, 35]] + }], + "StaticPickups": [], + "Start": [9, 1], + "Exits": [{ + "Rect": [4, + 93, + 11, + 6], + "Mission": 5, + "Hidden": false + }], + "AltFloorsEnabled": true + }, + { + "Title": "Pandemonium", + "Description": "This... colony. This was definitely a colony at some point. It's barely recognizable now. It's twisted, distorted.\n\nThere's no time to think though. It's like every one of these corpses on the entire asteroid knows where you are. You can't hide. You can't rest.\n\nThose things only rise up around those... altars. Destroying them might be worth a shot.\n\nMaybe afterwards you can stop to catch your breath. You're so tired...", + "Type": "Classic", + "Width": 60, + "Height": 80, + "ExitStyle": "plate2", + "KeyStyle": "plain2", + "Objectives": [{ + "Description": "Destroy all 6 demonic altars", + "Type": "Destroy", + "MapObject": "statue_behemoth", + "Count": 5, + "Required": 5, + "Flags": 4 + }, + { + "Description": "Reclaim sacrificial blood", + "Type": "Collect", + "Pickup": "bottle", + "Count": 6, + "Required": 0, + "Flags": 4 + }], + "Enemies": [0, + 2, + 0, + 0, + 4], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "tree_dead", + "Density": 15 + }, + { + "MapObject": "bone_blood", + "Density": 5 + }, + { + "MapObject": "skull2", + "Density": 5 + }, + { + "MapObject": "blood1", + "Density": 5 + }, + { + "MapObject": "blood2", + "Density": 10 + }, + { + "MapObject": "blood0", + "Density": 5 + }, + { + "MapObject": "barrel_flame", + "Density": 20 + }, + { + "MapObject": "table_wood_candle", + "Density": 30 + }, + { + "MapObject": "statue_ogre", + "Density": 5 + }, + { + "MapObject": "table_wood", + "Density": 10 + }, + { + "MapObject": "rod", + "Density": 5 + }, + { + "MapObject": "wall_skull2", + "Density": 40 + }], + "EnemyDensity": 20, + "Weapons": ["Machine gun", + "Knife", + "Shotgun", + "Flamer", + "Pistol"], + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "3c3c3cff", + "MaskAlt": "002800ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "c0c0c0ff", + "MaskAlt": "002800ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "cobble", + "Mask": "303030ff", + "MaskAlt": "002800ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "dungeon2", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 16, + "WallLength": 60, + "CorridorWidth": 3, + "Rooms": { + "Count": 14, + "Min": 6, + "Max": 11, + "Edge": true, + "Overlap": false, + "Walls": 2, + "WallLength": 1, + "WallPad": 2 + }, + "Squares": 4, + "ExitEnabled": false, + "Doors": { + "Enabled": true, + "Min": 2, + "Max": 2, + "RandomPos": false + }, + "Pillars": { + "Count": 0, + "Min": 2, + "Max": 2 + } + }, + { + "Title": "Nails in the Coffin", + "Description": "With every altar you destroy, it feels like daggers in your spine -- but it looks like those corpses feel it, too. They stopped getting up, at least. You slump to the floor in one of the dilapidated buildings, wheezing into your respirator.\n\nSlowly, barely perceptibly, the rubble on the floor starts to move...\n\nYou hear a nauseating, inhuman scream outside.", + "Type": "Classic", + "Width": 60, + "Height": 60, + "ExitStyle": "plate2", + "KeyStyle": "plain2", + "Objectives": [{ + "Description": "Kill the Ur-Devil", + "Type": "Kill", + "Index": 0, + "Count": 1, + "Required": 1, + "Flags": 0 + }, + { + "Description": "Destroy the Shrine of the Ur-Devil", + "Type": "Destroy", + "MapObject": "statue_behemoth", + "Count": 1, + "Required": 1, + "Flags": 4 + }, + { + "Description": "Reclaim sacrificial blood", + "Type": "Collect", + "Pickup": "bottle", + "Count": 6, + "Required": 0, + "Flags": 4 + }], + "Enemies": [0, + 0, + 2, + 4, + 0], + "SpecialChars": [6], + "MapObjectDensities": [{ + "MapObject": "blood1", + "Density": 40 + }, + { + "MapObject": "blood2", + "Density": 20 + }, + { + "MapObject": "blood0", + "Density": 15 + }, + { + "MapObject": "skull2", + "Density": 5 + }, + { + "MapObject": "bloodstain", + "Density": 75 + }, + { + "MapObject": "wall_skull2", + "Density": 40 + }, + { + "MapObject": "wall_goo", + "Density": 50 + }, + { + "MapObject": "table_wood_candle", + "Density": 50 + }, + { + "MapObject": "barrel_skull", + "Density": 30 + }, + { + "MapObject": "rod", + "Density": 10 + }, + { + "MapObject": "gibs", + "Density": 10 + }, + { + "MapObject": "bone_blood", + "Density": 5 + }], + "EnemyDensity": 20, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Pistol"], + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "202020ff", + "MaskAlt": "202020ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "cobble", + "Mask": "3c3c3cff", + "MaskAlt": "202020ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "5c5c5cff", + "MaskAlt": "202020ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 4, + "WallLength": 60, + "CorridorWidth": 2, + "Rooms": { + "Count": 8, + "Min": 8, + "Max": 10, + "Edge": false, + "Overlap": true, + "Walls": 1, + "WallLength": 16, + "WallPad": 2 + }, + "Squares": 1, + "ExitEnabled": false, + "Doors": { + "Enabled": true, + "Min": 3, + "Max": 3, + "RandomPos": false + }, + "Pillars": { + "Count": 10, + "Min": 2, + "Max": 2 + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/graveintent1.xm b/bios/Game Engines/C-Dogs SDL/cdogs/missions/graveintent1.xm new file mode 100644 index 00000000..f5928e06 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/graveintent1.xm differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/LICENSE.md b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/LICENSE.md new file mode 100644 index 00000000..2660d3e8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/LICENSE.md @@ -0,0 +1,45 @@ +## creative commons + +# CC0 1.0 Universal + +``` +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. +``` + +### Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. + +1. __Copyright and Related Rights.__ A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; + + ii. moral rights retained by the original author(s) and/or performer(s); + + iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; + + iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; + + v. rights protecting the extraction, dissemination, use and reuse of data in a Work; + + vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and + + vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. + +2. __Waiver.__ To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. + +3. __Public License Fallback.__ Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. + +4. __Limitations and Disclaimers.__ + + a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. + + b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. + + c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. + + d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/ammo.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/ammo.json new file mode 100644 index 00000000..379b9ba0 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/ammo.json @@ -0,0 +1,12 @@ +{ + "Version": 1, + "Ammo": [ + { + "Name": "N Bottle", + "Pic": "n_bottle", + "Sound": "gas_tank_pickup", + "Amount": 50, + "Max": 500 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/bullets.json new file mode 100644 index 00000000..9950f94c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/bullets.json @@ -0,0 +1,133 @@ +{ + "Version": 2, + "Bullets": [ + { + "Name": "laser_point", + "Pic": { + "Type": "Normal", + "Pic": "" + }, + "Trail": { + "Particle": "laser_trail_green", + "Width": 3.0 + }, + "Speed": 40960, + "Range": 1, + "Power": 1, + "Mass": 0.0, + "Size": [1, 1], + "Special": "Flame", + "Spark": "laser_point", + "HitSounds": { + "Object": "laser_burn", + "Flesh": "laser_burn", + "Wall": "" + } + }, + { + "Name": "chainsaw", + "Power": 3, + "HitSounds": { + "Object": "chainsaw", + "Flesh": "chainsaw" + } + }, + { + "Name": "yellow_needle", + "Pic": { + "Type": "Directional", + "Sprites": "pulsey" + }, + "Speed": 1500, + "Range": 15, + "Power": 2, + "SeekFactor": 10 + }, + { + "Name": "red_laser", + "Pic": { + "Type": "Directional", + "Sprites": "rapidr" + }, + "Speed": 1100, + "Range": 27, + "Power": 12 + }, + { + "Name": "yellow_particle", + "Pic": { + "Type": "Directional", + "Sprites": "pulsey" + }, + "Speed": 1500, + "Range": 12, + "Power": 8, + "SeekFactor": 5 + }, + { + "Name": "monster_bite", + "Power": 1, + "HitSounds": { + "Object": "hits/knife_hard", + "Flesh": "monster-2" + } + }, + { + "Name": "monster_gas", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "gas_cloud", + "TicksPerFrame": 4, + "Tint": [0.0, 0.33, 0.9] + }, + "Speed": 384, + "Friction": 4, + "Range": 35, + "Size": [20, 20], + "Special": "Confuse", + "Persists": true, + "Power" : 1, + "Spark" : "", + "HitSounds": { + "Object": "hits/gas", + "Flesh": "hits/gas", + "Wall": "hits/gas" + }, + "WallBounces": true + }, + { + "Name": "cryo_gas", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "gas_cloud", + "TicksPerFrame": 4, + "Tint": [180.0, 0.33, 2.0] + }, + "Speed": 384, + "Friction": 4, + "Range": 35, + "Size": [20, 20], + "Special": "Petrify", + "Persists": true, + "Power" : 1, + "Spark" : "", + "HitSounds": { + "Object": "hits/gas", + "Flesh": "hits/gas", + "Wall": "hits/gas" + }, + "WallBounces": true + }, + { + "Name": "psywave", + "Pic": { + "Type": "Directional", + "Sprites": "pulsey", + "Mask": "88ff88" + }, + "Speed": 400, + "Range": 350, + "Power": 4 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/campaign.json new file mode 100644 index 00000000..6560d967 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/campaign.json @@ -0,0 +1,11 @@ +{ + "Version": 16, + "Title": "Harmful Crysalis", + "Author": "Sauer2", + "Description": "You are a miner, looking to mine the rare mineral phleboltinum on Xurion.", + "Ammo": false, + "WeaponPersist": false, + "SkipWeaponMenu": false, + "RandomPickups": true, + "Missions": 9 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/characters.json new file mode 100644 index 00000000..ab737e5b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/characters.json @@ -0,0 +1,636 @@ +{ + "Version": 13, + "Characters": [{ + "Class": "Jones", + "HairType": "hogan", + "Skin": "d78e20ff", + "Arms": "ec2525ff", + "Body": "6d5555ff", + "Legs": "73874dff", + "Hair": "e20000ff", + "Feet": "73874dff", + "speed": 100, + "Gun": "Laser Pistol", + "maxHealth": 60, + "flags": 8388608, + "probabilityToMove": 68, + "probabilityToTrack": 29, + "probabilityToShoot": 9, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "51a36fff", + "Arms": "7e4e4eff", + "Body": "698e2dff", + "Legs": "716293ff", + "Hair": "fcf5f3ff", + "Feet": "716293ff", + "speed": 142, + "Gun": "Pulse rifle", + "maxHealth": 60, + "flags": 8388736, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 22, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "dutch", + "Skin": "af7948ff", + "Arms": "4a984aff", + "Body": "61527eff", + "Legs": "86b14cff", + "Hair": "646363ff", + "Feet": "86b14cff", + "speed": 274, + "Gun": "Knife", + "maxHealth": 60, + "flags": 128, + "probabilityToMove": 77, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 6 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "77dae2ff", + "Arms": "38545dff", + "Body": "909a6dff", + "Legs": "565353ff", + "Hair": "27f700ff", + "Feet": "565353ff", + "speed": 157, + "Gun": "Laser Pistol", + "maxHealth": 60, + "flags": 8388736, + "probabilityToMove": 65, + "probabilityToTrack": 33, + "probabilityToShoot": 19, + "actionDelay": 15 + }, + { + "Class": "Cyborg", + "HairType": "cyber_shades", + "Skin": "7e4c1cff", + "Arms": "b2b3b4ff", + "Body": "9a9a99ff", + "Legs": "565353ff", + "Hair": "000000ff", + "Feet": "565353ff", + "speed": 135, + "Gun": "Laser Pistol", + "maxHealth": 60, + "flags": 128, + "probabilityToMove": 65, + "probabilityToTrack": 33, + "probabilityToShoot": 7, + "actionDelay": 15 + }, + { + "Class": "Bug-eye", + "Skin": "bf2d26ff", + "Arms": "87dffcff", + "Body": "653bfaff", + "Legs": "8fb845ff", + "Hair": "317226ff", + "Feet": "8fb845ff", + "speed": 219, + "Gun": "Pistol", + "maxHealth": 60, + "flags": 128, + "probabilityToMove": 91, + "probabilityToTrack": 22, + "probabilityToShoot": 12, + "actionDelay": 6 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "2aaa00ff", + "Arms": "9ae6ffff", + "Body": "368a56ff", + "Legs": "855b5bff", + "Hair": "003fcbff", + "Feet": "855b5bff", + "speed": 157, + "Gun": "Pistol", + "maxHealth": 60, + "flags": 8388736, + "probabilityToMove": 65, + "probabilityToTrack": 33, + "probabilityToShoot": 19, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "professor", + "Skin": "eecf6cff", + "Arms": "ecececff", + "Body": "ffffffff", + "Legs": "565353ff", + "Hair": "fc9c0bff", + "Feet": "565353ff", + "speed": 157, + "Gun": "Pistol", + "maxHealth": 60, + "flags": 8388608, + "probabilityToMove": 47, + "probabilityToTrack": 33, + "probabilityToShoot": 36, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "fce242ff", + "Arms": "1afa77ff", + "Body": "489f00ff", + "Legs": "917373ff", + "Hair": "3c3423ff", + "Feet": "917373ff", + "speed": 157, + "Gun": "Shotgun", + "maxHealth": 60, + "flags": 0, + "probabilityToMove": 47, + "probabilityToTrack": 33, + "probabilityToShoot": 9, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "62af9bff", + "Arms": "806e6eff", + "Body": "77add4ff", + "Legs": "565353ff", + "Hair": "fc320bff", + "Feet": "565353ff", + "speed": 157, + "Gun": "Pistol", + "maxHealth": 60, + "flags": 8388736, + "probabilityToMove": 74, + "probabilityToTrack": 45, + "probabilityToShoot": 23, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "e5903eff", + "Arms": "4d6fd4ff", + "Body": "69c2b0ff", + "Legs": "d2cdcdff", + "Hair": "f7d50dff", + "Feet": "d2cdcdff", + "speed": 256, + "Gun": "Prox. mine", + "maxHealth": 40, + "flags": 4260992, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 17 + }, + { + "Class": "Jones", + "Skin": "b86825ff", + "Arms": "9d5fd9ff", + "Body": "647271ff", + "Legs": "4a4a4aff", + "Hair": "ad9933ff", + "Feet": "4a4a4aff", + "speed": 256, + "Gun": "Prox. mine", + "maxHealth": 40, + "flags": 4260864, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 18 + }, + { + "Class": "Jones", + "HairType": "beard", + "Skin": "eca15dff", + "Arms": "465821ff", + "Body": "7ec269ff", + "Legs": "d2cdcdff", + "Hair": "e70c0cff", + "Feet": "d2cdcdff", + "speed": 256, + "Gun": "Prox. mine", + "maxHealth": 40, + "flags": 4260992, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 18 + }, + { + "Class": "Ogre", + "Skin": "876666ff", + "Arms": "74d44dff", + "Body": "69c2b0ff", + "Legs": "d2cdcdff", + "Hair": "aaa09aff", + "Feet": "d2cdcdff", + "speed": 256, + "Gun": "Prox. mine", + "maxHealth": 40, + "flags": 4260864, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 18 + }, + { + "Class": "Robot", + "Skin": "b2c6a9ff", + "Arms": "99b699ff", + "Body": "cbe2bdff", + "Legs": "e3f7ceff", + "Hair": "62a33cff", + "Feet": "e3f7ceff", + "speed": 464, + "Gun": "Monster Bite", + "maxHealth": 10, + "flags": 33554560, + "probabilityToMove": 49, + "probabilityToTrack": 45, + "probabilityToShoot": 0, + "actionDelay": 39 + }, + { + "Class": "Robot", + "Skin": "759869ff", + "Arms": "7ea67eff", + "Body": "9eb88eff", + "Legs": "e3f7ceff", + "Hair": "ff881aff", + "Feet": "e3f7ceff", + "speed": 517, + "Gun": "Monster Bite", + "maxHealth": 20, + "flags": 33554560, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 16 + }, + { + "Class": "Robot", + "Skin": "759869ff", + "Arms": "7ea67eff", + "Body": "9eb88eff", + "Legs": "e3f7ceff", + "Hair": "fc16b0ff", + "Feet": "e3f7ceff", + "speed": 517, + "Gun": "Monster Bite", + "maxHealth": 10, + "flags": 33556608, + "probabilityToMove": 53, + "probabilityToTrack": 55, + "probabilityToShoot": 0, + "actionDelay": 16 + }, + { + "Class": "Robot", + "Skin": "445f3aff", + "Arms": "639f63ff", + "Body": "8ebd72ff", + "Legs": "52584bff", + "Hair": "e71818ff", + "Feet": "52584bff", + "speed": 464, + "Gun": "Monster gas", + "maxHealth": 30, + "flags": 33555584, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 34, + "actionDelay": 16 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "de864dff", + "Arms": "5b5555ff", + "Body": "fafff8ff", + "Legs": "ddffd2ff", + "Hair": "7e6415ff", + "Feet": "ddffd2ff", + "speed": 305, + "Gun": "Flamer", + "maxHealth": 400, + "flags": 39192064, + "probabilityToMove": 87, + "probabilityToTrack": 11, + "probabilityToShoot": 9, + "actionDelay": 25 + }, + { + "Class": "Ogre", + "Skin": "69cb00ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "ff0000ff", + "Feet": "404040ff", + "speed": 357, + "Gun": "Pulse rifle", + "maxHealth": 40, + "flags": 12583936, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 9, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "d77753ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "4db42dff", + "Feet": "404040ff", + "speed": 357, + "Gun": "Shotgun", + "maxHealth": 40, + "flags": 4195328, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 13, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "1cc3fcff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "23ff23ff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Launcher", + "maxHealth": 40, + "flags": 12583936, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "dutch", + "Skin": "804e12ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "b2b4b2ff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Shotgun", + "maxHealth": 40, + "flags": 12583936, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 18, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "goggles", + "Skin": "cd9754ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "97ec08ff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Launcher", + "maxHealth": 40, + "flags": 4195328, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 18, + "actionDelay": 15 + }, + { + "Class": "Jones", + "Skin": "c98838ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "97ec08ff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Powergun", + "maxHealth": 40, + "flags": 12583936, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 24, + "actionDelay": 15 + }, + { + "Class": "Mad bug-eye", + "Skin": "fc6100ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "97ec08ff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Pulse rifle", + "maxHealth": 40, + "flags": 4195328, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 12, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "af9934ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "020202ff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Machine pistol", + "maxHealth": 40, + "flags": 4195328, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 20, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "ad7d4bff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "2e5f08ff", + "Feet": "404040ff", + "speed": 256, + "Gun": "AArms Needler", + "maxHealth": 40, + "flags": 4195328, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "e9c095ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "ff5e08ff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Machine pistol", + "maxHealth": 40, + "flags": 12583936, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Jones", + "Skin": "aa88fcff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "97ec08ff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Sniper rifle", + "maxHealth": 40, + "flags": 12583936, + "probabilityToMove": 0, + "probabilityToTrack": 25, + "probabilityToShoot": 24, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "goggles", + "Skin": "916634ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "0bfc30ff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Sniper rifle", + "maxHealth": 40, + "flags": 12583936, + "probabilityToMove": 0, + "probabilityToTrack": 25, + "probabilityToShoot": 18, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "62b1e5ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "669f09ff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Sniper rifle", + "maxHealth": 40, + "flags": 12583936, + "probabilityToMove": 0, + "probabilityToTrack": 25, + "probabilityToShoot": 24, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "shades", + "Skin": "dbb190ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "151515ff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Sniper rifle", + "maxHealth": 40, + "flags": 12583936, + "probabilityToMove": 0, + "probabilityToTrack": 25, + "probabilityToShoot": 24, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "db8847ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "72955bff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Sniper rifle", + "maxHealth": 40, + "flags": 12583936, + "probabilityToMove": 0, + "probabilityToTrack": 25, + "probabilityToShoot": 24, + "actionDelay": 15 + }, + { + "Class": "Bug-eye", + "Skin": "fcc200ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "72955bff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Sniper rifle", + "maxHealth": 40, + "flags": 12583936, + "probabilityToMove": 0, + "probabilityToTrack": 25, + "probabilityToShoot": 24, + "actionDelay": 15 + }, + { + "Class": "Robot", + "Skin": "445f3aff", + "Arms": "eeeeecff", + "Body": "8ebd72ff", + "Legs": "cbd0c5ff", + "Hair": "56ff00ff", + "Feet": "cbd0c5ff", + "speed": 264, + "Gun": "Monster psybeam", + "maxHealth": 302, + "flags": 33555584, + "probabilityToMove": 18, + "probabilityToTrack": 16, + "probabilityToShoot": 31, + "actionDelay": 16 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/box3_blink.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/box3_blink.txt new file mode 100644 index 00000000..35e04a3f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/box3_blink.txt @@ -0,0 +1,4 @@ +Adapted from Sci-Fi Object Set by Janna +http://opengameart.org/content/sci-fi-object-set + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/box3_blink_16x21.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/box3_blink_16x21.png new file mode 100644 index 00000000..37178fd5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/box3_blink_16x21.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/cryo_gun.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/cryo_gun.png new file mode 100644 index 00000000..81968704 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/cryo_gun.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/cryo_gun.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/cryo_gun.txt new file mode 100644 index 00000000..6a62fa42 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/cryo_gun.txt @@ -0,0 +1,4 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/laser_dot_4x4.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/laser_dot_4x4.png new file mode 100644 index 00000000..bf7ec545 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/laser_dot_4x4.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/n_bottle.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/n_bottle.png new file mode 100644 index 00000000..15e53a70 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/n_bottle.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/phleboltinum.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/phleboltinum.png new file mode 100644 index 00000000..977b5df4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/phleboltinum.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/pulsey_5x5.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/pulsey_5x5.png new file mode 100644 index 00000000..899d7a1e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/pulsey_5x5.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/rapidr_11x11.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/rapidr_11x11.png new file mode 100644 index 00000000..6371bb93 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/rapidr_11x11.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/rapidr_11x11.png.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/rapidr_11x11.png.txt new file mode 100644 index 00000000..850af5b8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/rapidr_11x11.png.txt @@ -0,0 +1,5 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ +Modified by Sauer2 diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/sample.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/sample.png new file mode 100644 index 00000000..aaf20676 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/sample.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/server_blink.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/server_blink.txt new file mode 100644 index 00000000..35e04a3f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/server_blink.txt @@ -0,0 +1,4 @@ +Adapted from Sci-Fi Object Set by Janna +http://opengameart.org/content/sci-fi-object-set + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/server_blink_16x23.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/server_blink_16x23.png new file mode 100644 index 00000000..e0ada4a9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/server_blink_16x23.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/table_plastic_computer.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/table_plastic_computer.png new file mode 100644 index 00000000..d1158317 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/table_plastic_computer.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/table_plastic_computer.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/table_plastic_computer.txt new file mode 100644 index 00000000..6c6e9a3e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/graphics/table_plastic_computer.txt @@ -0,0 +1,11 @@ +Adapted from + +Tables and Stools +By Jordan Irwin +http://opengameart.org/content/tables-and-stools +http://creativecommons.org/licenses/by/3.0/ + +Kyrodian Legends Overworld Props +By Midi +https://web.archive.org/web/20150319200042/http://opengameart.org/content/kyrodian-legends-overworld-props +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/guns.json new file mode 100644 index 00000000..ea09a921 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/guns.json @@ -0,0 +1,126 @@ +{ + "Version": 1, + "Guns": [ + { + "Pic": "zapper", + "Name": "Mining laser", + "Bullet": "laser_point", + "Icon": "browny_gun", + "Cost": 0, + "Lock": 1, + "MuzzleFlashParticle": "", + "SwitchSound": "mini_cells_pickup", + "Sound": "mining_laser", + "SoundLockLength": 8, + "Description": "A laser that is strong enough to melt rocks." + }, + { + "Pic": "chainsaw", + "Icon": "chainsaw", + "Name": "Rocksaw", + "Description": "A chainsaw specialized to crack rocks.", + "Bullet": "chainsaw", + "Cost": 0, + "Sound": "", + "SwitchSound": "chainsaw_switch", + "SoundLockLength": 50, + "CanShoot": false, + "Auto": true + }, + { + "Pic": "blaster_white", + "Name": "AArms Needler", + "Icon": "petrifier", + "Bullet": "yellow_needle", + "Cost": 1, + "Lock": 3, + "Sound": "pulse", + "Recoil": 0.3, + "SpreadCount": 2, + "SpreadWidth": 0.1, + "AngleOffset": 0.1, + "Ammo": "Mini cells" + }, + { + "Pic": "pistol", + "Name": "Laser Pistol", + "Icon": "pistol", + "Bullet": "red_laser", + "Cost": 0, + "Lock": 18, + "Sound": "pulse", + "SwitchSound": "pistol_switch", + "Recoil": 0.1 + }, + { + "Pic": "", + "Name": "Monster Bite", + "Bullet": "monster_bite", + "Cost": 0, + "Sound": "", + "SoundLockLength": 20, + "CanShoot": false, + "CanDrop": false + }, + { + "Name": "Monster gas", + "Pic": "", + "Bullet": "monster_gas", + "Cost": 0, + "Lock": 40, + "Sound": "gas_leak", + "SoundLockLength": 36, + "MuzzleFlashParticle": "muzzle_flash_gasgun", + "CanDrop": false + }, + { + "Pic": "cryogun", + "Name": "Cryo gun", + "Icon": "cryo_gun", + "Bullet": "cryo_gas", + "Cost": 1, + "Lock": 6, + "Sound": "flamer", + "SwitchSound": "flamer_switch", + "SoundLockLength": 36, + "MuzzleFlashParticle": "muzzle_flash_gasgun", + "Ammo": "N Bottle" + }, + { + "Pic": "pistol", + "Name": "Machine pistol", + "Icon": "pistol", + "Bullet": "9mm", + "Cost": 0, + "Lock": 8, + "Sound": "pistol", + "SwitchSound": "pistol_switch", + "Recoil": 0.1, + "Brass": "brass" + }, + { + "Name": "Monster psybeam", + "Pic":"", + "Bullet": "psywave", + "Cost": 0, + "Lock": 10, + "Sound": "pulse", + "Recoil": 1.6, + "SpreadCount": 6, + "AngleOffset" : 0.2, + "SpreadWidth": 0.8, + "CanDrop": false + } + ], "PseudoGuns" : [ + { + "Pic": "", + "Name": "particle_explosion", + "Bullet": "yellow_particle", + "Sound": "hits/petrify", + "SpreadCount": 60, + "SpreadWidth": 0.1, + "AngleOffset": 0.05, + "ShakeAmount": 2 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/map_objects.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/map_objects.json new file mode 100644 index 00000000..54d52a07 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/map_objects.json @@ -0,0 +1,55 @@ +{ + "Version": 3, + "MapObjects": [ + { + "Name": "server_blink", + "Pic": { + "Type": "Animated", + "Sprites": "server_blink", + "TicksPerFrame": 40 + }, + "WreckPic": { + "Type": "Normal", + "Pic": "safe2_wreck" + }, + "Health": 30, + "Flags": ["Inside", "OneOrMoreWalls", "FreeInFront"] + }, + { + "Name": "box3_blink", + "Pic": { + "Type": "Animated", + "Sprites": "box3_blink", + "TicksPerFrame": 40 + }, + "WreckPic": { + "Type": "Normal", + "Pic": "box3_gray_wreck" + }, + "DestroyGuns": [ "explosion1", + "explosion2", + "explosion3"], + "Health": 20, + "Flags": ["Outside", "OneWall"] + }, + { + "Name": "table_plastic_computer", + "Pic": { + "Type": "Normal", + "Pic": "table_plastic_computer" + }, + "Wreck": "table_plastic_wreck", + "Health": 40, + "Flags": ["Inside", "NoWalls"] + }, + { + "Name": "phleboltinum", + "Pic": { + "Type": "Normal", + "Pic": "phleboltinum" + }, + "Wreck": "safe_wreck", + "Health": 50 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/missions.json new file mode 100644 index 00000000..b2659587 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/missions.json @@ -0,0 +1,3503 @@ +{ + "Missions": [{ + "Title": "Exploration", + "Description": "First, you need to check the viability of this area for mining. You can't shake the feeling someone has been here before...", + "Type": "Static", + "Width": 52, + "Height": 52, + "ExitStyle": "hazard", + "KeyStyle": "card", + "Objectives": [{ + "Description": "Map the area", + "Type": "Explore", + "Index": 0, + "Count": 107, + "Required": 75, + "Flags": 4 + }, + { + "Description": "Analyse some rocks with your mining equipment", + "Type": "Destroy", + "MapObject": "phleboltinum", + "Count": 9, + "Required": 3, + "Flags": 0 + }, + { + "Description": "Pick up some ore samples", + "Type": "Collect", + "Pickup": "sample", + "Count": 3, + "Required": 3, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Mining laser", "Rocksaw"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "dungeon2", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "845c84ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "fcfcfcff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "5c345cff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["4,4,4,4,1,1,0,0,0,0,4,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4", + "4,4,4,4,1,1,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,4,4,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,4,1,1,1,1,4,4,4,4,4,4,4", + "4,4,4,1,1,1,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,4,4,4,4,4,4,4", + "4,4,1,1,1,0,0,0,0,1,1,0,0,0,1,1,0,0,0,1,4,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,4,4,4,4,4,4", + "4,4,1,1,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,4,4,4,4,4,4", + "4,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,4,4,4,4,4,4", + "1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,4,4,4,4,4,4", + "4,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,4,4,4,4", + "4,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,1,0,0,1,1,0,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,4,4,4,4", + "4,4,4,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,4,4,4,4", + "4,4,4,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,4,4,4", + "4,4,4,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,4,4,4", + "4,1,4,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,4,4", + "4,4,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,1,1,1,4,4", + "1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,4,4", + "4,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,1,4,4,4,4", + "4,4,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,4,4,4,4", + "4,1,1,1,1,0,1,1,0,0,1,1,0,0,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4,4,4,4", + "4,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4,4,4,4", + "1,4,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0,0,0,0,0,1,0,1,4,4,4,4", + "4,4,4,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,1,1,0,1,1,1,1,1,0,0,0,0,0,0,1,1,4,4,4,4", + "4,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,4,4,4", + "4,4,1,1,1,0,0,0,0,1,1,1,1,0,0,0,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,4,4,4", + "1,1,1,1,1,0,0,0,1,1,1,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,1,0,0,1,1,1,1,1,4,4,4,4", + "1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,0,0,0,3,1,1,1,1,1,4,4,4", + "1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,3,3,1,1,4,4,4,4", + "1,4,4,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,3,1,4,4,4,4", + "1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,4,4,4,4", + "4,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4,4,4", + "4,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4,4,4", + "4,4,1,1,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4,4", + "4,1,1,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,4", + "4,1,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,4", + "4,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4", + "1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,4", + "1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4,4", + "1,3,3,1,3,3,1,1,1,1,0,0,0,1,1,1,3,1,1,1,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,4,4,4", + "1,3,3,1,0,3,1,1,1,0,0,0,0,0,1,3,3,3,1,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0,1,1,0,0,0,0,1,1,0,0,0,1,1,1,4,4", + "1,3,0,0,0,3,3,1,1,0,0,0,0,1,1,3,3,3,1,1,0,0,1,0,0,0,1,1,1,0,0,0,1,1,0,0,0,1,0,0,0,0,1,1,0,0,0,0,1,1,1,4", + "1,3,0,0,0,0,3,1,1,0,0,0,0,1,1,3,3,3,1,1,0,0,1,1,0,0,1,1,1,0,0,0,1,1,0,0,0,1,1,0,0,0,1,1,1,0,0,0,1,1,4,4", + "1,3,0,0,0,3,3,1,1,0,0,0,0,0,1,2,2,2,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,0,0,0,1,1,1,4", + "1,1,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1,1,0,1,1,1,4,4", + "1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,4,4", + "1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,0,0,0,1,1,1,1,1,4,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,4,4,4", + "1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,4,4,4", + "0,1,1,0,1,1,0,0,0,0,0,0,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,0,0,1,1,4,4,1,1,1,0,0,0,1,1,1,0,1,1,1,1,1,4,4,4,4", + "0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,4,4,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,4,4,4,4", + "1,4,4,4,4,1,1,1,1,1,1,1,4,4,1,1,1,0,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,1,1,1,1,1,1,4,4,4,4,4,1,1,4,4,4,4,4", + "4,4,4,4,4,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,1,1,1,1,4,4,4,4,4,4,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,1,1,4,4,4,4,4,4,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "drain2", + "Positions": [[16, 37]] + }, + { + "MapObject": "barrel_flame", + "Positions": [[45, 25], + [46, 26], + [44, 25], + [4, 36], + [5, 37], + [6, 38], + [5, 36], + [2, 36], + [1, 36], + [1, 38], + [1, 39]] + }, + { + "MapObject": "safe_wreck", + "Positions": [[21, 25], + [34, 14], + [13, 20], + [6, 27], + [7, 27], + [6, 26], + [19, 43]] + }, + { + "MapObject": "fan", + "Positions": [[16, 36], + [15, 37], + [17, 37]] + }, + { + "MapObject": "wall_goo", + "Positions": [[14, 26], + [31, 5]] + }, + { + "MapObject": "skull2", + "Positions": [[37, 45]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 1, + "Positions": [[41, 33], + [23, 23], + [4, 37], + [37, 9], + [12, 6], + [13, 26], + [27, 44], + [11, 42], + [31, 15]], + "Indices": [0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0] + }, + { + "Index": 2, + "Positions": [[26, 3], + [7, 32], + [35, 42]], + "Indices": [0, + 0, + 0] + }], + "StaticKeys": [{ + "Index": 0, + "Positions": [[43, 31]] + }], + "StaticPickups": [], + "Start": [7, 2], + "Exits": [{ + "Rect": [14, + 34, + 4, + 6], + "Mission": 1, + "Hidden": false + }] + }, + { + "Title": "Hideout", + "Description": "Looks like you stumbled upon some old depot. You decide to explore it a little bit further.", + "Type": "Static", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard2", + "KeyStyle": "card", + "Objectives": [{ + "Description": "Explore the base", + "Type": "Explore", + "Index": 0, + "Count": 128, + "Required": 75, + "Flags": 0 + }, + { + "Description": "A map with potential tritium deposits.", + "Type": "Collect", + "Pickup": "starmap", + "Count": 1, + "Required": 0, + "Flags": 1 + }, + { + "Description": "A roguelike with 50 species and 60 classes.", + "Type": "Collect", + "Pickup": "chip3", + "Count": 1, + "Required": 0, + "Flags": 0 + }, + { + "Description": "What the hell are those... ?!", + "Type": "Kill", + "Index": 0, + "Count": 2, + "Required": 0, + "Flags": 0 + }], + "Enemies": [0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13], + "SpecialChars": [14, 15], + "MapObjectDensities": [], + "EnemyDensity": 5, + "Weapons": ["Rocksaw", "Mining laser"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "dungeon2", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "848484ff", + "MaskAlt": "6c5820ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "ac84acff", + "MaskAlt": "6c5820ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "484848ff", + "MaskAlt": "6c5820ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,3,3,1,1,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,3,3,0,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,0,0,0,0,0,0,3,3,3,3,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,4,4,4,1,0,0,0,0,0,0,0,0,0,0,1,4,4,1,0,0,0,0,0,3,3,3,3,3,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,4,4,4,1,0,0,0,0,0,0,0,0,0,0,1,4,4,1,0,0,0,0,0,3,0,3,3,0,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,3,3,3,3,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,4,4,1,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,1,1,0,0,0,0,0,0,1,4,4,4,1,0,0,0,0,0,0,0,0,0,0,1,4,4,1,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,4,4,4,1,0,0,0,0,0,0,0,0,0,0,1,4,4,1,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,4,4,4,1,1,1,2,2,1,1,1,1,1,1,1,4,4,1,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,4,4,4,1,0,0,0,0,0,0,0,0,0,0,1,4,4,1,1,1,1,1,1,1,1,0,0,0,1,1", + "1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,4,4,4,1,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4", + "1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,4,4,4,1,1,1,1,1,1,1,0,0,0,1,1,4,4,4,4,4,4,4,4,4,1,2,2,2,1,4", + "1,0,0,0,1,1,0,0,0,1,1,0,0,1,1,1,1,1,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,1,1,0,0,0,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,1,1,1,0,0,0,1,1,1,1,4,4,4,4,4,4,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,1,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,4,4,1,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,3,0,3,3,1,4,4,1,1,1,1,0,0,0,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,0,1,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,0,1,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,2,2,1,1,1,4,4,4,4,1,0,0,0,1,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,1,0,0,0,1,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,1,0,0,0,1,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,1,2,2,2,1,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,3,3,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,0,3,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,3,3,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,2048,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "drain2", + "Positions": [[44, 40], + [44, 22]] + }, + { + "MapObject": "crate2", + "Positions": [[45, 34], + [44, 35], + [44, 34], + [43, 34]] + }, + { + "MapObject": "crate", + "Positions": [[41, 46], + [40, 46], + [41, 45], + [46, 43], + [46, 44]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[46, 42], + [37, 44], + [37, 34], + [38, 34], + [37, 35]] + }, + { + "MapObject": "barrel_wood2_wreck", + "Positions": [[43, 3]] + }, + { + "MapObject": "bloodstain2", + "Positions": [[37, 1]] + }, + { + "MapObject": "blood4", + "Positions": [[45, 9]] + }, + { + "MapObject": "floor_console", + "Positions": [[9, 14], + [4, 14], + [16, 18], + [16, 2]] + }, + { + "MapObject": "table_wood_round_terminal", + "Positions": [[8, 13], + [3, 13], + [14, 18], + [15, 1]] + }, + { + "MapObject": "chair_task", + "Positions": [[15, 4], + [16, 20], + [6, 14], + [4, 13], + [46, 10]] + }, + { + "MapObject": "bookshelf", + "Positions": [[6, 13], + [11, 1]] + }, + { + "MapObject": "gibs", + "Positions": [[41, 5]] + }, + { + "MapObject": "box", + "Positions": [[14, 34], + [14, 38], + [16, 38]] + }, + { + "MapObject": "box2", + "Positions": [[15, 38], + [16, 36], + [16, 37], + [14, 36], + [15, 39], + [16, 40], + [11, 46]] + }, + { + "MapObject": "fan", + "Positions": [[11, 34], + [21, 34], + [21, 46]] + }, + { + "MapObject": "barrel_skull", + "Positions": [[11, 36], + [12, 37], + [11, 39], + [11, 40]] + }, + { + "MapObject": "cabinet_server", + "Positions": [[19, 34], + [18, 34]] + }, + { + "MapObject": "phleboltinum", + "Positions": [[13, 43]] + }, + { + "MapObject": "egg", + "Positions": [[12, 43]] + }, + { + "MapObject": "table_clothed", + "Positions": [[23, 3], + [26, 3]] + }, + { + "MapObject": "chair", + "Positions": [[27, 3], + [24, 3], + [25, 3], + [22, 3]] + }, + { + "MapObject": "safe_wreck", + "Positions": [[42, 6], + [45, 2], + [42, 1], + [44, 0]] + }, + { + "MapObject": "box3_red", + "Positions": [[36, 10], + [36, 11], + [36, 12]] + }, + { + "MapObject": "table_lab", + "Positions": [[42, 19], + [46, 19], + [42, 21], + [42, 20], + [45, 25], + [44, 25]] + }, + { + "MapObject": "flower", + "Positions": [[31, 15], + [22, 15]] + }, + { + "MapObject": "bulletmarks", + "Positions": [[41, 1]] + }, + { + "MapObject": "scratch", + "Positions": [[46, 1]] + }, + { + "MapObject": "blood3", + "Positions": [[33, 7]] + }, + { + "MapObject": "table_steel", + "Positions": [[25, 26]] + }, + { + "MapObject": "table_wood_round_terminal", + "Positions": [[32, 22]] + }, + { + "MapObject": "chair_task", + "Positions": [[32, 23], + [33, 22]] + }, + { + "MapObject": "wscreen1_wreck", + "Positions": [[39, 1], + [45, 1]] + }, + { + "MapObject": "wscreen1", + "Positions": [[26, 22], + [7, 13], + [29, 3], + [30, 3]] + }, + { + "MapObject": "wscreen2", + "Positions": [[27, 14]] + }, + { + "MapObject": "barrel_wood2_wreck", + "Positions": [[19, 30]] + }, + { + "MapObject": "box3_gray_wreck", + "Positions": [[18, 31], + [19, 32]] + }, + { + "MapObject": "table_plastic_wreck", + "Positions": [[20, 30]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 1, + "Positions": [[46, 20]], + "Indices": [0] + }, + { + "Index": 2, + "Positions": [[2, 13]], + "Indices": [0] + }, + { + "Index": 3, + "Positions": [[18, 31], + [19, 31]], + "Indices": [0, 1] + }], + "StaticKeys": [{ + "Index": 3, + "Positions": [[16, 34]] + }, + { + "Index": 1, + "Positions": [[41, 6]] + }], + "StaticPickups": [], + "Start": [44, 40], + "Exits": [{ + "Rect": [40, + 0, + 7, + 7], + "Mission": 2, + "Hidden": false + }] + }, + { + "Title": "Caves", + "Description": "The handful of smugglers you meet don't put up much of a fight. Most of them seem to be focussing their attention to some hole in the ground. \"There are monsters in here! They attacked us!\", one of them warns you. You decide to find out what is behind all of this. You pick up some weapons from the smugglers and enter the tunnels...", + "Type": "Cave", + "Width": 48, + "Height": 32, + "ExitStyle": "plate", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Explore the caves", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 50, + "Flags": 0 + }, + { + "Description": "Mining time!", + "Type": "Destroy", + "MapObject": "phleboltinum", + "Count": 4, + "Required": 0, + "Flags": 9 + }, + { + "Description": "You can't believe somebody 3D-printed a save logo...", + "Type": "Collect", + "Pickup": "disk1", + "Count": 1, + "Required": 0, + "Flags": 1 + }, + { + "Description": "Huh, the smugglers were right after all...", + "Type": "Kill", + "Index": 0, + "Count": 20, + "Required": 0, + "Flags": 9 + }], + "Enemies": [], + "SpecialChars": [14], + "MapObjectDensities": [{ + "MapObject": "wall_goo", + "Density": 20 + }, + { + "MapObject": "egg2_wreck", + "Density": 5 + }, + { + "MapObject": "wall_stuff", + "Density": 10 + }, + { + "MapObject": "crate2", + "Density": 5 + }, + { + "MapObject": "barrel_flame", + "Density": 5 + }, + { + "MapObject": "crate", + "Density": 10 + }, + { + "MapObject": "blood4", + "Density": 5 + }, + { + "MapObject": "bloodstain2", + "Density": 5 + }, + { + "MapObject": "barrel_skull2", + "Density": 5 + }, + { + "MapObject": "column", + "Density": 5 + }, + { + "MapObject": "barrel_blue", + "Density": 10 + }, + { + "MapObject": "barrel_wood2_wreck", + "Density": 10 + }, + { + "MapObject": "drain0", + "Density": 5 + }, + { + "MapObject": "rocket", + "Density": 5 + }], + "EnemyDensity": 0, + "Weapons": ["Mining laser", + "Rocksaw", + "Pulse rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "845c84ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "cobble", + "Mask": "482848ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "707070ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "FillPercent": 27, + "Repeat": 2, + "R1": 4, + "R2": 2, + "Rooms": { + "Count": 0, + "Min": 0, + "Max": 0, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "ExitEnabled": false, + "DoorsEnabled": true + }, + { + "Title": "Sewers", + "Description": "Just as you wonder where the abominations came from, you overlook a drain and fall down a pipe. This seems to be some kind of defunct sewer. You survived the fall without injuries, but unfortunately you lost most of your weapons. Since you can't reach the opening on the top - makes you wonder how the bugmen did this - the only way out is somewhere else...", + "Type": "Static", + "Width": 95, + "Height": 140, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "The Game 32k (disk 1\/13)", + "Type": "Collect", + "Pickup": "cd", + "Count": 1, + "Required": 0, + "Flags": 1 + }, + { + "Description": "Vandalism with a rocket...", + "Type": "Destroy", + "MapObject": "rocket2", + "Count": 2, + "Required": 0, + "Flags": 1 + }], + "Enemies": [14, + 15, + 16], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 20, + "Weapons": ["Mining laser"], + "Song": "devhell2.ogg", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "6c5830ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "804000ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "806c45ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,3,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,3,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,3,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,3,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,3,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,3,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,3,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,3,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,3,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,3,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,3,3,3,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,3,3,3,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,3,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,3,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,3,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,3,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,3,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,1,1,1,1,1,1,1,1,1,1,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,1,0,1,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,1,0,1,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,1,0,1,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,1,0,1,4,4,1,1,1,1,1,1,1,1,0,1,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,1,0,1,4,4,1,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,1,0,1,4,4,1,0,1,1,1,1,1,1,0,1,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,1,0,1,4,4,1,0,1,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,4,4,1,0,1,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,1,0,1,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,4,4,1,0,1,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,1,0,1,4,1,1,1,1,2,1,1,1,1,4,4,4,4,4,1,1,1,2,1,1,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,1,0,1,4,1,0,0,0,0,0,0,0,1,4,4,4,4,4,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,1,0,1,4,1,0,0,0,0,0,0,0,1,4,1,1,1,1,1,0,3,3,3,0,1,4,4,4,4,4,4,4,4", + "4,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,1,0,1,4,1,0,0,0,0,0,0,0,1,4,1,0,0,0,2,0,3,3,3,0,1,4,4,4,4,4,4,4,4", + "1,1,0,0,0,0,0,1,1,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,1,4,4,4,4,4,1,0,1,4,1,0,0,3,3,3,0,0,1,4,1,0,1,1,1,0,3,3,3,0,1,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,1,1,1,1,1,1,4,1,1,1,1,2,1,1,1,1,4,4,4,4,4,4,4,1,1,1,1,1,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,4,1,0,1,1,1,1,1,1,1,0,1,4,1,0,0,3,3,3,0,0,1,4,1,0,1,4,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4", + "1,0,0,3,3,3,0,0,2,0,0,0,0,1,4,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,1,0,0,0,1,1,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,4,1,0,0,0,0,0,0,0,0,0,1,4,1,0,0,3,3,3,0,0,1,4,1,0,1,4,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4", + "1,0,0,3,3,3,0,0,1,1,1,1,0,1,4,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,4,1,1,1,1,1,1,1,1,1,1,1,4,1,0,0,3,3,3,0,0,1,4,1,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,3,3,3,0,0,1,4,4,1,0,1,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,1,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,3,0,0,0,1,4,4,1,0,1,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,1,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,1,0,0,3,0,0,1,1,4,4,1,0,1,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,1,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,1,0,3,0,1,1,4,4,4,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,1,1,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,0,3,0,1,4,4,4,4,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,2,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,0,3,0,1,4,4,4,4,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,3,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,0,3,0,1,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,1,0,3,0,1,1,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,0,3,0,1,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,1,0,3,0,1,4,4,4,4,4,4,4,4,1,1,0,0,0,0,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,0,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,0,1,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,0,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,0,1,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,0,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,0,1,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,0,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,0,1,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,0,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,0,1,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,0,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,0,1,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,1,0,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,0,1,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,1,0,3,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,3,0,1,1,0,4,4,4,4,4,4,4,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,1,0,0,3,0,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,3,0,0,1,1,4,4,4,4,4,4,1,1,0,0,0,0,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,3,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,3,0,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,1,4,4,4,4,4,4,1,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,4,4,4,4,4,4,1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,1,4,4,4,4,4,4,1,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "1,1,0,0,0,0,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,0,0,0,0,0,1,1,4,4,4,4,4,4,1,1,0,0,0,0,0,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "barrel_skull2", + "Positions": [[17, 114], + [18, 114]] + }, + { + "MapObject": "barrel_blue2", + "Positions": [[22, 114], + [16, 114], + [50, 117]] + }, + { + "MapObject": "wall_stuff", + "Positions": [[20, 114], + [33, 114]] + }, + { + "MapObject": "drain1", + "Positions": [[29, 116], + [29, 117], + [29, 118], + [29, 119], + [29, 120], + [37, 120], + [37, 119], + [37, 118], + [37, 117], + [37, 116]] + }, + { + "MapObject": "drain2", + "Positions": [[4, 135]] + }, + { + "MapObject": "wall_goo2", + "Positions": [[14, 134], + [4, 112]] + }, + { + "MapObject": "box3_green", + "Positions": [[20, 122], + [21, 122], + [21, 114], + [46, 114], + [47, 114], + [48, 114]] + }, + { + "MapObject": "barrel", + "Positions": [[49, 114], + [1, 113], + [2, 112], + [1, 114], + [67, 117], + [68, 116], + [73, 117]] + }, + { + "MapObject": "bone_blood", + "Positions": [[6, 113]] + }, + { + "MapObject": "blood2", + "Positions": [[2, 134]] + }, + { + "MapObject": "bloodstain", + "Positions": [[7, 133]] + }, + { + "MapObject": "drain0", + "Positions": [[46, 131], + [47, 131], + [48, 131], + [49, 131], + [50, 131], + [69, 111], + [70, 111], + [71, 111]] + }, + { + "MapObject": "box3_gray", + "Positions": [[51, 120], + [51, 119]] + }, + { + "MapObject": "rocket_wreck", + "Positions": [[31, 137]] + }, + { + "MapObject": "wall_goo", + "Positions": [[44, 106]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[71, 125], + [71, 126], + [70, 126]] + }, + { + "MapObject": "barrel_skull", + "Positions": [[71, 127], + [72, 127], + [72, 128], + [71, 128], + [71, 129], + [71, 130]] + }, + { + "MapObject": "goo", + "Positions": [[70, 114], + [47, 136]] + }, + { + "MapObject": "scratch", + "Positions": [[65, 134]] + }, + { + "MapObject": "barrel_flame_wreck", + "Positions": [[68, 122]] + }, + { + "MapObject": "box_metal_green", + "Positions": [[73, 123], + [67, 115], + [73, 112]] + }, + { + "MapObject": "barrel_blue2", + "Positions": [[85, 112]] + }, + { + "MapObject": "wall_goo2", + "Positions": [[64, 102]] + }, + { + "MapObject": "drain2", + "Positions": [[76, 17]] + }, + { + "MapObject": "drain1", + "Positions": [[76, 5], + [66, 30], + [9, 55], + [75, 55]] + }, + { + "MapObject": "drain0", + "Positions": [[38, 96], + [39, 96], + [40, 96]] + }, + { + "MapObject": "box", + "Positions": [[75, 53], + [76, 54], + [77, 53], + [76, 53]] + }, + { + "MapObject": "bloodstain2", + "Positions": [[75, 16]] + }, + { + "MapObject": "bulletmarks", + "Positions": [[74, 3]] + }, + { + "MapObject": "blood4", + "Positions": [[74, 6]] + }, + { + "MapObject": "crate2", + "Positions": [[69, 3]] + }, + { + "MapObject": "table_clothed", + "Positions": [[67, 30]] + }, + { + "MapObject": "chair", + "Positions": [[67, 29], + [68, 30], + [67, 31]] + }, + { + "MapObject": "goo", + "Positions": [[11, 57], + [12, 56], + [21, 55]] + }, + { + "MapObject": "box3_gray", + "Positions": [[36, 44], + [42, 68], + [42, 69], + [42, 70]] + }, + { + "MapObject": "fan", + "Positions": [[36, 98], + [42, 98], + [63, 102], + [70, 96], + [52, 96], + [19, 106], + [55, 106], + [58, 95], + [83, 96], + [36, 4], + [37, 3]] + }, + { + "MapObject": "egg2", + "Positions": [[36, 79], + [13, 57], + [15, 53], + [37, 9], + [36, 6], + [36, 7], + [37, 7], + [37, 5], + [59, 4], + [60, 3], + [77, 3], + [51, 114], + [35, 138], + [5, 112], + [81, 109], + [85, 109], + [72, 129], + [73, 128], + [73, 129], + [73, 130], + [73, 131], + [73, 132], + [73, 133]] + }, + { + "MapObject": "Pulse rifle spawner", + "Positions": [[77, 54]] + }, + { + "MapObject": "AArms Needler spawner", + "Positions": [[70, 113]] + }, + { + "MapObject": "Swarmer spawner", + "Positions": [[45, 135]] + }, + { + "MapObject": "Flamer spawner", + "Positions": [[42, 76]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[58, 96]], + "Indices": [0] + }, + { + "Index": 1, + "Positions": [[83, 111], + [7, 53]], + "Indices": [0, 0] + }], + "StaticKeys": [], + "StaticPickups": [], + "Start": [4, 135], + "Exits": [{ + "Rect": [75, + 16, + 2, + 2], + "Mission": 4, + "Hidden": false + }] + }, + { + "Title": "Lab", + "Description": "The tunnel seems to end at some kind of crazy science lab where something went horribly wrong. You are mostly terrified about how they placed a storm drain into this room...", + "Type": "Static", + "Width": 48, + "Height": 48, + "ExitStyle": "plate", + "KeyStyle": "card", + "Objectives": [{ + "Description": "Explore this place", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 90, + "Flags": 0 + }, + { + "Description": "Better destroy those eggs", + "Type": "Destroy", + "MapObject": "egg2", + "Count": 19, + "Required": 0, + "Flags": 1 + }, + { + "Description": "Find out what happened", + "Type": "Collect", + "Pickup": "folder", + "Count": 1, + "Required": 1, + "Flags": 2 + }], + "Enemies": [14, + 15, + 16], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 15, + "Weapons": ["Mining laser", "Flamer"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "848484ff", + "MaskAlt": "5c5c84ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed2", + "Mask": "3c3c3cff", + "MaskAlt": "5c5c84ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "grid", + "Mask": "004800ff", + "MaskAlt": "5c5c84ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,0,3,3,3,3,3,3,3,3,3,3,0,1,0,3,3,3,3,3,3,3,3,3,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,0,3,3,3,3,3,3,3,3,3,3,0,1,0,3,3,3,3,3,3,3,3,3,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,1,1,0,3,3,3,3,3,3,3,3,3,3,0,1,0,3,3,3,3,3,3,3,3,3,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,0,3,3,3,3,3,3,3,3,3,3,0,3,0,3,3,3,3,3,3,3,3,3,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,3,0,3,3,3,3,3,3,3,3,3,3,0,1,0,3,3,3,3,3,3,3,3,3,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,0,0,0,0,3,0,3,3,3,3,3,3,3,3,3,3,0,1,0,3,3,3,3,3,3,3,3,3,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,0,3,3,3,3,3,3,3,3,3,3,0,1,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,0,3,3,3,3,3,3,3,3,3,3,0,1,1,1,2,2,2,2,2,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,0,3,3,3,3,3,3,3,3,3,3,0,1,1,1,0,0,0,0,0,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,0,3,3,3,3,3,3,3,3,3,3,0,1,1,1,0,0,0,0,0,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,2,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,2,2,2,2,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,3,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,2,2,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,1,0,0,1,1,1,1,1,1,1,1,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,1,0,0,1,1,1,1,1,1,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,1,0,0,1,1,1,1,1,1,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,3,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,2,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,3,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,2048,2048,2048,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,2048,2048,2048,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,256,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,256,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,512,0,0,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,1024,1024,1024,1024,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,1024,1024,1024,1024,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "drain0", + "Positions": [[38, 10], + [39, 10], + [40, 10], + [41, 10], + [42, 10], + [42, 11], + [38, 11], + [39, 11], + [40, 11], + [41, 11], + [27, 13], + [28, 13], + [29, 13], + [30, 13], + [31, 13], + [31, 14], + [30, 14], + [29, 14], + [28, 14], + [27, 14], + [27, 15], + [28, 15], + [29, 15], + [30, 15], + [31, 15], + [31, 16], + [30, 16], + [29, 16], + [28, 16], + [27, 16], + [38, 35], + [39, 35], + [40, 35], + [41, 35], + [42, 35], + [42, 34], + [41, 34], + [40, 34], + [39, 34], + [38, 34], + [38, 33], + [39, 33], + [40, 33], + [41, 33], + [42, 33], + [42, 32], + [41, 32], + [40, 32], + [39, 32], + [38, 32]] + }, + { + "MapObject": "drain2", + "Positions": [[44, 3]] + }, + { + "MapObject": "table_plastic_wreck", + "Positions": [[34, 5], + [43, 1], + [21, 7], + [23, 5]] + }, + { + "MapObject": "safe_wreck", + "Positions": [[36, 6], + [23, 7], + [21, 6], + [22, 6]] + }, + { + "MapObject": "egg2_wreck", + "Positions": [[40, 2], + [39, 6], + [39, 5], + [40, 5], + [41, 7], + [39, 4], + [37, 2], + [44, 6], + [44, 7], + [25, 3], + [30, 4], + [31, 9], + [28, 10], + [28, 7], + [27, 8], + [27, 9], + [24, 8], + [23, 6], + [46, 4], + [32, 3], + [46, 14], + [45, 21], + [36, 15], + [20, 14], + [23, 15]] + }, + { + "MapObject": "chair_wreck", + "Positions": [[36, 5], + [20, 4], + [14, 15]] + }, + { + "MapObject": "table_steel", + "Positions": [[38, 1], + [39, 1], + [41, 1], + [44, 1], + [46, 5], + [24, 1], + [25, 1], + [28, 1], + [29, 1], + [31, 1]] + }, + { + "MapObject": "table_plastic_lab", + "Positions": [[40, 1], + [33, 36], + [32, 36], + [32, 40], + [33, 40], + [32, 43], + [33, 43], + [44, 43], + [43, 40], + [44, 40]] + }, + { + "MapObject": "cabinet_server", + "Positions": [[46, 1], + [45, 1], + [33, 20], + [30, 20], + [27, 20], + [24, 20]] + }, + { + "MapObject": "blood2", + "Positions": [[42, 3]] + }, + { + "MapObject": "blood1", + "Positions": [[37, 7]] + }, + { + "MapObject": "box", + "Positions": [[26, 6], + [27, 6], + [27, 7], + [26, 7]] + }, + { + "MapObject": "box3", + "Positions": [[32, 9], + [15, 2]] + }, + { + "MapObject": "cabinet", + "Positions": [[38, 16], + [39, 16], + [40, 16], + [41, 16], + [42, 16], + [43, 16], + [44, 16], + [38, 19], + [39, 19], + [40, 19], + [41, 19], + [42, 19], + [43, 19], + [44, 19]] + }, + { + "MapObject": "table_plastic_lab_wreck", + "Positions": [[21, 5]] + }, + { + "MapObject": "bookshelf2", + "Positions": [[13, 8], + [14, 8], + [15, 8], + [16, 8], + [17, 8], + [13, 14], + [14, 14], + [16, 14], + [17, 19], + [16, 19], + [15, 19]] + }, + { + "MapObject": "barrel_blue2", + "Positions": [[13, 2], + [14, 2], + [16, 2]] + }, + { + "MapObject": "box3_gas", + "Positions": [[32, 1], + [18, 1], + [17, 2], + [37, 43], + [38, 43], + [38, 42], + [37, 42]] + }, + { + "MapObject": "chair_task", + "Positions": [[29, 2], + [46, 2], + [36, 1], + [32, 23]] + }, + { + "MapObject": "bloodstain", + "Positions": [[42, 1], + [28, 27], + [44, 25]] + }, + { + "MapObject": "blood0", + "Positions": [[27, 3], + [25, 10], + [35, 19]] + }, + { + "MapObject": "drain1", + "Positions": [[14, 32], + [14, 31], + [14, 30], + [14, 29], + [14, 28], + [14, 27], + [13, 27], + [13, 28], + [13, 29], + [13, 30], + [13, 31], + [13, 32], + [15, 27], + [15, 28], + [15, 29], + [15, 30], + [15, 31], + [15, 32], + [12, 32], + [12, 31], + [12, 30], + [12, 29], + [12, 28], + [12, 27]] + }, + { + "MapObject": "box3_gray_wreck", + "Positions": [[13, 16]] + }, + { + "MapObject": "barrel_skull", + "Positions": [[45, 36]] + }, + { + "MapObject": "safe", + "Positions": [[34, 36], + [35, 36], + [36, 36], + [34, 1], + [19, 1]] + }, + { + "MapObject": "fan", + "Positions": [[31, 45], + [45, 45], + [45, 37], + [31, 37]] + }, + { + "MapObject": "goo", + "Positions": [[36, 39]] + }, + { + "MapObject": "scratch", + "Positions": [[22, 14]] + }, + { + "MapObject": "crate", + "Positions": [[25, 27], + [26, 28]] + }, + { + "MapObject": "crate2", + "Positions": [[26, 27], + [21, 34]] + }, + { + "MapObject": "table_lab", + "Positions": [[31, 36], + [43, 43], + [31, 27]] + }, + { + "MapObject": "cabinet", + "Positions": [[46, 25], + [41, 25]] + }, + { + "MapObject": "cabinet_wreck", + "Positions": [[42, 25], + [38, 25]] + }, + { + "MapObject": "bookshelf2_wreck", + "Positions": [[14, 19], + [13, 20]] + }, + { + "MapObject": "wscreen1_wreck", + "Positions": [[29, 27]] + }, + { + "MapObject": "server_blink", + "Positions": [[26, 20], + [29, 20], + [32, 20]] + }, + { + "MapObject": "box3_blink", + "Positions": [[30, 36], + [30, 27], + [23, 1]] + }, + { + "MapObject": "table_plastic_computer", + "Positions": [[25, 20], + [28, 20], + [31, 20], + [33, 1], + [30, 1], + [21, 1], + [30, 38], + [30, 41]] + }, + { + "MapObject": "Chemo bombs spawner", + "Positions": [[33, 41]] + }, + { + "MapObject": "Chemo gun spawner", + "Positions": [[44, 41]] + }, + { + "MapObject": "Knife spawner", + "Positions": [[28, 2]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 1, + "Positions": [[41, 6], + [39, 3], + [37, 4], + [45, 7], + [28, 9], + [29, 9], + [29, 8], + [29, 7], + [30, 7], + [30, 8], + [30, 9], + [30, 10], + [31, 7], + [30, 6], + [35, 13], + [38, 22], + [21, 11], + [13, 12], + [18, 32]], + "Indices": [0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0] + }, + { + "Index": 2, + "Positions": [[29, 14]], + "Indices": [0] + }], + "StaticKeys": [{ + "Index": 3, + "Positions": [[26, 1]] + }, + { + "Index": 0, + "Positions": [[39, 17]] + }, + { + "Index": 2, + "Positions": [[21, 2]] + }, + { + "Index": 1, + "Positions": [[35, 37]] + }], + "StaticPickups": [], + "Start": [44, 3], + "Exits": [{ + "Rect": [12, + 25, + 3, + 8], + "Mission": 5, + "Hidden": false + }] + }, + { + "Title": "Mad scientist", + "Description": "You hear a call for help. Looks like one of the amoral scientist responsible for those creatures is still alive and has barricaded himself in one of the labs. You decide to get him; in any case he might have an explanation...", + "Type": "Static", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Find and save that guy", + "Type": "Rescue", + "Index": 18, + "Count": 1, + "Required": 1, + "Flags": 5 + }], + "Enemies": [16, + 15, + 14, + 17], + "SpecialChars": [18], + "MapObjectDensities": [], + "EnemyDensity": 9, + "Weapons": ["Mining laser", "Flamer"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "848484ff", + "MaskAlt": "489848ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "c0c0c0ff", + "MaskAlt": "489848ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "grid", + "Mask": "94802cff", + "MaskAlt": "489848ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,3,3,3,3,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,3,3,3,3,1,0,0,1,0,3,3,3,3,3,3,3,3,3,3,0,1,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,3,3,3,3,1,0,0,1,0,3,3,3,3,3,3,3,3,3,3,0,1,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,3,3,3,3,1,0,0,1,0,3,3,3,3,3,3,3,3,3,3,0,1,0,0,1", + "1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,2,2,1,1,1,2,2,1,1,0,0,1,0,3,3,3,3,3,3,3,3,3,3,0,1,0,0,1", + "1,0,0,0,1,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1", + "1,0,0,0,1,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,2,2,2,1,1,1,1,1,0,0,1", + "1,0,0,0,1,3,3,3,3,3,3,3,3,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,1", + "1,0,0,0,1,3,3,3,3,3,3,3,3,1,0,0,1,3,3,3,3,3,3,3,3,3,3,3,1,0,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,1", + "1,0,0,0,1,3,3,3,3,3,3,3,3,1,0,0,1,3,3,3,3,3,3,3,3,3,3,3,1,0,0,1,1,1,1,1,2,2,2,2,1,1,1,1,1,0,0,1", + "1,0,0,0,1,3,3,3,3,3,3,3,3,1,0,0,1,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,1,3,3,3,3,3,3,3,3,1,0,0,1,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,1,1,1,2,2,2,2,1,1,1,0,0,1,3,3,3,3,3,3,3,3,3,3,3,1,0,0,1,1,1,1,1,2,2,2,2,1,1,1,1,1,0,0,1", + "1,0,0,0,1,3,3,3,3,3,3,3,3,1,0,0,1,3,3,3,3,3,3,3,3,3,3,3,1,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,3", + "1,0,0,0,1,3,3,3,3,3,3,3,3,1,0,0,1,3,3,3,3,3,3,3,3,3,3,3,1,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,1", + "1,0,0,0,2,3,3,3,3,3,3,3,3,2,0,0,1,3,3,3,3,3,3,3,3,3,3,3,1,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,1", + "1,0,0,0,2,3,3,3,3,3,3,3,3,2,0,0,1,3,3,3,3,3,3,3,3,3,3,3,1,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,1", + "1,0,0,0,2,3,3,3,3,3,3,3,3,2,0,0,1,1,1,1,1,1,1,2,2,2,2,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1", + "1,0,0,0,2,3,3,3,3,3,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,3,3,1,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1", + "3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,0,0,0,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,0,0,0,2,0", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,0,0,0,2,0", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,3,3,3,3,3,0,0,0,2,0", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,1,3,3,1,3,3,3,3,3,0,0,0,2,0", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,3,1,3,3,3,3,3,0,0,0,2,0", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,0,0,0,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,0,0,0,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,2048,2048,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,2048,2048,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,2048,2048,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,2048,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "table_plastic_wreck", + "Positions": [[47, 14], + [46, 14]] + }, + { + "MapObject": "safe_wreck", + "Positions": [[45, 13]] + }, + { + "MapObject": "table_plastic_lab_wreck", + "Positions": [[46, 15]] + }, + { + "MapObject": "drain0", + "Positions": [[36, 10], + [36, 9], + [37, 9], + [38, 9], + [37, 10], + [38, 10], + [39, 10], + [39, 9], + [39, 8], + [38, 8], + [37, 8], + [36, 8], + [36, 7], + [37, 7], + [38, 7], + [39, 7], + [26, 9], + [25, 9], + [23, 9], + [22, 9], + [20, 9], + [19, 9], + [19, 12], + [20, 12], + [22, 12], + [23, 12], + [25, 12], + [26, 12], + [26, 15], + [25, 15], + [23, 15], + [22, 15], + [20, 15], + [19, 15]] + }, + { + "MapObject": "box", + "Positions": [[45, 2], + [46, 6]] + }, + { + "MapObject": "box2", + "Positions": [[46, 3], + [45, 1], + [46, 5], + [40, 1]] + }, + { + "MapObject": "crate2", + "Positions": [[45, 3]] + }, + { + "MapObject": "table", + "Positions": [[34, 22], + [37, 22], + [40, 22]] + }, + { + "MapObject": "chair", + "Positions": [[33, 22], + [34, 23], + [35, 22], + [37, 23], + [38, 22], + [36, 22], + [40, 23], + [41, 22], + [39, 22], + [39, 27], + [41, 27]] + }, + { + "MapObject": "flower", + "Positions": [[43, 22], + [32, 30]] + }, + { + "MapObject": "plant", + "Positions": [[32, 22], + [43, 30]] + }, + { + "MapObject": "bench", + "Positions": [[33, 27], + [36, 27]] + }, + { + "MapObject": "box3_blink", + "Positions": [[32, 14], + [43, 14], + [43, 15], + [32, 15], + [27, 9], + [27, 12], + [27, 15], + [24, 15], + [21, 15], + [24, 12], + [21, 12], + [24, 9], + [21, 9], + [18, 9], + [18, 12], + [18, 15]] + }, + { + "MapObject": "server_blink", + "Positions": [[33, 14], + [35, 14], + [40, 14], + [42, 14], + [22, 1], + [20, 1], + [22, 3], + [20, 3]] + }, + { + "MapObject": "table_plastic_computer", + "Positions": [[34, 14], + [35, 1], + [25, 1], + [26, 1], + [5, 14]] + }, + { + "MapObject": "terminal", + "Positions": [[41, 14]] + }, + { + "MapObject": "chair_task", + "Positions": [[33, 16], + [42, 15]] + }, + { + "MapObject": "floor_console", + "Positions": [[40, 3]] + }, + { + "MapObject": "bloodstain2", + "Positions": [[42, 22]] + }, + { + "MapObject": "gibs", + "Positions": [[45, 9]] + }, + { + "MapObject": "blood1", + "Positions": [[35, 27]] + }, + { + "MapObject": "wscreen1", + "Positions": [[34, 1]] + }, + { + "MapObject": "table_plastic_lab", + "Positions": [[34, 3], + [35, 3]] + }, + { + "MapObject": "table_steel", + "Positions": [[37, 1], + [38, 1]] + }, + { + "MapObject": "fan", + "Positions": [[45, 21], + [44, 21], + [11, 6], + [10, 6], + [9, 6], + [8, 6], + [7, 6], + [6, 6], + [5, 6], + [12, 7], + [5, 7], + [5, 8], + [5, 9], + [5, 10], + [5, 11], + [5, 12], + [12, 12]] + }, + { + "MapObject": "table_clothed", + "Positions": [[40, 28], + [40, 26]] + }, + { + "MapObject": "wscreen2", + "Positions": [[24, 1], + [27, 1]] + }, + { + "MapObject": "drain1", + "Positions": [[18, 10], + [18, 11], + [18, 13], + [18, 14], + [18, 16], + [18, 17]] + }, + { + "MapObject": "table_wood_round_terminal", + "Positions": [[17, 9]] + }, + { + "MapObject": "table_wood", + "Positions": [[42, 6]] + }, + { + "MapObject": "box3_gray_wreck", + "Positions": [[29, 19]] + }, + { + "MapObject": "blood3", + "Positions": [[30, 14], + [33, 19]] + }, + { + "MapObject": "blood0", + "Positions": [[18, 19], + [19, 20]] + }, + { + "MapObject": "fan", + "Positions": [[32, 1], + [43, 1]] + }, + { + "MapObject": "box3_gas", + "Positions": [[42, 2], + [43, 6], + [43, 3], + [10, 7], + [11, 7], + [11, 8], + [12, 8], + [12, 9], + [12, 10], + [12, 11], + [12, 6], + [11, 9], + [11, 11]] + }, + { + "MapObject": "crate", + "Positions": [[29, 1]] + }, + { + "MapObject": "safe2", + "Positions": [[17, 1], + [18, 1]] + }, + { + "MapObject": "cabinet_server", + "Positions": [[17, 3]] + }, + { + "MapObject": "column", + "Positions": [[30, 1]] + }, + { + "MapObject": "wscreen1_wreck", + "Positions": [[34, 28], + [39, 1], + [19, 1]] + }, + { + "MapObject": "blood2", + "Positions": [[19, 3]] + }, + { + "MapObject": "scratch", + "Positions": [[33, 11]] + }, + { + "MapObject": "cabinet_server", + "Positions": [[24, 4], + [24, 2], + [27, 2], + [27, 4]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[6, 9], + [6, 8], + [7, 8], + [7, 7], + [8, 8]] + }, + { + "MapObject": "egg2", + "Positions": [[15, 1], + [30, 2], + [32, 27]] + }, + { + "MapObject": "egg2_wreck", + "Positions": [[33, 28], + [18, 2], + [14, 12], + [9, 18], + [2, 4], + [3, 15], + [29, 8], + [45, 7], + [23, 6], + [6, 15], + [5, 17], + [11, 15]] + }, + { + "MapObject": "cabinet", + "Positions": [[1, 1], + [3, 1], + [5, 1], + [7, 1]] + }, + { + "MapObject": "safe", + "Positions": [[2, 1], + [4, 1], + [6, 1]] + }, + { + "MapObject": "barrel_wood_wreck", + "Positions": [[11, 1], + [30, 4], + [32, 4], + [1, 12]] + }, + { + "MapObject": "chair_wreck", + "Positions": [[12, 2], + [32, 3]] + }, + { + "MapObject": "table_wood_round_terminal_wreck", + "Positions": [[1, 13], + [2, 12]] + }, + { + "MapObject": "Cryo gun spawner", + "Positions": [[37, 4]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[26, 3]], + "Indices": [0] + }], + "StaticKeys": [{ + "Index": 3, + "Positions": [[5, 15]] + }], + "StaticPickups": [], + "Start": [44, 26], + "Exits": [{ + "Rect": [0, + 19, + 4, + 3], + "Mission": 6, + "Hidden": false + }] + }, + { + "Title": "Killswitch", + "Description": "The mad Dr pretty much confirms that he and his team created those monsters. However, it might possible to stop those insectoids and their eggs by increasing the temperature by 5 degrees, if someone managed to obtain the temperature control. You, that is. At least, the scientist is able to provide you some weaponry.", + "Type": "Classic", + "Width": 64, + "Height": 64, + "ExitStyle": "hazard", + "KeyStyle": "card", + "Objectives": [{ + "Description": "Get the control", + "Type": "Collect", + "Pickup": "radio2", + "Count": 1, + "Required": 1, + "Flags": 4 + }], + "Enemies": [14, + 15, + 16, + 17], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "egg2", + "Density": 5 + }, + { + "MapObject": "egg2_wreck", + "Density": 10 + }, + { + "MapObject": "table_plastic_computer", + "Density": 10 + }, + { + "MapObject": "box3_blink", + "Density": 5 + }, + { + "MapObject": "table_steel", + "Density": 15 + }, + { + "MapObject": "table_plastic", + "Density": 25 + }, + { + "MapObject": "table_lab", + "Density": 30 + }, + { + "MapObject": "box3_gas", + "Density": 20 + }, + { + "MapObject": "table_plastic_lab", + "Density": 15 + }, + { + "MapObject": "bloodstain2", + "Density": 5 + }, + { + "MapObject": "blood4", + "Density": 5 + }, + { + "MapObject": "blood1", + "Density": 5 + }, + { + "MapObject": "barrel_blue", + "Density": 10 + }, + { + "MapObject": "box2", + "Density": 10 + }, + { + "MapObject": "barrel_wood2_wreck", + "Density": 10 + }, + { + "MapObject": "fan", + "Density": 5 + }, + { + "MapObject": "box3_red", + "Density": 5 + }, + { + "MapObject": "crate2", + "Density": 10 + }, + { + "MapObject": "bookshelf", + "Density": 5 + }, + { + "MapObject": "scratch", + "Density": 5 + }, + { + "MapObject": "safe_wreck", + "Density": 5 + }], + "EnemyDensity": 20, + "Weapons": ["Mining laser", + "AArms Needler", + "Flamer", + "Powergun", + "Machine pistol", + "Cryo gun"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "848484ff", + "MaskAlt": "489848ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "grid", + "Mask": "84ac84ff", + "MaskAlt": "489848ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "707070ff", + "MaskAlt": "489848ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 12, + "WallLength": 37, + "CorridorWidth": 1, + "Rooms": { + "Count": 32, + "Min": 9, + "Max": 10, + "Edge": true, + "Overlap": true, + "Walls": 0, + "WallLength": 3, + "WallPad": 1 + }, + "Squares": 0, + "ExitEnabled": true, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 3 + }, + "Pillars": { + "Count": 9, + "Min": 1, + "Max": 2 + } + }, + { + "Title": "Containment unit", + "Description": "As temperature rises, you hear a loud BANG and armed forces storm the building, killing the scientist. Before you escape the labs, you decide to secure enough video footage to reveal the purpose of this place to the public.", + "Type": "Classic", + "Width": 68, + "Height": 60, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Collect video footage", + "Type": "Collect", + "Pickup": "chip3", + "Count": 5, + "Required": 3, + "Flags": 4 + }, + { + "Description": "Make sure remaining bugmonsters don't flee", + "Type": "Kill", + "Index": 0, + "Count": 10, + "Required": 0, + "Flags": 1 + }], + "Enemies": [19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28], + "SpecialChars": [14, 16], + "MapObjectDensities": [{ + "MapObject": "bloodstain2", + "Density": 5 + }, + { + "MapObject": "blood4", + "Density": 5 + }, + { + "MapObject": "blood1", + "Density": 5 + }, + { + "MapObject": "chair_wreck", + "Density": 5 + }, + { + "MapObject": "box", + "Density": 15 + }, + { + "MapObject": "barrel_blue2", + "Density": 10 + }, + { + "MapObject": "table_steel", + "Density": 15 + }, + { + "MapObject": "table_lab", + "Density": 15 + }, + { + "MapObject": "box3_gas", + "Density": 5 + }, + { + "MapObject": "fan", + "Density": 10 + }, + { + "MapObject": "table_plastic_computer", + "Density": 10 + }, + { + "MapObject": "box3_blink", + "Density": 15 + }, + { + "MapObject": "scratch", + "Density": 15 + }, + { + "MapObject": "crate", + "Density": 10 + }, + { + "MapObject": "egg2_wreck", + "Density": 5 + }], + "EnemyDensity": 10, + "Weapons": ["Cryo gun", + "Powergun", + "Flamer", + "Machine pistol", + "Mining laser", + "AArms Needler"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "848484ff", + "MaskAlt": "ac9834ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "grid", + "Mask": "6c5820ff", + "MaskAlt": "ac9834ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed2", + "Mask": "707070ff", + "MaskAlt": "ac9834ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 45, + "WallLength": 55, + "CorridorWidth": 2, + "Rooms": { + "Count": 32, + "Min": 5, + "Max": 12, + "Edge": false, + "Overlap": true, + "Walls": 0, + "WallLength": 1, + "WallPad": 1 + }, + "Squares": 0, + "ExitEnabled": true, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 1, + "Max": 1 + } + }, + { + "Title": "Rooftops", + "Description": "The containment unit has block the doors. The only way out is the spaceship platform...", + "Type": "Static", + "Width": 92, + "Height": 106, + "ExitStyle": "hazard2", + "KeyStyle": "office", + "Objectives": [{ + "Description": "This must be the bugmen queen.", + "Type": "Kill", + "Index": 0, + "Count": 1, + "Required": 0, + "Flags": 1 + }], + "Enemies": [], + "SpecialChars": [35], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["AArms Needler", + "Cryo gun", + "Machine pistol", + "Grenades", + "Flamer", + "Powergun", + "Mining laser"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "e8e8e8ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed2", + "Mask": "acacacff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "slab", + "Mask": "fcfcfcff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4", + "4,4,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4", + "4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4", + "0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,4,4,4,4,4,4,4,4", + "0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,4,4,4,4,4,4,4,4", + "0,0,0,0,0,1,1,1,1,1,0,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,4,4,4,4,4,4,4,4", + "0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,0,0,0,0,1,0,1,0,0,0,0,4,4,4,4,4,4,4,4", + "0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,0,0,0,0,1,0,1,0,0,0,0,4,4,4,4,4,4,4,4", + "0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,4,4,4,4,4,4,4,4", + "0,0,0,0,0,1,0,1,1,1,0,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,4,4,4,4,4,4,4,4", + "0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,4,4,4,4,4,4,4,4", + "0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,4,4,4,4,4,4,4,4", + "4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4", + "4,4,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4", + "4,4,4,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,1,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,1,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,1,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,1,1,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,1,1,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,1,0,1,0,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,1,0,0,0,0,0,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,1,0,1,0,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,0,1,0,0,0,0,0,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,1,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,1,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,1,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4", + "4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "drain0", + "Positions": [[8, 10]] + }, + { + "MapObject": "drain2", + "Positions": [[8, 9], + [78, 49], + [31, 49]] + }, + { + "MapObject": "barrel_blue2", + "Positions": [[40, 6], + [39, 6], + [40, 7]] + }, + { + "MapObject": "box3_gas", + "Positions": [[75, 6], + [74, 8], + [74, 7]] + }, + { + "MapObject": "table_wood_candle", + "Positions": [[74, 49]] + }, + { + "MapObject": "Swarmer spawner", + "Positions": [[43, 6]] + }, + { + "MapObject": "Sniper rifle spawner", + "Positions": [[78, 6]] + }], + "StaticCharacters": [{ + "Index": 34, + "Positions": [[31, 6]] + }, + { + "Index": 28, + "Positions": [[36, 6]] + }, + { + "Index": 23, + "Positions": [[46, 9]] + }, + { + "Index": 31, + "Positions": [[67, 6]] + }, + { + "Index": 33, + "Positions": [[67, 11]] + }, + { + "Index": 27, + "Positions": [[76, 10]] + }, + { + "Index": 20, + "Positions": [[75, 12]] + }, + { + "Index": 29, + "Positions": [[82, 12]] + }, + { + "Index": 32, + "Positions": [[82, 52]] + }, + { + "Index": 30, + "Positions": [[71, 56]] + }, + { + "Index": 26, + "Positions": [[76, 49]] + }, + { + "Index": 22, + "Positions": [[78, 53]] + }, + { + "Index": 16, + "Positions": [[31, 52]] + }], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[54, 52]], + "Indices": [0] + }], + "StaticKeys": [], + "StaticPickups": [], + "Start": [8, 9], + "Exits": [{ + "Rect": [28, + 50, + 2, + 2], + "Mission": 9, + "Hidden": false + }] + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/particles.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/particles.json new file mode 100644 index 00000000..4b654c2d --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/particles.json @@ -0,0 +1,22 @@ +{ + "Version": 2, + "Particles": [ + { + "Name": "laser_point", + "Pic": { + "Type": "Animated", + "Sprites": "laser_dot" + }, + "Range": 1 + }, + { + "Name": "laser_trail_green", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "particles/laser_trail", + "Mask": "00ff00" + }, + "Range": 1 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/pickups.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/pickups.json new file mode 100644 index 00000000..3c07e0dc --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/pickups.json @@ -0,0 +1,10 @@ +{ + "Version": 1, + "Pickups": [ + { + "Name": "sample", + "Pic": "sample", + "Type": "Score" + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/sounds/laser_burn.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/sounds/laser_burn.ogg new file mode 100644 index 00000000..4f8ae613 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/sounds/laser_burn.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/sounds/laser_burn.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/sounds/laser_burn.txt new file mode 100644 index 00000000..a7c9680e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/sounds/laser_burn.txt @@ -0,0 +1,4 @@ +Adapted from Fire Loop by qubodup +https://opengameart.org/content/fire-loop + +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/sounds/mining_laser.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/sounds/mining_laser.ogg new file mode 100644 index 00000000..18420b88 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/harmful_crysalis.cdogscpn/sounds/mining_laser.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/LICENSE.md b/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/LICENSE.md new file mode 100644 index 00000000..2660d3e8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/LICENSE.md @@ -0,0 +1,45 @@ +## creative commons + +# CC0 1.0 Universal + +``` +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. +``` + +### Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. + +1. __Copyright and Related Rights.__ A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; + + ii. moral rights retained by the original author(s) and/or performer(s); + + iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; + + iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; + + v. rights protecting the extraction, dissemination, use and reuse of data in a Work; + + vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and + + vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. + +2. __Waiver.__ To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. + +3. __Public License Fallback.__ Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. + +4. __Limitations and Disclaimers.__ + + a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. + + b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. + + c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. + + d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/ammo.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/ammo.json new file mode 100644 index 00000000..3023d9e6 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/ammo.json @@ -0,0 +1,12 @@ +{ + "Version": 1, + "Ammo": [ + { + "Name": "Protobombs", + "Pic": "frag_grenade_pickup", + "Sound": "grenade_pickup", + "Amount": 2, + "Max": 10 + } + ] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/bullets.json new file mode 100644 index 00000000..1be33cbc --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/bullets.json @@ -0,0 +1,102 @@ +{ + "Version": 1, + + "Bullets": [ + + { + "Name": "flame_breath", + "Pic": { + "Type": "AnimatedRandom", + "Sprites": "flame", + "TicksPerFrame": 4 + }, + "Speed": 384, + "Range": 30, + "Power": 30, + "Size": [10, 10], + "Special": "Flame", + "Spark": "", + "HitSounds": { + "Object": "hits/fire", + "Flesh": "hits/fire", + "Wall": "hits/fire" + }, + "WallBounces": true + }, + { + "Name": "psycho_beam", + "Pic": { + "Type": "Directional", + "Sprites": "rapid" + }, + "Speed": 1024, + "Range": 90, + "Power": 50, + "WallBounces": true + }, + + { + "Name": "venom_spit", + "Pic": { + "Type": "Normal", + "Pic": "molotov", + "Tint": [-1.0, 1.0, 0.75], + "OldPic": 301 + }, + "Speed": 900, + "Range": 45, + "Power": 20, + "Size": [10, 10], + "Special": "Petrify", + "HitSounds": { + "Object": "hits/petrify", + "Flesh": "hits/petrify", + "Wall": "" + } + }, + { + "Name": "proto_laser", + "Pic": { + "Type": "Directional", + "Sprites": "particles/beam" + }, + "Speed": 2000, + "Range": 15, + "Power": 10, + "Size": [1, 1] + }, + { + "Name": "proto_bomb", + "Pic": { + "Type": "Animated", + "Sprites": "grenade", + "TicksPerFrame": 2, + "Mask": "808080" + }, + "ShadowSize": [6, 4], + "Speed": 384, + "Range": 100, + "Spark": "", + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "bounce" + }, + "WallBounces": true, + "HitsObjects": false, + "Falling": { + "GravityFactor": 1 + }, + "OutOfRangeGuns": [ + "proto_explosion" + ] + }, + { + "Name": "proto_frag", + "Speed": 640, + "Range": 10, + "Power": 40, + "HurtAlways": true + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/campaign.json new file mode 100644 index 00000000..41ea0959 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/campaign.json @@ -0,0 +1,11 @@ +{ + "Version": 16, + "Title": "Most classified enemy", + "Author": "Sauer2", + "Description": "The government created you in a military lab. You are a mutant with powers that can be weaponized. But now they got afraid of that powers and aim to \"cut the funds\". You better escape before that happens.", + "Ammo": false, + "WeaponPersist": false, + "SkipWeaponMenu": false, + "RandomPickups": true, + "Missions": 12 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/characters.json new file mode 100644 index 00000000..34ecfbf9 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/characters.json @@ -0,0 +1,1169 @@ +{ + "Version": 13, + "Characters": [{ + "Class": "Jones", + "HairType": "professor", + "Skin": "603000ff", + "Arms": "fcfcfcff", + "Body": "fcfcfcff", + "Legs": "989898ff", + "Hair": "000000ff", + "Feet": "989898ff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 19072000, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "f4944cff", + "Arms": "fcfcfcff", + "Body": "fcfcfcff", + "Legs": "acacacff", + "Hair": "fce000ff", + "Feet": "acacacff", + "speed": 448, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 19072000, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "f4944cff", + "Arms": "fcfcfcff", + "Body": "fcfcfcff", + "Legs": "acacacff", + "Hair": "00fc00ff", + "Feet": "acacacff", + "speed": 448, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 2229248, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "professor", + "Skin": "f4944cff", + "Arms": "fcfcfcff", + "Body": "fcfcfcff", + "Legs": "282828ff", + "Hair": "c0c0c0ff", + "Feet": "282828ff", + "speed": 128, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 2294784, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "c0ac3cff", + "Arms": "fcfcfcff", + "Body": "fcfcfcff", + "Legs": "5c5c5cff", + "Hair": "000000ff", + "Feet": "5c5c5cff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 2294784, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "9c4c00ff", + "Arms": "fcfcfcff", + "Body": "fcfcfcff", + "Legs": "282828ff", + "Hair": "303030ff", + "Feet": "282828ff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 35783680, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beard", + "Skin": "f4944cff", + "Arms": "fcfcfcff", + "Body": "fcfcfcff", + "Legs": "5c5c5cff", + "Hair": "603000ff", + "Feet": "5c5c5cff", + "speed": 320, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 2229248, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "e08060ff", + "Arms": "fcfcfcff", + "Body": "fcfcfcff", + "Legs": "202020ff", + "Hair": "fc4000ff", + "Feet": "202020ff", + "speed": 192, + "Gun": "Grenades", + "maxHealth": 50, + "flags": 19006464, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "hogan", + "Skin": "c47038ff", + "Arms": "fcfcfcff", + "Body": "404040ff", + "Legs": "282828ff", + "Hair": "989898ff", + "Feet": "282828ff", + "speed": 256, + "Gun": "Pistol", + "maxHealth": 40, + "flags": 16777216, + "probabilityToMove": 55, + "probabilityToTrack": 30, + "probabilityToShoot": 7, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "341c00ff", + "Arms": "fcfcfcff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "484848ff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Pistol", + "maxHealth": 40, + "flags": 16777216, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 22, + "actionDelay": 12 + }, + { + "Class": "Jones", + "HairType": "dutch", + "Skin": "f4944cff", + "Arms": "fcfcfcff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "fc1800ff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Pistol", + "maxHealth": 40, + "flags": 16777216, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 22, + "actionDelay": 12 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "cc6c4cff", + "Arms": "fcfcfcff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "ac5400ff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Pistol", + "maxHealth": 40, + "flags": 16777216, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 22, + "actionDelay": 12 + }, + { + "Class": "Jones", + "HairType": "shades", + "Skin": "f4944cff", + "Arms": "e8e8e8ff", + "Body": "404040ff", + "Legs": "202020ff", + "Hair": "004800ff", + "Feet": "202020ff", + "speed": 256, + "Gun": "Pistol", + "maxHealth": 40, + "flags": 16777216, + "probabilityToMove": 50, + "probabilityToTrack": 35, + "probabilityToShoot": 27, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "f4944cff", + "Arms": "e8e8e8ff", + "Body": "404040ff", + "Legs": "202020ff", + "Hair": "004800ff", + "Feet": "202020ff", + "speed": 256, + "Gun": "Pistol", + "maxHealth": 40, + "flags": 16777216, + "probabilityToMove": 50, + "probabilityToTrack": 35, + "probabilityToShoot": 27, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "hogan", + "Skin": "f4944cff", + "Arms": "fcfcfcff", + "Body": "fcfcfcff", + "Legs": "3c3c3cff", + "Hair": "fc1800ff", + "Feet": "3c3c3cff", + "speed": 256, + "Gun": "Chemo gun", + "maxHealth": 40, + "flags": 34603008, + "probabilityToMove": 50, + "probabilityToTrack": 95, + "probabilityToShoot": 15, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "eye_patch", + "Skin": "9c4c00ff", + "Arms": "fcfcfcff", + "Body": "fcfcfcff", + "Legs": "3c3c3cff", + "Hair": "fc1800ff", + "Feet": "3c3c3cff", + "speed": 256, + "Gun": "Knife", + "maxHealth": 40, + "flags": 16777216, + "probabilityToMove": 50, + "probabilityToTrack": 95, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "f4944cff", + "Arms": "3c2c00ff", + "Body": "0c5c0cff", + "Legs": "00ac00ff", + "Hair": "ac5400ff", + "Feet": "00ac00ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 50332672, + "probabilityToMove": 60, + "probabilityToTrack": 10, + "probabilityToShoot": 7, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "f4944cff", + "Arms": "3c2c00ff", + "Body": "0c5c0cff", + "Legs": "00ac00ff", + "Hair": "5c5c5cff", + "Feet": "00ac00ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 50332672, + "probabilityToMove": 60, + "probabilityToTrack": 10, + "probabilityToShoot": 7, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "f4944cff", + "Arms": "3c2c00ff", + "Body": "0c5c0cff", + "Legs": "00ac00ff", + "Hair": "000000ff", + "Feet": "00ac00ff", + "speed": 256, + "Gun": "Pistol", + "maxHealth": 40, + "flags": 50332672, + "probabilityToMove": 60, + "probabilityToTrack": 10, + "probabilityToShoot": 7, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "hogan", + "Skin": "f4944cff", + "Arms": "3c2c00ff", + "Body": "0c5c0cff", + "Legs": "00ac00ff", + "Hair": "000000ff", + "Feet": "00ac00ff", + "speed": 256, + "Gun": "Shotgun", + "maxHealth": 40, + "flags": 50332672, + "probabilityToMove": 60, + "probabilityToTrack": 10, + "probabilityToShoot": 7, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "9c4c00ff", + "Arms": "3c2c00ff", + "Body": "0c5c0cff", + "Legs": "00ac00ff", + "Hair": "000000ff", + "Feet": "00ac00ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 50332672, + "probabilityToMove": 60, + "probabilityToTrack": 10, + "probabilityToShoot": 7, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "9c4c00ff", + "Arms": "fcfcfcff", + "Body": "404040ff", + "Legs": "003c00ff", + "Hair": "003c00ff", + "Feet": "003c00ff", + "speed": 256, + "Gun": "Chemo gun", + "maxHealth": 40, + "flags": 16778240, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 22, + "actionDelay": 12 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "cc6c4cff", + "Arms": "489848ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "003c00ff", + "Feet": "404040ff", + "speed": 256, + "Gun": "Chemo gun", + "maxHealth": 40, + "flags": 16778240, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 22, + "actionDelay": 12 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "f4944cff", + "Arms": "484848ff", + "Body": "404040ff", + "Legs": "00d400ff", + "Hair": "003c00ff", + "Feet": "00d400ff", + "speed": 256, + "Gun": "Chemo gun", + "maxHealth": 40, + "flags": 16778240, + "probabilityToMove": 50, + "probabilityToTrack": 40, + "probabilityToShoot": 22, + "actionDelay": 12 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "c47038ff", + "Arms": "fcfcfcff", + "Body": "00c0c0ff", + "Legs": "28284cff", + "Hair": "000000ff", + "Feet": "28284cff", + "speed": 384, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 16974848, + "probabilityToMove": 55, + "probabilityToTrack": 15, + "probabilityToShoot": 0, + "actionDelay": 17 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "b85838ff", + "Arms": "fcfcfcff", + "Body": "00c0c0ff", + "Legs": "28284cff", + "Hair": "ac0000ff", + "Feet": "28284cff", + "speed": 384, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 16974848, + "probabilityToMove": 55, + "probabilityToTrack": 10, + "probabilityToShoot": 0, + "actionDelay": 17 + }, + { + "Class": "Jones", + "HairType": "dutch", + "Skin": "c0ac3cff", + "Arms": "fcfcfcff", + "Body": "00c0c0ff", + "Legs": "28284cff", + "Hair": "000000ff", + "Feet": "28284cff", + "speed": 384, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 16974848, + "probabilityToMove": 65, + "probabilityToTrack": 10, + "probabilityToShoot": 0, + "actionDelay": 17 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "f4944cff", + "Arms": "00fc00ff", + "Body": "282828ff", + "Legs": "002000ff", + "Hair": "002800ff", + "Feet": "002000ff", + "speed": 320, + "Gun": "Flamer", + "maxHealth": 50, + "flags": 29360128, + "probabilityToMove": 15, + "probabilityToTrack": 65, + "probabilityToShoot": 25, + "actionDelay": 17 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "f4944cff", + "Arms": "00fc00ff", + "Body": "282828ff", + "Legs": "002000ff", + "Hair": "003c00ff", + "Feet": "002000ff", + "speed": 320, + "Gun": "Shotgun", + "maxHealth": 50, + "flags": 29360128, + "probabilityToMove": 15, + "probabilityToTrack": 65, + "probabilityToShoot": 25, + "actionDelay": 17 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "c0ac3cff", + "Arms": "00fc00ff", + "Body": "282828ff", + "Legs": "002000ff", + "Hair": "002000ff", + "Feet": "002000ff", + "speed": 320, + "Gun": "Shotgun", + "maxHealth": 50, + "flags": 29360128, + "probabilityToMove": 15, + "probabilityToTrack": 65, + "probabilityToShoot": 25, + "actionDelay": 17 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "341c00ff", + "Arms": "00fc00ff", + "Body": "282828ff", + "Legs": "002000ff", + "Hair": "004800ff", + "Feet": "002000ff", + "speed": 320, + "Gun": "Pistol", + "maxHealth": 50, + "flags": 29360128, + "probabilityToMove": 15, + "probabilityToTrack": 65, + "probabilityToShoot": 25, + "actionDelay": 17 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "a44424ff", + "Arms": "3c3c3cff", + "Body": "282828ff", + "Legs": "002000ff", + "Hair": "00282cff", + "Feet": "002000ff", + "speed": 320, + "Gun": "Sniper rifle", + "maxHealth": 50, + "flags": 20971520, + "probabilityToMove": 15, + "probabilityToTrack": 65, + "probabilityToShoot": 25, + "actionDelay": 17 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "a44424ff", + "Arms": "282828ff", + "Body": "282828ff", + "Legs": "002000ff", + "Hair": "207020ff", + "Feet": "002000ff", + "speed": 448, + "Gun": "Knife", + "maxHealth": 60, + "flags": 20971520, + "probabilityToMove": 15, + "probabilityToTrack": 65, + "probabilityToShoot": 25, + "actionDelay": 17 + }, + { + "Class": "Jones", + "HairType": "professor", + "Skin": "dc8040ff", + "Arms": "fcfcfcff", + "Body": "fcfcfcff", + "Legs": "989898ff", + "Hair": "502800ff", + "Feet": "989898ff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 19072000, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "dc8040ff", + "Arms": "fcfcfcff", + "Body": "fcfcfcff", + "Legs": "989898ff", + "Hair": "fc0000ff", + "Feet": "989898ff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 19072000, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "e08060ff", + "Arms": "fcfcfcff", + "Body": "fcfcfcff", + "Legs": "989898ff", + "Hair": "989898ff", + "Feet": "989898ff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 19072000, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "shades", + "Skin": "c47038ff", + "Arms": "fcfcfcff", + "Body": "fcfcfcff", + "Legs": "989898ff", + "Hair": "989898ff", + "Feet": "989898ff", + "speed": 256, + "Gun": "Prototype I", + "maxHealth": 40, + "flags": 25166848, + "probabilityToMove": 100, + "probabilityToTrack": 5, + "probabilityToShoot": 5, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "shades", + "Skin": "8c4400ff", + "Arms": "fcfcfcff", + "Body": "fcfcfcff", + "Legs": "989898ff", + "Hair": "989898ff", + "Feet": "989898ff", + "speed": 256, + "Gun": "Prototype II", + "maxHealth": 40, + "flags": 25166848, + "probabilityToMove": 100, + "probabilityToTrack": 5, + "probabilityToShoot": 5, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "shades", + "Skin": "e08060ff", + "Arms": "fcfcfcff", + "Body": "fcfcfcff", + "Legs": "989898ff", + "Hair": "989898ff", + "Feet": "989898ff", + "speed": 256, + "Gun": "Prototype III", + "maxHealth": 40, + "flags": 25166848, + "probabilityToMove": 100, + "probabilityToTrack": 5, + "probabilityToShoot": 5, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "94802cff", + "Arms": "ac9834ff", + "Body": "ac9834ff", + "Legs": "94802cff", + "Hair": "000000ff", + "Feet": "94802cff", + "speed": 128, + "Gun": "Steel Teeth", + "maxHealth": 20, + "flags": 1024, + "probabilityToMove": 60, + "probabilityToTrack": 25, + "probabilityToShoot": 20, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "003c00ff", + "Arms": "003c00ff", + "Body": "003c00ff", + "Legs": "003c00ff", + "Hair": "000000ff", + "Feet": "003c00ff", + "speed": 64, + "Gun": "Steel Teeth", + "maxHealth": 20, + "flags": 1024, + "probabilityToMove": 65, + "probabilityToTrack": 50, + "probabilityToShoot": 30, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "5c5c5cff", + "Arms": "5c5c5cff", + "Body": "707070ff", + "Legs": "5c5c5cff", + "Hair": "000000ff", + "Feet": "5c5c5cff", + "speed": 192, + "Gun": "Steel Teeth", + "maxHealth": 20, + "flags": 1024, + "probabilityToMove": 60, + "probabilityToTrack": 25, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "0c5c0cff", + "Arms": "0c5c0cff", + "Body": "0c5c0cff", + "Legs": "348434ff", + "Hair": "000000ff", + "Feet": "348434ff", + "speed": 128, + "Gun": "Steel Teeth", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 60, + "probabilityToTrack": 25, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "402000ff", + "Arms": "fcfcfcff", + "Body": "00c0c0ff", + "Legs": "28284cff", + "Hair": "ac8484ff", + "Feet": "28284cff", + "speed": 448, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 16974848, + "probabilityToMove": 55, + "probabilityToTrack": 10, + "probabilityToShoot": 0, + "actionDelay": 17 + }, + { + "Class": "Jones", + "HairType": "beard", + "Skin": "ac8484ff", + "Arms": "fcfcfcff", + "Body": "00c0c0ff", + "Legs": "28284cff", + "Hair": "ac0000ff", + "Feet": "28284cff", + "speed": 448, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 16974848, + "probabilityToMove": 55, + "probabilityToTrack": 10, + "probabilityToShoot": 0, + "actionDelay": 17 + }, + { + "Class": "Jones", + "HairType": "beard", + "Skin": "b85838ff", + "Arms": "fcfcfcff", + "Body": "00c0c0ff", + "Legs": "28284cff", + "Hair": "9c4c00ff", + "Feet": "28284cff", + "speed": 448, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 16974848, + "probabilityToMove": 55, + "probabilityToTrack": 10, + "probabilityToShoot": 0, + "actionDelay": 17 + }, + { + "Class": "Jones", + "HairType": "professor", + "Skin": "b85838ff", + "Arms": "fcfcfcff", + "Body": "00c0c0ff", + "Legs": "28284cff", + "Hair": "00fcfcff", + "Feet": "28284cff", + "speed": 384, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 16974848, + "probabilityToMove": 55, + "probabilityToTrack": 10, + "probabilityToShoot": 0, + "actionDelay": 17 + }, + { + "Class": "Jones", + "Skin": "b85838ff", + "Arms": "fcfcfcff", + "Body": "00c0c0ff", + "Legs": "28284cff", + "Hair": "ac0000ff", + "Feet": "28284cff", + "speed": 384, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 16974848, + "probabilityToMove": 55, + "probabilityToTrack": 10, + "probabilityToShoot": 0, + "actionDelay": 17 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "ac5400ff", + "Arms": "fcfcfcff", + "Body": "00c0c0ff", + "Legs": "28284cff", + "Hair": "502800ff", + "Feet": "28284cff", + "speed": 384, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 16974848, + "probabilityToMove": 55, + "probabilityToTrack": 10, + "probabilityToShoot": 0, + "actionDelay": 17 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "b85838ff", + "Arms": "fcfcfcff", + "Body": "00c0c0ff", + "Legs": "28284cff", + "Hair": "000000ff", + "Feet": "28284cff", + "speed": 384, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 16974848, + "probabilityToMove": 55, + "probabilityToTrack": 10, + "probabilityToShoot": 0, + "actionDelay": 17 + }, + { + "Class": "Cyborg", + "HairType": "cyborg", + "Skin": "848484ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "ff0000ff", + "Feet": "404040ff", + "speed": 448, + "Gun": "Powergun", + "maxHealth": 100, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 12, + "actionDelay": 15 + }, + { + "Class": "Cyborg", + "HairType": "cyborg", + "Skin": "ac0000ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "ff0000ff", + "Feet": "404040ff", + "speed": 448, + "Gun": "Flamer", + "maxHealth": 100, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 12, + "actionDelay": 15 + }, + { + "Class": "Cyborg", + "HairType": "cyborg", + "Skin": "348434ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "ff0000ff", + "Feet": "404040ff", + "speed": 448, + "Gun": "Chemo gun", + "maxHealth": 70, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 12, + "actionDelay": 15 + }, + { + "Class": "Cyborg", + "HairType": "cyborg", + "Skin": "000000ff", + "Arms": "404040ff", + "Body": "404040ff", + "Legs": "404040ff", + "Hair": "ff0000ff", + "Feet": "404040ff", + "speed": 448, + "Gun": "Swarmer", + "maxHealth": 100, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 12, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "c0ac3cff", + "Arms": "fcfcfcff", + "Body": "404040ff", + "Legs": "282828ff", + "Hair": "989898ff", + "Feet": "282828ff", + "speed": 256, + "Gun": "Machine Pistol", + "maxHealth": 40, + "flags": 16777216, + "probabilityToMove": 55, + "probabilityToTrack": 30, + "probabilityToShoot": 7, + "actionDelay": 15 + }, + { + "Class": "Jones", + "Skin": "f4944cff", + "Arms": "fcfcfcff", + "Body": "404040ff", + "Legs": "282828ff", + "Hair": "989898ff", + "Feet": "282828ff", + "speed": 256, + "Gun": "Machine Pistol", + "maxHealth": 40, + "flags": 16777216, + "probabilityToMove": 55, + "probabilityToTrack": 30, + "probabilityToShoot": 7, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "402000ff", + "Arms": "fcfcfcff", + "Body": "404040ff", + "Legs": "282828ff", + "Hair": "989898ff", + "Feet": "282828ff", + "speed": 256, + "Gun": "Machine Pistol", + "maxHealth": 40, + "flags": 16777216, + "probabilityToMove": 55, + "probabilityToTrack": 30, + "probabilityToShoot": 7, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "e08060ff", + "Arms": "fcfcfcff", + "Body": "404040ff", + "Legs": "282828ff", + "Hair": "989898ff", + "Feet": "282828ff", + "speed": 256, + "Gun": "Machine Pistol", + "maxHealth": 40, + "flags": 16777216, + "probabilityToMove": 55, + "probabilityToTrack": 30, + "probabilityToShoot": 7, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "e08060ff", + "Arms": "fcfcfcff", + "Body": "404040ff", + "Legs": "282828ff", + "Hair": "989898ff", + "Feet": "282828ff", + "speed": 256, + "Gun": "Machine Pistol", + "maxHealth": 40, + "flags": 16777216, + "probabilityToMove": 55, + "probabilityToTrack": 30, + "probabilityToShoot": 7, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beard", + "Skin": "ac5c2cff", + "Arms": "fcfcfcff", + "Body": "404040ff", + "Legs": "282828ff", + "Hair": "603000ff", + "Feet": "282828ff", + "speed": 256, + "Gun": "Machine Pistol", + "maxHealth": 40, + "flags": 16777216, + "probabilityToMove": 55, + "probabilityToTrack": 30, + "probabilityToShoot": 7, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "hogan", + "Skin": "ac5c2cff", + "Arms": "fcfcfcff", + "Body": "404040ff", + "Legs": "282828ff", + "Hair": "845c5cff", + "Feet": "282828ff", + "speed": 256, + "Gun": "Machine Pistol", + "maxHealth": 40, + "flags": 16777216, + "probabilityToMove": 55, + "probabilityToTrack": 30, + "probabilityToShoot": 7, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "a44424ff", + "Arms": "fcfcfcff", + "Body": "404040ff", + "Legs": "282828ff", + "Hair": "fce000ff", + "Feet": "282828ff", + "speed": 256, + "Gun": "Machine Pistol", + "maxHealth": 40, + "flags": 16777216, + "probabilityToMove": 55, + "probabilityToTrack": 30, + "probabilityToShoot": 7, + "actionDelay": 15 + }, + { + "Class": "Bug-eye", + "Skin": "004870ff", + "Arms": "fcfcfcff", + "Body": "fcfcfcff", + "Legs": "fcfcfcff", + "Hair": "845c5cff", + "Feet": "fcfcfcff", + "speed": 256, + "Gun": "Fire Breath", + "maxHealth": 40, + "flags": 20841984, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 50 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "c47038ff", + "Arms": "fcfcfcff", + "Body": "fcfcfcff", + "Legs": "848484ff", + "Hair": "fc6800ff", + "Feet": "848484ff", + "speed": 256, + "Gun": "Fire Breath", + "maxHealth": 40, + "flags": 20841984, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 50 + }, + { + "Class": "Mad bug-eye", + "Skin": "f4944cff", + "Arms": "00fc00ff", + "Body": "282828ff", + "Legs": "002000ff", + "Hair": "003c00ff", + "Feet": "002000ff", + "speed": 384, + "Gun": "Shotgun", + "maxHealth": 200, + "flags": 29362176, + "probabilityToMove": 15, + "probabilityToTrack": 65, + "probabilityToShoot": 25, + "actionDelay": 17 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/guns.json new file mode 100644 index 00000000..453d491b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/guns.json @@ -0,0 +1,113 @@ +{ + "Version": 1, + + "Guns": [ + + { + "Name": "Fire Breath", + "Bullet": "flame_breath", + "Pic":"", + "Icon": "", + "Cost": 1, + "Lock": 50, + "Sound": "flamer", + "SpreadCount": 3, + "SpreadWidth": 0.1 + }, + { + "Name": "Psychokinetic Beam", + "Bullet": "psycho_beam", + "Pic":"", + "Icon": "", + "Cost": 5, + "Lock": 80, + "Sound": "powergun", + "MuzzleFlashSprite": "muzzle_flash_big", + "MuzzleFlashColor": "00ffff", + "MuzzleFlashDuration": 10 + }, + { + "Name": "Paralyzing Venom Spit", + "Bullet": "venom_spit", + "Cost": 1, + "Pic":"", + "Icon": "", + "Lock": 50, + "Sound": "hits/petrify", + "HitsObjects": false, + "Falling": { + "DestroyOnDrop": true + } + }, + { + "Name": "Prototype I", + "Icon": "powergun", + "Bullet": "proto_laser", + "Cost": 1, + "Lock": 2, + "Recoil": 0.05, + "Sound": "fusion", + "SwitchSound": "powergun_switch", + "MuzzleFlashParticle": "muzzle_flash_powergun", + "Ammo": "Cells" + }, + { + "Pic": "zapper", + "Name": "Prototype II", + "Icon": "browny_gun", + "Bullet": "rapid", + "Cost": 2, + "Lock": 5, + "Sound": "fusion", + "SwitchSound": "powergun_r", + "MuzzleFlashParticle": "muzzle_flash_browny", + "Ammo": "Cells" + }, + { + "Pic": "", + "IsGrenade": true, + "Name": "Prototype III", + "Bullet": "proto_bomb", + "Cost": 20, + "Lock": 30, + "Sound": "launch", + "SwitchSound": "grenade_pickup", + "Elevation": 24, + "Ammo": "Protobombs" + }, + { + "Pic": "", + "Icon": "", + "Name": "Steel Teeth", + "Bullet": "knife", + "Cost": 0, + "Sound": "", + "SwitchSound": "knife_switch", + "SoundLockLength": 10, + "CanShoot": false + }, + { + "Pic": "pistol", + "Name": "Machine Pistol", + "Icon": "pistol", + "Bullet": "9mm", + "Cost": 2, + "Lock": 6, + "Sound": "pistol", + "SwitchSound": "pistol_switch", + "Recoil": 0.2, + "Brass": "brass", + "Ammo": "Bullets" + } + ], + "PseudoGuns" : [ + { + "Pic": "", + "Name": "proto_explosion", + "Bullet": "proto_frag", + "SpreadCount": 32, + "SpreadWidth": 0.20, + "AngleOffset": 0.2 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/missions.json new file mode 100644 index 00000000..6587e355 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/most_classified_enemy.cdogscpn/missions.json @@ -0,0 +1,4643 @@ +{ + "Missions": [{ + "Title": "First escape", + "Description": "Get out of the bio wing. But be careful, they already sent \"problem solvers\" to deal with you.", + "Type": "Static", + "Width": 33, + "Height": 33, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Defend yourself, if required", + "Type": "Kill", + "Index": 0, + "Count": 9, + "Required": 0, + "Flags": 1 + }], + "Enemies": [0, + 1, + 2, + 3, + 4, + 5, + 6, + 7], + "SpecialChars": [8, + 9, + 10, + 11, + 12, + 13, + 14, + 15], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Paralyzing Venom Spit", + "Psychokinetic Beam", + "Fire Breath"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "348434ff", + "MaskAlt": "fcfcfcff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "fcfcfcff", + "MaskAlt": "fcfcfcff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "grid", + "Mask": "ffffffff", + "MaskAlt": "fcfcfcff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,4,0,0,0,0,0,0,0,0,0,0,4,1,3,3,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,4,1,1,1,1,1,1,1,1,1,1,4,1,3,3,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,4,1,3,3,3,3,3,3,3,3,1,4,1,3,3,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,4,1,3,3,3,3,3,3,3,3,1,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,4,1,3,3,0,0,0,3,3,3,1,4,1,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,3,3,1", + "1,4,1,3,3,0,0,0,3,3,3,1,4,1,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,3,3,1", + "1,4,1,3,3,0,0,0,3,3,3,1,4,1,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,3,3,1", + "1,4,1,3,3,3,3,3,3,3,3,1,4,1,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,3,3,1", + "1,4,1,3,3,3,3,3,3,3,3,1,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,4,1,3,3,3,3,3,3,3,3,1,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,4,1,3,3,3,3,3,3,3,3,1,4,1,3,3,3,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,1", + "1,4,1,1,1,2,2,2,2,1,1,1,4,1,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1", + "1,4,4,4,4,3,3,3,3,4,4,4,4,1,3,3,3,3,3,3,0,0,0,3,3,1,3,3,3,3,3,3,1", + "1,4,1,4,4,3,3,3,3,4,4,1,4,1,3,3,3,3,3,3,0,0,0,3,3,1,3,3,3,3,3,3,1", + "1,4,4,4,4,3,3,3,3,4,4,4,4,1,3,3,3,3,3,3,0,0,0,3,3,1,3,3,3,3,3,3,1", + "1,4,1,4,4,3,3,3,3,4,4,1,4,1,3,3,3,3,3,3,0,0,0,3,3,1,3,3,3,3,3,3,1", + "1,4,4,4,4,3,3,3,3,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1", + "1,4,1,4,4,3,3,3,3,4,4,1,4,1,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1", + "1,4,4,4,4,3,3,3,3,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1", + "1,4,4,4,4,3,3,3,3,4,4,4,4,1,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1", + "1,1,1,1,1,2,2,2,2,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1", + "1,0,0,0,3,3,3,3,3,3,3,3,3,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,1", + "1,0,0,0,0,0,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,1", + "1,0,3,3,0,0,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1", + "1,0,0,0,0,0,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1", + "1,0,0,0,0,0,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "table_wood_round_terminal", + "Positions": [[9, 3], + [3, 22], + [4, 28], + [11, 22], + [15, 1], + [16, 1], + [29, 1], + [17, 12]] + }, + { + "MapObject": "chair", + "Positions": [[9, 5], + [1, 23], + [11, 23], + [4, 29], + [21, 15], + [17, 2], + [15, 2], + [23, 7], + [27, 7], + [29, 2], + [26, 16], + [30, 20], + [18, 13]] + }, + { + "MapObject": "table_steel", + "Positions": [[10, 5], + [10, 6], + [2, 29], + [3, 29], + [10, 22], + [18, 12], + [23, 6], + [26, 15], + [31, 20], + [31, 19], + [28, 6], + [28, 1]] + }, + { + "MapObject": "table_lab", + "Positions": [[10, 9], + [2, 22], + [2, 28], + [3, 28], + [21, 14], + [17, 1], + [18, 2], + [18, 1], + [27, 6]] + }, + { + "MapObject": "bookshelf", + "Positions": [[1, 22], + [4, 22], + [12, 23]] + }, + { + "MapObject": "cabinet_server", + "Positions": [[12, 22], + [1, 25], + [14, 1], + [14, 2], + [14, 3], + [14, 4], + [30, 1], + [24, 12]] + }, + { + "MapObject": "barrel_flame", + "Positions": [[11, 29]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[12, 28], + [24, 17], + [24, 18], + [21, 10], + [31, 8], + [31, 9], + [31, 10], + [23, 23], + [30, 25]] + }, + { + "MapObject": "crate", + "Positions": [[24, 23], + [31, 11], + [22, 1]] + }, + { + "MapObject": "crate2", + "Positions": [[15, 23], + [14, 12]] + }, + { + "MapObject": "barrel_skull", + "Positions": [[24, 28], + [24, 29], + [23, 28]] + }, + { + "MapObject": "safe2", + "Positions": [[31, 13], + [31, 15], + [31, 17]] + }, + { + "MapObject": "box3_green", + "Positions": [[14, 30], + [14, 28]] + }, + { + "MapObject": "box3_gray", + "Positions": [[27, 23], + [14, 14], + [14, 15]] + }, + { + "MapObject": "barrel_blue_wreck", + "Positions": [[6, 6]] + }, + { + "MapObject": "safe_wreck", + "Positions": [[5, 5], + [7, 6]] + }, + { + "MapObject": "chair_wreck", + "Positions": [[5, 7]] + }, + { + "MapObject": "rod_wreck", + "Positions": [[7, 5]] + }, + { + "MapObject": "rocket_wreck", + "Positions": [[5, 27]] + }], + "StaticCharacters": [{ + "Index": 1, + "Positions": [[3, 8]] + }, + { + "Index": 0, + "Positions": [[10, 7]] + }, + { + "Index": 2, + "Positions": [[2, 23]] + }, + { + "Index": 3, + "Positions": [[10, 23]] + }, + { + "Index": 7, + "Positions": [[1, 30], + [26, 18]] + }, + { + "Index": 10, + "Positions": [[9, 30]] + }, + { + "Index": 4, + "Positions": [[24, 13]] + }, + { + "Index": 5, + "Positions": [[16, 2]] + }, + { + "Index": 6, + "Positions": [[28, 2]] + }], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[6, 14], + [12, 30], + [5, 30], + [24, 27], + [29, 26], + [17, 18], + [22, 6], + [28, 27], + [29, 16]], + "Indices": [6, + 0, + 1, + 3, + 4, + 5, + 0, + 7, + 3] + }], + "StaticKeys": [{ + "Index": 3, + "Positions": [[30, 19]] + }], + "StaticPickups": [], + "Start": [6, 6], + "Exits": [{ + "Rect": [26, + 23, + 5, + 9], + "Mission": 1, + "Hidden": false + }] + }, + { + "Title": "Restricted area", + "Description": "You are looking for clues, but it seems you have to look in another facility. To get there, you must trespass a restricted area, with the special unit still on your tail.", + "Type": "Static", + "Width": 24, + "Height": 48, + "ExitStyle": "plate", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Get rid of the \"cleaners\".", + "Type": "Kill", + "Index": 0, + "Count": 4, + "Required": 4, + "Flags": 0 + }, + { + "Description": "This building plan might help...", + "Type": "Collect", + "Pickup": "starmap", + "Count": 1, + "Required": 0, + "Flags": 1 + }, + { + "Description": "Blow up that warhead as distraction.", + "Type": "Destroy", + "MapObject": "rocket", + "Count": 1, + "Required": 0, + "Flags": 0 + }], + "Enemies": [19, + 20, + 18, + 16, + 17], + "SpecialChars": [8, + 13, + 9, + 10], + "MapObjectDensities": [], + "EnemyDensity": 6, + "Weapons": ["Fire Breath", + "Psychokinetic Beam", + "Paralyzing Venom Spit"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "ac0000ff", + "MaskAlt": "fcfcfcff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "e8e8e8ff", + "MaskAlt": "fcfcfcff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "00ac00ff", + "MaskAlt": "fcfcfcff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,3,3,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,3,3,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,3,3,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,3,3,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,1", + "1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,1,3,3,3,3,3,3,3,1", + "1,0,0,0,3,3,3,3,3,3,3,3,0,0,0,1,3,3,3,3,3,3,3,1", + "1,0,0,0,3,3,3,3,3,3,3,3,0,0,0,1,3,3,3,3,3,3,3,1", + "1,0,0,0,3,3,0,0,0,0,3,3,0,0,0,1,3,3,3,3,3,3,3,1", + "1,0,0,0,3,3,0,0,0,0,3,3,0,0,0,1,3,3,3,3,3,3,3,1", + "1,0,0,0,3,3,0,0,0,0,3,3,0,0,0,1,1,0,0,0,0,1,1,1", + "1,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "blood0", + "Positions": [[2, 2]] + }, + { + "MapObject": "crate", + "Positions": [[1, 3]] + }, + { + "MapObject": "crate2", + "Positions": [[18, 38], + [20, 38], + [21, 38], + [19, 1], + [19, 2], + [20, 2], + [21, 2], + [21, 1]] + }, + { + "MapObject": "table_wood", + "Positions": [[19, 38]] + }, + { + "MapObject": "table_clothed", + "Positions": [[18, 14]] + }, + { + "MapObject": "table_wood_candle", + "Positions": [[22, 16]] + }, + { + "MapObject": "plant", + "Positions": [[16, 18]] + }, + { + "MapObject": "bookshelf", + "Positions": [[21, 12], + [22, 12]] + }, + { + "MapObject": "tree", + "Positions": [[20, 5], + [12, 14], + [17, 26], + [2, 36], + [2, 27], + [9, 29]] + }, + { + "MapObject": "tree_autumn", + "Positions": [[21, 23], + [7, 43], + [12, 2], + [7, 20]] + }, + { + "MapObject": "tree_dead", + "Positions": [[2, 11], + [16, 27]] + }, + { + "MapObject": "wall_goo", + "Positions": [[7, 32], + [10, 17], + [18, 1]] + }, + { + "MapObject": "wall_stuff", + "Positions": [[7, 9], + [9, 38]] + }, + { + "MapObject": "bulletmarks", + "Positions": [[11, 32], + [18, 22], + [12, 32]] + }, + { + "MapObject": "barrel_flame", + "Positions": [[15, 32], + [6, 26], + [5, 17], + [4, 18]] + }, + { + "MapObject": "box3_red", + "Positions": [[1, 40]] + }, + { + "MapObject": "barrel_skull", + "Positions": [[15, 22]] + }, + { + "MapObject": "safe2", + "Positions": [[16, 12]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[10, 32], + [6, 46], + [7, 46], + [13, 37], + [4, 9]] + }, + { + "MapObject": "goo", + "Positions": [[16, 2], + [12, 12], + [5, 39]] + }, + { + "MapObject": "crate2_wreck", + "Positions": [[6, 1]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[19, 17], + [10, 22], + [20, 14], + [16, 15]], + "Indices": [0, + 1, + 2, + 3] + }, + { + "Index": 1, + "Positions": [[22, 13]], + "Indices": [0] + }, + { + "Index": 2, + "Positions": [[20, 1]], + "Indices": [0] + }], + "StaticKeys": [], + "StaticPickups": [], + "Start": [4, 3], + "Exits": [{ + "Rect": [15, + 38, + 8, + 8], + "Mission": 2, + "Hidden": false + }] + }, + { + "Title": "The archives", + "Description": "You break into the archives, looking for more information about yourself. Watch out, there are guards everywhere!", + "Type": "Static", + "Width": 48, + "Height": 48, + "ExitStyle": "plate", + "KeyStyle": "cube", + "Objectives": [{ + "Description": "Get data", + "Type": "Collect", + "Pickup": "disk1", + "Count": 3, + "Required": 3, + "Flags": 0 + }, + { + "Description": "Get more data", + "Type": "Collect", + "Pickup": "disk2", + "Count": 4, + "Required": 2, + "Flags": 0 + }, + { + "Description": "Get additional data", + "Type": "Collect", + "Pickup": "disk3", + "Count": 3, + "Required": 2, + "Flags": 0 + }, + { + "Description": "Your guess...", + "Type": "Collect", + "Pickup": "paper", + "Count": 5, + "Required": 3, + "Flags": 0 + }, + { + "Description": "Get rid of the containment special force.", + "Type": "Kill", + "Index": 0, + "Count": 6, + "Required": 0, + "Flags": 0 + }], + "Enemies": [0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 14, + 12], + "SpecialChars": [23, + 22, + 21], + "MapObjectDensities": [], + "EnemyDensity": 9, + "Weapons": ["Fire Breath", + "Psychokinetic Beam", + "Paralyzing Venom Spit"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "alien", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel2", + "Mask": "fcfcfcff", + "MaskAlt": "348434ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "489848ff", + "MaskAlt": "348434ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "fcfcfcff", + "MaskAlt": "348434ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,1", + "0,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,0,0", + "1,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,1", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1", + "1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,1,1,1,1", + "1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,0,0,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,0,0,0,0,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,1,1,1,1,1,3,3,3,3,3,1,3,3,3,3,3,0,0,0,0,0,0,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,0,0,0,0,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,0,0,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,1,1,1,1,1,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,1,1,1,1,1,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,1,1,1,1,1,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,0,0,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,3,3,3,3,3,3,1,1,1,2,2,2,1,1,1,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "bookshelf", + "Positions": [[35, 1], + [27, 1], + [1, 24], + [2, 24], + [3, 24], + [4, 24], + [5, 24], + [5, 26], + [4, 26], + [3, 26], + [2, 26], + [1, 26], + [1, 29], + [2, 29], + [3, 29], + [4, 29], + [5, 29], + [5, 31], + [4, 31], + [3, 31], + [2, 31], + [1, 31], + [1, 34], + [2, 34], + [3, 34], + [4, 34], + [5, 34], + [5, 36], + [4, 36], + [3, 36], + [2, 36], + [1, 36], + [1, 39], + [2, 39], + [3, 39], + [4, 39], + [5, 39], + [1, 41], + [2, 41], + [3, 41], + [4, 41], + [5, 41], + [1, 43], + [2, 43], + [3, 43], + [4, 43], + [5, 43], + [1, 45], + [2, 45], + [3, 45], + [4, 45], + [5, 45], + [27, 17], + [26, 17], + [25, 17], + [24, 17], + [23, 17], + [27, 19], + [26, 19], + [25, 19], + [24, 19], + [23, 19], + [12, 17], + [13, 17], + [14, 17], + [15, 17], + [16, 17], + [12, 19], + [13, 19], + [14, 19], + [15, 19], + [16, 19], + [29, 33], + [30, 33], + [31, 33], + [29, 30], + [30, 30], + [31, 30], + [35, 30], + [34, 30], + [33, 30], + [33, 33], + [34, 33], + [35, 33]] + }, + { + "MapObject": "table_wood", + "Positions": [[28, 1]] + }, + { + "MapObject": "chair", + "Positions": [[28, 2], + [34, 1], + [10, 25], + [9, 25], + [8, 25], + [8, 28], + [9, 28], + [10, 28], + [8, 31], + [9, 31], + [10, 31], + [8, 34], + [10, 37], + [10, 34], + [9, 40], + [1, 35], + [2, 25], + [21, 17], + [12, 25], + [13, 25], + [14, 25], + [12, 29], + [13, 29], + [14, 29], + [14, 33], + [13, 37], + [12, 37], + [27, 23], + [27, 24], + [25, 23], + [25, 24], + [27, 26], + [27, 27], + [25, 26], + [25, 29], + [25, 30], + [27, 30], + [27, 29], + [27, 32], + [25, 35], + [25, 36], + [35, 37], + [37, 19], + [6, 18]] + }, + { + "MapObject": "plant", + "Positions": [[37, 1], + [12, 1], + [46, 12], + [19, 17]] + }, + { + "MapObject": "table_clothed", + "Positions": [[20, 1]] + }, + { + "MapObject": "cabinet_server", + "Positions": [[17, 1], + [35, 18], + [34, 18], + [33, 18], + [32, 18], + [31, 18], + [31, 21], + [32, 21], + [33, 21], + [34, 21], + [35, 21], + [31, 24], + [32, 24], + [33, 24], + [34, 24], + [35, 24], + [42, 33], + [42, 44], + [42, 43]] + }, + { + "MapObject": "crate2", + "Positions": [[44, 1], + [32, 1], + [21, 22], + [17, 43], + [18, 43], + [37, 37]] + }, + { + "MapObject": "table_steel", + "Positions": [[10, 24], + [9, 24], + [8, 24], + [8, 27], + [9, 27], + [10, 27], + [8, 30], + [9, 30], + [10, 30], + [8, 33], + [9, 33], + [10, 33], + [8, 36], + [9, 36], + [10, 36], + [8, 39], + [9, 39], + [10, 39], + [12, 23], + [14, 23], + [14, 28], + [13, 36], + [26, 23], + [26, 24], + [26, 26], + [26, 29], + [26, 32], + [26, 33], + [26, 35], + [26, 36], + [26, 27], + [26, 30]] + }, + { + "MapObject": "table", + "Positions": [[19, 23], + [20, 23]] + }, + { + "MapObject": "table_wood_round_terminal", + "Positions": [[13, 23], + [13, 28], + [12, 28], + [14, 36], + [12, 36], + [12, 32], + [13, 32], + [14, 32], + [29, 17], + [39, 30], + [39, 27], + [39, 24], + [39, 21], + [39, 18], + [6, 17]] + }, + { + "MapObject": "safe2", + "Positions": [[37, 18], + [37, 21], + [38, 18], + [38, 21], + [37, 24], + [38, 24], + [37, 27], + [38, 27], + [37, 30], + [38, 30], + [29, 36], + [29, 37], + [29, 38]] + }, + { + "MapObject": "crate", + "Positions": [[19, 42], + [18, 44], + [37, 36], + [42, 38], + [42, 37], + [41, 38]] + }, + { + "MapObject": "egg", + "Positions": [[19, 43]] + }, + { + "MapObject": "box3_gray", + "Positions": [[37, 35], + [38, 35], + [39, 35], + [37, 34]] + }, + { + "MapObject": "box3_green", + "Positions": [[42, 39], + [42, 40], + [41, 39], + [40, 39], + [37, 33]] + }, + { + "MapObject": "rod", + "Positions": [[2, 13], + [7, 2], + [42, 2], + [19, 30], + [19, 31], + [20, 31], + [20, 30]] + }, + { + "MapObject": "barrel_blue_wreck", + "Positions": [[44, 1]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[7, 17], + [39, 31], + [4, 35]], + "Indices": [0, + 0, + 0] + }, + { + "Index": 1, + "Positions": [[9, 32], + [13, 24], + [35, 19], + [34, 19]], + "Indices": [0, + 0, + 0, + 0] + }, + { + "Index": 2, + "Positions": [[14, 37], + [42, 34], + [39, 19]], + "Indices": [0, + 0, + 0] + }, + { + "Index": 3, + "Positions": [[25, 32], + [27, 36], + [27, 20], + [17, 44], + [35, 2]], + "Indices": [0, + 0, + 0, + 0, + 0] + }], + "StaticKeys": [{ + "Index": 0, + "Positions": [[29, 18]] + }], + "StaticPickups": [], + "Start": [4, 4], + "Exits": [{ + "Rect": [41, + 1, + 6, + 9], + "Mission": 3, + "Hidden": false + }] + }, + { + "Title": "Classified information", + "Description": "You read the documents. It turns out you are one of many experiments in this base. Other projects are \"The Fallen\", \"Project Nexus\", \"Project Brutus\" and \"The Specters\". You decide to check this out and leave the archives through the service tunnels.", + "Type": "Static", + "Width": 48, + "Height": 48, + "ExitStyle": "plate", + "KeyStyle": "cube", + "Objectives": [{ + "Description": "Looks like some experiments already killed someone.", + "Type": "Destroy", + "MapObject": "egg", + "Count": 9, + "Required": 0, + "Flags": 1 + }, + { + "Description": "What a weird device...", + "Type": "Collect", + "Pickup": "plasma_globe", + "Count": 1, + "Required": 0, + "Flags": 1 + }, + { + "Description": "Explose the tunnels.", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 0, + "Flags": 1 + }, + { + "Description": "Some used quantum defraggulator.", + "Type": "Collect", + "Pickup": "radio", + "Count": 1, + "Required": 0, + "Flags": 1 + }, + { + "Description": "Nice poster that looks like a map.", + "Type": "Collect", + "Pickup": "starmap", + "Count": 1, + "Required": 0, + "Flags": 1 + }], + "Enemies": [32, + 31, + 30, + 29, + 28, + 27], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 6, + "Weapons": ["Fire Breath", + "Psychokinetic Beam", + "Paralyzing Venom Spit"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "848484ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "striped", + "Mask": "584418ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "484848ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,1,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1", + "1,0,3,3,0,1,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,0,1", + "1,0,3,3,0,1,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,0,1", + "1,0,3,3,0,1,4,1,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,3,0,1", + "1,0,3,3,0,1,4,1,0,3,3,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,3,3,0,1", + "1,0,3,3,0,1,4,1,0,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,0,1", + "1,0,3,3,0,1,4,1,0,3,3,0,1,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,3,3,0,1", + "1,0,3,3,0,1,4,1,0,3,3,0,1,1,1,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,1", + "1,0,3,3,0,1,4,1,0,3,3,0,0,0,1,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1", + "1,0,3,3,0,1,4,1,0,3,3,3,3,0,1,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1", + "1,0,3,3,0,1,4,1,0,3,3,3,3,0,1,4,4,4,4,1,0,3,3,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,1", + "1,0,3,3,0,1,4,1,0,3,1,1,3,0,1,4,4,4,4,1,0,3,3,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,3,3,0,1", + "1,0,3,3,0,1,4,1,0,3,1,1,3,0,1,4,4,4,4,1,0,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,0,1", + "1,0,3,3,0,1,4,1,0,3,3,3,3,0,1,4,4,4,4,1,0,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,0,1", + "1,0,3,3,0,1,4,1,0,3,3,3,3,0,1,4,4,4,4,1,0,3,3,0,1,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,3,3,0,1", + "1,0,3,3,0,1,4,1,0,0,0,0,0,0,1,4,4,4,4,1,0,3,3,0,1,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,3,0,1", + "1,0,3,3,0,1,4,1,1,1,1,1,1,1,1,4,4,4,4,1,0,3,3,0,1,4,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,0,1", + "1,0,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,0,1,4,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,0,1", + "1,0,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,1,2,2,2,2,1,4,4,1,0,3,3,0,0,0,0,0,0,0,0,0,0,2,0,0,3,3,0,1", + "1,0,3,3,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,3,3,0,1,4,4,1,0,3,3,0,1,1,1,1,1,1,1,1,1,1,1,0,3,3,0,1", + "1,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,1,4,4,1,0,3,3,0,1,0,0,0,0,0,0,0,0,0,1,0,3,3,0,1", + "1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,4,4,1,0,3,3,0,0,0,3,3,3,3,3,3,3,0,1,0,3,3,0,1", + "1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,4,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,3,3,0,1", + "1,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,3,3,0,1", + "1,0,3,3,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,3,3,0,1", + "1,0,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,3,3,0,1", + "1,0,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,3,3,0,1", + "1,0,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,3,3,0,1", + "1,0,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,0,1,0,3,3,0,1", + "1,0,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,0,0,0,3,3,3,3,3,3,3,0,1,0,3,3,0,1", + "1,0,3,3,0,1,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,1,0,3,3,0,1,0,0,0,0,0,0,0,0,0,1,0,3,3,0,1", + "1,0,3,3,0,1,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,1,0,3,3,0,1,1,1,1,1,1,1,1,1,1,1,0,3,3,0,1", + "1,0,3,3,0,1,4,4,4,4,1,0,3,3,3,3,3,3,3,0,1,4,4,4,4,4,4,1,0,3,3,0,0,0,0,0,0,0,0,0,0,2,0,0,3,3,0,1", + "1,0,3,3,0,1,4,4,4,4,1,0,3,3,3,3,3,3,3,0,1,4,4,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,0,1", + "1,0,3,3,0,1,4,4,4,4,1,0,3,3,3,3,3,3,3,0,1,4,4,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,0,1", + "1,0,3,3,0,1,4,4,4,4,1,0,3,3,3,3,3,3,3,0,1,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,3,0,1", + "1,0,3,3,0,1,4,4,4,4,1,0,3,3,3,3,3,3,3,0,1,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,3,3,0,1", + "1,0,3,3,0,1,4,4,4,4,1,0,3,3,3,3,3,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,0,1", + "1,0,3,3,0,1,4,4,4,4,1,0,3,3,3,3,3,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,0,3,3,0,1", + "1,0,3,3,0,1,4,4,4,4,1,0,3,3,3,3,3,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,3,3,0,1", + "1,0,3,3,0,1,4,4,4,4,1,0,3,3,3,3,3,3,3,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,3,3,3,3,3,3,3,3,3,0,1", + "1,0,3,3,0,1,1,1,1,1,1,0,3,3,3,3,3,3,3,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,3,3,3,3,3,3,3,3,3,0,1", + "1,0,3,3,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,1", + "1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1", + "1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "barrel_blue", + "Positions": [[11, 32], + [39, 21], + [41, 26], + [41, 25], + [41, 24]] + }, + { + "MapObject": "box3_gray", + "Positions": [[19, 32], + [19, 33], + [18, 32], + [46, 12], + [46, 27], + [46, 24]] + }, + { + "MapObject": "safe2", + "Positions": [[11, 37], + [14, 32], + [39, 8], + [38, 8], + [37, 8], + [36, 8], + [7, 21], + [8, 21], + [9, 21], + [10, 21], + [33, 16], + [34, 16], + [35, 16], + [36, 16]] + }, + { + "MapObject": "crate2", + "Positions": [[16, 36], + [15, 36], + [16, 37], + [16, 38]] + }, + { + "MapObject": "crate", + "Positions": [[19, 36], + [36, 21], + [35, 21], + [41, 22]] + }, + { + "MapObject": "barrel_flame", + "Positions": [[12, 32]] + }, + { + "MapObject": "goo", + "Positions": [[15, 23]] + }, + { + "MapObject": "box3_green", + "Positions": [[19, 40], + [19, 39]] + }, + { + "MapObject": "table_wood_round_terminal", + "Positions": [[38, 40], + [33, 21]] + }, + { + "MapObject": "table_steel", + "Positions": [[37, 40]] + }, + { + "MapObject": "cabinet_server", + "Positions": [[40, 40], + [36, 41], + [33, 31], + [34, 31], + [35, 31], + [36, 31], + [37, 31], + [38, 31], + [39, 31], + [33, 29], + [34, 29], + [35, 29], + [36, 29], + [37, 29], + [38, 29], + [39, 29], + [33, 27], + [34, 27], + [35, 27], + [36, 27], + [37, 27], + [38, 27], + [39, 27]] + }, + { + "MapObject": "chair", + "Positions": [[38, 41], + [34, 21], + [40, 23], + [13, 40]] + }, + { + "MapObject": "statue_ogre", + "Positions": [[37, 21]] + }, + { + "MapObject": "box3", + "Positions": [[41, 29], + [41, 28]] + }, + { + "MapObject": "barrel_skull", + "Positions": [[46, 23]] + }, + { + "MapObject": "skull", + "Positions": [[25, 9]] + }, + { + "MapObject": "bone_blood", + "Positions": [[29, 10]] + }, + { + "MapObject": "bloodstain", + "Positions": [[27, 8]] + }, + { + "MapObject": "blood1", + "Positions": [[22, 12]] + }, + { + "MapObject": "rocket", + "Positions": [[35, 1], + [32, 1], + [29, 1], + [26, 1], + [23, 1], + [20, 1], + [17, 1], + [14, 1], + [38, 1], + [38, 4], + [35, 4], + [32, 4], + [29, 4], + [26, 4], + [23, 4], + [20, 4], + [17, 4], + [14, 4]] + }, + { + "MapObject": "rod", + "Positions": [[1, 46], + [1, 22], + [20, 8], + [46, 1], + [8, 1], + [16, 32], + [46, 46], + [28, 16], + [28, 36], + [41, 31], + [32, 22]] + }, + { + "MapObject": "crate2_wreck", + "Positions": [[13, 34]] + }], + "StaticCharacters": [{ + "Index": 24, + "Positions": [[37, 25]] + }, + { + "Index": 26, + "Positions": [[33, 24]] + }, + { + "Index": 25, + "Positions": [[39, 42]] + }], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[28, 9], + [26, 8], + [29, 8], + [28, 8], + [27, 10], + [23, 8], + [23, 14], + [22, 15], + [20, 12]], + "Indices": [0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0] + }, + { + "Index": 1, + "Positions": [[15, 37]], + "Indices": [0] + }, + { + "Index": 3, + "Positions": [[38, 21]], + "Indices": [0] + }, + { + "Index": 4, + "Positions": [[40, 28]], + "Indices": [0] + }], + "StaticKeys": [{ + "Index": 0, + "Positions": [[39, 40]] + }, + { + "Index": 2, + "Positions": [[33, 22]] + }], + "StaticPickups": [], + "Start": [2, 2], + "Exits": [{ + "Rect": [8, + 9, + 5, + 6], + "Mission": 4, + "Hidden": false + }] + }, + { + "Title": "Weaponry research test facility", + "Description": "To get to \"The Fallen\" you have to cross the weapon research facility. Be careful, silent alarm has been activated since you left your lab.", + "Type": "Static", + "Width": 60, + "Height": 40, + "ExitStyle": "hazard", + "KeyStyle": "plain", + "Objectives": [], + "Enemies": [33, + 34, + 35], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Fire Breath", + "Psychokinetic Beam", + "Paralyzing Venom Spit"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "brick2", + "Mask": "980000ff", + "MaskAlt": "fcfcfcff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "fcfcfcff", + "MaskAlt": "fcfcfcff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "00ac00ff", + "MaskAlt": "fcfcfcff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,3,3,3,3,3,3,1,4,4,1,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,1,4,4,1,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,1,1,3,3,1,4,4,1,3,3,3,1,3,3,3,3,0,0,0,0,0,0,0,0,0,3,3,3,3,2,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,1", + "1,3,3,1,1,3,3,1,4,4,1,3,3,3,1,3,3,3,0,0,0,0,0,0,0,0,0,0,0,3,3,3,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1", + "1,3,3,3,3,3,3,1,4,4,1,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1", + "1,3,3,3,3,3,3,1,4,4,1,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1", + "1,1,2,2,2,2,1,1,4,4,1,3,3,3,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,2,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,1", + "1,3,3,3,3,3,3,0,4,4,1,3,3,3,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,0,4,4,1,3,3,3,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,1,0,4,4,1,3,3,3,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1", + "1,3,3,3,3,3,3,0,4,4,1,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,0,4,4,1,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,1,0,4,4,1,3,3,3,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,0,4,4,1,3,3,3,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,0,4,4,1,3,3,3,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,1,0,4,4,1,3,3,3,1,3,3,3,0,0,0,0,0,0,0,0,0,0,0,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,0,4,4,1,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,0,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1", + "1,3,3,3,3,3,1,0,4,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,0,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,4,1,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,4,4,4,4,1,3,1,1,1,3,2,3,3,3,3,0,0,0,0,0,0,0,0,0,0,3,3,3,3,1", + "1,3,3,3,3,3,1,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,4,4,4,4,1,3,1,3,3,3,2,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,1", + "1,3,3,3,3,3,3,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,4,1,3,1,1,1,3,2,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1", + "1,3,3,3,3,3,3,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,3,3,2,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1", + "1,3,3,3,3,3,1,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,3,3,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1", + "1,3,3,3,3,3,3,0,0,0,1,3,3,3,3,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,1,4,1,1,1,1,1,1,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1", + "1,3,3,3,3,3,3,0,0,0,1,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,1,4,1,1,1,1,1,1,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1", + "1,3,3,3,3,3,1,3,1,3,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,1,4,1,1,1,1,1,1,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1", + "1,3,3,3,3,3,3,3,3,3,2,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,1,4,1,3,3,3,3,3,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1", + "1,3,3,3,3,3,3,3,3,3,2,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,1,4,1,3,3,3,3,3,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1", + "1,3,3,3,3,3,3,3,3,3,2,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,1,4,1,3,3,3,3,3,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1", + "1,3,3,3,3,3,3,3,3,3,2,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,1,4,1,3,3,3,3,3,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1", + "1,3,3,3,3,3,3,3,3,3,2,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,1,4,1,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1", + "1,3,3,3,3,3,1,3,1,3,1,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1,3,3,1,4,1,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1", + "1,3,3,3,3,3,3,0,0,0,1,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,1,3,3,1,4,1,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,1", + "1,3,3,3,3,3,3,0,0,0,1,3,3,3,3,0,0,0,0,0,0,0,0,0,0,3,3,3,3,1,3,3,1,4,1,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,3,3,3,3,1", + "1,3,3,3,3,3,1,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,4,1,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,512,512,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "crate2", + "Positions": [[52, 32], + [52, 33], + [51, 33], + [48, 30], + [47, 11], + [19, 33], + [17, 34], + [20, 4], + [24, 15], + [38, 14], + [40, 14], + [41, 13], + [41, 14], + [40, 13], + [42, 12], + [44, 17], + [44, 16], + [44, 15], + [45, 15], + [45, 13], + [46, 14]] + }, + { + "MapObject": "scratch", + "Positions": [[46, 19], + [40, 1], + [41, 1], + [42, 1], + [19, 24]] + }, + { + "MapObject": "barrel_wood", + "Positions": [[49, 31], + [50, 31], + [49, 32], + [50, 32], + [50, 30], + [22, 32], + [19, 30], + [20, 31]] + }, + { + "MapObject": "tree_dead", + "Positions": [[52, 26], + [36, 5], + [18, 34], + [22, 9], + [26, 6], + [26, 13], + [7, 35], + [8, 25], + [25, 29]] + }, + { + "MapObject": "rod", + "Positions": [[44, 22], + [55, 22], + [55, 35], + [44, 35], + [25, 27], + [25, 35], + [14, 35], + [14, 27], + [18, 4], + [18, 16], + [28, 16], + [28, 4]] + }, + { + "MapObject": "box3_gray", + "Positions": [[41, 26], + [41, 27]] + }, + { + "MapObject": "crate", + "Positions": [[53, 32], + [36, 11], + [37, 12], + [37, 13], + [36, 14], + [38, 12], + [38, 13], + [37, 14], + [39, 14], + [39, 15], + [38, 15]] + }, + { + "MapObject": "table_wood_round_terminal", + "Positions": [[37, 29], + [30, 35], + [12, 1], + [13, 8], + [13, 14]] + }, + { + "MapObject": "chair", + "Positions": [[37, 30], + [30, 36], + [12, 2], + [12, 9], + [13, 15]] + }, + { + "MapObject": "cabinet_server", + "Positions": [[38, 29], + [58, 1], + [58, 3], + [58, 5], + [13, 1], + [11, 1]] + }, + { + "MapObject": "floor_console", + "Positions": [[35, 29]] + }, + { + "MapObject": "box3_green", + "Positions": [[45, 19]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[45, 11], + [46, 11], + [52, 11], + [39, 13], + [40, 12]] + }, + { + "MapObject": "bulletmarks", + "Positions": [[57, 19], + [39, 1], + [43, 1], + [44, 1]] + }, + { + "MapObject": "safe2", + "Positions": [[46, 17], + [42, 17]] + }, + { + "MapObject": "tree_autumn", + "Positions": [[52, 5], + [18, 26], + [8, 27]] + }, + { + "MapObject": "tree", + "Positions": [[47, 6], + [51, 4], + [8, 37], + [9, 25], + [7, 17], + [7, 26]] + }, + { + "MapObject": "wall_stuff", + "Positions": [[54, 1], + [6, 14]] + }, + { + "MapObject": "rocket", + "Positions": [[22, 11], + [25, 6], + [19, 8], + [20, 15]] + }, + { + "MapObject": "table_clothed", + "Positions": [[11, 15], + [12, 8]] + }, + { + "MapObject": "goo", + "Positions": [[20, 11], + [25, 8], + [25, 11]] + }, + { + "MapObject": "wall_goo", + "Positions": [[8, 35]] + }, + { + "MapObject": "plant", + "Positions": [[11, 14]] + }, + { + "MapObject": "box3_red", + "Positions": [[25, 1], + [26, 1], + [28, 1], + [27, 1], + [24, 1], + [22, 1]] + }, + { + "MapObject": "barrel_skull", + "Positions": [[11, 24]] + }, + { + "MapObject": "box3", + "Positions": [[58, 15]] + }, + { + "MapObject": "rocket_wreck", + "Positions": [[46, 26], + [22, 5], + [28, 9], + [22, 15], + [17, 11], + [20, 6], + [28, 13]] + }, + { + "MapObject": "crate2_wreck", + "Positions": [[49, 27], + [49, 28], + [57, 12], + [42, 5], + [40, 4], + [40, 5], + [18, 32], + [20, 34], + [21, 33], + [20, 29]] + }, + { + "MapObject": "table_wood_wreck", + "Positions": [[46, 31]] + }, + { + "MapObject": "safe_wreck", + "Positions": [[53, 30]] + }, + { + "MapObject": "crate_wreck", + "Positions": [[41, 5], + [43, 5], + [43, 4], + [39, 6]] + }, + { + "MapObject": "barrel_blue_wreck", + "Positions": [[41, 6]] + }, + { + "MapObject": "barrel_wood_wreck", + "Positions": [[49, 5]] + }, + { + "MapObject": "tree_dead_wreck", + "Positions": [[21, 31], + [21, 32], + [22, 6]] + }, + { + "MapObject": "barrel_wood_wreck", + "Positions": [[20, 30], + [19, 31]] + }, + { + "MapObject": "plant_wreck", + "Positions": [[22, 29]] + }, + { + "MapObject": "tree_wreck", + "Positions": [[24, 11]] + }, + { + "MapObject": "tree_autumn_wreck", + "Positions": [[17, 6]] + }], + "StaticCharacters": [{ + "Index": 33, + "Positions": [[12, 3]] + }, + { + "Index": 34, + "Positions": [[30, 37]] + }, + { + "Index": 35, + "Positions": [[36, 30]] + }, + { + "Index": 32, + "Positions": [[27, 22], + [41, 15]] + }, + { + "Index": 36, + "Positions": [[22, 27]] + }, + { + "Index": 37, + "Positions": [[29, 10]] + }, + { + "Index": 38, + "Positions": [[55, 28]] + }, + { + "Index": 22, + "Positions": [[43, 13], + [35, 15]] + }, + { + "Index": 30, + "Positions": [[47, 15]] + }, + { + "Index": 10, + "Positions": [[8, 29]] + }, + { + "Index": 8, + "Positions": [[8, 33]] + }, + { + "Index": 3, + "Positions": [[45, 4]] + }, + { + "Index": 4, + "Positions": [[57, 4]] + }], + "StaticObjectives": [], + "StaticKeys": [{ + "Index": 0, + "Positions": [[39, 29]] + }, + { + "Index": 3, + "Positions": [[12, 15]] + }, + { + "Index": 1, + "Positions": [[31, 36]] + }], + "StaticPickups": [], + "Start": [3, 5], + "Exits": [{ + "Rect": [36, + 21, + 2, + 2], + "Mission": 5, + "Hidden": false + }] + }, + { + "Title": "The Fallen", + "Description": "As you meet \"The Fallen\" you notice: Those are braindead, zombie-like creatures. There is nothing you can do for them. You decide to pit them against your followers by creating a diversion.", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "plain", + "Objectives": [{ + "Description": "Check what's in those crates", + "Type": "Destroy", + "MapObject": "box", + "Count": 9, + "Required": 4, + "Flags": 0 + }, + { + "Description": "Smash to distract", + "Type": "Destroy", + "MapObject": "box", + "Count": 10, + "Required": 7, + "Flags": 0 + }], + "Enemies": [39, + 40, + 41, + 42], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "crate2", + "Density": 15 + }, + { + "MapObject": "barrel_blue", + "Density": 5 + }, + { + "MapObject": "cabinet_server", + "Density": 5 + }, + { + "MapObject": "table_steel", + "Density": 10 + }, + { + "MapObject": "safe2", + "Density": 20 + }], + "EnemyDensity": 60, + "Weapons": ["Fire Breath", + "Psychokinetic Beam", + "Paralyzing Venom Spit"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "fcfcfcff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed2", + "Mask": "00c0c0ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "707070ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 13, + "WallLength": 26, + "CorridorWidth": 1, + "Rooms": { + "Count": 7, + "Min": 5, + "Max": 13, + "Edge": false, + "Overlap": true, + "Walls": 0, + "WallLength": 1, + "WallPad": 1 + }, + "Squares": 0, + "ExitEnabled": false, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 3 + }, + "Pillars": { + "Count": 2, + "Min": 1, + "Max": 3 + } + }, + { + "Title": "Cyberwarfare labs", + "Description": "Your distraction more or less worked. To get to \"Project Brutus\" you need to pass the cyberwarfare wing, a giant data center.", + "Type": "Static", + "Width": 54, + "Height": 54, + "ExitStyle": "hazard", + "KeyStyle": "cube", + "Objectives": [{ + "Description": "I wonder what this will get on CyberBay...", + "Type": "Collect", + "Pickup": "pci_card", + "Count": 3, + "Required": 0, + "Flags": 0 + }, + { + "Description": "What a fine brand of liqueur.", + "Type": "Collect", + "Pickup": "bottle2", + "Count": 1, + "Required": 0, + "Flags": 0 + }, + { + "Description": "Bindows XD Disk 1\/3", + "Type": "Collect", + "Pickup": "cd", + "Count": 1, + "Required": 0, + "Flags": 0 + }, + { + "Description": "It's those guys again...", + "Type": "Kill", + "Index": 0, + "Count": 17, + "Required": 0, + "Flags": 0 + }], + "Enemies": [24, + 25, + 26, + 49, + 48, + 47, + 46, + 45, + 44, + 43], + "SpecialChars": [8, + 9, + 10, + 11, + 12, + 30, + 31, + 32, + 29], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Fire Breath", + "Psychokinetic Beam", + "Paralyzing Venom Spit"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "fc0000ff", + "MaskAlt": "ccddccff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "fcfcfcff", + "MaskAlt": "ccddccff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "grid", + "Mask": "fcfcfcff", + "MaskAlt": "ccddccff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,3,3,3,0,1,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,0,1,1,1,0,1,3,0,0,0,0,0,0,0,0,0,3,1,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,0,0,0,1,0,1,3,0,0,0,0,0,0,0,0,0,3,1,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,1", + "1,0,1,1,1,0,1,3,0,0,0,0,0,0,0,0,0,3,1,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,0,0,0,0,0,1,3,0,0,0,0,0,0,0,0,0,3,1,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,3,0,0,0,3,1,3,0,0,0,0,0,0,0,0,0,3,1,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,3,0,0,0,3,1,3,0,0,0,0,0,0,0,0,0,3,1,4,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,3,0,0,0,3,2,3,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,3,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,3,0,0,0,3,2,3,3,3,3,3,3,3,3,3,3,3,2,0,2,0,0,0,0,0,0,0,0,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,3,0,0,0,3,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,3,3,3,3,3,3,3,3,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,3,0,0,0,3,1,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,3,3,3,3,3,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,3,0,0,0,3,1,3,0,0,0,0,0,0,0,0,0,3,1,4,1,3,3,3,3,3,3,3,3,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,3,0,0,0,3,1,3,0,0,0,0,0,0,0,0,0,3,1,4,1,3,3,3,3,3,3,3,3,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,3,0,0,0,3,1,3,0,0,0,0,0,0,0,0,0,3,1,4,1,3,3,3,3,3,3,3,3,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,3,0,0,0,3,1,3,0,0,0,0,0,0,0,0,0,3,1,4,1,3,3,3,3,3,3,3,3,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,3,0,0,0,3,1,3,0,0,0,0,0,0,0,0,0,3,1,4,1,3,3,3,3,3,3,3,3,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,3,0,0,0,3,2,3,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,3,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,3,0,0,0,3,2,3,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,3,0,0,0,3,1,3,0,0,0,0,0,0,0,0,0,3,1,4,1,3,3,3,3,3,3,3,3,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1", + "1,3,3,3,3,3,1,3,0,0,0,0,0,0,0,0,0,3,1,4,1,3,3,3,3,3,3,3,3,0,0,0,3,3,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,3,3,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,1,3,3,3,3,3,3,3,3,0,0,0,3,3,3,3,3,0,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1,3,3,3,3,3,3,3,3,3,1", + "1,3,1,1,1,3,1,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1,3,1,3,3,3,3,3,3,3,1", + "1,3,1,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1,3,1,3,3,3,3,3,3,3,1", + "1,3,1,1,1,3,1,3,3,3,3,3,3,3,3,3,3,3,1,4,1,3,3,3,3,3,3,3,3,3,0,0,0,0,3,3,3,3,3,3,3,3,3,1,3,1,3,1,3,3,3,3,3,1", + "1,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,1,4,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,3,1,3,1,3,1,3,3,3,3,3,1", + "1,3,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,1,3,3,3,3,3,3,1,3,1,3,1,3,1,3,1,3,3,3,1", + "1,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,3,3,3,3,3,3,1,3,1,3,1,3,1,3,1,3,3,3,1", + "1,3,1,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,1,3,0,0,3,1,3,3,3,3,3,3,1,3,1,3,1,3,1,3,3,3,3,3,1", + "1,3,1,3,3,3,3,3,3,3,3,1,1,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,1,3,0,0,3,1,3,3,3,3,3,3,1,3,1,3,1,3,1,3,3,3,3,3,1", + "1,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,1,3,0,0,3,1,3,3,3,3,3,3,1,3,1,3,1,3,3,3,3,3,3,3,1", + "1,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,1,3,0,0,3,1,3,3,3,3,3,3,1,3,1,3,1,3,3,3,3,3,3,3,1", + "1,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,1,3,0,0,3,1,3,3,3,3,3,3,1,3,1,3,3,3,3,3,3,3,3,3,1", + "1,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,1,3,0,0,3,1,1,1,1,1,1,1,1,3,1,3,3,3,3,3,3,3,3,3,1", + "1,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,1,3,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,3,3,3,1,1,1,1,3,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,1,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,3,3,3,3,3,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,1,3,3,3,3,3,1,1,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,1", + "1,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,1", + "1,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1", + "1,3,1,3,3,3,3,3,3,3,3,3,3,3,1,1,1,2,2,1,2,2,1,1,1,1,1,2,2,1,2,2,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,3,3,1", + "1,3,1,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1", + "1,3,1,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1", + "1,3,1,1,1,1,1,3,3,3,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1", + "1,3,3,3,3,3,1,3,3,3,3,3,3,3,1,3,3,1,1,1,1,1,2,2,1,3,3,1,1,1,1,1,2,2,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1", + "1,3,1,1,1,3,1,3,3,3,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1", + "1,3,1,3,3,3,1,3,3,3,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1", + "1,3,1,1,1,3,1,3,3,3,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,0,1,3,3,3,3,1,3,3,3,3,1,3,3,3,3,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "plant", + "Positions": [[5, 6], + [1, 12], + [12, 1], + [20, 39], + [15, 50], + [45, 43], + [50, 43]] + }, + { + "MapObject": "rod", + "Positions": [[5, 14], + [27, 1]] + }, + { + "MapObject": "crate2", + "Positions": [[1, 18], + [35, 20], + [35, 21], + [36, 21], + [35, 18], + [52, 11], + [48, 1], + [52, 35], + [52, 36], + [51, 36]] + }, + { + "MapObject": "crate", + "Positions": [[1, 17], + [49, 1]] + }, + { + "MapObject": "table_wood_round_terminal", + "Positions": [[7, 14], + [8, 14], + [10, 14], + [12, 14], + [13, 14], + [7, 20], + [9, 20], + [11, 20], + [13, 20], + [15, 20], + [7, 3], + [10, 3], + [13, 3], + [7, 5], + [10, 5], + [13, 5], + [49, 18], + [47, 18], + [16, 44], + [20, 48], + [31, 48], + [30, 48], + [27, 48]] + }, + { + "MapObject": "table_steel", + "Positions": [[9, 14], + [11, 14], + [48, 18], + [20, 32], + [21, 32], + [20, 33], + [20, 34], + [20, 35], + [21, 35], + [22, 35], + [25, 32], + [26, 32], + [27, 32], + [27, 33], + [27, 34], + [27, 35], + [26, 35], + [22, 32], + [23, 32], + [24, 32], + [23, 44], + [21, 48], + [15, 44], + [26, 44], + [28, 48], + [32, 44]] + }, + { + "MapObject": "safe2", + "Positions": [[17, 12], + [15, 12], + [15, 14], + [17, 14], + [17, 16], + [15, 16], + [17, 1], + [15, 1], + [15, 3], + [17, 3], + [3, 31], + [4, 31], + [5, 31], + [6, 31], + [3, 33], + [4, 33], + [5, 33], + [6, 33], + [3, 35], + [4, 35], + [5, 35], + [6, 35], + [3, 37], + [4, 37], + [5, 37], + [6, 37], + [3, 39], + [4, 39], + [5, 39], + [6, 39], + [3, 41], + [4, 41], + [5, 41], + [6, 41], + [3, 43], + [4, 43], + [5, 43], + [6, 43], + [3, 45], + [4, 45], + [5, 45], + [6, 45]] + }, + { + "MapObject": "chair", + "Positions": [[7, 15], + [10, 15], + [13, 15], + [7, 21], + [9, 21], + [10, 21], + [13, 21], + [7, 4], + [10, 4], + [13, 4], + [10, 6], + [13, 6], + [7, 6], + [49, 19], + [48, 21], + [40, 46], + [38, 50], + [42, 49], + [50, 45], + [51, 51], + [21, 36], + [19, 35], + [19, 34], + [19, 33], + [19, 32], + [20, 31], + [21, 31], + [26, 31], + [25, 31], + [24, 31], + [23, 31], + [22, 31], + [27, 31], + [28, 32], + [28, 33], + [28, 34], + [28, 35], + [27, 36], + [26, 36], + [15, 45], + [18, 48], + [20, 49], + [23, 45], + [28, 49], + [30, 49], + [31, 49]] + }, + { + "MapObject": "wall_stuff", + "Positions": [[9, 12]] + }, + { + "MapObject": "cabinet_server", + "Positions": [[35, 4], + [37, 4], + [35, 6], + [37, 6], + [35, 8], + [37, 8], + [35, 10], + [37, 10], + [35, 12], + [37, 12], + [35, 14], + [37, 14], + [39, 13], + [39, 11], + [39, 9], + [39, 7], + [39, 5], + [49, 4], + [49, 6], + [49, 8], + [49, 10], + [49, 12], + [49, 14], + [47, 14], + [47, 12], + [47, 10], + [47, 8], + [47, 6], + [47, 4], + [45, 5], + [45, 7], + [45, 9], + [45, 11], + [45, 13], + [13, 31], + [14, 31], + [10, 39], + [11, 39]] + }, + { + "MapObject": "box3_gray", + "Positions": [[35, 19], + [9, 24], + [11, 24], + [13, 24]] + }, + { + "MapObject": "table", + "Positions": [[24, 14], + [25, 14], + [24, 24], + [25, 24], + [52, 50], + [52, 49], + [52, 45], + [52, 46], + [35, 45], + [35, 46], + [35, 47]] + }, + { + "MapObject": "table_clothed", + "Positions": [[48, 23], + [41, 47], + [44, 45], + [45, 49], + [37, 45], + [50, 46]] + }, + { + "MapObject": "bookshelf", + "Positions": [[24, 1], + [25, 1], + [25, 44], + [33, 44], + [22, 44], + [17, 48], + [49, 16], + [48, 16], + [47, 16]] + }, + { + "MapObject": "table_wood", + "Positions": [[48, 46], + [48, 50], + [42, 50], + [40, 45]] + }, + { + "MapObject": "box3_green", + "Positions": [[52, 47], + [52, 48]] + }, + { + "MapObject": "floor_console", + "Positions": [[25, 49], + [25, 48]] + }, + { + "MapObject": "tree", + "Positions": [[37, 29], + [40, 30], + [36, 30], + [36, 35], + [40, 35], + [39, 34], + [36, 32], + [37, 32], + [38, 30], + [38, 32], + [39, 31], + [38, 33], + [37, 33], + [40, 32], + [35, 33], + [35, 30]] + }, + { + "MapObject": "crate2_wreck", + "Positions": [[52, 34], + [37, 19]] + }], + "StaticCharacters": [{ + "Index": 43, + "Positions": [[47, 19]] + }, + { + "Index": 44, + "Positions": [[39, 46]] + }, + { + "Index": 45, + "Positions": [[20, 36]] + }, + { + "Index": 46, + "Positions": [[18, 49]] + }, + { + "Index": 47, + "Positions": [[12, 2]] + }, + { + "Index": 48, + "Positions": [[9, 15]] + }, + { + "Index": 49, + "Positions": [[8, 3]] + }, + { + "Index": 26, + "Positions": [[15, 5]] + }, + { + "Index": 25, + "Positions": [[16, 13]] + }, + { + "Index": 24, + "Positions": [[13, 12]] + }], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[36, 18], + [48, 19], + [36, 20]], + "Indices": [0, + 0, + 0] + }, + { + "Index": 1, + "Positions": [[49, 23]], + "Indices": [0] + }, + { + "Index": 2, + "Positions": [[21, 49]], + "Indices": [0] + }, + { + "Index": 3, + "Positions": [[48, 37], + [12, 8], + [51, 38], + [16, 25], + [3, 12], + [24, 37], + [2, 16], + [43, 47], + [15, 26], + [27, 10], + [22, 22], + [25, 21], + [27, 22], + [26, 50], + [8, 49], + [9, 47], + [41, 17]], + "Indices": [0, + 0, + 1, + 1, + 2, + 2, + 3, + 3, + 4, + 4, + 5, + 6, + 7, + 5, + 0, + 8, + 3] + }], + "StaticKeys": [{ + "Index": 0, + "Positions": [[12, 15]] + }], + "StaticPickups": [], + "Start": [3, 3], + "Exits": [{ + "Rect": [2, + 25, + 2, + 2], + "Mission": 7, + "Hidden": false + }] + }, + { + "Title": "Project Brutus", + "Description": "As you enter the room, you get attacked by the project, an attempt to create a neurologically linked cyborg.", + "Type": "Classic", + "Width": 33, + "Height": 30, + "ExitStyle": "hazard", + "KeyStyle": "cube", + "Objectives": [{ + "Description": "Get rid of the cyborgs", + "Type": "Kill", + "Index": 0, + "Count": 10, + "Required": 10, + "Flags": 0 + }, + { + "Description": "Destroy their mainframe", + "Type": "Destroy", + "MapObject": "cabinet_server", + "Count": 3, + "Required": 3, + "Flags": 4 + }], + "Enemies": [], + "SpecialChars": [50, + 51, + 52, + 53], + "MapObjectDensities": [{ + "MapObject": "rod", + "Density": 10 + }, + { + "MapObject": "barrel_blue", + "Density": 10 + }, + { + "MapObject": "crate2", + "Density": 20 + }], + "EnemyDensity": 0, + "Weapons": ["Fire Breath", + "Psychokinetic Beam", + "Paralyzing Venom Spit"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "fc9000ff", + "MaskAlt": "004464ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "e00000ff", + "MaskAlt": "004464ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "348434ff", + "MaskAlt": "004464ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 16, + "WallLength": 14, + "CorridorWidth": 1, + "Rooms": { + "Count": 3, + "Min": 7, + "Max": 8, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 1, + "WallPad": 1 + }, + "Squares": 0, + "ExitEnabled": false, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 2 + }, + "Pillars": { + "Count": 0, + "Min": 1, + "Max": 1 + } + }, + { + "Title": "Heavy armory", + "Description": "To get to project Nexus and \"The Specters\" you need to pass the heavy armory. You might want to be careful there.", + "Type": "Static", + "Width": 49, + "Height": 51, + "ExitStyle": "plate", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Exploding things is just fun!", + "Type": "Destroy", + "MapObject": "box_metal_green", + "Count": 11, + "Required": 0, + "Flags": 1 + }, + { + "Description": "I wonder who left this here...", + "Type": "Collect", + "Pickup": "disk2", + "Count": 6, + "Required": 0, + "Flags": 0 + }], + "Enemies": [13, + 8, + 27, + 18, + 12], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 3, + "Weapons": ["Fire Breath", + "Psychokinetic Beam", + "Paralyzing Venom Spit"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "848484ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "striped", + "Mask": "fcb800ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "804000ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,3,3,3,3,3,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,3,3,3,3,3,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,3,3,3,3,3,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,3,3,3,3,3,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,3,3,3,3,3,4,4,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,3,3,3,3,3,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,3,3,3,3,3,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,4,4,3,3,3,3,3,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,3,1,0,0,1,3,1,0,0,1,3,1,0,0,1,3,1,0,0,1,4,4,3,3,3,3,3,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,4,4,3,3,3,3,3,4,4,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,3,3,3,3,3,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,3,3,3,3,3,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,3,3,3,3,3,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,4,4,3,3,3,3,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,3,3,1,0,0,1,3,1,0,0,1,3,1,0,0,1,3,1,0,0,1,4,4,3,3,3,3,3,3,3,2,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1", + "1,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,1,1,0,0,1,4,4,3,3,3,3,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,3,3,3,3,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1", + "4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,4,4,4,4", + "4,4,4,4,4,4,1,2,2,2,2,2,2,2,2,2,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,2,2,2,2,2,2,2,1,4,4,4,4", + "4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,4,4,4,4", + "4,4,4,4,4,4,1,2,2,2,2,2,2,2,2,2,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,2,2,2,2,2,2,2,1,4,4,4,4", + "4,4,4,4,4,4,1,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,4,4,4,4", + "4,4,4,4,4,4,1,2,2,2,2,2,2,2,2,2,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,2,2,2,2,2,2,2,1,4,4,4,4", + "0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,0,0,0,0,0,0,0,1,4,4,4,4", + "1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,1,0,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,1", + "1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,4,4,4,4,4,4,4,4,4,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1", + "1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,4,4,4,4,4,4,4,4,4,1,0,1,0,0,1,1,0,0,0,0,1,1,0,0,1,0,1", + "1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,4,4,4,4,4,4,4,4,4,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1", + "1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,0,0,1,1,0,1,0,1,0,1", + "1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,1,0,1,0,1,0,1", + "1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,1,0,1,0,1", + "1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,0,1", + "1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,1,0,1", + "1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,1,0,1,0,1", + "1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,0,0,0,1,0,1,0,1,0,1", + "1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,4,4,4,4,4,4,4,4,4,1,0,1,0,1,0,1,0,0,0,0,1,0,1,0,1,0,1", + "1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,4,4,4,4,4,4,4,4,4,1,0,1,0,1,0,1,1,0,0,1,1,0,1,0,1,0,1", + "1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,4,4,4,4,4,4,4,4,4,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1", + "1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,4,4,4,4,4,4,4,4,4,1,0,1,0,0,1,1,1,1,1,1,1,1,0,0,1,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,1,0,1,0,0,0,0,0,1,1,0,0,0,0,0,1,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "rocket", + "Positions": [[10, 10], + [8, 12], + [5, 10], + [3, 12], + [15, 10], + [13, 12], + [18, 12], + [20, 10], + [10, 13], + [5, 13], + [15, 13], + [20, 13], + [4, 16], + [9, 16], + [14, 16], + [19, 16], + [14, 7], + [19, 7], + [9, 7], + [4, 7], + [26, 34], + [26, 35], + [26, 36], + [26, 37], + [26, 38], + [26, 39], + [26, 40], + [26, 41], + [25, 34], + [25, 35], + [25, 36], + [25, 37], + [25, 38], + [25, 39], + [25, 40], + [25, 41], + [23, 34], + [21, 34], + [23, 41], + [21, 41], + [16, 6], + [11, 6], + [6, 6], + [17, 33], + [17, 42], + [20, 44], + [20, 46], + [20, 31], + [20, 29], + [17, 28], + [17, 49], + [14, 28], + [14, 49], + [15, 45], + [15, 30], + [15, 31], + [15, 46], + [14, 40], + [14, 41], + [14, 35], + [14, 34], + [12, 47], + [12, 29], + [10, 49], + [7, 49], + [4, 49], + [6, 46], + [9, 43], + [3, 42], + [2, 46], + [1, 36], + [4, 34], + [2, 30], + [6, 29], + [9, 30], + [9, 35]] + }, + { + "MapObject": "barrel_flame", + "Positions": [[34, 30], + [36, 33], + [36, 34], + [36, 32], + [34, 37], + [34, 40], + [36, 40], + [36, 37], + [38, 34], + [38, 36], + [41, 34], + [41, 36], + [41, 38], + [38, 38], + [41, 41], + [41, 43], + [38, 43], + [38, 41], + [35, 45], + [36, 43], + [34, 43], + [43, 32], + [43, 33], + [43, 34], + [43, 35], + [43, 39], + [45, 41], + [39, 32], + [32, 31], + [47, 32], + [45, 28], + [40, 30], + [38, 29], + [37, 27], + [38, 27], + [39, 27], + [40, 27], + [41, 27], + [45, 46], + [47, 39]] + }, + { + "MapObject": "crate2", + "Positions": [[20, 1], + [19, 1], + [18, 1], + [19, 2], + [1, 28], + [1, 29], + [2, 28], + [36, 10], + [37, 10], + [37, 9]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[3, 28], + [1, 41], + [1, 42], + [45, 49], + [44, 49], + [43, 49], + [39, 1]] + }, + { + "MapObject": "crate", + "Positions": [[38, 1]] + }, + { + "MapObject": "barrel_skull", + "Positions": [[47, 6], + [34, 18], + [43, 13], + [37, 5]] + }, + { + "MapObject": "box3_green", + "Positions": [[47, 8]] + }], + "StaticCharacters": [{ + "Index": 31, + "Positions": [[41, 9]] + }], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[12, 1], + [1, 49], + [1, 43], + [45, 39], + [44, 39], + [46, 39], + [47, 44], + [47, 43], + [32, 29], + [37, 1], + [45, 4]], + "Indices": [0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0] + }, + { + "Index": 1, + "Positions": [[1, 30], + [42, 47], + [19, 2], + [18, 1], + [19, 1], + [20, 1]], + "Indices": [0, + 0, + 0, + 0, + 0, + 0] + }], + "StaticKeys": [], + "StaticPickups": [], + "Start": [3, 3], + "Exits": [{ + "Rect": [22, + 0, + 8, + 19], + "Mission": 9, + "Hidden": false + }] + }, + { + "Title": "Nexus", + "Description": "There is no sign of a \"Specter\". One scientist says the last one alive fled from the death squads. However, Nexus is still here and you better rescue it.", + "Type": "Static", + "Width": 48, + "Height": 48, + "ExitStyle": "plate", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Rescue Nexus", + "Type": "Rescue", + "Index": 62, + "Count": 1, + "Required": 1, + "Flags": 4 + }, + { + "Description": "Decimate death squad", + "Type": "Kill", + "Index": 0, + "Count": 11, + "Required": 0, + "Flags": 9 + }, + { + "Description": "That wasn't edible after all...", + "Type": "Collect", + "Pickup": "bottle_orange", + "Count": 1, + "Required": 0, + "Flags": 9 + }, + { + "Description": "Bindows XD Disk 2\/3", + "Type": "Collect", + "Pickup": "cd", + "Count": 1, + "Required": 0, + "Flags": 9 + }], + "Enemies": [], + "SpecialChars": [54, + 55, + 56, + 57, + 58, + 59, + 60, + 61], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Fire Breath", + "Psychokinetic Beam", + "Paralyzing Venom Spit"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel2", + "Mask": "ffffffff", + "MaskAlt": "989898ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "striped", + "Mask": "8484acff", + "MaskAlt": "989898ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "8484acff", + "MaskAlt": "989898ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,1,1,1,3,3,3,1,1,1,3,3,3,1,1,1,3,1,3,1,1,1,3,3,3,3,3,3,1,1,1,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,1,3,1,3,3,3,1,3,1,3,3,3,1,3,1,3,1,3,1,3,1,3,3,3,3,3,3,1,3,1,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,1,1,1,3,3,3,1,1,1,3,3,3,1,1,1,3,1,3,1,1,1,3,3,3,3,3,3,1,1,1,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,1,1,1,3,3,3,3,3,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,1,1,1,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,1,3,1,3,1", + "1,1,1,1,1,1,1,1,1,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,1,1,1,3,1", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,1,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,1,3,1,1,1,3,3,3,3,3,3,1,1,1,3,1", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,1,3,1,1,1,3,3,3,1,0,1,3,3,3,1,1,1,3,1,3,1,3,1,3,3,3,3,3,3,1,3,1,3,1", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,1,3,1,3,1,3,3,3,1,3,1,3,3,3,1,3,1,3,1,3,1,1,1,3,3,3,3,3,3,1,1,1,3,1", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,1,3,1,1,1,3,3,3,1,1,1,3,3,3,1,1,1,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "4,4,4,4,4,4,4,4,1,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,3,1,1,1,3,3,3,3,3,3,1,1,1,3,1", + "1,1,1,1,1,1,1,1,1,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,3,1,3,1,3,3,3,3,3,3,1,3,1,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,3,1,1,1,3,3,3,3,3,3,1,1,1,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,3,3,3,3,3,3,3,3,3,3,1,1,1,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,3,3,3,3,3,3,3,3,3,3,1,3,1,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,3,3,3,3,3,3,3,3,3,1,1,1,3,1", + "1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,3,3,3,3,3,3,3,3,3,1,1,1,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,3,3,3,3,3,3,3,3,3,3,1,0,1,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,3,3,1,1,1,1,1,1,3,3,1,0,1,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,3,3,1,0,0,0,0,1,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,1,3,3,1,0,0,0,0,0,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,1,1,1,1,1,1,1,1,1,1,1,1,3,1,3,3,1,3,3,1,0,0,0,0,0,3,3,3,3,3,3,1", + "1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,1,0,0,3,3,3,3,3,3,3,3,3,3,1,3,3,1,3,3,1,3,3,3,3,1,3,3,3,3,3,3,1", + "1,3,3,3,3,1,2,2,2,1,3,3,3,3,1,3,1,0,0,1,1,1,1,1,1,1,1,1,3,1,3,3,1,3,3,1,1,1,1,1,1,3,3,1,1,1,3,1", + "1,3,3,3,3,1,3,3,3,1,3,3,3,3,1,3,1,0,0,1,1,1,1,1,1,1,1,1,3,1,3,3,1,3,3,3,3,3,3,3,3,3,3,1,3,1,3,1", + "1,3,3,3,3,1,3,3,3,1,3,3,3,3,1,3,1,2,2,1,1,1,1,1,1,1,1,1,3,1,3,3,1,3,3,3,3,3,3,3,3,3,3,1,1,1,3,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,2048,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "table_wood_round_terminal", + "Positions": [[12, 30], + [30, 41], + [37, 40], + [12, 1], + [13, 1], + [12, 3], + [13, 3], + [1, 3], + [2, 3], + [2, 1], + [1, 1], + [19, 3], + [25, 3], + [31, 3], + [31, 18], + [25, 18], + [19, 18], + [33, 3], + [46, 3], + [46, 10], + [33, 17], + [46, 24], + [46, 45]] + }, + { + "MapObject": "chair", + "Positions": [[12, 31], + [30, 42], + [36, 42], + [1, 4], + [1, 2], + [2, 2], + [13, 2], + [13, 4], + [12, 2], + [12, 4]] + }, + { + "MapObject": "safe2", + "Positions": [[36, 40], + [15, 23], + [17, 23], + [19, 23], + [18, 23], + [16, 23]] + }, + { + "MapObject": "table_lab", + "Positions": [[5, 1], + [11, 1], + [11, 3]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[28, 23], + [27, 23], + [26, 23], + [27, 24], + [28, 24], + [28, 25], + [16, 27], + [18, 25], + [20, 27]] + }, + { + "MapObject": "scratch", + "Positions": [[22, 23], + [35, 19]] + }, + { + "MapObject": "skull", + "Positions": [[38, 31]] + }, + { + "MapObject": "blood1", + "Positions": [[40, 14], + [24, 36], + [20, 26]] + }, + { + "MapObject": "bulletmarks", + "Positions": [[43, 26]] + }, + { + "MapObject": "bloodstain", + "Positions": [[34, 26], + [45, 40]] + }, + { + "MapObject": "bone_blood", + "Positions": [[44, 41], + [26, 39]] + }, + { + "MapObject": "blood2", + "Positions": [[43, 40]] + }, + { + "MapObject": "plant", + "Positions": [[9, 20], + [9, 14], + [13, 14], + [13, 20]] + }, + { + "MapObject": "crate", + "Positions": [[30, 24], + [31, 24], + [31, 26], + [30, 27]] + }, + { + "MapObject": "crate2", + "Positions": [[30, 26], + [31, 27], + [30, 25], + [31, 25], + [30, 23], + [31, 23]] + }, + { + "MapObject": "table_steel", + "Positions": [[15, 31], + [15, 32]] + }, + { + "MapObject": "blood0", + "Positions": [[17, 28], + [25, 40]] + }, + { + "MapObject": "table_wood_round_terminal_wreck", + "Positions": [[46, 38], + [46, 32], + [46, 17], + [33, 24]] + }, + { + "MapObject": "rocket_wreck", + "Positions": [[37, 34]] + }, + { + "MapObject": "table_wood_wreck", + "Positions": [[23, 25]] + }, + { + "MapObject": "barrel_blue_wreck", + "Positions": [[19, 27], + [16, 25], + [17, 26], + [17, 25]] + }, + { + "MapObject": "safe_wreck", + "Positions": [[15, 33]] + }, + { + "MapObject": "crate2_wreck", + "Positions": [[25, 29], + [30, 28]] + }, + { + "MapObject": "floor_console_wreck", + "Positions": [[21, 31]] + }], + "StaticCharacters": [{ + "Index": 3, + "Positions": [[3, 2]] + }, + { + "Index": 15, + "Positions": [[2, 8]] + }, + { + "Index": 7, + "Positions": [[13, 31]] + }, + { + "Index": 48, + "Positions": [[31, 43]] + }, + { + "Index": 5, + "Positions": [[31, 1]] + }, + { + "Index": 6, + "Positions": [[11, 4]] + }, + { + "Index": 28, + "Positions": [[39, 41]] + }, + { + "Index": 33, + "Positions": [[37, 41]] + }], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[23, 16]], + "Indices": [0] + }, + { + "Index": 1, + "Positions": [[11, 30], + [2, 26], + [20, 10], + [23, 13], + [25, 8], + [29, 13], + [36, 14], + [15, 29], + [44, 6], + [21, 38], + [25, 25]], + "Indices": [0, + 1, + 2, + 3, + 4, + 5, + 6, + 1, + 7, + 7, + 2] + }, + { + "Index": 2, + "Positions": [[6, 1]], + "Indices": [0] + }, + { + "Index": 3, + "Positions": [[25, 19]], + "Indices": [0] + }], + "StaticKeys": [], + "StaticPickups": [], + "Start": [7, 38], + "Exits": [{ + "Rect": [16, + 42, + 11, + 5], + "Mission": 10, + "Hidden": false + }] + }, + { + "Title": "Run for it", + "Description": "Chaos is everywhere. You decide to use that opportunity to get to the heliport. Apparently you know how to fly such a thing. How convenient!", + "Type": "Static", + "Width": 16, + "Height": 90, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Take Nexus along", + "Type": "Rescue", + "Index": 62, + "Count": 1, + "Required": 1, + "Flags": 4 + }, + { + "Description": "Would be a dick move to take her stuff but let her to die...", + "Type": "Collect", + "Pickup": "sack", + "Count": 1, + "Required": 0, + "Flags": 9 + }], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Fire Breath", + "Psychokinetic Beam", + "Paralyzing Venom Spit"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "502800ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed2", + "Mask": "707070ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "cobble", + "Mask": "ac5400ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["4,4,1,4,4,4,1,1,1,1,1,1,4,4,4,4", + "4,1,1,1,1,1,1,3,1,1,3,1,1,1,4,4", + "4,1,0,0,1,0,1,3,3,3,3,3,3,1,4,4", + "4,1,0,0,0,0,0,0,0,0,0,0,0,1,1,4", + "4,1,1,0,0,0,0,0,0,0,0,0,0,0,1,4", + "4,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1", + "1,1,0,0,3,3,3,3,3,3,3,3,3,0,0,1", + "1,3,3,0,3,3,3,3,3,3,3,3,3,0,0,1", + "1,3,3,0,3,3,3,3,3,3,3,3,3,0,0,1", + "1,1,3,0,3,3,3,3,3,3,3,3,3,0,0,1", + "4,1,3,0,3,3,3,3,3,3,3,3,3,0,0,1", + "1,1,3,0,3,3,3,3,3,3,3,3,3,0,0,1", + "1,0,0,0,3,3,3,3,3,3,3,3,3,0,1,1", + "1,0,0,0,3,3,3,3,3,3,3,3,3,0,1,1", + "1,0,0,0,3,3,3,3,3,3,3,3,3,0,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,0,0,0,0,0,1,0,1,1,0,0,0,0,1", + "1,1,0,0,0,0,1,1,1,1,1,1,0,0,0,1", + "1,0,0,0,0,0,0,1,1,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1", + "1,0,0,0,0,0,0,1,0,1,0,0,0,1,1,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4", + "1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,4", + "1,1,1,1,1,0,0,0,0,0,0,0,1,4,4,4", + "4,4,1,1,1,0,0,0,0,0,0,0,1,4,4,4", + "4,4,1,0,0,0,0,1,0,0,0,0,1,4,4,4", + "4,1,1,1,1,1,1,1,0,0,0,0,1,1,4,4", + "1,1,3,3,3,1,1,1,0,0,0,0,1,1,4,4", + "1,3,3,3,3,3,1,0,0,0,0,0,3,1,1,4", + "1,3,3,3,3,3,2,0,0,0,0,0,3,1,1,4", + "1,3,3,3,3,3,2,0,0,0,0,0,0,1,1,4", + "1,3,3,3,3,3,2,0,0,0,0,0,0,0,1,1", + "1,3,3,3,3,3,2,0,0,0,0,0,0,0,0,1", + "1,3,3,3,3,3,2,0,0,0,0,0,1,1,1,1", + "1,3,3,3,3,3,1,0,0,0,0,0,1,4,4,4", + "1,3,3,3,3,3,1,0,0,0,0,0,1,4,4,4", + "1,1,1,1,1,1,1,1,0,0,0,0,1,4,4,4", + "4,4,4,4,1,1,1,0,0,0,0,1,1,4,4,4", + "4,4,4,1,1,0,0,0,0,0,0,0,1,4,4,4", + "4,4,1,1,0,0,0,0,0,0,0,0,1,4,4,4", + "4,4,1,3,0,0,0,0,0,0,0,1,1,4,4,4", + "4,4,1,3,0,0,0,0,0,1,1,1,4,4,4,4", + "4,4,1,3,0,0,0,0,0,0,0,1,1,4,4,4", + "1,1,1,0,0,0,0,0,0,0,0,1,1,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,3,1,1,4", + "1,1,1,0,0,0,1,1,0,1,0,0,3,3,1,1", + "4,1,1,0,0,0,0,0,1,0,0,0,0,3,3,1", + "4,1,0,0,0,0,0,0,0,0,0,0,0,0,3,1", + "1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1", + "1,0,1,0,0,0,0,0,0,0,0,0,0,1,1,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4", + "1,1,0,0,0,0,0,0,0,0,0,0,1,1,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,3,1,4,4", + "1,1,1,1,0,0,0,0,0,0,0,0,3,1,4,4", + "4,4,4,1,1,1,0,0,0,1,0,0,0,1,4,4", + "4,4,4,4,4,1,1,1,1,1,0,0,0,1,1,4", + "4,4,4,4,1,1,1,0,0,0,0,0,0,0,1,4", + "4,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1", + "4,1,3,3,1,0,0,0,0,0,0,0,0,0,0,1", + "4,1,3,3,0,0,0,0,0,0,0,0,0,0,1,1", + "4,1,3,3,0,0,0,0,0,0,0,0,0,1,1,1", + "1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4", + "1,0,0,0,0,0,0,0,0,0,0,1,1,1,4,4", + "1,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4", + "1,1,0,0,0,0,0,0,0,0,3,1,4,4,4,4", + "1,1,0,0,0,0,0,0,0,3,3,1,4,4,4,4", + "4,1,1,1,0,0,0,0,0,0,3,1,4,4,4,4", + "4,4,1,1,0,0,0,0,0,0,0,1,1,1,4,4", + "1,1,1,0,0,0,0,0,0,0,0,0,0,1,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,1,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,1", + "4,1,1,0,0,0,0,0,0,0,0,1,1,4,1,1", + "4,1,0,0,0,0,0,0,0,0,0,0,1,4,4,4", + "4,1,1,0,0,0,0,0,0,0,0,0,1,1,1,4", + "1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,4", + "1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,4", + "4,4,4,4,1,3,3,3,3,3,1,4,4,4,4,4", + "4,4,4,4,1,3,3,3,3,3,1,4,4,4,4,4", + "4,4,4,4,1,3,3,3,3,3,1,4,4,4,4,4", + "4,4,4,4,1,4,4,4,4,4,1,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,2048,2048,2048,2048,2048,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "barrel_blue", + "Positions": [[7, 1], + [12, 2], + [11, 2]] + }, + { + "MapObject": "barrel_skull", + "Positions": [[2, 10], + [2, 9], + [3, 42], + [10, 70], + [3, 63]] + }, + { + "MapObject": "crate2", + "Positions": [[3, 28], + [2, 62]] + }, + { + "MapObject": "table_steel", + "Positions": [[1, 33]] + }, + { + "MapObject": "table_wood_round_terminal", + "Positions": [[1, 29]] + }, + { + "MapObject": "chair", + "Positions": [[1, 30]] + }, + { + "MapObject": "rocket", + "Positions": [[12, 29]] + }, + { + "MapObject": "tree_dead", + "Positions": [[4, 54], + [1, 75], + [11, 83]] + }, + { + "MapObject": "bloodstain", + "Positions": [[12, 73], + [9, 22]] + }, + { + "MapObject": "scratch", + "Positions": [[5, 61]] + }, + { + "MapObject": "blood1", + "Positions": [[4, 34], + [7, 12]] + }, + { + "MapObject": "bone_blood", + "Positions": [[3, 20]] + }, + { + "MapObject": "crate", + "Positions": [[13, 47]] + }, + { + "MapObject": "rod", + "Positions": [[5, 13], + [5, 7], + [11, 7], + [11, 13]] + }, + { + "MapObject": "blood2", + "Positions": [[8, 49]] + }, + { + "MapObject": "crate_wreck", + "Positions": [[14, 14]] + }, + { + "MapObject": "table_wood_round_terminal_wreck", + "Positions": [[1, 32]] + }, + { + "MapObject": "barrel_flame_wreck", + "Positions": [[7, 48]] + }], + "StaticCharacters": [{ + "Index": 16, + "Positions": [[7, 54]] + }, + { + "Index": 12, + "Positions": [[12, 62]] + }, + { + "Index": 60, + "Positions": [[7, 44]] + }, + { + "Index": 17, + "Positions": [[3, 20]] + }, + { + "Index": 61, + "Positions": [[8, 10]] + }, + { + "Index": 63, + "Positions": [[2, 30]] + }, + { + "Index": 56, + "Positions": [[9, 34]] + }], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[6, 80]], + "Indices": [0] + }, + { + "Index": 1, + "Positions": [[2, 29]], + "Indices": [0] + }], + "StaticKeys": [], + "StaticPickups": [], + "Start": [7, 80], + "Exits": [{ + "Rect": [4, + 6, + 8, + 8], + "Mission": 11, + "Hidden": false + }] + }, + { + "Title": "The last specter", + "Description": "As you are about to enter the heli, you hear the SHHK-SHHK of a shotgun. \"So you and your friendos want to use the chopter? It's you or me, bucko!\" So be it.", + "Type": "Static", + "Width": 30, + "Height": 30, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Kill the \"Specter\" so you all can enter the chopper!", + "Type": "Kill", + "Index": 0, + "Count": 1, + "Required": 1, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [64], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Fire Breath", + "Psychokinetic Beam", + "Paralyzing Venom Spit"], + "Song": "", + "TileClasses": { + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "rock", + "Mask": "402000ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed2", + "Mask": "707070ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "cobble", + "Mask": "9c4c00ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["4,1,1,1,4,4,1,1,1,1,1,4,4,4,4,4,4,4,4,1,1,1,1,4,4,4,4,4,4,4", + "1,1,0,1,1,4,1,3,3,3,1,4,4,4,4,4,4,4,1,1,3,3,1,4,4,4,4,4,4,4", + "1,0,0,0,1,1,1,3,0,0,1,1,1,1,4,1,1,1,1,0,0,3,1,1,1,4,4,4,4,4", + "1,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,1,1,4,4,4,4", + "1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,4,4,4,4", + "4,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,4,4", + "4,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,1,4,4,4", + "1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,3,1,3,0,0,0,0,1,4,4,4", + "1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,1,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,1,1,4,4,4", + "1,0,0,1,0,0,0,1,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,1,4,4,4", + "1,0,0,1,0,0,1,1,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,1,4,4,4", + "1,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,1,1,1,1", + "1,1,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,1", + "1,1,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,1", + "4,1,1,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,3,3,3,1", + "4,1,0,0,0,0,0,1,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,1,0,0,3,3,3,1", + "4,1,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,0,0,0,1,0,0,0,0,0,0,1", + "1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1", + "1,3,3,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4", + "1,3,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4,4", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,4,4", + "1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,1,1,1,4,4", + "1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,1,1,4,4,4", + "1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,3,3,3,1,1,4,4,4", + "1,1,1,1,0,1,1,0,0,0,1,1,0,1,0,0,0,0,0,1,1,0,0,3,1,1,1,4,4,4", + "4,4,1,1,1,1,1,1,0,0,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,4,4,4,4", + "4,4,4,1,1,1,1,1,1,1,1,1,4,1,0,0,0,0,0,1,4,4,4,4,4,4,4,4,4,4"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "rod", + "Positions": [[11, 10], + [18, 10], + [18, 18], + [11, 18]] + }, + { + "MapObject": "barrel_skull", + "Positions": [[27, 14], + [28, 14], + [28, 15]] + }, + { + "MapObject": "crate2", + "Positions": [[21, 1]] + }, + { + "MapObject": "crate", + "Positions": [[7, 1]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[9, 1]] + }, + { + "MapObject": "blood2", + "Positions": [[14, 15]] + }, + { + "MapObject": "blood0", + "Positions": [[15, 14], + [4, 10]] + }, + { + "MapObject": "blood1", + "Positions": [[12, 11]] + }, + { + "MapObject": "skull", + "Positions": [[16, 16]] + }, + { + "MapObject": "bloodstain", + "Positions": [[20, 8]] + }, + { + "MapObject": "scratch", + "Positions": [[7, 18]] + }, + { + "MapObject": "bulletmarks", + "Positions": [[14, 5]] + }, + { + "MapObject": "rocket", + "Positions": [[6, 6]] + }, + { + "MapObject": "tree_autumn", + "Positions": [[2, 2]] + }, + { + "MapObject": "barrel_blue_wreck", + "Positions": [[1, 20], + [27, 17]] + }, + { + "MapObject": "rocket_wreck", + "Positions": [[18, 4]] + }, + { + "MapObject": "tree_dead_wreck", + "Positions": [[10, 23]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[14, 14]], + "Indices": [0] + }], + "StaticKeys": [], + "StaticPickups": [], + "Start": [16, 27], + "Exits": [{ + "Rect": [11, + 10, + 7, + 8], + "Mission": 12, + "Hidden": false + }] + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ogre.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ogre.cdogscpn/campaign.json new file mode 100644 index 00000000..27ec263e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ogre.cdogscpn/campaign.json @@ -0,0 +1,10 @@ +{ + "Version": 15, + "Title": "Ogre Rampage", + "Author": "Ronny Wester", + "Description": "Suddenly, Confederate installations come under sudden, and most unexpected, attack from Ogre troops. There has been no animosity between the Ogre Empire and the Confederation for ages. What's up?", + "Ammo": false, + "WeaponPersist": false, + "SkipWeaponMenu": false, + "Missions": 16 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ogre.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ogre.cdogscpn/characters.json new file mode 100644 index 00000000..0a39ea6a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ogre.cdogscpn/characters.json @@ -0,0 +1,699 @@ +{ + "Version": 13, + "Characters": [{ + "Class": "Ogre", + "Skin": "149c14ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "c00000ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 2, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "9c0000ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "c00000ff", + "speed": 256, + "Gun": "Knife", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 70, + "probabilityToTrack": 35, + "probabilityToShoot": 0, + "actionDelay": 10 + }, + { + "Class": "Ogre", + "Skin": "58589cff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "c00000ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 55, + "probabilityToTrack": 30, + "probabilityToShoot": 20, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "9c0000ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "c00000ff", + "speed": 256, + "Gun": "Flamer", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 65, + "probabilityToTrack": 40, + "probabilityToShoot": 40, + "actionDelay": 10 + }, + { + "Class": "Ogre", + "Skin": "b79536ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "c00000ff", + "speed": 256, + "Gun": "Shotgun", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 70, + "probabilityToTrack": 45, + "probabilityToShoot": 50, + "actionDelay": 10 + }, + { + "Class": "Ogre", + "Skin": "149c14ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "c00000ff", + "speed": 256, + "Gun": "Chemo gun", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 20, + "actionDelay": 10 + }, + { + "Class": "Ogre", + "Skin": "9c589cff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "c00000ff", + "speed": 256, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 70, + "probabilityToTrack": 50, + "probabilityToShoot": 15, + "actionDelay": 10 + }, + { + "Class": "Ogre", + "Skin": "9c9c9cff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "c00000ff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 70, + "probabilityToTrack": 50, + "probabilityToShoot": 10, + "actionDelay": 10 + }, + { + "Class": "Ogre", + "Skin": "9c5858ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "c00000ff", + "speed": 128, + "Gun": "Shotgun", + "maxHealth": 80, + "flags": 1024, + "probabilityToMove": 95, + "probabilityToTrack": 75, + "probabilityToShoot": 30, + "actionDelay": 10 + }, + { + "Class": "Ogre", + "Skin": "363636ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "c00000ff", + "speed": 384, + "Gun": "Knife", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 95, + "probabilityToTrack": 75, + "probabilityToShoot": 0, + "actionDelay": 10 + }, + { + "Class": "Ogre", + "Skin": "9c5858ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "c00000ff", + "speed": 128, + "Gun": "Machine gun", + "maxHealth": 80, + "flags": 1024, + "probabilityToMove": 95, + "probabilityToTrack": 75, + "probabilityToShoot": 50, + "actionDelay": 10 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "149c14ff", + "Arms": "363636ff", + "Body": "9c589cff", + "Legs": "363636ff", + "Hair": "882800ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 120, + "flags": 1024, + "probabilityToMove": 95, + "probabilityToTrack": 50, + "probabilityToShoot": 10, + "actionDelay": 5 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "58589cff", + "Arms": "363636ff", + "Body": "58589cff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Chemo gun", + "maxHealth": 120, + "flags": 1024, + "probabilityToMove": 95, + "probabilityToTrack": 50, + "probabilityToShoot": 20, + "actionDelay": 5 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "9c9c9cff", + "Arms": "363636ff", + "Body": "9c5858ff", + "Legs": "363636ff", + "Hair": "ff6c00ff", + "speed": 256, + "Gun": "Shotgun", + "maxHealth": 120, + "flags": 1024, + "probabilityToMove": 95, + "probabilityToTrack": 75, + "probabilityToShoot": 20, + "actionDelay": 5 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "b79536ff", + "Arms": "363636ff", + "Body": "9c589cff", + "Legs": "363636ff", + "Hair": "9c0000ff", + "speed": 256, + "Gun": "Sniper rifle", + "maxHealth": 120, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 30, + "actionDelay": 10 + }, + { + "Class": "Jones", + "PlayerTemplateName": "Confed Bureaucrat", + "HairType": "flattop", + "Skin": "ff8136ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6291456, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 10 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "9c9c9cff", + "Legs": "882800ff", + "Hair": "ff8136ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6291456, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 10 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "882800ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "58589cff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6291456, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 10 + }, + { + "Class": "Jones", + "PlayerTemplateName": "Confed Techie", + "HairType": "beard", + "Skin": "d25106ff", + "Arms": "9c9c9cff", + "Body": "ff8136ff", + "Legs": "9c5858ff", + "Hair": "9c9c9cff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6291456, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 10 + }, + { + "Class": "Jones", + "PlayerTemplateName": "Confed Soldier", + "HairType": "beret", + "Skin": "882800ff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "58589cff", + "Hair": "ff0000ff", + "speed": 256, + "Gun": "Powergun", + "maxHealth": 40, + "flags": 131072, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 5, + "actionDelay": 10 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "d25106ff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "58589cff", + "Hair": "ff0000ff", + "speed": 256, + "Gun": "Flamer", + "maxHealth": 40, + "flags": 131072, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 15, + "actionDelay": 10 + }, + { + "Class": "Jones", + "PlayerTemplateName": "Confed Trooper", + "HairType": "beret", + "Skin": "ff8136ff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "58589cff", + "Hair": "ff0000ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 131072, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 5, + "actionDelay": 10 + }, + { + "Class": "Ogre", + "Skin": "ff8136ff", + "Arms": "d25106ff", + "Body": "9c589cff", + "Legs": "9c5858ff", + "Hair": "c00000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6291456, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 10 + }, + { + "Class": "Ogre", + "Skin": "149c14ff", + "Arms": "d25106ff", + "Body": "58589cff", + "Legs": "b79536ff", + "Hair": "c00000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6291456, + "probabilityToMove": 75, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "9c0000ff", + "Arms": "b79536ff", + "Body": "149c14ff", + "Legs": "9c9c9cff", + "Hair": "c00000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6291456, + "probabilityToMove": 75, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "363636ff", + "Arms": "9c9c9cff", + "Body": "ffffffff", + "Legs": "882800ff", + "Hair": "c00000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6291456, + "probabilityToMove": 75, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "882800ff", + "Arms": "9c0000ff", + "Body": "9c9c9cff", + "Legs": "149c14ff", + "Hair": "c00000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6291456, + "probabilityToMove": 75, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "9c589cff", + "Arms": "363636ff", + "Body": "d25106ff", + "Legs": "363636ff", + "Hair": "d25106ff", + "speed": 256, + "Gun": "Shotgun", + "maxHealth": 120, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 30, + "actionDelay": 5 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "d25106ff", + "Arms": "d25106ff", + "Body": "9c0000ff", + "Legs": "b79536ff", + "Hair": "ff6c00ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6291456, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "9c0000ff", + "Arms": "363636ff", + "Body": "b79536ff", + "Legs": "363636ff", + "Hair": "149c14ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 400, + "flags": 1967104, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 5 + }, + { + "Class": "Ogre", + "Skin": "9c9c9cff", + "Arms": "000000ff", + "Body": "9c9c9cff", + "Legs": "363636ff", + "Hair": "c00000ff", + "speed": 256, + "Gun": "Shotgun", + "maxHealth": 80, + "flags": 8389632, + "probabilityToMove": 75, + "probabilityToTrack": 25, + "probabilityToShoot": 52, + "actionDelay": 5 + }, + { + "Class": "Ogre", + "Skin": "9c9c9cff", + "Arms": "000000ff", + "Body": "9c9c9cff", + "Legs": "363636ff", + "Hair": "c00000ff", + "speed": 256, + "Gun": "Chemo gun", + "maxHealth": 80, + "flags": 8389632, + "probabilityToMove": 75, + "probabilityToTrack": 25, + "probabilityToShoot": 52, + "actionDelay": 5 + }, + { + "Class": "Ogre", + "Skin": "9c9c9cff", + "Arms": "000000ff", + "Body": "9c9c9cff", + "Legs": "363636ff", + "Hair": "c00000ff", + "speed": 256, + "Gun": "Flamer", + "maxHealth": 80, + "flags": 8389632, + "probabilityToMove": 75, + "probabilityToTrack": 25, + "probabilityToShoot": 52, + "actionDelay": 5 + }, + { + "Class": "Ogre", + "Skin": "9c589cff", + "Arms": "9c0000ff", + "Body": "9c0000ff", + "Legs": "9c0000ff", + "Hair": "c00000ff", + "speed": 256, + "Gun": "Shotgun", + "maxHealth": 80, + "flags": 197632, + "probabilityToMove": 70, + "probabilityToTrack": 5, + "probabilityToShoot": 10, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "58589cff", + "Arms": "9c0000ff", + "Body": "9c0000ff", + "Legs": "9c0000ff", + "Hair": "c00000ff", + "speed": 256, + "Gun": "Powergun", + "maxHealth": 80, + "flags": 197632, + "probabilityToMove": 50, + "probabilityToTrack": 5, + "probabilityToShoot": 15, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "Skin": "9c9c9cff", + "Arms": "9c0000ff", + "Body": "9c0000ff", + "Legs": "9c0000ff", + "Hair": "c00000ff", + "speed": 256, + "Gun": "Sniper rifle", + "maxHealth": 80, + "flags": 197632, + "probabilityToMove": 50, + "probabilityToTrack": 5, + "probabilityToShoot": 32, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "363636ff", + "Arms": "9c0000ff", + "Body": "9c0000ff", + "Legs": "9c0000ff", + "Hair": "9c0000ff", + "speed": 256, + "Gun": "Knife", + "maxHealth": 120, + "flags": 197632, + "probabilityToMove": 80, + "probabilityToTrack": 5, + "probabilityToShoot": 0, + "actionDelay": 10 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "363636ff", + "Arms": "363636ff", + "Body": "149c14ff", + "Legs": "363636ff", + "Hair": "58589cff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 200, + "flags": 8390144, + "probabilityToMove": 75, + "probabilityToTrack": 50, + "probabilityToShoot": 10, + "actionDelay": 5 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "363636ff", + "Arms": "363636ff", + "Body": "149c14ff", + "Legs": "363636ff", + "Hair": "9c589cff", + "speed": 256, + "Gun": "Powergun", + "maxHealth": 200, + "flags": 8390144, + "probabilityToMove": 75, + "probabilityToTrack": 50, + "probabilityToShoot": 10, + "actionDelay": 5 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "363636ff", + "Arms": "363636ff", + "Body": "149c14ff", + "Legs": "363636ff", + "Hair": "ffffffff", + "speed": 256, + "Gun": "Sniper rifle", + "maxHealth": 200, + "flags": 8390144, + "probabilityToMove": 75, + "probabilityToTrack": 50, + "probabilityToShoot": 10, + "actionDelay": 5 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "363636ff", + "Arms": "363636ff", + "Body": "149c14ff", + "Legs": "363636ff", + "Hair": "9c0000ff", + "speed": 256, + "Gun": "Flamer", + "maxHealth": 200, + "flags": 8390144, + "probabilityToMove": 75, + "probabilityToTrack": 50, + "probabilityToShoot": 10, + "actionDelay": 5 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "363636ff", + "Arms": "363636ff", + "Body": "149c14ff", + "Legs": "363636ff", + "Hair": "ff6c00ff", + "speed": 256, + "Gun": "Shotgun", + "maxHealth": 200, + "flags": 8390144, + "probabilityToMove": 75, + "probabilityToTrack": 50, + "probabilityToShoot": 10, + "actionDelay": 5 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/ogre.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ogre.cdogscpn/missions.json new file mode 100644 index 00000000..e70d8b1d --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/ogre.cdogscpn/missions.json @@ -0,0 +1,2360 @@ +{ + "Missions": [{ + "Title": "Maintain integrity", + "Description": "We were taken completely by surprise and Ogre troops have overrun several installations. We are falling back from this one right now. We will need to destroy several computer terminals lest they, and the information they contain, fall into enemy hands.", + "Type": "Classic", + "Width": 64, + "Height": 32, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Destroy all terminals", + "Type": "Destroy", + "MapObject": "terminal", + "Count": 5, + "Required": 5, + "Flags": 6 + }], + "Enemies": [0, + 1, + 2, + 21, + 20, + 19, + 0, + 1, + 2], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 30 + }, + { + "MapObject": "box", + "Density": 30 + }, + { + "MapObject": "box2", + "Density": 30 + }, + { + "MapObject": "cabinet", + "Density": 30 + }, + { + "MapObject": "plant", + "Density": 30 + }, + { + "MapObject": "bench", + "Density": 30 + }, + { + "MapObject": "chair", + "Density": 30 + }, + { + "MapObject": "column", + "Density": 30 + }], + "EnemyDensity": 20, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "707070ff", + "MaskAlt": "007070ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "484870ff", + "MaskAlt": "007070ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "008484ff", + "MaskAlt": "007070ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 50, + "WallLength": 20, + "CorridorWidth": 1, + "Rooms": { + "Count": 10, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 2, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Retrieve the stolen data", + "Description": "Intelligence reports that the Ogres managed to backup some of the data before you could get to the terminals. However, troops have intercepted and are now containing the Ogre forces in possession of the data. It's a stalemate at the moment. You will have to resolve the situation...", + "Type": "Classic", + "Width": 64, + "Height": 32, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Get the disks back", + "Type": "Collect", + "Pickup": "disk1", + "Count": 5, + "Required": 5, + "Flags": 4 + }], + "Enemies": [0, + 1, + 2, + 3, + 21], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 30 + }, + { + "MapObject": "box", + "Density": 30 + }, + { + "MapObject": "box2", + "Density": 30 + }, + { + "MapObject": "cabinet", + "Density": 30 + }, + { + "MapObject": "plant", + "Density": 30 + }, + { + "MapObject": "bench", + "Density": 30 + }, + { + "MapObject": "chair", + "Density": 30 + }, + { + "MapObject": "column", + "Density": 30 + }], + "EnemyDensity": 20, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "707070ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "007000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "grid", + "Mask": "000070ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 50, + "WallLength": 20, + "CorridorWidth": 1, + "Rooms": { + "Count": 10, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Intelligence gathering", + "Description": "This whole situation is decidedly odd. The Ogres have never been hostile towards the Confed before. Besides, these forces are far from the best of what the Ogre Empire can bring forth. We really need to find out what's going on. See what you can dig up.", + "Type": "Classic", + "Width": 64, + "Height": 32, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Find some documents", + "Type": "Collect", + "Pickup": "paper", + "Count": 2, + "Required": 2, + "Flags": 4 + }], + "Enemies": [0, + 1, + 2, + 3, + 4, + 19], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 30 + }, + { + "MapObject": "box", + "Density": 30 + }, + { + "MapObject": "box2", + "Density": 30 + }, + { + "MapObject": "cabinet", + "Density": 30 + }, + { + "MapObject": "plant", + "Density": 30 + }, + { + "MapObject": "bench", + "Density": 30 + }, + { + "MapObject": "chair", + "Density": 30 + }, + { + "MapObject": "column", + "Density": 30 + }], + "EnemyDensity": 20, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "000084ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "biggrid", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "007000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 30, + "WallLength": 25, + "CorridorWidth": 1, + "Rooms": { + "Count": 15, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Search'n'destroy", + "Description": "Intelligence are going through the data you brought back. Now I need you for something different. A particulary aggressive Ogre commander are giving us a lot of trouble in this area. We have established his current whereabouts, a nearby Ogre outpost. We need you to take him out.", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "plate", + "KeyStyle": "dungeon", + "Objectives": [{ + "Description": "Kill Miihn-Bha'Stadh", + "Type": "Kill", + "Index": 0, + "Count": 1, + "Required": 1, + "Flags": 1 + }], + "Enemies": [0, + 1, + 2, + 3, + 4, + 5, + 6], + "SpecialChars": [12], + "MapObjectDensities": [{ + "MapObject": "barrel_skull", + "Density": 30 + }, + { + "MapObject": "barrel_wood", + "Density": 30 + }, + { + "MapObject": "box_gray", + "Density": 30 + }, + { + "MapObject": "box_green", + "Density": 30 + }, + { + "MapObject": "statue_ogre", + "Density": 30 + }, + { + "MapObject": "table_wood_candle", + "Density": 30 + }, + { + "MapObject": "table_wood", + "Density": 30 + }, + { + "MapObject": "tree_dead", + "Density": 30 + }], + "EnemyDensity": 23, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "000070ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "stone", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "703800ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "dungeon", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 50, + "WallLength": 20, + "CorridorWidth": 1, + "Rooms": { + "Count": 5, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 3, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Gather more information", + "Description": "Intelligence has been all over the data you brought back. Something's not right here and we want to know what's up. Unfortunately, your data - while most valuable - leaves a lot of blanks to be filled. We need more data and you will have to get it for us.", + "Type": "Classic", + "Width": 64, + "Height": 64, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Steal Ogre documents", + "Type": "Collect", + "Pickup": "folder", + "Count": 2, + "Required": 2, + "Flags": 4 + }, + { + "Description": "...and any other data you can find", + "Type": "Collect", + "Pickup": "disk1", + "Count": 7, + "Required": 3, + "Flags": 0 + }], + "Enemies": [1, + 2, + 3, + 4, + 5, + 21, + 20], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 30 + }, + { + "MapObject": "box", + "Density": 30 + }, + { + "MapObject": "box2", + "Density": 30 + }, + { + "MapObject": "cabinet", + "Density": 30 + }, + { + "MapObject": "plant", + "Density": 30 + }, + { + "MapObject": "bench", + "Density": 30 + }, + { + "MapObject": "chair", + "Density": 30 + }, + { + "MapObject": "column", + "Density": 30 + }], + "EnemyDensity": 21, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "007000ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "biggrid", + "Mask": "707070ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "000084ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 50, + "WallLength": 50, + "CorridorWidth": 1, + "Rooms": { + "Count": 15, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 2, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Locate the Ogre chemical weapons facility", + "Description": "The bio-weapons they are using are causing severe causalties amongst our troops. Our scientists are unable to come up with an antidote. They do tell us the stuff is rather unstable and cannot be stored for long. They must be manufacturing it in the vicinity. Try and find out where it is.", + "Type": "Classic", + "Width": 64, + "Height": 64, + "ExitStyle": "plate", + "KeyStyle": "dungeon", + "Objectives": [{ + "Description": "Find the starmaps", + "Type": "Collect", + "Pickup": "blueprint", + "Count": 3, + "Required": 3, + "Flags": 4 + }], + "Enemies": [0, + 1, + 2, + 3, + 5, + 6], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "barrel_skull", + "Density": 30 + }, + { + "MapObject": "barrel_wood", + "Density": 30 + }, + { + "MapObject": "box_gray", + "Density": 30 + }, + { + "MapObject": "box_green", + "Density": 30 + }, + { + "MapObject": "statue_ogre", + "Density": 30 + }, + { + "MapObject": "table_wood_candle", + "Density": 30 + }, + { + "MapObject": "table_wood", + "Density": 30 + }, + { + "MapObject": "tree_dead", + "Density": 30 + }], + "EnemyDensity": 25, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "480000ff", + "MaskAlt": "000070ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "007000ff", + "MaskAlt": "000070ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "000084ff", + "MaskAlt": "000070ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "dungeon", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 40, + "WallLength": 10, + "CorridorWidth": 1, + "Rooms": { + "Count": 15, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 2, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Wreck the Ogre laboratories", + "Description": "The data you brought back has provided us with the location of the Ogres bio-chemical weapons manufacturing plant. If you can disable this facility you will be saving many lives and help our efforts to restore piece to this region again.", + "Type": "Classic", + "Width": 64, + "Height": 64, + "ExitStyle": "plate", + "KeyStyle": "dungeon", + "Objectives": [{ + "Description": "Destroy all laboratory equipment", + "Type": "Destroy", + "MapObject": "table_lab", + "Count": 7, + "Required": 7, + "Flags": 4 + }], + "Enemies": [0, + 1, + 2, + 3, + 5, + 6, + 7], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "barrel_skull", + "Density": 30 + }, + { + "MapObject": "barrel_wood", + "Density": 30 + }, + { + "MapObject": "box_gray", + "Density": 30 + }, + { + "MapObject": "box_green", + "Density": 30 + }, + { + "MapObject": "statue_ogre", + "Density": 30 + }, + { + "MapObject": "table_wood_candle", + "Density": 30 + }, + { + "MapObject": "table_wood", + "Density": 30 + }, + { + "MapObject": "tree_dead", + "Density": 30 + }], + "EnemyDensity": 20, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "74601cff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "482400ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "dungeon", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 25, + "WallLength": 25, + "CorridorWidth": 1, + "Rooms": { + "Count": 20, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 2, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Destroy their ammunition", + "Description": "The destruction of the bio-weapons lab was a substantial setback for the Ogre forces. Now, as they are forced to retreat, a major ammunitions depot has had most of its garrison transferred elsewhere. It is still heavily guarded, but it is too good a target to pass up.", + "Type": "Classic", + "Width": 64, + "Height": 64, + "ExitStyle": "plate", + "KeyStyle": "dungeon", + "Objectives": [{ + "Description": "Destroy ammo containers", + "Type": "Destroy", + "MapObject": "box_metal_green", + "Count": 12, + "Required": 7, + "Flags": 0 + }, + { + "Description": "Destroy fuel barrels", + "Type": "Destroy", + "MapObject": "barrel", + "Count": 15, + "Required": 10, + "Flags": 0 + }], + "Enemies": [0, + 2, + 3, + 4, + 1], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "barrel_skull", + "Density": 30 + }, + { + "MapObject": "barrel_wood", + "Density": 30 + }, + { + "MapObject": "box_gray", + "Density": 30 + }, + { + "MapObject": "box_green", + "Density": 30 + }, + { + "MapObject": "statue_ogre", + "Density": 30 + }, + { + "MapObject": "table_wood_candle", + "Density": 30 + }, + { + "MapObject": "table_wood", + "Density": 30 + }, + { + "MapObject": "tree_dead", + "Density": 30 + }], + "EnemyDensity": 25, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "000070ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "stone", + "Mask": "707070ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "848484ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "dungeon", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 50, + "WallLength": 25, + "CorridorWidth": 1, + "Rooms": { + "Count": 10, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 3, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Retake installation", + "Description": "Your efforts have helped weaken the Ogre forces in the region and we are now recapturing our lost installations. At this very moment our troops are launching an assault. You are assigned the task of seeking out and eliminating the Ogre commanders. With them out of the picture, the rest should be an easy task.", + "Type": "Classic", + "Width": 64, + "Height": 64, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Take out as many squad leaders as possible", + "Type": "Kill", + "Index": 0, + "Count": 5, + "Required": 3, + "Flags": 1 + }], + "Enemies": [7, + 9, + 10, + 0, + 2, + 3, + 4, + 21, + 19, + 20], + "SpecialChars": [11, 13], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 30 + }, + { + "MapObject": "box", + "Density": 30 + }, + { + "MapObject": "box2", + "Density": 30 + }, + { + "MapObject": "cabinet", + "Density": 30 + }, + { + "MapObject": "plant", + "Density": 30 + }, + { + "MapObject": "bench", + "Density": 30 + }, + { + "MapObject": "chair", + "Density": 30 + }, + { + "MapObject": "column", + "Density": 30 + }], + "EnemyDensity": 30, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "484870ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "004848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "847024ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 50, + "WallLength": 50, + "CorridorWidth": 1, + "Rooms": { + "Count": 10, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Counter strike", + "Description": "We have successfully recaptured all installations previously held by Ogre invaders. We are now on the offensive and our goal is now primarily to cripple the Ogre war machinery in this area. We have data on an Ogre depot that has been stripped of most of its defences...", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "plate", + "KeyStyle": "dungeon", + "Objectives": [{ + "Description": "Eliminate enemy officers", + "Type": "Kill", + "Index": 0, + "Count": 5, + "Required": 1, + "Flags": 1 + }, + { + "Description": "Blow up their gunpowder", + "Type": "Destroy", + "MapObject": "barrel_skull", + "Count": 10, + "Required": 5, + "Flags": 0 + }, + { + "Description": "Burn their fuel", + "Type": "Destroy", + "MapObject": "barrel", + "Count": 8, + "Required": 4, + "Flags": 0 + }, + { + "Description": "Destroy their ammunition", + "Type": "Destroy", + "MapObject": "box_metal_green", + "Count": 12, + "Required": 6, + "Flags": 0 + }], + "Enemies": [0, + 1, + 2, + 3, + 9], + "SpecialChars": [13, + 12, + 11], + "MapObjectDensities": [{ + "MapObject": "barrel_wood", + "Density": 15 + }, + { + "MapObject": "box_gray", + "Density": 15 + }, + { + "MapObject": "box_green", + "Density": 15 + }, + { + "MapObject": "statue_ogre", + "Density": 5 + }, + { + "MapObject": "table_wood_candle", + "Density": 20 + }, + { + "MapObject": "table_wood", + "Density": 30 + }, + { + "MapObject": "tree_dead", + "Density": 10 + }, + { + "MapObject": "box_wood", + "Density": 20 + }], + "EnemyDensity": 25, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "480000ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "703800ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "844400ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "dungeon", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 25, + "WallLength": 10, + "CorridorWidth": 1, + "Rooms": { + "Count": 15, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 2, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Wet work", + "Description": "We now have the opportunity to strike a devastating blow to the Ogre war machinery! Intelligence has uncovered the current location of Ogre high command of this sector. The area has a high civilian presence, I will remind you that we do not wage war on civilians!", + "Type": "Classic", + "Width": 54, + "Height": 54, + "ExitStyle": "plate", + "KeyStyle": "dungeon", + "Objectives": [{ + "Description": "Assassinate Ogre high command", + "Type": "Kill", + "Index": 0, + "Count": 4, + "Required": 4, + "Flags": 1 + }], + "Enemies": [1, + 2, + 3, + 26, + 25, + 24, + 23, + 22, + 0], + "SpecialChars": [27, 14], + "MapObjectDensities": [{ + "MapObject": "barrel_wood", + "Density": 20 + }, + { + "MapObject": "box_gray", + "Density": 15 + }, + { + "MapObject": "statue_ogre", + "Density": 10 + }, + { + "MapObject": "table_wood_candle", + "Density": 10 + }, + { + "MapObject": "table_wood", + "Density": 20 + }, + { + "MapObject": "tree_dead", + "Density": 10 + }, + { + "MapObject": "box_wood", + "Density": 10 + }, + { + "MapObject": "table_clothed", + "Density": 15 + }, + { + "MapObject": "tree_autumn", + "Density": 10 + }], + "EnemyDensity": 30, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "484870ff", + "MaskAlt": "007000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "stone", + "Mask": "848484ff", + "MaskAlt": "007000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "004800ff", + "MaskAlt": "007000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "dungeon", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 25, + "WallLength": 25, + "CorridorWidth": 1, + "Rooms": { + "Count": 20, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 1, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Terror attack!", + "Description": "In retaliation for our attack against Ogre high command, Ogre forces are attacking a housing complex for the civilian workers who are repairing damages caused by this conflict. This is a breach of all protocols and thoroughly dishonorable and detestful act! Repel the attack!", + "Type": "Classic", + "Width": 64, + "Height": 32, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Eliminate all attackers", + "Type": "Kill", + "Index": 0, + "Count": 40, + "Required": 40, + "Flags": 0 + }], + "Enemies": [18, + 17, + 16, + 15, + 28], + "SpecialChars": [4, + 3, + 2, + 7, + 9], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 15 + }, + { + "MapObject": "box", + "Density": 15 + }, + { + "MapObject": "box2", + "Density": 15 + }, + { + "MapObject": "plant", + "Density": 15 + }, + { + "MapObject": "cabinet", + "Density": 15 + }, + { + "MapObject": "bench", + "Density": 15 + }, + { + "MapObject": "chair", + "Density": 10 + }, + { + "MapObject": "bookshelf", + "Density": 10 + }, + { + "MapObject": "table_steel", + "Density": 10 + }, + { + "MapObject": "safe", + "Density": 5 + }, + { + "MapObject": "terminal", + "Density": 20 + }], + "EnemyDensity": 20, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "707070ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "007070ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "700070ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 0, + "WallLength": 0, + "CorridorWidth": 1, + "Rooms": { + "Count": 20, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "The defector", + "Description": "We have learned that a senior Ogre officer wishes to defect. Faced with the same questions we have been contemplating all along he did some research and believes this campaign to be an unauthorized action by a renegade faction within the Ogre fleet! This is a matter of crucial importance!", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "plate", + "KeyStyle": "dungeon", + "Objectives": [{ + "Description": "Get the officer here safely", + "Type": "Rescue", + "Index": 29, + "Count": 1, + "Required": 1, + "Flags": 4 + }], + "Enemies": [2, + 3, + 4, + 10, + 0], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "box2", + "Density": 15 + }, + { + "MapObject": "box", + "Density": 15 + }, + { + "MapObject": "barrel_skull", + "Density": 5 + }, + { + "MapObject": "barrel_wood", + "Density": 15 + }, + { + "MapObject": "box_green", + "Density": 10 + }, + { + "MapObject": "tree_dead", + "Density": 20 + }, + { + "MapObject": "statue_ogre", + "Density": 5 + }, + { + "MapObject": "box_gray", + "Density": 15 + }, + { + "MapObject": "table_wood", + "Density": 15 + }, + { + "MapObject": "table_wood_candle", + "Density": 5 + }, + { + "MapObject": "box_red", + "Density": 5 + }], + "EnemyDensity": 15, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "848484ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "74601cff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "dungeon", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 15, + "WallLength": 15, + "CorridorWidth": 1, + "Rooms": { + "Count": 15, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 1, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Kidnapping attempt!", + "Description": "A party of Ogre Elite Warriors from the renegade faction is attempting to recapture the defecting officer. Apparently the information he holds can give them very big problems with their masters back home. You must foil their plans!", + "Type": "Classic", + "Width": 48, + "Height": 32, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Defeat the Ogre assault team", + "Type": "Kill", + "Index": 0, + "Count": 12, + "Required": 12, + "Flags": 0 + }], + "Enemies": [21, + 20, + 19], + "SpecialChars": [32, + 31, + 30], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 20 + }, + { + "MapObject": "cabinet", + "Density": 20 + }, + { + "MapObject": "plant", + "Density": 10 + }, + { + "MapObject": "bench", + "Density": 10 + }, + { + "MapObject": "chair", + "Density": 5 + }, + { + "MapObject": "bookshelf", + "Density": 10 + }, + { + "MapObject": "box_wood", + "Density": 25 + }, + { + "MapObject": "table_steel", + "Density": 10 + }, + { + "MapObject": "terminal", + "Density": 25 + }, + { + "MapObject": "safe", + "Density": 5 + }, + { + "MapObject": "box", + "Density": 10 + }, + { + "MapObject": "box2", + "Density": 10 + }], + "EnemyDensity": 10, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "484870ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "700070ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "847024ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 15, + "WallLength": 14, + "CorridorWidth": 1, + "Rooms": { + "Count": 10, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 1, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "The Enemy Stronghold", + "Description": "Officer Naijz-Gaij has been in contact with his masters, who were more than slightly upset. As you've noticed Ogre Imperial forces have been arriving all day and are engaging the hostiles as we speak. We are now mounting a joint attack against the enemy headquarters. Ogre Imperials, wearing red body armor, are your allies in this venture.", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "plate", + "KeyStyle": "plain", + "Objectives": [{ + "Description": "Eliminate all resistance", + "Type": "Kill", + "Index": 0, + "Count": 30, + "Required": 30, + "Flags": 0 + }, + { + "Description": "Find the controls to the inner defenses", + "Type": "Collect", + "Pickup": "radio", + "Count": 1, + "Required": 1, + "Flags": 4 + }], + "Enemies": [36, + 35, + 34, + 33, + 21, + 20, + 19, + 23, + 25, + 26, + 24], + "SpecialChars": [4, + 32, + 31, + 9, + 10, + 6], + "MapObjectDensities": [{ + "MapObject": "barrel_skull", + "Density": 10 + }, + { + "MapObject": "barrel_wood", + "Density": 20 + }, + { + "MapObject": "box_gray", + "Density": 10 + }, + { + "MapObject": "statue_ogre", + "Density": 5 + }, + { + "MapObject": "table_wood_candle", + "Density": 15 + }, + { + "MapObject": "box_green", + "Density": 10 + }, + { + "MapObject": "table_wood", + "Density": 15 + }, + { + "MapObject": "box_wood", + "Density": 10 + }, + { + "MapObject": "box_metal_green", + "Density": 5 + }, + { + "MapObject": "box_red", + "Density": 5 + }, + { + "MapObject": "table_lab", + "Density": 5 + }, + { + "MapObject": "wall_skull", + "Density": 5 + }, + { + "MapObject": "safe", + "Density": 5 + }, + { + "MapObject": "barrel", + "Density": 10 + }], + "EnemyDensity": 10, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "484848ff", + "MaskAlt": "700000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "stone", + "Mask": "480000ff", + "MaskAlt": "700000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "840000ff", + "MaskAlt": "700000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 15, + "WallLength": 30, + "CorridorWidth": 1, + "Rooms": { + "Count": 12, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "The last stand of the renegades", + "Description": "Good work, you are truly an honor to this outfit! Now ready yourselves for action once more as we face the remains of the renegade forces. The renegade commanders are cornered and will not yield. Our Ogre liasons tell us these are some mighty heavy dudes. They must be crushed like the vermin they are, or they will surely rise again...", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "plate", + "KeyStyle": "plain", + "Objectives": [{ + "Description": "Annihilate the renegade commanders", + "Type": "Kill", + "Index": 0, + "Count": 15, + "Required": 15, + "Flags": 1 + }], + "Enemies": [36, + 35, + 34, + 33, + 21, + 19, + 20], + "SpecialChars": [41, + 37, + 38, + 39, + 40], + "MapObjectDensities": [{ + "MapObject": "barrel_skull", + "Density": 15 + }, + { + "MapObject": "barrel_wood", + "Density": 10 + }, + { + "MapObject": "box_gray", + "Density": 10 + }, + { + "MapObject": "box_green", + "Density": 15 + }, + { + "MapObject": "box_wood", + "Density": 10 + }, + { + "MapObject": "box_metal_green", + "Density": 5 + }, + { + "MapObject": "barrel", + "Density": 15 + }, + { + "MapObject": "table_lab", + "Density": 15 + }, + { + "MapObject": "box_red", + "Density": 10 + }, + { + "MapObject": "bone_blood", + "Density": 5 + }, + { + "MapObject": "bloodstain", + "Density": 5 + }, + { + "MapObject": "wall_skull", + "Density": 5 + }], + "EnemyDensity": 25, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "707070ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "stone", + "Mask": "004800ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 40, + "WallLength": 15, + "CorridorWidth": 1, + "Rooms": { + "Count": 14, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/LICENSE.md b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/LICENSE.md new file mode 100644 index 00000000..2660d3e8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/LICENSE.md @@ -0,0 +1,45 @@ +## creative commons + +# CC0 1.0 Universal + +``` +CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED HEREUNDER. +``` + +### Statement of Purpose + +The laws of most jurisdictions throughout the world automatically confer exclusive Copyright and Related Rights (defined below) upon the creator and subsequent owner(s) (each and all, an "owner") of an original work of authorship and/or a database (each, a "Work"). + +Certain owners wish to permanently relinquish those rights to a Work for the purpose of contributing to a commons of creative, cultural and scientific works ("Commons") that the public can reliably and without fear of later claims of infringement build upon, modify, incorporate in other works, reuse and redistribute as freely as possible in any form whatsoever and for any purposes, including without limitation commercial purposes. These owners may contribute to the Commons to promote the ideal of a free culture and the further production of creative, cultural and scientific works, or to gain reputation or greater distribution for their Work in part through the use and efforts of others. + +For these and/or other purposes and motivations, and without any expectation of additional consideration or compensation, the person associating CC0 with a Work (the "Affirmer"), to the extent that he or she is an owner of Copyright and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and publicly distribute the Work under its terms, with knowledge of his or her Copyright and Related Rights in the Work and the meaning and intended legal effect of CC0 on those rights. + +1. __Copyright and Related Rights.__ A Work made available under CC0 may be protected by copyright and related or neighboring rights ("Copyright and Related Rights"). Copyright and Related Rights include, but are not limited to, the following: + + i. the right to reproduce, adapt, distribute, perform, display, communicate, and translate a Work; + + ii. moral rights retained by the original author(s) and/or performer(s); + + iii. publicity and privacy rights pertaining to a person's image or likeness depicted in a Work; + + iv. rights protecting against unfair competition in regards to a Work, subject to the limitations in paragraph 4(a), below; + + v. rights protecting the extraction, dissemination, use and reuse of data in a Work; + + vi. database rights (such as those arising under Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, and under any national implementation thereof, including any amended or successor version of such directive); and + + vii. other similar, equivalent or corresponding rights throughout the world based on applicable law or treaty, and any national implementations thereof. + +2. __Waiver.__ To the greatest extent permitted by, but not in contravention of, applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and unconditionally waives, abandons, and surrenders all of Affirmer's Copyright and Related Rights and associated claims and causes of action, whether now known or unknown (including existing as well as future claims and causes of action), in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each member of the public at large and to the detriment of Affirmer's heirs and successors, fully intending that such Waiver shall not be subject to revocation, rescission, cancellation, termination, or any other legal or equitable action to disrupt the quiet enjoyment of the Work by the public as contemplated by Affirmer's express Statement of Purpose. + +3. __Public License Fallback.__ Should any part of the Waiver for any reason be judged legally invalid or ineffective under applicable law, then the Waiver shall be preserved to the maximum extent permitted taking into account Affirmer's express Statement of Purpose. In addition, to the extent the Waiver is so judged Affirmer hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to exercise Affirmer's Copyright and Related Rights in the Work (i) in all territories worldwide, (ii) for the maximum duration provided by applicable law or treaty (including future time extensions), (iii) in any current or future medium and for any number of copies, and (iv) for any purpose whatsoever, including without limitation commercial, advertising or promotional purposes (the "License"). The License shall be deemed effective as of the date CC0 was applied by Affirmer to the Work. Should any part of the License for any reason be judged legally invalid or ineffective under applicable law, such partial invalidity or ineffectiveness shall not invalidate the remainder of the License, and in such case Affirmer hereby affirms that he or she will not (i) exercise any of his or her remaining Copyright and Related Rights in the Work or (ii) assert any associated claims and causes of action with respect to the Work, in either case contrary to Affirmer's express Statement of Purpose. + +4. __Limitations and Disclaimers.__ + + a. No trademark or patent rights held by Affirmer are waived, abandoned, surrendered, licensed or otherwise affected by this document. + + b. Affirmer offers the Work as-is and makes no representations or warranties of any kind concerning the Work, express, implied, statutory or otherwise, including without limitation warranties of title, merchantability, fitness for a particular purpose, non infringement, or the absence of latent or other defects, accuracy, or the present or absence of errors, whether or not discoverable, all to the greatest extent permissible under applicable law. + + c. Affirmer disclaims responsibility for clearing rights of other persons that may apply to the Work or any use thereof, including without limitation any person's Copyright and Related Rights in the Work. Further, Affirmer disclaims responsibility for obtaining any necessary consents, permissions or other rights required for any use of the Work. + + d. Affirmer understands and acknowledges that Creative Commons is not a party to this document and has no duty or obligation with respect to this CC0 or use of the Work. diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/ammo.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/ammo.json new file mode 100644 index 00000000..9afa8125 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/ammo.json @@ -0,0 +1,12 @@ +{ + "Version": 1, + "Ammo": [ + { + "Name": "Bio Grenades", + "Pic": "bio_grenades", + "Sound": "grenade_pickup", + "Amount": 2, + "Max": 10 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/bullets.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/bullets.json new file mode 100644 index 00000000..2b7618a4 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/bullets.json @@ -0,0 +1,107 @@ +{ + "Version": 1, + "Bullets": [ + { + "Name": "yellow_needle", + "Pic": { + "Type": "Directional", + "Sprites": "pulsey" + }, + "Speed": 1500, + "Range": 15, + "Power": 2, + "SeekFactor": 10 + }, + { + "Name": "blue_bullet", + "Pic": { + "Type": "Directional", + "Sprites": "rapid" + }, + "Speed": 1200, + "Range": 45, + "Power": 10, + "WallBounces": false + }, + { + "Name": "blue_beam", + "Pic": { + "Type": "Directional", + "Sprites": "particles/beam_bright" + }, + "Speed": 1200, + "Range": 55, + "Power": 20, + "WallBounces": true + }, + { + "Name": "shotgun_particle", + "Pic": { + "Type": "Directional", + "Sprites": "rapid", + "Mask": "aaff22" + }, + "Speed": 640, + "Range": 50, + "Power": 15 + }, + { + "Name": "red_dot", + "Pic": { + "Type": "Directional", + "Sprites": "pulsey", + "Mask": "ff8888" + }, + "Speed": 400, + "Range": 350, + "Power": 4, + "SeekFactor": 90 + }, + { + "Name": "red_laser", + "Pic": { + "Type": "Directional", + "Sprites": "rapidr" + }, + "Speed": 1100, + "Range": 27, + "Power": 12 + }, + { + "Name": "bio_grenade", + "Pic": { + "Type": "Animated", + "Sprites": "bio_grenade", + "TicksPerFrame": 2 + }, + "ShadowSize": [6, 4], + "Speed": 384, + "Range": 100, + "Spark": "", + "HitSounds": { + "Object": "", + "Flesh": "", + "Wall": "bounce" + }, + "WallBounces": true, + "HitsObjects": false, + "Falling": { + "GravityFactor": 1 + }, + "OutOfRangeGuns": [ + "particle_explosion" + ] + }, + { + "Name": "yellow_particle", + "Pic": { + "Type": "Directional", + "Sprites": "pulsey" + }, + "Speed": 1500, + "Range": 12, + "Power": 8, + "SeekFactor": 5 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/campaign.json new file mode 100644 index 00000000..54ec9eca --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/campaign.json @@ -0,0 +1,11 @@ +{ + "Version": 16, + "Title": "Pirates from outer space!", + "Author": "Sauer2", + "Description": "You are a space security officer on the ship Prodigy IV. The ship is three hours away from Antares III and everyone is happy to leave the ship, when suddenly an unknown ship attacks...", + "Ammo": false, + "WeaponPersist": false, + "SkipWeaponMenu": false, + "RandomPickups": true, + "Missions": 10 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/characters.json new file mode 100644 index 00000000..abdf7f53 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/characters.json @@ -0,0 +1,700 @@ +{ + "Version": 13, + "Characters": [{ + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "ff8136ff", + "Arms": "363636ff", + "Body": "149c14ff", + "Legs": "363636ff", + "Hair": "363636ff", + "Feet": "363636ff", + "speed": 256, + "Gun": "Laser Pistol", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 50, + "probabilityToShoot": 42, + "actionDelay": 17 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "882800ff", + "Arms": "363636ff", + "Body": "149c14ff", + "Legs": "363636ff", + "Hair": "363636ff", + "Feet": "363636ff", + "speed": 256, + "Gun": "Shotgun", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 60, + "probabilityToTrack": 40, + "probabilityToShoot": 32, + "actionDelay": 17 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "9c589cff", + "Arms": "363636ff", + "Body": "149c14ff", + "Legs": "363636ff", + "Hair": "363636ff", + "Feet": "363636ff", + "speed": 256, + "Gun": "Pulse rifle", + "maxHealth": 40, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 50, + "probabilityToShoot": 57, + "actionDelay": 11 + }, + { + "Class": "Lady", + "PlayerTemplateName": "Security Chief", + "HairType": "ponytail", + "Skin": "149c14ff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "363636ff", + "Hair": "58589cff", + "Feet": "363636ff", + "speed": 128, + "Gun": "AArms Pulse MG", + "maxHealth": 40, + "flags": 2753536, + "probabilityToMove": 40, + "probabilityToTrack": 5, + "probabilityToShoot": 5, + "actionDelay": 25 + }, + { + "Class": "Jones", + "PlayerTemplateName": "Ensign", + "HairType": "dutch", + "Skin": "b79536ff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "363636ff", + "Hair": "363636ff", + "Feet": "363636ff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 2753536, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 20 + }, + { + "Class": "Robot", + "PlayerTemplateName": "TacBot", + "Skin": "9c589cff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "363636ff", + "Hair": "58589cff", + "Feet": "363636ff", + "speed": 512, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 2753536, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 10 + }, + { + "Class": "Jones", + "PlayerTemplateName": "Weapons Officer", + "HairType": "shades", + "Skin": "ff8136ff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "363636ff", + "Hair": "000000ff", + "Feet": "363636ff", + "speed": 128, + "Gun": "XTech BounceRifle", + "maxHealth": 40, + "flags": 2753536, + "probabilityToMove": 50, + "probabilityToTrack": 0, + "probabilityToShoot": 5, + "actionDelay": 25 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "d25106ff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "363636ff", + "Hair": "363636ff", + "Feet": "363636ff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 2753536, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 20 + }, + { + "Class": "Jones", + "Skin": "882800ff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "363636ff", + "Hair": "363636ff", + "Feet": "363636ff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 2753536, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 20 + }, + { + "Class": "Jones", + "HairType": "beard", + "Skin": "ff8136ff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "363636ff", + "Hair": "58589cff", + "Feet": "363636ff", + "speed": 128, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 2753536, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 32 + }, + { + "Class": "Bug-eye", + "Skin": "9c0000ff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "363636ff", + "Hair": "363636ff", + "Feet": "363636ff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 19530752, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 20 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "58589cff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "363636ff", + "Hair": "149c14ff", + "Feet": "363636ff", + "speed": 512, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 2753536, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 20 + }, + { + "Class": "Ogre", + "Skin": "9c5858ff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "363636ff", + "Hair": "c00000ff", + "Feet": "363636ff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 2753536, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 20 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "ff8136ff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "363636ff", + "Hair": "882800ff", + "Feet": "363636ff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 2753536, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 20 + }, + { + "Class": "Jones", + "HairType": "professor", + "Skin": "ff8136ff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "363636ff", + "Hair": "9c5858ff", + "Feet": "363636ff", + "speed": 256, + "Gun": "AArms Pulse MG", + "maxHealth": 40, + "flags": 36307968, + "probabilityToMove": 40, + "probabilityToTrack": 10, + "probabilityToShoot": 5, + "actionDelay": 25 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "ff8136ff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "363636ff", + "Hair": "9c0000ff", + "Feet": "363636ff", + "speed": 256, + "Gun": "Zeild Particle Shotgun V5", + "maxHealth": 40, + "flags": 36308480, + "probabilityToMove": 45, + "probabilityToTrack": 10, + "probabilityToShoot": 5, + "actionDelay": 25 + }, + { + "Class": "Bug-eye", + "Skin": "ff6c00ff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "363636ff", + "Hair": "ff6c00ff", + "Feet": "363636ff", + "speed": 256, + "Gun": "AArms Pulse MG", + "maxHealth": 40, + "flags": 2753536, + "probabilityToMove": 40, + "probabilityToTrack": 10, + "probabilityToShoot": 5, + "actionDelay": 25 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "9c9c9cff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "363636ff", + "Hair": "ff6c00ff", + "Feet": "363636ff", + "speed": 256, + "Gun": "Grenades", + "maxHealth": 40, + "flags": 20841472, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 20 + }, + { + "Class": "Jones", + "HairType": "hogan", + "Skin": "ff8136ff", + "Arms": "d25106ff", + "Body": "363636ff", + "Legs": "9c9c9cff", + "Hair": "363636ff", + "Feet": "9c9c9cff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 30, + "flags": 33555456, + "probabilityToMove": 70, + "probabilityToTrack": 35, + "probabilityToShoot": 25, + "actionDelay": 19 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "ff8136ff", + "Arms": "d25106ff", + "Body": "363636ff", + "Legs": "ff8136ff", + "Hair": "ff0000ff", + "Feet": "ff8136ff", + "speed": 256, + "Gun": "Shotgun", + "maxHealth": 20, + "flags": 41944064, + "probabilityToMove": 70, + "probabilityToTrack": 10, + "probabilityToShoot": 30, + "actionDelay": 15 + }, + { + "Class": "Bug-eye", + "Skin": "149c14ff", + "Arms": "d25106ff", + "Body": "363636ff", + "Legs": "9c9c9cff", + "Hair": "363636ff", + "Feet": "9c9c9cff", + "speed": 384, + "Gun": "Pistol", + "maxHealth": 50, + "flags": 16778240, + "probabilityToMove": 70, + "probabilityToTrack": 55, + "probabilityToShoot": 30, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "eye_patch", + "Skin": "58589cff", + "Arms": "d25106ff", + "Body": "363636ff", + "Legs": "9c589cff", + "Hair": "000000ff", + "Feet": "9c589cff", + "speed": 128, + "Gun": "Confusion bombs", + "maxHealth": 80, + "flags": 16778240, + "probabilityToMove": 20, + "probabilityToTrack": 55, + "probabilityToShoot": 40, + "actionDelay": 17 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "882800ff", + "Arms": "d25106ff", + "Body": "363636ff", + "Legs": "9c5858ff", + "Hair": "363636ff", + "Feet": "9c5858ff", + "speed": 256, + "Gun": "Knife", + "maxHealth": 50, + "flags": 33555456, + "probabilityToMove": 100, + "probabilityToTrack": 100, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Mad bug-eye", + "Skin": "ff6c00ff", + "Arms": "d25106ff", + "Body": "363636ff", + "Legs": "9c0000ff", + "Hair": "363636ff", + "Feet": "9c0000ff", + "speed": 256, + "Gun": "Browny gun", + "maxHealth": 50, + "flags": 41944064, + "probabilityToMove": 70, + "probabilityToTrack": 55, + "probabilityToShoot": 75, + "actionDelay": 15 + }, + { + "Class": "Ogre", + "HairType": "mohawk", + "Skin": "9c0000ff", + "Arms": "fc9000ff", + "Body": "363636ff", + "Legs": "b79536ff", + "Hair": "363636ff", + "Feet": "b79536ff", + "speed": 320, + "Gun": "Sniper rifle", + "maxHealth": 50, + "flags": 50332672, + "probabilityToMove": 20, + "probabilityToTrack": 25, + "probabilityToShoot": 25, + "actionDelay": 22 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "9c5858ff", + "Arms": "d25106ff", + "Body": "363636ff", + "Legs": "9c9c9cff", + "Hair": "58589cff", + "Feet": "9c9c9cff", + "speed": 448, + "Gun": "Laser Pistol", + "maxHealth": 50, + "flags": 33555456, + "probabilityToMove": 70, + "probabilityToTrack": 50, + "probabilityToShoot": 15, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "ff8136ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "ff6c00ff", + "Feet": "363636ff", + "speed": 128, + "Gun": "Sniper rifle", + "maxHealth": 150, + "flags": 25167360, + "probabilityToMove": 30, + "probabilityToTrack": 25, + "probabilityToShoot": 15, + "actionDelay": 22 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "ff8136ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "000000ff", + "Feet": "363636ff", + "speed": 192, + "Gun": "Flamer", + "maxHealth": 120, + "flags": 16778240, + "probabilityToMove": 50, + "probabilityToTrack": 5, + "probabilityToShoot": 10, + "actionDelay": 33 + }, + { + "Class": "Jones", + "HairType": "riot_helmet", + "Skin": "149c14ff", + "Arms": "d25106ff", + "Body": "363636ff", + "Legs": "ff8136ff", + "Hair": "363636ff", + "Feet": "ff8136ff", + "speed": 256, + "Gun": "Flamer", + "maxHealth": 40, + "flags": 33555456, + "probabilityToMove": 70, + "probabilityToTrack": 25, + "probabilityToShoot": 55, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "eye_patch", + "Skin": "d25106ff", + "Arms": "d25106ff", + "Body": "363636ff", + "Legs": "9c9c9cff", + "Hair": "000000ff", + "Feet": "9c9c9cff", + "speed": 512, + "Gun": "Knife", + "maxHealth": 10, + "flags": 33555456, + "probabilityToMove": 100, + "probabilityToTrack": 100, + "probabilityToShoot": 0, + "actionDelay": 4 + }, + { + "Class": "Cyborg", + "HairType": "cyborg", + "Skin": "9c9c9cff", + "Arms": "d25106ff", + "Body": "363636ff", + "Legs": "9c9c9cff", + "Hair": "ff0000ff", + "Feet": "9c9c9cff", + "speed": 192, + "Gun": "Powergun", + "maxHealth": 100, + "flags": 25166848, + "probabilityToMove": 45, + "probabilityToTrack": 35, + "probabilityToShoot": 30, + "actionDelay": 10 + }, + { + "Class": "Jones", + "HairType": "beard", + "Skin": "ff8136ff", + "Arms": "d25106ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "ff6c00ff", + "Feet": "363636ff", + "speed": 128, + "Gun": "Dynamite", + "maxHealth": 10, + "flags": 17826816, + "probabilityToMove": 100, + "probabilityToTrack": 70, + "probabilityToShoot": 100, + "actionDelay": 10 + }, + { + "Class": "Jones", + "HairType": "dutch", + "Skin": "882800ff", + "Arms": "d25106ff", + "Body": "363636ff", + "Legs": "9c9c9cff", + "Hair": "000000ff", + "Feet": "9c9c9cff", + "speed": 128, + "Gun": "Dynamite", + "maxHealth": 10, + "flags": 17826816, + "probabilityToMove": 100, + "probabilityToTrack": 70, + "probabilityToShoot": 80, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beard", + "Skin": "d25106ff", + "Arms": "d25106ff", + "Body": "363636ff", + "Legs": "9c9c9cff", + "Hair": "000000ff", + "Feet": "9c9c9cff", + "speed": 128, + "Gun": "Dynamite", + "maxHealth": 10, + "flags": 17826816, + "probabilityToMove": 100, + "probabilityToTrack": 70, + "probabilityToShoot": 80, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beard", + "Skin": "9c5858ff", + "Arms": "d25106ff", + "Body": "363636ff", + "Legs": "9c9c9cff", + "Hair": "d25106ff", + "Feet": "9c9c9cff", + "speed": 128, + "Gun": "Dynamite", + "maxHealth": 10, + "flags": 17826816, + "probabilityToMove": 100, + "probabilityToTrack": 70, + "probabilityToShoot": 80, + "actionDelay": 15 + }, + { + "Class": "Robot", + "Skin": "d25106ff", + "Arms": "d25106ff", + "Body": "363636ff", + "Legs": "9c9c9cff", + "Hair": "000000ff", + "Feet": "9c9c9cff", + "speed": 128, + "Gun": "Dynamite", + "maxHealth": 10, + "flags": 17826816, + "probabilityToMove": 100, + "probabilityToTrack": 70, + "probabilityToShoot": 80, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "d25106ff", + "Arms": "9c5858ff", + "Body": "363636ff", + "Legs": "9c9c9cff", + "Hair": "000000ff", + "Feet": "9c9c9cff", + "speed": 128, + "Gun": "Dynamite", + "maxHealth": 10, + "flags": 17826816, + "probabilityToMove": 100, + "probabilityToTrack": 70, + "probabilityToShoot": 80, + "actionDelay": 15 + }, + { + "Class": "Robot", + "Skin": "ff8136ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "9c0000ff", + "Feet": "363636ff", + "speed": 128, + "Gun": "Chemo gun", + "maxHealth": 120, + "flags": 16778240, + "probabilityToMove": 65, + "probabilityToTrack": 30, + "probabilityToShoot": 20, + "actionDelay": 13 + }, + { + "Class": "Jones", + "HairType": "professor", + "Skin": "000000ff", + "Arms": "d25106ff", + "Body": "ffffffff", + "Legs": "9c9c9cff", + "Hair": "363636ff", + "Feet": "9c9c9cff", + "speed": 256, + "Gun": "The Mutilator!!!", + "maxHealth": 250, + "flags": 33555456, + "probabilityToMove": 65, + "probabilityToTrack": 70, + "probabilityToShoot": 100, + "actionDelay": 17 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/graphics/bio_grenade.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/graphics/bio_grenade.txt new file mode 100644 index 00000000..cdc9cec6 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/graphics/bio_grenade.txt @@ -0,0 +1,3 @@ +Adapted from C-Dogs data by Ronny Wester + +https://creativecommons.org/licenses/by/4.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/graphics/bio_grenade_8x8.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/graphics/bio_grenade_8x8.png new file mode 100644 index 00000000..ab6c398d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/graphics/bio_grenade_8x8.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/graphics/bio_grenades.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/graphics/bio_grenades.png new file mode 100644 index 00000000..15714054 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/graphics/bio_grenades.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/graphics/pulsey_5x5.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/graphics/pulsey_5x5.png new file mode 100644 index 00000000..899d7a1e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/graphics/pulsey_5x5.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/graphics/rapidr_11x11.png b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/graphics/rapidr_11x11.png new file mode 100644 index 00000000..0cb3fa86 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/graphics/rapidr_11x11.png differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/graphics/rapidr_11x11.png.txt b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/graphics/rapidr_11x11.png.txt new file mode 100644 index 00000000..58d66dc7 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/graphics/rapidr_11x11.png.txt @@ -0,0 +1,6 @@ +Adapted from 140 Military Icons Set (fixed) +by AngryMeteor.com +https://opengameart.org/content/140-military-icons-set-fixed +http://creativecommons.org/licenses/by/3.0/ + +Modified by Sauer2 diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/guns.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/guns.json new file mode 100644 index 00000000..5072965b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/guns.json @@ -0,0 +1,107 @@ +{ + "Version": 1, + "Guns": [ + { + "Pic": "blaster_white", + "Name": "AArms Needler", + "Icon": "petrifier", + "Bullet": "yellow_needle", + "Cost": 1, + "Lock": 3, + "Sound": "pulse", + "Recoil": 0.3, + "SpreadCount": 2, + "SpreadWidth": 0.1, + "AngleOffset": 0.1, + "Ammo": "Mini cells" + }, + { + "Pic": "chaingun_blue", + "Name": "AArms Pulse MG", + "Icon": "machine_gun_blue", + "Bullet": "blue_bullet", + "Cost": 3, + "Lock": 7, + "Sound": "pulse", + "Recoil": 0.12, + "Ammo": "Mini cells" + }, + { + "Pic": "rifle2", + "Grips": 2, + "Name": "XTech BounceRifle", + "Icon": "powergun", + "Bullet": "blue_beam", + "Cost": 9, + "Lock": 30, + "Sound": "fusion", + "Recoil": 0.12, + "SpreadCount": 2, + "SpreadWidth": 0.2, + "Ammo": "Cells" + }, + { + "Pic": "shotgun_green", + "Grips": 2, + "Name": "Zeild Particle Shotgun V5", + "Icon": "sniper", + "Bullet": "shotgun_particle", + "Cost": 5, + "Lock": 50, + "ReloadLead": 10, + "Sound": "shotgun", + "ReloadSound": "shotgun_r", + "SwitchSound": "shotgun_r", + "SpreadCount": 5, + "SpreadWidth": 0.2, + "Ammo": "Cells" + }, + { + "Pic": "raygun", + "Name": "The Mutilator!!!", + "Icon": "powergun", + "Bullet": "red_dot", + "Cost": 0, + "Lock": 10, + "Sound": "pulse", + "Recoil": 0, + "SpreadCount": 3, + "SpreadWidth": 1, + "Ammo": "Mini cells" + }, + { + "Pic": "pistol", + "Name": "Laser Pistol", + "Icon": "pistol", + "Bullet": "red_laser", + "Cost": 0, + "Lock": 18, + "Sound": "pistol", + "SwitchSound": "pistol_switch", + "Recoil": 0.1 + }, + { + "Pic": "", + "IsGrenade": true, + "Name": "Bioreactive Grenades", + "Bullet": "bio_grenade", + "Cost": 10, + "Lock": 30, + "Sound": "launch", + "SwitchSound": "grenade_pickup", + "Elevation": 24, + "Ammo": "Bio Grenades" + } + ], "PseudoGuns" : [ + { + "Pic": "", + "Name": "particle_explosion", + "Bullet": "yellow_particle", + "Sound": "hits/petrify", + "SpreadCount": 60, + "SpreadWidth": 0.1, + "AngleOffset": 0.05, + "ShakeAmount": 2 + } + ] +} diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/missions.json new file mode 100644 index 00000000..cbb74598 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/spacepirates.cdogscpn/missions.json @@ -0,0 +1,2633 @@ +{ + "Missions": [{ + "Title": "Defense of the Prodigy IV", + "Description": "Defeat the attackers. Also, it's your duty to find out more about the unknown ship.", + "Type": "Static", + "Width": 33, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Defeat the attackers!", + "Type": "Kill", + "Index": 0, + "Count": 16, + "Required": 16, + "Flags": 0 + }, + { + "Description": "Get information from hologram chat.", + "Type": "Collect", + "Pickup": "holo", + "Count": 1, + "Required": 1, + "Flags": 4 + }, + { + "Description": "Better grab the engine keychain...", + "Type": "Collect", + "Pickup": "chip3", + "Count": 1, + "Required": 0, + "Flags": 0 + }], + "Enemies": [3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 16, + 13], + "SpecialChars": [18, + 19, + 20, + 21, + 22, + 23, + 25], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "AArms Pulse MG", + "XTech BounceRifle", + "Zeild Particle Shotgun V5"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel2", + "Mask": "34345cff", + "MaskAlt": "000084ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "grid", + "Mask": "fcb800ff", + "MaskAlt": "000084ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "biggrid", + "Mask": "d4d4d4ff", + "MaskAlt": "000084ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,3,3,3,3,3,2,3,3,3,3,0,0,0,0,0,0,0,0,2,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,3,3,3,3,0,0,0,0,2,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,0,0,0,0,0,0,0,0,0,2,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,3,0,0,0,0,0,0,0,0,0,2,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,3,0,0,0,0,0,0,0,0,0,1,3,3,3,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,0,0,1", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,3,0,0,2,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,3,0,0,2,0,0,0,0,0,1", + "1,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,0,0,3,0,0,1,1,1,1,1,1,1", + "1,0,0,3,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,1,1,0,0,0,1,1", + "1,0,0,3,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,1,0,0,3,3,3,3,3,3,3,0,0,1,0,0,3,0,0,2,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,2,0,0,0,0,0,1", + "1,0,0,3,0,1,1,1,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,1,1,1,1,1,1,1", + "1,0,0,3,0,0,0,0,1,0,0,3,3,3,3,3,3,3,0,0,1,2,2,2,2,2,1,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,1,0,0,3,3,3,3,3,3,3,0,0,1,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,2,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,1,0,0,3,3,3,3,3,3,3,0,0,1,0,0,3,0,0,2,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,1,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,0,0,3,0,0,2,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,3,0,0,2,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,3,0,0,1,1,1,1,1,1,1", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,0,0,0,0,0,1", + "1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,2,0,0,0,0,0,1", + "1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,3,0,0,2,0,0,0,0,0,1", + "1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,3,0,0,1,1,1,1,1,1,1", + "1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,2048,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "barrel_blue", + "Positions": [[31, 7], + [31, 6], + [31, 5], + [10, 11]] + }, + { + "MapObject": "rod", + "Positions": [[26, 2], + [2, 35], + [22, 44], + [24, 12], + [2, 12], + [19, 31], + [1, 31], + [1, 8], + [19, 42]] + }, + { + "MapObject": "terminal", + "Positions": [[1, 5], + [11, 1], + [10, 1], + [9, 1], + [5, 1], + [6, 1], + [28, 17], + [27, 11], + [27, 24], + [27, 30], + [27, 36], + [27, 42], + [12, 41], + [5, 24]] + }, + { + "MapObject": "cabinet_server", + "Positions": [[1, 1], + [3, 1], + [2, 1], + [4, 1], + [1, 3], + [1, 2], + [1, 4], + [14, 1], + [9, 41], + [10, 41], + [11, 41], + [18, 46], + [19, 44], + [19, 45], + [19, 46], + [8, 44]] + }, + { + "MapObject": "table_steel", + "Positions": [[1, 6], + [12, 1], + [13, 1], + [29, 17], + [11, 21], + [12, 21], + [13, 21], + [13, 28], + [12, 28], + [11, 28], + [15, 21], + [16, 21], + [17, 21], + [15, 28], + [16, 28], + [17, 28], + [13, 24], + [15, 24], + [16, 24], + [17, 24], + [15, 25], + [16, 25], + [17, 25], + [11, 24], + [12, 24], + [13, 25], + [12, 25], + [11, 25]] + }, + { + "MapObject": "table", + "Positions": [[8, 1], + [7, 1], + [7, 5], + [8, 5], + [8, 6], + [7, 6], + [19, 17], + [19, 18]] + }, + { + "MapObject": "table_lab", + "Positions": [[30, 17]] + }, + { + "MapObject": "chair", + "Positions": [[29, 19], + [11, 3], + [9, 3], + [5, 3], + [3, 6], + [11, 7], + [27, 12], + [31, 27], + [31, 34], + [28, 36], + [27, 43], + [11, 26], + [13, 26], + [15, 26], + [17, 26], + [17, 23], + [15, 23], + [13, 23], + [11, 23], + [11, 20], + [13, 20], + [15, 20], + [17, 20], + [17, 29], + [15, 29], + [11, 29], + [13, 29], + [5, 26]] + }, + { + "MapObject": "barrel_flame", + "Positions": [[31, 8]] + }, + { + "MapObject": "floor_console", + "Positions": [[31, 24], + [30, 24], + [31, 11], + [30, 11], + [31, 30], + [30, 30], + [31, 36], + [30, 36], + [31, 42], + [30, 42], + [31, 21], + [31, 20], + [31, 19]] + }, + { + "MapObject": "safe2", + "Positions": [[18, 41], + [19, 41], + [1, 42], + [1, 43], + [1, 44], + [1, 41]] + }, + { + "MapObject": "barrel_wood", + "Positions": [[8, 41], + [14, 41], + [13, 41], + [1, 23], + [1, 24], + [9, 11]] + }, + { + "MapObject": "crate", + "Positions": [[17, 41], + [7, 28], + [6, 26], + [7, 26], + [7, 27], + [6, 27]] + }, + { + "MapObject": "box3", + "Positions": [[15, 41], + [15, 44], + [14, 44]] + }, + { + "MapObject": "box3_green", + "Positions": [[4, 44], + [4, 43], + [3, 43], + [5, 44], + [9, 17], + [9, 18], + [9, 20], + [9, 22]] + }, + { + "MapObject": "box3_gray", + "Positions": [[5, 43], + [9, 21], + [9, 23]] + }, + { + "MapObject": "crate2", + "Positions": [[9, 19], + [6, 28], + [7, 30]] + }, + { + "MapObject": "bookshelf", + "Positions": [[18, 17], + [9, 24], + [7, 17], + [7, 24], + [6, 24]] + }, + { + "MapObject": "scratch", + "Positions": [[22, 11], + [16, 1]] + }, + { + "MapObject": "bulletmarks", + "Positions": [[18, 34]] + }, + { + "MapObject": "blood1", + "Positions": [[5, 20]] + }, + { + "MapObject": "fan", + "Positions": [[31, 18], + [27, 18]] + }, + { + "MapObject": "barrel_blue_wreck", + "Positions": [[19, 1]] + }], + "StaticCharacters": [{ + "Index": 16, + "Positions": [[3, 13]] + }, + { + "Index": 4, + "Positions": [[13, 7]] + }, + { + "Index": 3, + "Positions": [[3, 3]] + }, + { + "Index": 5, + "Positions": [[23, 13]] + }, + { + "Index": 6, + "Positions": [[23, 15]] + }, + { + "Index": 7, + "Positions": [[16, 22]] + }, + { + "Index": 8, + "Positions": [[6, 29]] + }, + { + "Index": 9, + "Positions": [[1, 37]] + }, + { + "Index": 10, + "Positions": [[29, 36]] + }, + { + "Index": 11, + "Positions": [[28, 24]] + }, + { + "Index": 12, + "Positions": [[16, 41]] + }, + { + "Index": 13, + "Positions": [[1, 45]] + }, + { + "Index": 14, + "Positions": [[17, 8]] + }, + { + "Index": 15, + "Positions": [[16, 1]] + }], + "StaticObjectives": [{ + "Index": 1, + "Positions": [[4, 5]], + "Indices": [0] + }, + { + "Index": 0, + "Positions": [[11, 44], + [26, 6], + [21, 2], + [30, 32], + [23, 2], + [6, 19], + [10, 30], + [30, 20], + [29, 13], + [14, 18], + [28, 45], + [23, 32], + [3, 28], + [23, 36], + [5, 13], + [25, 14]], + "Indices": [0, + 0, + 1, + 1, + 2, + 2, + 3, + 3, + 4, + 4, + 4, + 5, + 5, + 0, + 1, + 6] + }, + { + "Index": 2, + "Positions": [[28, 18]], + "Indices": [0] + }], + "StaticKeys": [{ + "Index": 0, + "Positions": [[30, 38]] + }], + "StaticPickups": [], + "Start": [10, 5], + "Exits": [{ + "Rect": [24, + 4, + 4, + 4], + "Mission": 1, + "Hidden": false + }] + }, + { + "Title": "Pirate ship beaming deck", + "Description": "Antares III warns you: Those are pirates, selling their prisoners as slaves. Since they got three of your crew members, you decide to pay them a visit and beam up into their ship...", + "Type": "Classic", + "Width": 41, + "Height": 25, + "ExitStyle": "plate", + "KeyStyle": "dungeon", + "Objectives": [{ + "Description": "Get rid of the cyborg guards!", + "Type": "Kill", + "Index": 0, + "Count": 3, + "Required": 3, + "Flags": 0 + }, + { + "Description": "Find the switch to the bridge.", + "Type": "Collect", + "Pickup": "radio", + "Count": 1, + "Required": 1, + "Flags": 4 + }, + { + "Description": "They will never sit in peace again!", + "Type": "Destroy", + "MapObject": "chair", + "Count": 1, + "Required": 0, + "Flags": 0 + }], + "Enemies": [20, + 21, + 24, + 28, + 25, + 23], + "SpecialChars": [30], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 15 + }, + { + "MapObject": "terminal", + "Density": 15 + }, + { + "MapObject": "barrel_skull", + "Density": 10 + }], + "EnemyDensity": 2, + "Weapons": ["Knife", + "AArms Pulse MG", + "XTech BounceRifle", + "Zeild Particle Shotgun V5", + "Bioreactive Grenades"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "840000ff", + "MaskAlt": "74601cff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "484848ff", + "MaskAlt": "74601cff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "grid", + "Mask": "94802cff", + "MaskAlt": "74601cff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 27, + "WallLength": 17, + "CorridorWidth": 1, + "Rooms": { + "Count": 5, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 2, + "ExitEnabled": true, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 9, + "Min": 1, + "Max": 2 + } + }, + { + "Title": "The bridge", + "Description": "You enter the bridge. Now it is important to distract the pirates by destroying their stuff. It may help that you found some new weapon: the needler", + "Type": "Classic", + "Width": 42, + "Height": 41, + "ExitStyle": "plate", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Kill 3 of their main officers!", + "Type": "Kill", + "Index": 0, + "Count": 5, + "Required": 4, + "Flags": 0 + }, + { + "Description": "Destroy some security cams...", + "Type": "Destroy", + "MapObject": "column", + "Count": 9, + "Required": 5, + "Flags": 0 + }, + { + "Description": "Smash some computers!", + "Type": "Destroy", + "MapObject": "terminal", + "Count": 4, + "Required": 3, + "Flags": 0 + }], + "Enemies": [18, + 25, + 22, + 19, + 24, + 20, + 21, + 23, + 28], + "SpecialChars": [26, + 37, + 27], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 20 + }, + { + "MapObject": "box3_gray", + "Density": 10 + }, + { + "MapObject": "crate2", + "Density": 10 + }], + "EnemyDensity": 3, + "Weapons": ["Knife", + "AArms Needler", + "AArms Pulse MG", + "XTech BounceRifle", + "Zeild Particle Shotgun V5", + "Bioreactive Grenades"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "482400ff", + "MaskAlt": "480000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "703800ff", + "MaskAlt": "480000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "484848ff", + "MaskAlt": "480000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "dungeon", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 29, + "WallLength": 13, + "CorridorWidth": 1, + "Rooms": { + "Count": 6, + "Min": 6, + "Max": 11, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 1, + "WallPad": 0 + }, + "Squares": 1, + "ExitEnabled": true, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "The pirate king", + "Description": "As you enter a room, you hear a voice \"You'll never make it alive from my ship!\" That's your chance to take out the captain!", + "Type": "Static", + "Width": 33, + "Height": 29, + "ExitStyle": "plate", + "KeyStyle": "dungeon", + "Objectives": [{ + "Description": "Finish him!", + "Type": "Kill", + "Index": 0, + "Count": 1, + "Required": 1, + "Flags": 2 + }], + "Enemies": [], + "SpecialChars": [38], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife", + "AArms Needler", + "AArms Pulse MG", + "XTech BounceRifle", + "Zeild Particle Shotgun V5"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "808080ff", + "MaskAlt": "700000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "4": { + "Name": "", + "Type": "", + "Style": "", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "grid", + "Mask": "c0c0c0ff", + "MaskAlt": "700000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "grid", + "Mask": "8484acff", + "MaskAlt": "700000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,3,3,1,0,0,0,0,0,0,0,0,1", + "1,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,3,3,1,0,0,0,0,0,0,0,0,1", + "1,0,0,0,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,3,3,1,1,1,0,0,0,0,1,1,1", + "1,0,0,0,3,3,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,3,3,1,0,0,0,0,0,0,0,0,1", + "1,0,0,0,3,3,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,3,3,1,0,0,0,0,0,0,0,0,1", + "1,0,0,0,3,3,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,1", + "1,1,1,2,2,2,2,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,1", + "1,0,0,0,3,3,0,0,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,1", + "1,0,0,0,3,3,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1", + "1,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,4,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,2048,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "terminal", + "Positions": [[13, 8], + [19, 8], + [20, 8]] + }, + { + "MapObject": "table_steel", + "Positions": [[16, 8]] + }, + { + "MapObject": "crate2", + "Positions": [[24, 14], + [11, 20], + [10, 8], + [1, 1], + [3, 1], + [4, 1], + [2, 1], + [2, 2], + [3, 12], + [1, 27]] + }, + { + "MapObject": "crate", + "Positions": [[12, 20], + [20, 1], + [21, 1]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[24, 18], + [24, 19], + [9, 1]] + }, + { + "MapObject": "chair", + "Positions": [[16, 9], + [13, 9]] + }, + { + "MapObject": "cabinet_server", + "Positions": [[21, 8]] + }, + { + "MapObject": "floor_console", + "Positions": [[1, 26], + [22, 14]] + }, + { + "MapObject": "box3_green", + "Positions": [[28, 1], + [29, 1], + [30, 1]] + }, + { + "MapObject": "table", + "Positions": [[16, 13]] + }, + { + "MapObject": "barrel_wood", + "Positions": [[30, 14]] + }, + { + "MapObject": "wscreen1", + "Positions": [[18, 8], + [11, 8]] + }, + { + "MapObject": "wscreen2", + "Positions": [[17, 8], + [12, 8], + [15, 8]] + }, + { + "MapObject": "barrel_blue_wreck", + "Positions": [[10, 20]] + }], + "StaticCharacters": [], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[16, 15]], + "Indices": [0] + }], + "StaticKeys": [], + "StaticPickups": [], + "Start": [16, 24], + "Exits": [{ + "Rect": [14, + 2, + 4, + 3], + "Mission": 4, + "Hidden": false + }] + }, + { + "Title": "To the rescue", + "Description": "Get your team members out of there. You already freed two, so that's one to go.", + "Type": "Static", + "Width": 42, + "Height": 35, + "ExitStyle": "plate", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Rescue sergeant Grenn", + "Type": "Rescue", + "Index": 17, + "Count": 1, + "Required": 1, + "Flags": 4 + }, + { + "Description": "Rig their ship by stealing an important device.", + "Type": "Collect", + "Pickup": "circuit", + "Count": 1, + "Required": 1, + "Flags": 0 + }, + { + "Description": "Waste the guards!", + "Type": "Kill", + "Index": 0, + "Count": 16, + "Required": 0, + "Flags": 0 + }], + "Enemies": [3, + 6, + 14], + "SpecialChars": [19, + 20, + 29, + 37, + 21, + 18, + 23], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["AArms Needler", + "AArms Pulse MG", + "XTech BounceRifle", + "Knife", + "Zeild Particle Shotgun V5"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "dungeon", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "484848ff", + "MaskAlt": "480000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "grid", + "Mask": "489848ff", + "MaskAlt": "480000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "5": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "848484ff", + "MaskAlt": "480000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "848484ff", + "MaskAlt": "480000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1", + "1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,2,2,2,1,0,0,1", + "1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,3,3,0,0,0,1", + "1,0,0,3,3,3,3,0,0,1,0,0,0,0,0,5,5,5,5,2,5,5,5,5,5,5,5,5,5,5,0,1,0,0,0,3,3,3,0,0,0,1", + "1,0,0,3,3,3,3,0,0,1,0,0,0,0,3,3,3,3,3,2,3,3,3,3,3,3,3,3,5,5,0,1,1,0,0,3,3,3,0,0,1,1", + "1,0,0,3,3,3,3,0,0,1,0,0,0,0,3,3,3,3,3,2,3,3,3,3,3,3,3,3,5,5,0,1,0,0,0,3,3,3,0,0,0,1", + "1,0,0,3,3,3,3,0,0,1,0,0,0,0,3,3,5,5,5,2,5,5,5,5,5,5,3,3,5,5,0,1,0,0,0,3,3,3,0,0,0,1", + "1,0,0,3,3,3,3,0,0,1,0,0,0,0,3,3,5,5,5,1,5,5,5,5,5,5,3,3,5,5,0,1,0,0,0,3,3,3,0,0,0,1", + "1,0,0,3,3,3,3,0,0,1,0,0,0,0,3,3,5,5,5,1,5,5,5,5,5,5,3,3,5,5,0,1,0,0,0,3,3,3,0,0,0,1", + "1,0,0,3,3,3,3,0,0,2,0,0,0,0,3,3,5,5,5,1,5,5,5,5,5,5,3,3,5,5,0,1,0,0,0,3,3,3,3,0,0,1", + "1,0,0,3,3,3,3,3,3,2,3,3,3,3,3,3,5,5,5,1,5,5,5,5,5,5,3,3,5,5,0,1,0,0,0,3,3,3,3,0,0,1", + "1,0,0,3,3,3,3,3,3,2,3,3,3,3,3,3,5,5,5,1,5,5,5,5,5,5,3,3,5,5,0,1,0,0,0,0,0,3,3,0,0,1", + "1,0,0,3,3,3,3,0,0,2,0,0,0,0,3,3,0,0,0,1,0,0,0,0,0,0,3,3,0,0,0,1,0,0,0,0,0,3,3,0,0,1", + "1,0,0,3,3,3,3,0,0,1,0,0,0,0,3,3,0,0,0,1,0,0,0,0,0,0,3,3,0,0,0,1,0,0,0,0,0,3,3,0,0,1", + "1,0,0,3,3,3,3,0,0,1,0,0,0,0,3,3,0,0,0,1,0,0,0,0,0,0,3,3,0,0,0,1,0,0,0,0,0,3,3,0,0,1", + "1,0,0,3,3,3,3,0,0,1,0,0,0,0,3,3,0,0,0,1,0,0,0,0,0,0,3,3,0,0,0,1,0,0,0,0,0,3,3,0,0,1", + "1,0,0,0,0,0,0,0,0,1,0,0,0,0,3,3,0,0,0,1,0,0,0,0,0,0,3,3,0,0,0,1,0,0,0,0,0,3,3,0,0,1", + "1,0,0,0,0,0,0,0,0,1,0,0,0,0,3,3,0,0,0,1,0,0,0,0,0,0,3,3,0,0,0,1,0,0,0,0,0,3,3,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,1,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,0,0,3,3,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,0,0,0,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,3,3,0,0,0,0,1", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,0,0,0,0,0,0,3,3,0,0,0,0,0,0,0,3,3,0,0,0,0,1", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,0,0,0,3,3,3,3,3,0,0,0,1,1,1,2,2,2,2,1,1,1,1", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,0,0,0,3,3,3,3,3,0,0,0,1,3,3,3,3,3,3,3,3,3,1", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,0,0,0,3,3,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,0,0,0,3,3,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,0,0,0,3,3,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,0,0,0,3,3,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,0,0,0,3,3,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,0,0,0,3,3,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,3,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,2,2,2,2,1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,1024,1024,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,512,512,512,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1024,1024,1024,1024,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,256,256,256,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "box3_gray", + "Positions": [[22, 19], + [39, 25], + [18, 10]] + }, + { + "MapObject": "floor_console", + "Positions": [[40, 28], + [40, 29]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[33, 14], + [24, 10], + [25, 11]] + }, + { + "MapObject": "box_red", + "Positions": [[32, 13]] + }, + { + "MapObject": "rocket", + "Positions": [[20, 23], + [13, 1]] + }, + { + "MapObject": "bloodstain", + "Positions": [[33, 25]] + }, + { + "MapObject": "scratch", + "Positions": [[40, 25]] + }, + { + "MapObject": "blood0", + "Positions": [[36, 28]] + }, + { + "MapObject": "blood2", + "Positions": [[34, 31]] + }, + { + "MapObject": "table_steel", + "Positions": [[40, 13], + [32, 27], + [3, 3], + [4, 3]] + }, + { + "MapObject": "safe2", + "Positions": [[30, 4], + [30, 6], + [30, 8], + [7, 19]] + }, + { + "MapObject": "crate2", + "Positions": [[21, 8], + [22, 7]] + }, + { + "MapObject": "crate", + "Positions": [[22, 8]] + }, + { + "MapObject": "skull", + "Positions": [[4, 10]] + }, + { + "MapObject": "bone_blood", + "Positions": [[7, 5]] + }, + { + "MapObject": "blood1", + "Positions": [[6, 14]] + }, + { + "MapObject": "bulletmarks", + "Positions": [[2, 1]] + }, + { + "MapObject": "table_lab", + "Positions": [[8, 1]] + }, + { + "MapObject": "terminal", + "Positions": [[4, 19], + [5, 19], + [6, 19]] + }, + { + "MapObject": "cabinet_server", + "Positions": [[1, 21], + [1, 23], + [1, 25], + [1, 27], + [1, 29], + [1, 31]] + }, + { + "MapObject": "table", + "Positions": [[8, 25], + [9, 25], + [10, 25], + [10, 26], + [9, 26], + [8, 26]] + }, + { + "MapObject": "rod", + "Positions": [[11, 14]] + }, + { + "MapObject": "chair", + "Positions": [[5, 20]] + }, + { + "MapObject": "barrel_skull", + "Positions": [[18, 28], + [18, 23], + [18, 14], + [18, 15], + [18, 16], + [18, 17]] + }, + { + "MapObject": "bookshelf", + "Positions": [[9, 19]] + }, + { + "MapObject": "box3_green", + "Positions": [[24, 1]] + }, + { + "MapObject": "barrel_flame", + "Positions": [[28, 1], + [29, 12], + [10, 1], + [11, 1], + [12, 1], + [10, 2], + [11, 2], + [12, 2], + [10, 3], + [11, 3], + [12, 3], + [10, 4]] + }, + { + "MapObject": "rocket_wreck", + "Positions": [[3, 5]] + }, + { + "MapObject": "crate_wreck", + "Positions": [[2, 13]] + }], + "StaticCharacters": [{ + "Index": 3, + "Positions": [[28, 25]] + }, + { + "Index": 14, + "Positions": [[26, 22]] + }, + { + "Index": 6, + "Positions": [[22, 22]] + }], + "StaticObjectives": [{ + "Index": 0, + "Positions": [[36, 30]], + "Indices": [0] + }, + { + "Index": 1, + "Positions": [[8, 19]], + "Indices": [0] + }, + { + "Index": 2, + "Positions": [[35, 15], + [33, 30], + [5, 15], + [22, 13], + [15, 30], + [38, 14], + [35, 21], + [12, 9], + [27, 6], + [14, 26], + [6, 6], + [37, 27], + [23, 5], + [11, 22], + [4, 10], + [36, 7]], + "Indices": [0, + 0, + 0, + 1, + 1, + 1, + 2, + 2, + 3, + 3, + 4, + 4, + 5, + 5, + 6, + 6] + }], + "StaticKeys": [{ + "Index": 2, + "Positions": [[3, 4]] + }, + { + "Index": 1, + "Positions": [[40, 14]] + }, + { + "Index": 0, + "Positions": [[10, 27]] + }], + "StaticPickups": [], + "Start": [24, 26], + "Exits": [{ + "Rect": [33, + 2, + 6, + 7], + "Mission": 5, + "Hidden": false + }] + }, + { + "Title": "The escape", + "Description": "It seems, the pirates have realized that they have no chance, so they are trying to go out with you. Get out there fast!", + "Type": "Classic", + "Width": 64, + "Height": 48, + "ExitStyle": "plate", + "KeyStyle": "office", + "Objectives": [], + "Enemies": [35, + 31, + 32, + 33, + 34, + 36], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "barrel_skull", + "Density": 20 + }, + { + "MapObject": "barrel_wood", + "Density": 5 + }, + { + "MapObject": "box3", + "Density": 25 + }], + "EnemyDensity": 70, + "Weapons": ["Knife", + "AArms Needler", + "AArms Pulse MG", + "XTech BounceRifle", + "Zeild Particle Shotgun V5"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "840000ff", + "MaskAlt": "480000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "848484ff", + "MaskAlt": "480000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "840000ff", + "MaskAlt": "480000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 66, + "WallLength": 31, + "CorridorWidth": 1, + "Rooms": { + "Count": 0, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 1, + "ExitEnabled": true, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Xurion pt. 1", + "Description": "You aren't finished, yet. Two crew members already got sold to Xurian slavers and you must go after them!", + "Type": "Classic", + "Width": 36, + "Height": 42, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Check the perimeter", + "Type": "Explore", + "Index": 0, + "Count": 20, + "Required": 15, + "Flags": 0 + }, + { + "Description": "Better destroy those predator alien pods...", + "Type": "Destroy", + "MapObject": "egg", + "Count": 2, + "Required": 0, + "Flags": 1 + }, + { + "Description": "Kill the slaver guards", + "Type": "Kill", + "Index": 0, + "Count": 15, + "Required": 15, + "Flags": 0 + }], + "Enemies": [3, + 6, + 14], + "SpecialChars": [0, + 1, + 2], + "MapObjectDensities": [{ + "MapObject": "crate", + "Density": 5 + }, + { + "MapObject": "barrel_blue", + "Density": 5 + }, + { + "MapObject": "crate2", + "Density": 5 + }, + { + "MapObject": "wall_stuff", + "Density": 10 + }, + { + "MapObject": "wall_goo", + "Density": 15 + }, + { + "MapObject": "box_red", + "Density": 5 + }], + "EnemyDensity": 3, + "Weapons": ["Knife", + "AArms Needler", + "AArms Pulse MG", + "XTech BounceRifle", + "Zeild Particle Shotgun V5", + "Bioreactive Grenades"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "804020ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "604020ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "stone", + "Mask": "707070ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "alien", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 20, + "WallLength": 18, + "CorridorWidth": 0, + "Rooms": { + "Count": 1, + "Min": 9, + "Max": 14, + "Edge": true, + "Overlap": false, + "Walls": 1, + "WallLength": 1, + "WallPad": 1 + }, + "Squares": 0, + "ExitEnabled": false, + "Doors": { + "Enabled": false, + "Min": 4, + "Max": 4 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Xurion pt. 2", + "Description": "To free your crew members, more information about the terrain is required. Find maps or geospatial data.", + "Type": "Classic", + "Width": 48, + "Height": 55, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Find maps", + "Type": "Collect", + "Pickup": "starmap", + "Count": 3, + "Required": 2, + "Flags": 4 + }, + { + "Description": "Find a geolocator", + "Type": "Collect", + "Pickup": "radio2", + "Count": 2, + "Required": 1, + "Flags": 4 + }, + { + "Description": "Find navigational data", + "Type": "Collect", + "Pickup": "chip2", + "Count": 5, + "Required": 3, + "Flags": 4 + }, + { + "Description": "Waste more enemies", + "Type": "Kill", + "Index": 0, + "Count": 15, + "Required": 10, + "Flags": 0 + }], + "Enemies": [3, + 6, + 14], + "SpecialChars": [0, + 1, + 2, + 29, + 18], + "MapObjectDensities": [{ + "MapObject": "cabinet_server", + "Density": 5 + }, + { + "MapObject": "crate2", + "Density": 10 + }, + { + "MapObject": "crate", + "Density": 5 + }, + { + "MapObject": "table_wood", + "Density": 5 + }, + { + "MapObject": "box3_red", + "Density": 5 + }, + { + "MapObject": "table_steel", + "Density": 5 + }, + { + "MapObject": "wall_goo", + "Density": 10 + }], + "EnemyDensity": 3, + "Weapons": ["Knife", + "AArms Needler", + "AArms Pulse MG", + "XTech BounceRifle", + "Zeild Particle Shotgun V5", + "Bioreactive Grenades"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "802020ff", + "MaskAlt": "008400ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "604020ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "707070ff", + "MaskAlt": "008400ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 22, + "WallLength": 17, + "CorridorWidth": 0, + "Rooms": { + "Count": 7, + "Min": 6, + "Max": 17, + "Edge": true, + "Overlap": true, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "ExitEnabled": true, + "Doors": { + "Enabled": true, + "Min": 2, + "Max": 4 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Xurion pt. 3", + "Description": "You got into the slaver base, but it looks your crew members already freed themselves. Just wipe out the remaining slavers and destroy their weaponry.", + "Type": "Static", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "cube", + "Objectives": [{ + "Description": "Kill the slavers", + "Type": "Kill", + "Index": 0, + "Count": 25, + "Required": 25, + "Flags": 0 + }, + { + "Description": "Destroy their weapons", + "Type": "Destroy", + "MapObject": "rocket", + "Count": 10, + "Required": 10, + "Flags": 0 + }], + "Enemies": [6, + 3, + 16], + "SpecialChars": [0, + 1, + 2, + 36, + 25], + "MapObjectDensities": [{ + "MapObject": "chair", + "Density": 10 + }, + { + "MapObject": "table_steel", + "Density": 10 + }, + { + "MapObject": "barrel_wood", + "Density": 15 + }, + { + "MapObject": "box3_green", + "Density": 5 + }, + { + "MapObject": "terminal", + "Density": 5 + }], + "EnemyDensity": 0, + "Weapons": ["Knife", + "AArms Needler", + "AArms Pulse MG", + "XTech BounceRifle", + "Zeild Particle Shotgun V5"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "steelwood", + "Mask": "208020ff", + "MaskAlt": "808080ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "608020ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "808020ff", + "MaskAlt": "808080ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,2,1,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1", + "1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,1,1,2,1,1,0,0,0,0,1,1,1,1,1,2,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,1,0,0,0,1,3,3,3,1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,1,0,0,0,1,3,3,3,1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,0,0,0,0,1", + "1,0,1,1,1,0,1,3,3,3,1,0,0,1,0,1,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1", + "1,0,1,0,0,0,1,3,3,3,1,0,0,1,0,1,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1", + "1,0,1,0,0,0,1,3,3,3,1,0,0,1,0,1,3,3,3,3,3,3,3,3,3,1,0,1,1,1,1,1,0,1,1,1,1,2,1,1,1,0,1,0,0,0,0,1", + "1,0,0,0,0,0,1,3,3,3,1,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,0,1,0,0,0,0,1", + "1,0,0,0,0,0,1,3,3,3,1,0,0,1,0,1,1,1,1,1,2,1,1,1,1,1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,0,1,0,0,0,0,1", + "1,0,0,0,0,0,1,1,2,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,0,0,0,0,0,0,1", + "1,0,1,1,1,1,2,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,3,3,3,3,3,2,0,0,0,0,0,0,1", + "1,0,1,3,3,3,3,3,3,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,0,0,0,0,0,0,1", + "1,0,1,3,3,3,3,3,3,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,0,0,0,0,0,0,1", + "1,0,1,3,3,3,3,3,3,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,0,0,0,0,0,0,1", + "1,0,1,3,3,3,3,3,3,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1", + "1,0,1,3,3,3,3,3,3,1,0,0,0,0,0,0,1,1,1,1,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,1,1,1,1,2,1,1,1,0,0,0,0,0,0,1,3,3,3,3,3,3,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,0,0,0,0,0,0,2,3,3,3,3,3,3,3,3,3,2,0,0,0,0,1,0,1", + "1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,0,0,0,0,0,0,1,3,3,3,3,3,3,3,3,3,1,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,0,0,0,0,0,0,1,1,1,1,1,2,1,1,1,1,1,0,0,0,1,1,0,1", + "1,0,0,0,0,0,0,0,1,1,1,2,1,1,1,0,1,3,3,3,3,3,3,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,1,3,3,3,3,3,1,0,1,3,3,3,3,3,3,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,2,3,3,3,3,3,1,0,1,1,1,1,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,1,1,1,0,1,3,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,1,1,1,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,3,3,3,3,3,3,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,3,3,3,3,3,3,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,2,3,3,3,3,3,3,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,0,0,0,0,1,0,1,3,3,3,3,3,3,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,1,3,3,3,3,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1", + "1,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,0,1,3,3,3,3,1,0,0,0,0,0,0,0,1,0,0,0,1,1,1,2,1,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,1,3,3,3,3,3,3,1,0,1,3,3,3,3,1,0,0,0,0,0,0,0,1,0,0,0,1,3,3,3,3,1,0,0,0,0,0,1", + "1,0,0,0,0,1,0,0,0,0,1,3,3,3,3,3,3,2,0,2,3,3,3,3,2,0,0,0,0,0,0,0,1,0,0,0,1,3,3,3,3,1,0,0,0,0,0,1", + "1,0,0,0,0,1,0,0,0,0,1,3,3,3,3,3,3,1,0,1,3,3,3,3,1,0,0,0,0,1,1,1,1,1,0,0,1,3,3,3,3,1,0,0,0,0,0,1", + "1,0,0,0,0,1,0,0,0,0,1,1,1,1,2,1,1,1,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,1", + "1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,0,0,1,3,3,3,3,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,1", + "1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,2048,2048,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,256,256,256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,512,512,512,512,512,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,512,512,512,512,512,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,512,512,512,512,512,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,512,512,512,512,512,512,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,512,512,512,512,512,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,512,512,512,512,512,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,512,512,512,512,512,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,512,512,512,512,512,512,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "crate2", + "Positions": [[18, 6], + [17, 13], + [18, 13], + [18, 14], + [31, 35], + [31, 34]] + }, + { + "MapObject": "crate", + "Positions": [[15, 34], + [17, 23], + [3, 9]] + }, + { + "MapObject": "barrel_blue", + "Positions": [[28, 1], + [46, 40], + [46, 39], + [46, 38], + [30, 40]] + }, + { + "MapObject": "terminal", + "Positions": [[3, 16], + [4, 16]] + }, + { + "MapObject": "table_steel", + "Positions": [[3, 17]] + }, + { + "MapObject": "blood1", + "Positions": [[22, 23]] + }, + { + "MapObject": "bloodstain", + "Positions": [[21, 6]] + }, + { + "MapObject": "bulletmarks", + "Positions": [[17, 6]] + }, + { + "MapObject": "skull", + "Positions": [[22, 6]] + }, + { + "MapObject": "wscreen2", + "Positions": [[23, 6]] + }], + "StaticCharacters": [{ + "Index": 3, + "Positions": [[45, 3]] + }, + { + "Index": 6, + "Positions": [[35, 2]] + }, + { + "Index": 14, + "Positions": [[35, 5]] + }, + { + "Index": 15, + "Positions": [[23, 7]] + }, + { + "Index": 16, + "Positions": [[20, 25]] + }], + "StaticObjectives": [], + "StaticKeys": [{ + "Index": 0, + "Positions": [[4, 17]] + }, + { + "Index": 1, + "Positions": [[3, 18]] + }], + "StaticPickups": [], + "Start": [39, 3], + "Exits": [{ + "Rect": [37, + 2, + 5, + 3], + "Mission": 9, + "Hidden": false + }] + }, + { + "Title": "Till you drop", + "Description": "You have a little party, awaiting shore leave...", + "Type": "Static", + "Width": 33, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Your last chance to collect points... err I mean stuff.", + "Type": "Collect", + "Pickup": "bottle_orange", + "Count": 11, + "Required": 0, + "Flags": 1 + }, + { + "Description": "Nice music.", + "Type": "Collect", + "Pickup": "bd", + "Count": 4, + "Required": 0, + "Flags": 1 + }], + "Enemies": [], + "SpecialChars": [], + "MapObjectDensities": [], + "EnemyDensity": 0, + "Weapons": ["Knife"], + "Song": "", + "TileClasses": { + "2": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + }, + "1": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel2", + "Mask": "34345cff", + "MaskAlt": "000084ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "3": { + "Name": "tile", + "Type": "Floor", + "Style": "grid", + "Mask": "fcb800ff", + "MaskAlt": "000084ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "0": { + "Name": "tile", + "Type": "Floor", + "Style": "biggrid", + "Mask": "d4d4d4ff", + "MaskAlt": "000084ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + } + }, + "Tiles": ["1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,2,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,3,3,3,3,3,2,3,3,3,3,0,0,0,0,0,0,0,0,2,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,3,3,3,3,3,0,0,0,0,2,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,3,0,0,0,0,0,0,0,0,0,2,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,3,0,0,0,0,0,0,0,0,0,2,3,3,3,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,3,0,0,0,0,0,0,0,0,0,1,3,3,3,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,1,0,0,0,0,0,1", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,3,0,0,2,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,3,0,0,2,0,0,0,0,0,1", + "1,2,2,2,2,2,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,0,0,3,0,0,1,1,1,1,1,1,1", + "1,0,0,3,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,1,1,0,0,0,1,1", + "1,0,0,3,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,1,0,0,3,3,3,3,3,3,3,0,0,1,0,0,3,0,0,2,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,2,0,0,0,0,0,1", + "1,0,0,3,0,1,1,1,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,1,1,1,1,1,1,1", + "1,0,0,3,0,0,0,0,1,0,0,3,3,3,3,3,3,3,0,0,1,2,2,2,2,2,1,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,1,0,0,3,3,3,3,3,3,3,0,0,1,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,2,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,1,0,0,3,3,3,3,3,3,3,0,0,1,0,0,3,0,0,2,0,0,0,0,0,1", + "1,0,0,3,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,1,1,1,1,1,1,1", + "1,0,0,0,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,1,0,0,0,0,0,3,0,0,0,0,0,1,0,0,3,0,0,1,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,0,0,3,0,0,2,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,3,0,0,2,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,3,0,0,1,1,1,1,1,1,1", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,0,0,0,0,0,1", + "1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,2,0,0,0,0,0,1", + "1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,3,0,0,2,0,0,0,0,0,1", + "1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,3,0,0,1,1,1,1,1,1,1", + "1,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,0,0,3,0,0,1,0,0,0,0,0,1", + "1,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2,0,0,0,0,0,1", + "1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2,0,0,0,0,0,1", + "1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1"], + "Access": ["0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,2048,2048,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2048,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,256,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", + "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"], + "StaticItems": [{ + "MapObject": "barrel_blue", + "Positions": [[31, 7], + [31, 6], + [31, 5], + [10, 11]] + }, + { + "MapObject": "rod", + "Positions": [[26, 2], + [2, 35], + [22, 44], + [24, 12], + [2, 12], + [19, 31], + [1, 31], + [1, 8], + [19, 42]] + }, + { + "MapObject": "terminal", + "Positions": [[1, 5], + [11, 1], + [10, 1], + [9, 1], + [5, 1], + [6, 1], + [28, 17], + [27, 11], + [27, 24], + [27, 30], + [27, 36], + [27, 42], + [12, 41], + [5, 24]] + }, + { + "MapObject": "cabinet_server", + "Positions": [[1, 1], + [3, 1], + [2, 1], + [4, 1], + [1, 3], + [1, 2], + [1, 4], + [14, 1], + [9, 41], + [10, 41], + [11, 41], + [18, 46], + [19, 44], + [19, 45], + [19, 46], + [8, 44]] + }, + { + "MapObject": "table_steel", + "Positions": [[1, 6], + [12, 1], + [13, 1], + [29, 17], + [11, 21], + [12, 21], + [13, 21], + [13, 28], + [12, 28], + [11, 28], + [15, 21], + [16, 21], + [17, 21], + [15, 28], + [16, 28], + [17, 28], + [13, 24], + [15, 24], + [16, 24], + [17, 24], + [15, 25], + [16, 25], + [17, 25], + [11, 24], + [12, 24], + [13, 25], + [12, 25], + [11, 25]] + }, + { + "MapObject": "table", + "Positions": [[8, 1], + [7, 1], + [7, 5], + [8, 5], + [8, 6], + [7, 6], + [19, 17], + [19, 18]] + }, + { + "MapObject": "table_lab", + "Positions": [[30, 17]] + }, + { + "MapObject": "chair", + "Positions": [[29, 19], + [11, 3], + [9, 3], + [5, 3], + [3, 6], + [11, 7], + [27, 12], + [31, 27], + [31, 34], + [28, 36], + [27, 43], + [11, 26], + [13, 26], + [15, 26], + [17, 26], + [17, 23], + [15, 23], + [13, 23], + [11, 23], + [11, 20], + [13, 20], + [15, 20], + [17, 20], + [17, 29], + [15, 29], + [11, 29], + [13, 29], + [5, 26]] + }, + { + "MapObject": "barrel_flame", + "Positions": [[31, 8]] + }, + { + "MapObject": "floor_console", + "Positions": [[31, 24], + [30, 24], + [31, 11], + [30, 11], + [31, 30], + [30, 30], + [31, 36], + [30, 36], + [31, 42], + [30, 42], + [31, 21], + [31, 20], + [31, 19]] + }, + { + "MapObject": "safe2", + "Positions": [[18, 41], + [19, 41], + [1, 42], + [1, 43], + [1, 44], + [1, 41]] + }, + { + "MapObject": "barrel_wood", + "Positions": [[8, 41], + [14, 41], + [13, 41], + [1, 23], + [1, 24], + [9, 11]] + }, + { + "MapObject": "crate", + "Positions": [[17, 41], + [7, 28], + [6, 26], + [7, 26], + [7, 27], + [6, 27]] + }, + { + "MapObject": "box3", + "Positions": [[15, 41], + [15, 44], + [14, 44]] + }, + { + "MapObject": "box3_green", + "Positions": [[4, 44], + [4, 43], + [3, 43], + [5, 44], + [9, 17], + [9, 18], + [9, 20], + [9, 22]] + }, + { + "MapObject": "box3_gray", + "Positions": [[5, 43], + [9, 21], + [9, 23]] + }, + { + "MapObject": "crate2", + "Positions": [[9, 19], + [6, 28], + [7, 30]] + }, + { + "MapObject": "bookshelf", + "Positions": [[18, 17], + [9, 24], + [7, 17], + [7, 24], + [6, 24]] + }, + { + "MapObject": "scratch", + "Positions": [[22, 11], + [16, 1]] + }, + { + "MapObject": "bulletmarks", + "Positions": [[18, 34]] + }, + { + "MapObject": "blood1", + "Positions": [[5, 20]] + }, + { + "MapObject": "fan", + "Positions": [[27, 18], + [31, 18]] + }, + { + "MapObject": "barrel_blue_wreck", + "Positions": [[19, 1]] + }], + "StaticCharacters": [{ + "Index": 4, + "Positions": [[13, 7]] + }, + { + "Index": 5, + "Positions": [[23, 13]] + }, + { + "Index": 7, + "Positions": [[16, 22]] + }, + { + "Index": 8, + "Positions": [[6, 29]] + }, + { + "Index": 9, + "Positions": [[1, 37]] + }, + { + "Index": 10, + "Positions": [[29, 36]] + }, + { + "Index": 11, + "Positions": [[28, 24]] + }, + { + "Index": 12, + "Positions": [[16, 41]] + }, + { + "Index": 13, + "Positions": [[1, 45]] + }], + "StaticObjectives": [], + "StaticKeys": [{ + "Index": 0, + "Positions": [[30, 38]] + }], + "StaticPickups": [], + "Start": [10, 5], + "Exits": [{ + "Rect": [24, + 4, + 4, + 4], + "Mission": 10, + "Hidden": false + }] + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/terror.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/terror.cdogscpn/campaign.json new file mode 100644 index 00000000..263e3134 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/terror.cdogscpn/campaign.json @@ -0,0 +1,10 @@ +{ + "Version": 15, + "Title": "The Brotherhood of Anarchy and Death", + "Author": "Ronny Wester", + "Description": "A group of terrorists known as the Brotherhood of Anarchy and Death have recently committed a number of acts of terror and destruction. The time has come for decisive action against them.", + "Ammo": false, + "WeaponPersist": false, + "SkipWeaponMenu": false, + "Missions": 13 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/terror.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/terror.cdogscpn/characters.json new file mode 100644 index 00000000..bcf16415 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/terror.cdogscpn/characters.json @@ -0,0 +1,499 @@ +{ + "Version": 13, + "Characters": [{ + "Class": "Jones", + "PlayerTemplateName": "Account Exec", + "HairType": "flattop", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "ff6c00ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "PlayerTemplateName": "IT Admin", + "HairType": "flattop", + "Skin": "882800ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "PlayerTemplateName": "Facilities Coordinator", + "HairType": "hogan", + "Skin": "ff8136ff", + "Arms": "ffffffff", + "Body": "9c9c9cff", + "Legs": "363636ff", + "Hair": "9c9c9cff", + "speed": 128, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "beard", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ff8136ff", + "Legs": "363636ff", + "Hair": "363636ff", + "speed": 192, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "d25106ff", + "Arms": "363636ff", + "Body": "9c0000ff", + "Legs": "b79536ff", + "Hair": "9c0000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "d25106ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "9c0000ff", + "Hair": "ff8136ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "882800ff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "ff8136ff", + "Arms": "363636ff", + "Body": "ff8136ff", + "Legs": "9c5858ff", + "Hair": "9c9c9cff", + "speed": 128, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "d25106ff", + "Arms": "9c0000ff", + "Body": "b79536ff", + "Legs": "149c14ff", + "Hair": "ff6c00ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ff8136ff", + "Legs": "363636ff", + "Hair": "9c0000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "58589cff", + "Legs": "363636ff", + "Hair": "ff8136ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 6356992, + "probabilityToMove": 100, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "HairType": "dutch", + "Skin": "d25106ff", + "Arms": "9c9c9cff", + "Body": "d25106ff", + "Legs": "58589cff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 35, + "probabilityToShoot": 15, + "actionDelay": 10 + }, + { + "Class": "Jones", + "HairType": "flattop", + "Skin": "d25106ff", + "Arms": "d25106ff", + "Body": "9c5858ff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Knife", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 35, + "probabilityToShoot": 0, + "actionDelay": 10 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "d25106ff", + "Arms": "9c0000ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "9c0000ff", + "speed": 256, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 5, + "probabilityToShoot": 15, + "actionDelay": 10 + }, + { + "Class": "Jones", + "HairType": "eye_patch", + "Skin": "d25106ff", + "Arms": "58589cff", + "Body": "9c589cff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 5, + "probabilityToShoot": 50, + "actionDelay": 10 + }, + { + "Class": "Jones", + "HairType": "beard", + "Skin": "882800ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "9c5858ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 30, + "probabilityToTrack": 35, + "probabilityToShoot": 30, + "actionDelay": 10 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "ff8136ff", + "Arms": "58589cff", + "Body": "9c589cff", + "Legs": "363636ff", + "Hair": "363636ff", + "speed": 256, + "Gun": "Shotgun", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 35, + "probabilityToShoot": 15, + "actionDelay": 10 + }, + { + "Class": "Jones", + "Skin": "882800ff", + "Arms": "58589cff", + "Body": "b79536ff", + "Legs": "9c5858ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 75, + "probabilityToTrack": 65, + "probabilityToShoot": 15, + "actionDelay": 10 + }, + { + "Class": "Jones", + "HairType": "shades", + "Skin": "882800ff", + "Arms": "ffffffff", + "Body": "9c0000ff", + "Legs": "58589cff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Shotgun", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 35, + "probabilityToShoot": 15, + "actionDelay": 10 + }, + { + "Class": "Jones", + "HairType": "hogan", + "Skin": "d25106ff", + "Arms": "9c9c9cff", + "Body": "363636ff", + "Legs": "d25106ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Shrapnel bombs", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 35, + "probabilityToShoot": 15, + "actionDelay": 10 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "d25106ff", + "Arms": "9c9c9cff", + "Body": "ff8136ff", + "Legs": "9c0000ff", + "Hair": "ff6c00ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 35, + "probabilityToShoot": 15, + "actionDelay": 10 + }, + { + "Class": "Jones", + "HairType": "dutch", + "Skin": "d25106ff", + "Arms": "149c14ff", + "Body": "9c9c9cff", + "Legs": "149c14ff", + "Hair": "9c9c9cff", + "speed": 256, + "Gun": "Shotgun", + "maxHealth": 200, + "flags": 25165824, + "probabilityToMove": 90, + "probabilityToTrack": 70, + "probabilityToShoot": 15, + "actionDelay": 10 + }, + { + "Class": "Jones", + "HairType": "eye_patch", + "Skin": "882800ff", + "Arms": "363636ff", + "Body": "149c14ff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Powergun", + "maxHealth": 250, + "flags": 25165824, + "probabilityToMove": 70, + "probabilityToTrack": 70, + "probabilityToShoot": 10, + "actionDelay": 10 + }, + { + "Class": "Jones", + "HairType": "dutch", + "Skin": "d25106ff", + "Arms": "9c5858ff", + "Body": "9c5858ff", + "Legs": "58589cff", + "Hair": "ff6c00ff", + "speed": 256, + "Gun": "Shotgun", + "maxHealth": 40, + "flags": 0, + "probabilityToMove": 50, + "probabilityToTrack": 35, + "probabilityToShoot": 15, + "actionDelay": 10 + }, + { + "Class": "Jones", + "PlayerTemplateName": "Police", + "HairType": "riot_helmet", + "Skin": "ff8136ff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "58589cff", + "Hair": "363636ff", + "speed": 256, + "Gun": "Powergun", + "maxHealth": 40, + "flags": 131072, + "probabilityToMove": 70, + "probabilityToTrack": 0, + "probabilityToShoot": 2, + "actionDelay": 15 + }, + { + "Class": "Lady", + "HairType": "ponytail", + "Skin": "882800ff", + "Arms": "58589cff", + "Body": "58589cff", + "Legs": "58589cff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 500, + "flags": 1441792, + "probabilityToMove": 100, + "probabilityToTrack": 100, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Cyborg", + "HairType": "cyborg", + "Skin": "ff8136ff", + "Arms": "363636ff", + "Body": "9c9c9cff", + "Legs": "363636ff", + "Hair": "ff0000ff", + "speed": 256, + "Gun": "Molotovs", + "maxHealth": 500, + "flags": 1536, + "probabilityToMove": 50, + "probabilityToTrack": 100, + "probabilityToShoot": 17, + "actionDelay": 10 + }, + { + "Class": "Jones", + "HairType": "professor", + "Skin": "882800ff", + "Arms": "149c14ff", + "Body": "ffffffff", + "Legs": "9c5858ff", + "Hair": "000000ff", + "speed": 192, + "Gun": "Confusion bombs", + "maxHealth": 40, + "flags": 1835008, + "probabilityToMove": 50, + "probabilityToTrack": 60, + "probabilityToShoot": 0, + "actionDelay": 30 + }, + { + "Class": "Jones", + "HairType": "beret", + "Skin": "ff8136ff", + "Arms": "d25106ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "ff0000ff", + "speed": 256, + "Gun": "Sniper rifle", + "maxHealth": 120, + "flags": 25166848, + "probabilityToMove": 100, + "probabilityToTrack": 30, + "probabilityToShoot": 10, + "actionDelay": 5 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/terror.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/terror.cdogscpn/missions.json new file mode 100644 index 00000000..cb9496f8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/terror.cdogscpn/missions.json @@ -0,0 +1,1901 @@ +{ + "Missions": [{ + "Title": "Work hazards", + "Description": "B.A.D. members are attacking an office complex. But they are not dealing with puny clerks now! The pen may be mightier than the sword in the long run, but for now let's teach these criminals what happens when combat veterans enter into the fray!", + "Type": "Classic", + "Width": 64, + "Height": 30, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Take out all the terrorists", + "Type": "Kill", + "Index": 0, + "Count": 15, + "Required": 15, + "Flags": 0 + }], + "Enemies": [0, + 1, + 2, + 3, + 4, + 5, + 6], + "SpecialChars": [20, + 17, + 15, + 14, + 12, + 11], + "MapObjectDensities": [{ + "MapObject": "cabinet", + "Density": 30 + }, + { + "MapObject": "plant", + "Density": 30 + }, + { + "MapObject": "bench", + "Density": 15 + }, + { + "MapObject": "chair", + "Density": 10 + }, + { + "MapObject": "table_wood", + "Density": 15 + }, + { + "MapObject": "bookshelf", + "Density": 30 + }, + { + "MapObject": "table_clothed", + "Density": 15 + }, + { + "MapObject": "safe", + "Density": 5 + }], + "EnemyDensity": 10, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "007000ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "008484ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "844400ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 0, + "WallLength": 0, + "CorridorWidth": 1, + "Rooms": { + "Count": 25, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Storeroom plans", + "Description": "We have tracked a couple of known B.A.D. symphatizers to a remote, abandoned warehouse. They seem to be planning yet another atrocious act of violence - violence against innocents that is - and we must determine what that is. Your first priority is to gather information.", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Collect any documents you find", + "Type": "Collect", + "Pickup": "paper", + "Count": 8, + "Required": 4, + "Flags": 4 + }, + { + "Description": "Reduce their financial funds", + "Type": "Collect", + "Pickup": "sack", + "Count": 3, + "Required": 0, + "Flags": 1 + }], + "Enemies": [20, + 18, + 17, + 16, + 15, + 12, + 11], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 50 + }, + { + "MapObject": "barrel_blue", + "Density": 50 + }, + { + "MapObject": "box2", + "Density": 50 + }, + { + "MapObject": "cabinet", + "Density": 30 + }, + { + "MapObject": "bench", + "Density": 25 + }, + { + "MapObject": "chair", + "Density": 5 + }, + { + "MapObject": "barrel_wood", + "Density": 10 + }, + { + "MapObject": "box_wood", + "Density": 10 + }, + { + "MapObject": "table_steel", + "Density": 10 + }], + "EnemyDensity": 15, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "482400ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "707070ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "707070ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 40, + "WallLength": 15, + "CorridorWidth": 1, + "Rooms": { + "Count": 5, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 2, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Mayhem in the park", + "Description": "Good work, but no time to chat! I've just received a report that terrorists are butchering innocents in Glaive Park. What are you waiting for? Go, go, go!!", + "Type": "Classic", + "Width": 64, + "Height": 64, + "ExitStyle": "hazard", + "KeyStyle": "dungeon", + "Objectives": [{ + "Description": "Eliminate the terrorist threat!", + "Type": "Kill", + "Index": 0, + "Count": 20, + "Required": 20, + "Flags": 0 + }], + "Enemies": [0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 10], + "SpecialChars": [23, + 20, + 15, + 13, + 17, + 14], + "MapObjectDensities": [{ + "MapObject": "tree_dead", + "Density": 10 + }, + { + "MapObject": "tree_autumn", + "Density": 10 + }, + { + "MapObject": "tree", + "Density": 90 + }, + { + "MapObject": "bloodstain", + "Density": 0 + }, + { + "MapObject": "bulletmarks", + "Density": 0 + }, + { + "MapObject": "blood0", + "Density": 0 + }], + "EnemyDensity": 20, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "707070ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "007000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "stone", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "dungeon", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 3, + "WallLength": 20, + "CorridorWidth": 1, + "Rooms": { + "Count": 4, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "B.A.D. storage raid", + "Description": "The documents you retrieved earlier have proved fruitful. With their help we have located an old building used as a storage facility by the Brotherhood. There are a lot of explosives in there and we want you to blow up a substantial part of them.", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Burn their fuel", + "Type": "Destroy", + "MapObject": "barrel", + "Count": 12, + "Required": 6, + "Flags": 0 + }, + { + "Description": "Blow up their ammo", + "Type": "Destroy", + "MapObject": "box_metal_green", + "Count": 6, + "Required": 3, + "Flags": 0 + }, + { + "Description": "Trash their laboratory setups", + "Type": "Destroy", + "MapObject": "table_lab", + "Count": 3, + "Required": 0, + "Flags": 1 + }, + { + "Description": "Blow up their gunpowder", + "Type": "Destroy", + "MapObject": "barrel_skull", + "Count": 9, + "Required": 5, + "Flags": 0 + }, + { + "Description": "Collect information", + "Type": "Collect", + "Pickup": "disk3", + "Count": 2, + "Required": 0, + "Flags": 5 + }], + "Enemies": [23, + 20, + 18, + 17, + 16, + 11, + 12], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 0 + }, + { + "MapObject": "barrel_blue", + "Density": 0 + }, + { + "MapObject": "barrel_blue", + "Density": 0 + }, + { + "MapObject": "barrel_blue", + "Density": 0 + }, + { + "MapObject": "barrel_blue", + "Density": 0 + }, + { + "MapObject": "barrel_blue", + "Density": 0 + }, + { + "MapObject": "barrel_blue", + "Density": 0 + }, + { + "MapObject": "barrel_blue", + "Density": 0 + }], + "EnemyDensity": 20, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "grid", + "Mask": "343448ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "biggrid", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 20, + "WallLength": 40, + "CorridorWidth": 1, + "Rooms": { + "Count": 4, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 3, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Hostage situation", + "Description": "B.A.D. members have taken an old man hostage. They demand an immediate end to 'the unprovoked violence against our organisation'. Yeah, right. Anyway, we must get the old guy out of there safely...feel up to it? No, you do not have a choice...", + "Type": "Classic", + "Width": 48, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Rescue the hostage", + "Type": "Rescue", + "Index": 27, + "Count": 1, + "Required": 1, + "Flags": 0 + }], + "Enemies": [20, + 17, + 18, + 15, + 12, + 11], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "cabinet", + "Density": 30 + }, + { + "MapObject": "plant", + "Density": 30 + }, + { + "MapObject": "bench", + "Density": 20 + }, + { + "MapObject": "table_wood", + "Density": 15 + }, + { + "MapObject": "chair", + "Density": 10 + }, + { + "MapObject": "bookshelf", + "Density": 30 + }, + { + "MapObject": "safe", + "Density": 5 + }, + { + "MapObject": "box", + "Density": 10 + }, + { + "MapObject": "box2", + "Density": 10 + }], + "EnemyDensity": 15, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "steel", + "Mask": "484870ff", + "MaskAlt": "94802cff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "707070ff", + "MaskAlt": "94802cff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "847024ff", + "MaskAlt": "94802cff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 0, + "WallLength": 0, + "CorridorWidth": 1, + "Rooms": { + "Count": 20, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Take out B.A.D. ring leader", + "Description": "Observers have spotted the local B.A.D. ring leader entering a building complex currently under surveillance. Eliminating him will quite likely cripple the local branch of B.A.D.", + "Type": "Classic", + "Width": 64, + "Height": 32, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Eliminate the ring leader", + "Type": "Kill", + "Index": 0, + "Count": 1, + "Required": 1, + "Flags": 1 + }, + { + "Description": "Collect information", + "Type": "Collect", + "Pickup": "disk1", + "Count": 2, + "Required": 0, + "Flags": 5 + }], + "Enemies": [23, + 20, + 18, + 17, + 15, + 12, + 11], + "SpecialChars": [28], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 10 + }, + { + "MapObject": "box", + "Density": 10 + }, + { + "MapObject": "box2", + "Density": 10 + }, + { + "MapObject": "cabinet", + "Density": 50 + }, + { + "MapObject": "chair", + "Density": 5 + }, + { + "MapObject": "barrel_skull", + "Density": 10 + }, + { + "MapObject": "barrel_wood", + "Density": 10 + }, + { + "MapObject": "box_wood", + "Density": 15 + }, + { + "MapObject": "table_steel", + "Density": 20 + }, + { + "MapObject": "safe", + "Density": 5 + }, + { + "MapObject": "terminal", + "Density": 10 + }, + { + "MapObject": "barrel", + "Density": 10 + }], + "EnemyDensity": 25, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "plasteel", + "Mask": "840000ff", + "MaskAlt": "480000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "smallsquare", + "Mask": "707070ff", + "MaskAlt": "480000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "007000ff", + "MaskAlt": "480000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 40, + "WallLength": 25, + "CorridorWidth": 1, + "Rooms": { + "Count": 3, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 1, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "B.A.D. retaliates", + "Description": "It would seem we underestimated the zealousness of these people. To avenge their fallen leader they have actually attacked a local police station. The frenzy and suicidal nature of the attackers are proving too much for the law enforcers to handle so we must assist...", + "Type": "Classic", + "Width": 36, + "Height": 36, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Wipe out the attacking terrorists", + "Type": "Kill", + "Index": 0, + "Count": 25, + "Required": 25, + "Flags": 0 + }], + "Enemies": [24], + "SpecialChars": [23, + 20, + 19, + 18, + 13, + 14], + "MapObjectDensities": [], + "EnemyDensity": 5, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "granite", + "Mask": "343448ff", + "MaskAlt": "848484ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "flat", + "Mask": "703800ff", + "MaskAlt": "848484ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "checker", + "Mask": "700070ff", + "MaskAlt": "848484ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 0, + "WallLength": 10, + "CorridorWidth": 1, + "Rooms": { + "Count": 10, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Rescue the chief of police", + "Description": "Unfortunately the terrorists managed to kidnap the chief of police, Robin Tataglia. They were tailed to this old factory. Get her out in one piece, please.", + "Type": "Classic", + "Width": 64, + "Height": 64, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Rescue chief Tataglia", + "Type": "Rescue", + "Index": 25, + "Count": 1, + "Required": 1, + "Flags": 0 + }, + { + "Description": "Kill the B.A.D's hired mercenary", + "Type": "Kill", + "Index": 0, + "Count": 1, + "Required": 0, + "Flags": 1 + }], + "Enemies": [23, + 20, + 18, + 17, + 15, + 13, + 12, + 11], + "SpecialChars": [21], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 10 + }, + { + "MapObject": "box_gray", + "Density": 15 + }, + { + "MapObject": "barrel_wood", + "Density": 10 + }, + { + "MapObject": "tree_dead", + "Density": 60 + }, + { + "MapObject": "safe", + "Density": 5 + }, + { + "MapObject": "barrel", + "Density": 5 + }, + { + "MapObject": "tree_autumn", + "Density": 20 + }, + { + "MapObject": "table_steel", + "Density": 10 + }, + { + "MapObject": "cabinet", + "Density": 5 + }], + "EnemyDensity": 15, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "000070ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "703800ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "844400ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 0, + "WallLength": 0, + "CorridorWidth": 1, + "Rooms": { + "Count": 10, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Sack B.A.D. headquarters", + "Description": "We now have an explanation for the daring deeds of the local B.A.D. members. It seems as though we have been fortunate enough to stumble upon the B.A.D's core group. We have located the first of what we believe to be many underground complexes. Good riddance!", + "Type": "Classic", + "Width": 64, + "Height": 32, + "ExitStyle": "plate", + "KeyStyle": "plain", + "Objectives": [{ + "Description": "Eliminate all ring leaders", + "Type": "Kill", + "Index": 0, + "Count": 2, + "Required": 2, + "Flags": 0 + }, + { + "Description": "Blow up ammunition", + "Type": "Destroy", + "MapObject": "box_metal_green", + "Count": 12, + "Required": 9, + "Flags": 0 + }, + { + "Description": "Burn the fuel", + "Type": "Destroy", + "MapObject": "barrel", + "Count": 10, + "Required": 5, + "Flags": 0 + }, + { + "Description": "Blow up the gunpowder", + "Type": "Destroy", + "MapObject": "barrel_skull", + "Count": 15, + "Required": 10, + "Flags": 0 + }], + "Enemies": [20, + 18, + 17, + 15, + 14, + 13, + 11, + 12, + 16, + 19], + "SpecialChars": [28], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 20 + }, + { + "MapObject": "box", + "Density": 20 + }, + { + "MapObject": "box2", + "Density": 20 + }, + { + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "table_steel", + "Density": 25 + }], + "EnemyDensity": 22, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "482400ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "703800ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "wood", + "Mask": "74601cff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 50, + "WallLength": 10, + "CorridorWidth": 1, + "Rooms": { + "Count": 8, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Assassination attempt", + "Description": "...on the way back from the successful mission, B.A.D. springs a surprise upon our heroes: a sudden attack by hired mercenaries. Suddenly combat veterans face combat veterans in a bitter struggle to the end. Too bad most of the equipment is with another group...", + "Type": "Classic", + "Width": 32, + "Height": 48, + "ExitStyle": "hazard", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Defeat the mercenaries", + "Type": "Kill", + "Index": 0, + "Count": 6, + "Required": 6, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [21, 22], + "MapObjectDensities": [{ + "MapObject": "tree_autumn", + "Density": 50 + }, + { + "MapObject": "tree_dead", + "Density": 100 + }], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Powergun", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "482400ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "840000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 15, + "WallLength": 25, + "CorridorWidth": 1, + "Rooms": { + "Count": 0, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Another B.A.D. stronghold...", + "Description": "Where have you been? Never mind, tell me later...we have found another of those underground bases of theirs. The last attack was a bit too successful, there was hardly anything left from which to learn anything. This time we're sending in a scout team first...you, that is...", + "Type": "Classic", + "Width": 64, + "Height": 32, + "ExitStyle": "plate", + "KeyStyle": "plain", + "Objectives": [{ + "Description": "Scout the complex", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 45, + "Flags": 0 + }, + { + "Description": "Steal any documents", + "Type": "Collect", + "Pickup": "folder", + "Count": 5, + "Required": 2, + "Flags": 4 + }, + { + "Description": "Destroy their missiles", + "Type": "Destroy", + "MapObject": "rocket", + "Count": 5, + "Required": 0, + "Flags": 1 + }], + "Enemies": [20, + 18, + 17, + 16, + 11, + 12, + 15, + 11, + 17, + 20], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 10 + }, + { + "MapObject": "box", + "Density": 15 + }, + { + "MapObject": "box2", + "Density": 15 + }, + { + "MapObject": "cabinet", + "Density": 100 + }, + { + "MapObject": "chair", + "Density": 5 + }, + { + "MapObject": "barrel_wood", + "Density": 20 + }, + { + "MapObject": "barrel_skull", + "Density": 20 + }, + { + "MapObject": "box_wood", + "Density": 20 + }, + { + "MapObject": "table_steel", + "Density": 10 + }, + { + "MapObject": "box_metal_green", + "Density": 5 + }, + { + "MapObject": "safe", + "Density": 5 + }, + { + "MapObject": "barrel", + "Density": 15 + }, + { + "MapObject": "terminal", + "Density": 10 + }], + "EnemyDensity": 30, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "stone", + "Mask": "707070ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 50, + "WallLength": 10, + "CorridorWidth": 1, + "Rooms": { + "Count": 8, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Trash the complex...", + "Description": "Ok, that will prove most valuable...now clean out this vermin-infested hellhole! Some of the information you retrieved hint that we may be closer to the source of these horrors than we first anticipated...", + "Type": "Classic", + "Width": 64, + "Height": 32, + "ExitStyle": "plate", + "KeyStyle": "plain", + "Objectives": [{ + "Description": "Eliminate ring leaders", + "Type": "Kill", + "Index": 0, + "Count": 3, + "Required": 3, + "Flags": 0 + }, + { + "Description": "Blow up ammo", + "Type": "Destroy", + "MapObject": "box_metal_green", + "Count": 5, + "Required": 3, + "Flags": 0 + }, + { + "Description": "Burn the fuel", + "Type": "Destroy", + "MapObject": "barrel", + "Count": 12, + "Required": 7, + "Flags": 0 + }, + { + "Description": "Blow up the gunpowder", + "Type": "Destroy", + "MapObject": "barrel_skull", + "Count": 9, + "Required": 6, + "Flags": 0 + }, + { + "Description": "Destroy their missiles", + "Type": "Destroy", + "MapObject": "rocket", + "Count": 5, + "Required": 0, + "Flags": 1 + }], + "Enemies": [23, + 20, + 18, + 17, + 16, + 11, + 12, + 15], + "SpecialChars": [28], + "MapObjectDensities": [{ + "MapObject": "barrel_blue", + "Density": 10 + }, + { + "MapObject": "box", + "Density": 15 + }, + { + "MapObject": "box2", + "Density": 15 + }, + { + "MapObject": "cabinet", + "Density": 100 + }, + { + "MapObject": "chair", + "Density": 5 + }, + { + "MapObject": "barrel_wood", + "Density": 20 + }, + { + "MapObject": "box_wood", + "Density": 35 + }, + { + "MapObject": "table_steel", + "Density": 20 + }, + { + "MapObject": "safe", + "Density": 10 + }, + { + "MapObject": "terminal", + "Density": 5 + }], + "EnemyDensity": 30, + "Weapons": ["Knife", + "Machine gun", + "Grenades", + "Flamer", + "Shotgun", + "Powergun", + "Shrapnel bombs", + "Molotovs", + "Sniper rifle", + "Prox. mine", + "Dynamite"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "stone", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "dirt", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "stone", + "Mask": "707070ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "blast", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 50, + "WallLength": 10, + "CorridorWidth": 1, + "Rooms": { + "Count": 8, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Final showdown!", + "Description": "It seems we have cornered a rat! The leader of the Brotherhood is trapped in a room below us. The bad news is that he holds enough explosives to blow us all to really small pieces...he wants a duel...more bad news: he is believed to be cybernetically enhanced and immune to fire!", + "Type": "Classic", + "Width": 24, + "Height": 16, + "ExitStyle": "plate", + "KeyStyle": "office", + "Objectives": [{ + "Description": "Kill the cyborg boss", + "Type": "Kill", + "Index": 0, + "Count": 1, + "Required": 1, + "Flags": 1 + }, + { + "Description": "Get the detonator", + "Type": "Collect", + "Pickup": "radio", + "Count": 1, + "Required": 1, + "Flags": 0 + }], + "Enemies": [], + "SpecialChars": [26], + "MapObjectDensities": [{ + "MapObject": "barrel_skull", + "Density": 60 + }, + { + "MapObject": "box_metal_green", + "Density": 60 + }, + { + "MapObject": "box_red", + "Density": 60 + }, + { + "MapObject": "barrel", + "Density": 60 + }, + { + "MapObject": "rocket", + "Density": 60 + }], + "EnemyDensity": 0, + "Weapons": ["Knife", + "Machine gun", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "TileClasses": { + "Wall": { + "Name": "wall", + "Type": "Wall", + "Style": "brick", + "Mask": "484848ff", + "MaskAlt": "840000ff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": false + }, + "Floor": { + "Name": "tile", + "Type": "Floor", + "Style": "tile", + "Mask": "007070ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": false + }, + "Room": { + "Name": "tile", + "Type": "Floor", + "Style": "recessed", + "Mask": "840000ff", + "MaskAlt": "840000ff", + "CanWalk": true, + "IsOpaque": false, + "Shootable": false, + "IsRoom": true + }, + "Door": { + "Name": "door", + "Type": "Door", + "Style": "office", + "Mask": "ffffffff", + "MaskAlt": "ffffffff", + "CanWalk": false, + "IsOpaque": true, + "Shootable": true, + "IsRoom": true + } + }, + "Walls": 0, + "WallLength": 0, + "CorridorWidth": 1, + "Rooms": { + "Count": 0, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/zombie.cdogscpn/campaign.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/zombie.cdogscpn/campaign.json new file mode 100644 index 00000000..ef7df602 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/zombie.cdogscpn/campaign.json @@ -0,0 +1,7 @@ +{ + "Version": 14, + "Title": "Chambers of the deceased", + "Author": "Ronny Wester", + "Description": "Your answering machine has a message from an old friend. In a quivering voice she tells of an experiment gone awry. Someone or something is out of control. Then the message is abruptly cut off...", + "Missions": 17 +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/zombie.cdogscpn/characters.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/zombie.cdogscpn/characters.json new file mode 100644 index 00000000..0155663c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/zombie.cdogscpn/characters.json @@ -0,0 +1,611 @@ +{ + "Version": 12, + "Characters": [{ + "Class": "Smith", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "ff6c00ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 10, + "flags": 39846912, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Bob", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "363636ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 39845888, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Smith", + "Skin": "882800ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 39845888, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "ff6c00ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 39845888, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "Skin": "882800ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 39845888, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "Skin": "ff8136ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 39845888, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Dragon", + "Skin": "ff8136ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "363636ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 39845888, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Smith", + "Skin": "ff8136ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 39845888, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Wolf", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "882800ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 39845888, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Wolf", + "Skin": "882800ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 39845888, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "9c0000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 1835008, + "probabilityToMove": 100, + "probabilityToTrack": 0, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Smith", + "Skin": "9c9c9cff", + "Arms": "ff8136ff", + "Body": "9c9c9cff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 192, + "Gun": "Knife", + "maxHealth": 30, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Smith", + "Skin": "9c9c9cff", + "Arms": "000000ff", + "Body": "882800ff", + "Legs": "363636ff", + "Hair": "363636ff", + "speed": 192, + "Gun": "Knife", + "maxHealth": 30, + "flags": 1024, + "probabilityToMove": 75, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Wolf", + "Skin": "9c9c9cff", + "Arms": "ff8136ff", + "Body": "ff8136ff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 192, + "Gun": "Knife", + "maxHealth": 30, + "flags": 1024, + "probabilityToMove": 90, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Bob", + "Skin": "9c9c9cff", + "Arms": "ff8136ff", + "Body": "58589cff", + "Legs": "58589cff", + "Hair": "363636ff", + "speed": 192, + "Gun": "Knife", + "maxHealth": 30, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "Skin": "9c9c9cff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "363636ff", + "speed": 256, + "Gun": "Knife", + "maxHealth": 30, + "flags": 1024, + "probabilityToMove": 90, + "probabilityToTrack": 50, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Dragon", + "Skin": "9c9c9cff", + "Arms": "882800ff", + "Body": "9c5858ff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Knife", + "maxHealth": 30, + "flags": 1024, + "probabilityToMove": 100, + "probabilityToTrack": 75, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Smith", + "Skin": "9c9c9cff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "9c5858ff", + "speed": 192, + "Gun": "Knife", + "maxHealth": 30, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 25, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Smith", + "Skin": "9c9c9cff", + "Arms": "58589cff", + "Body": "b79536ff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Knife", + "maxHealth": 30, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 100, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Smith", + "Skin": "9c9c9cff", + "Arms": "9c589cff", + "Body": "9c9c9cff", + "Legs": "363636ff", + "Hair": "363636ff", + "speed": 256, + "Gun": "Knife", + "maxHealth": 30, + "flags": 1024, + "probabilityToMove": 75, + "probabilityToTrack": 75, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Smith", + "Skin": "9c9c9cff", + "Arms": "ff8136ff", + "Body": "9c9c9cff", + "Legs": "363636ff", + "Hair": "9c9c9cff", + "speed": 256, + "Gun": "Knife", + "maxHealth": 30, + "flags": 1024, + "probabilityToMove": 50, + "probabilityToTrack": 75, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Smith", + "Skin": "9c5858ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "882800ff", + "speed": 320, + "Gun": "Knife", + "maxHealth": 30, + "flags": 33555456, + "probabilityToMove": 90, + "probabilityToTrack": 90, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Wolf", + "Skin": "9c5858ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Knife", + "maxHealth": 30, + "flags": 33555456, + "probabilityToMove": 95, + "probabilityToTrack": 70, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Lady", + "Skin": "9c5858ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "b79536ff", + "speed": 256, + "Gun": "Knife", + "maxHealth": 30, + "flags": 33555456, + "probabilityToMove": 95, + "probabilityToTrack": 75, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Wolf", + "Skin": "9c5858ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "d25106ff", + "speed": 256, + "Gun": "Knife", + "maxHealth": 30, + "flags": 33555456, + "probabilityToMove": 95, + "probabilityToTrack": 75, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Bob", + "Skin": "9c5858ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "363636ff", + "speed": 256, + "Gun": "Knife", + "maxHealth": 30, + "flags": 33555456, + "probabilityToMove": 95, + "probabilityToTrack": 75, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Ice", + "Skin": "d25106ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Chemo gun", + "maxHealth": 40, + "flags": 37749760, + "probabilityToMove": 90, + "probabilityToTrack": 75, + "probabilityToShoot": 20, + "actionDelay": 10 + }, + { + "Class": "Jones", + "Skin": "d25106ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "363636ff", + "speed": 256, + "Gun": "Chemo gun", + "maxHealth": 40, + "flags": 4195328, + "probabilityToMove": 90, + "probabilityToTrack": 75, + "probabilityToShoot": 20, + "actionDelay": 10 + }, + { + "Class": "Ice", + "Skin": "d25106ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Sniper rifle", + "maxHealth": 40, + "flags": 4195328, + "probabilityToMove": 90, + "probabilityToTrack": 75, + "probabilityToShoot": 10, + "actionDelay": 10 + }, + { + "Class": "Jones", + "Skin": "d25106ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "363636ff", + "speed": 256, + "Gun": "Chemo bombs", + "maxHealth": 40, + "flags": 4195328, + "probabilityToMove": 90, + "probabilityToTrack": 75, + "probabilityToShoot": 20, + "actionDelay": 10 + }, + { + "Class": "Ice", + "Skin": "ff8136ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Sniper rifle", + "maxHealth": 40, + "flags": 4195328, + "probabilityToMove": 90, + "probabilityToTrack": 75, + "probabilityToShoot": 10, + "actionDelay": 10 + }, + { + "Class": "Ice", + "Skin": "882800ff", + "Arms": "363636ff", + "Body": "363636ff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Machine gun", + "maxHealth": 40, + "flags": 4195328, + "probabilityToMove": 90, + "probabilityToTrack": 75, + "probabilityToShoot": 10, + "actionDelay": 10 + }, + { + "Class": "Professor", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "000000ff", + "speed": 384, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 33620992, + "probabilityToMove": 100, + "probabilityToTrack": 100, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "Skin": "9c0000ff", + "Arms": "d25106ff", + "Body": "9c0000ff", + "Legs": "9c0000ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Molotovs", + "maxHealth": 400, + "flags": 33555968, + "probabilityToMove": 80, + "probabilityToTrack": 80, + "probabilityToShoot": 27, + "actionDelay": 10 + }, + { + "Class": "Jones", + "Skin": "149c14ff", + "Arms": "149c14ff", + "Body": "149c14ff", + "Legs": "149c14ff", + "Hair": "000000ff", + "speed": 256, + "Gun": "Chemo bombs", + "maxHealth": 400, + "flags": 33555456, + "probabilityToMove": 80, + "probabilityToTrack": 80, + "probabilityToShoot": 27, + "actionDelay": 10 + }, + { + "Class": "Jones", + "Skin": "9c589cff", + "Arms": "9c589cff", + "Body": "9c589cff", + "Legs": "9c589cff", + "Hair": "000000ff", + "speed": 192, + "Gun": "Grenades", + "maxHealth": 400, + "flags": 787968, + "probabilityToMove": 80, + "probabilityToTrack": 100, + "probabilityToShoot": 5, + "actionDelay": 10 + }, + { + "Class": "Lady", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "9c0000ff", + "speed": 256, + "Gun": "Confusion bombs", + "maxHealth": 20, + "flags": 34144256, + "probabilityToMove": 100, + "probabilityToTrack": 100, + "probabilityToShoot": 0, + "actionDelay": 15 + }, + { + "Class": "Jones", + "Skin": "9c589cff", + "Arms": "9c589cff", + "Body": "9c589cff", + "Legs": "9c589cff", + "Hair": "000000ff", + "speed": 192, + "Gun": "Grenades", + "maxHealth": 400, + "flags": 525824, + "probabilityToMove": 80, + "probabilityToTrack": 100, + "probabilityToShoot": 5, + "actionDelay": 10 + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/zombie.cdogscpn/missions.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/zombie.cdogscpn/missions.json new file mode 100644 index 00000000..9eee411c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/zombie.cdogscpn/missions.json @@ -0,0 +1,1826 @@ +{ + "Missions": [{ + "Title": "The gardens", + "Description": "Having arrived at the mansion where your friend was employed you will now need to determine what is going on.", + "Type": "Classic", + "Width": 48, + "Height": 48, + "WallStyle": "brick", + "FloorStyle": "dirt", + "RoomStyle": "recessed", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "office", + "Objectives": [{ + "Description": "Take a stroll through the garden...", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 75, + "Flags": 8 + }], + "Enemies": [2, + 3, + 6, + 8, + 11, + 11, + 12, + 13, + 11, + 13], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "tree_dead", + "Density": 25 + }, + { + "MapObject": "tree_autumn", + "Density": 25 + }], + "EnemyDensity": 10, + "Weapons": ["Knife", + "Powergun"], + "Song": "", + "WallMask": "707070ff", + "FloorMask": "703800ff", + "RoomMask": "840000ff", + "AltMask": "840000ff", + "Walls": 10, + "WallLength": 15, + "CorridorWidth": 1, + "Rooms": { + "Count": 0, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 2, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Cleanse the gardens", + "Description": "A chill runs down your spine after what you just witnessed. Some things are best left buried and corpses definitely belong in that category. Good thing you have more weapons in the car! As you are loading up you hear screams nearby...", + "Type": "Classic", + "Width": 48, + "Height": 48, + "WallStyle": "brick", + "FloorStyle": "dirt", + "RoomStyle": "tile", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "office", + "Objectives": [{ + "Description": "Rid the earth of this unholy menace", + "Type": "Kill", + "Index": 0, + "Count": 25, + "Required": 25, + "Flags": 9 + }], + "Enemies": [0, + 1, + 3, + 4, + 5, + 7], + "SpecialChars": [11, + 12, + 13, + 14], + "MapObjectDensities": [{ + "MapObject": "tree_dead", + "Density": 25 + }, + { + "MapObject": "tree_autumn", + "Density": 25 + }], + "EnemyDensity": 10, + "Weapons": ["Knife", + "Machine gun", + "Shotgun", + "Powergun", + "Sniper rifle", + "Dynamite"], + "Song": "", + "WallMask": "707070ff", + "FloorMask": "703800ff", + "RoomMask": "840000ff", + "AltMask": "840000ff", + "Walls": 10, + "WallLength": 15, + "CorridorWidth": 1, + "Rooms": { + "Count": 0, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 1, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "The entrance hall", + "Description": "Gritting your teeth, you enter the mansion proper. You are determined to see this through to the end, come what may. You remember the cut-off message on your machine and hurriedly push further thoughts about that from your mind. There is always hope...", + "Type": "Classic", + "Width": 36, + "Height": 36, + "WallStyle": "plasteel", + "FloorStyle": "flat", + "RoomStyle": "wood", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "office", + "Objectives": [{ + "Description": "Have a look around...", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 80, + "Flags": 8 + }], + "Enemies": [11, + 12, + 13, + 14, + 15, + 16, + 17, + 1, + 5], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 10 + }, + { + "MapObject": "box2", + "Density": 10 + }, + { + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "plant", + "Density": 50 + }, + { + "MapObject": "bench", + "Density": 20 + }, + { + "MapObject": "chair", + "Density": 20 + }, + { + "MapObject": "bookshelf", + "Density": 20 + }, + { + "MapObject": "table_clothed", + "Density": 10 + }], + "EnemyDensity": 15, + "Weapons": ["Knife", + "Machine gun", + "Shotgun", + "Powergun", + "Sniper rifle", + "Dynamite"], + "Song": "", + "WallMask": "848484ff", + "FloorMask": "5c5c84ff", + "RoomMask": "703800ff", + "AltMask": "840000ff", + "Walls": 20, + "WallLength": 20, + "CorridorWidth": 1, + "Rooms": { + "Count": 8, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 1, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "A clue?", + "Description": "Your psyche is reeling from your experiences. You promise yourself to burn these clothes, new suit or not, should you have the luxury to worry about such things ever again. As despair sets in you stumble upon some offices. Maybe there is something here?", + "Type": "Classic", + "Width": 64, + "Height": 32, + "WallStyle": "steel", + "FloorStyle": "flat", + "RoomStyle": "wood", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "office", + "Objectives": [{ + "Description": "Search for clues", + "Type": "Collect", + "Pickup": "paper", + "Count": 3, + "Required": 1, + "Flags": 5 + }], + "Enemies": [11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 0, + 4, + 6], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 5 + }, + { + "MapObject": "box2", + "Density": 5 + }, + { + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "plant", + "Density": 30 + }, + { + "MapObject": "bench", + "Density": 15 + }, + { + "MapObject": "chair", + "Density": 10 + }, + { + "MapObject": "bookshelf", + "Density": 40 + }, + { + "MapObject": "table_steel", + "Density": 15 + }, + { + "MapObject": "safe", + "Density": 15 + }], + "EnemyDensity": 20, + "Weapons": ["Knife", + "Machine gun", + "Shotgun", + "Powergun", + "Sniper rifle", + "Dynamite"], + "Song": "", + "WallMask": "848484ff", + "FloorMask": "5c5c84ff", + "RoomMask": "844400ff", + "AltMask": "840000ff", + "Walls": 20, + "WallLength": 20, + "CorridorWidth": 1, + "Rooms": { + "Count": 8, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Revelations", + "Description": "Your pulse is racing as you skim through the documents you found. Apparently the team had made some real progress in their research into the aging process. Some new experiments had been initiated in the basement laboratories...", + "Type": "Classic", + "Width": 32, + "Height": 64, + "WallStyle": "steel", + "FloorStyle": "flat", + "RoomStyle": "checker", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "office", + "Objectives": [{ + "Description": "Find a way into the basement", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 80, + "Flags": 8 + }], + "Enemies": [11, + 13, + 12, + 14, + 15, + 16, + 17, + 18, + 19, + 7, + 8], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 5 + }, + { + "MapObject": "box2", + "Density": 5 + }, + { + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "plant", + "Density": 30 + }, + { + "MapObject": "bench", + "Density": 15 + }, + { + "MapObject": "chair", + "Density": 10 + }, + { + "MapObject": "bookshelf", + "Density": 40 + }, + { + "MapObject": "table_steel", + "Density": 15 + }, + { + "MapObject": "safe", + "Density": 15 + }], + "EnemyDensity": 20, + "Weapons": ["Knife", + "Machine gun", + "Shotgun", + "Powergun", + "Sniper rifle", + "Dynamite"], + "Song": "", + "WallMask": "848484ff", + "FloorMask": "847024ff", + "RoomMask": "008484ff", + "AltMask": "007000ff", + "Walls": 20, + "WallLength": 20, + "CorridorWidth": 1, + "Rooms": { + "Count": 12, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "The basement", + "Description": "The basement. You ignore the instinct to flee as you edge down the stairs. That's the reptile brain talking, you have a duty - an objective to accomplish!", + "Type": "Classic", + "Width": 32, + "Height": 64, + "WallStyle": "steel", + "FloorStyle": "flat", + "RoomStyle": "flat", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "alien", + "Objectives": [{ + "Description": "Search the basement", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 80, + "Flags": 8 + }, + { + "Description": "Clues!", + "Type": "Collect", + "Pickup": "folder", + "Count": 1, + "Required": 0, + "Flags": 5 + }, + { + "Description": "Clues!", + "Type": "Collect", + "Pickup": "blueprint", + "Count": 1, + "Required": 0, + "Flags": 5 + }, + { + "Description": "Clues!", + "Type": "Collect", + "Pickup": "disk1", + "Count": 2, + "Required": 0, + "Flags": 1 + }], + "Enemies": [11, + 13, + 12, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 5, + 2], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 25 + }, + { + "MapObject": "box2", + "Density": 30 + }, + { + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "bench", + "Density": 15 + }, + { + "MapObject": "chair", + "Density": 5 + }, + { + "MapObject": "bookshelf", + "Density": 10 + }, + { + "MapObject": "table_steel", + "Density": 40 + }, + { + "MapObject": "safe", + "Density": 15 + }], + "EnemyDensity": 25, + "Weapons": ["Knife", + "Machine gun", + "Shotgun", + "Powergun", + "Sniper rifle", + "Dynamite"], + "Song": "", + "WallMask": "707070ff", + "FloorMask": "74601cff", + "RoomMask": "007070ff", + "AltMask": "000048ff", + "Walls": 40, + "WallLength": 10, + "CorridorWidth": 1, + "Rooms": { + "Count": 10, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "The experiment logs", + "Description": "You have found references to an experiment log. Apparently everything about everything is stored...on computer media of some sort. Grimly you set off in search...if anything gets in your way, well, too bad for them...", + "Type": "Classic", + "Width": 48, + "Height": 32, + "WallStyle": "steel", + "FloorStyle": "flat", + "RoomStyle": "flat", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "alien", + "Objectives": [{ + "Description": "Find the log", + "Type": "Collect", + "Pickup": "cd", + "Count": 1, + "Required": 1, + "Flags": 4 + }, + { + "Description": "Nope, just a Windows NT CD...", + "Type": "Collect", + "Pickup": "cd", + "Count": 10, + "Required": 0, + "Flags": 1 + }, + { + "Description": "Nope, just dirty pictures...", + "Type": "Collect", + "Pickup": "disk3", + "Count": 2, + "Required": 0, + "Flags": 1 + }, + { + "Description": "Nope, a copy of Tetris", + "Type": "Collect", + "Pickup": "disk1", + "Count": 1, + "Required": 0, + "Flags": 5 + }, + { + "Description": "Cool! A Calvin and Hobbes screensaver!", + "Type": "Collect", + "Pickup": "disk2", + "Count": 1, + "Required": 0, + "Flags": 1 + }], + "Enemies": [11, + 13, + 12, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 17, + 2], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 25 + }, + { + "MapObject": "box2", + "Density": 30 + }, + { + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "bench", + "Density": 15 + }, + { + "MapObject": "chair", + "Density": 5 + }, + { + "MapObject": "bookshelf", + "Density": 10 + }, + { + "MapObject": "table_steel", + "Density": 40 + }, + { + "MapObject": "safe", + "Density": 15 + }, + { + "MapObject": "terminal", + "Density": 40 + }], + "EnemyDensity": 25, + "Weapons": ["Knife", + "Machine gun", + "Shotgun", + "Powergun", + "Sniper rifle", + "Dynamite"], + "Song": "", + "WallMask": "707070ff", + "FloorMask": "74601cff", + "RoomMask": "007070ff", + "AltMask": "000048ff", + "Walls": 40, + "WallLength": 10, + "CorridorWidth": 1, + "Rooms": { + "Count": 10, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Sophie?", + "Description": "Wiping the sweat - and other liquids - off your fingers you sit down in front of a computer with your newfound prize. Suddenly an achingly familiar voice is heard. A woman screaming for help...", + "Type": "Classic", + "Width": 64, + "Height": 32, + "WallStyle": "steel", + "FloorStyle": "smallsquare", + "RoomStyle": "tile", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "blast", + "Objectives": [{ + "Description": "Save Sophie!", + "Type": "Rescue", + "Index": 10, + "Count": 1, + "Required": 1, + "Flags": 4 + }], + "Enemies": [11, + 13, + 12, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 17, + 18], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 25 + }, + { + "MapObject": "box2", + "Density": 30 + }, + { + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "bench", + "Density": 15 + }, + { + "MapObject": "chair", + "Density": 5 + }, + { + "MapObject": "bookshelf", + "Density": 10 + }, + { + "MapObject": "table_steel", + "Density": 40 + }, + { + "MapObject": "safe", + "Density": 15 + }, + { + "MapObject": "terminal", + "Density": 30 + }], + "EnemyDensity": 25, + "Weapons": ["Knife", + "Machine gun", + "Shotgun", + "Powergun", + "Sniper rifle", + "Dynamite"], + "Song": "", + "WallMask": "707070ff", + "FloorMask": "004848ff", + "RoomMask": "000070ff", + "AltMask": "000048ff", + "Walls": 40, + "WallLength": 18, + "CorridorWidth": 1, + "Rooms": { + "Count": 20, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Progress is made", + "Description": "Having rescued your friend from the clutches of the devil-spawn creatures you feel new resolve fill your weary body. As Sophie's nimble fingers fly over the keyboard searching for information you decide to do some work of your own...thanks to Sophie you know have additional weaponry as well.", + "Type": "Classic", + "Width": 64, + "Height": 32, + "WallStyle": "steel", + "FloorStyle": "smallsquare", + "RoomStyle": "tile", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "blast", + "Objectives": [{ + "Description": "Purge!", + "Type": "Kill", + "Index": 0, + "Count": 30, + "Required": 30, + "Flags": 9 + }, + { + "Description": "Blueprints of the mansion...could come in handy", + "Type": "Collect", + "Pickup": "blueprint", + "Count": 1, + "Required": 0, + "Flags": 5 + }], + "Enemies": [36], + "SpecialChars": [15, + 16, + 17, + 18, + 19, + 20], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 25 + }, + { + "MapObject": "box2", + "Density": 30 + }, + { + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "bench", + "Density": 15 + }, + { + "MapObject": "chair", + "Density": 5 + }, + { + "MapObject": "bookshelf", + "Density": 10 + }, + { + "MapObject": "table_steel", + "Density": 40 + }, + { + "MapObject": "safe", + "Density": 15 + }, + { + "MapObject": "terminal", + "Density": 30 + }], + "EnemyDensity": 1, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Molotovs", + "Sniper rifle", + "Dynamite"], + "Song": "", + "WallMask": "707070ff", + "FloorMask": "004848ff", + "RoomMask": "000070ff", + "AltMask": "000048ff", + "Walls": 40, + "WallLength": 15, + "CorridorWidth": 1, + "Rooms": { + "Count": 8, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "More basements?", + "Description": "Sophie tells you that the CD contains no information about the new series of experiments in the lower basements. You stifle a groan as you realize what this means...deeper, darker basements. At least Sophie hasn't been killed by some big guy with an axe or something like that...", + "Type": "Classic", + "Width": 64, + "Height": 32, + "WallStyle": "stone", + "FloorStyle": "tile", + "RoomStyle": "flat", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "blast", + "Objectives": [{ + "Description": "Search the lower basements", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 85, + "Flags": 8 + }, + { + "Description": "Find records of the experiment", + "Type": "Collect", + "Pickup": "folder", + "Count": 1, + "Required": 1, + "Flags": 5 + }], + "Enemies": [17, + 18, + 19, + 20, + 16, + 13, + 15], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 25 + }, + { + "MapObject": "box2", + "Density": 30 + }, + { + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "bench", + "Density": 15 + }, + { + "MapObject": "chair", + "Density": 5 + }, + { + "MapObject": "bookshelf", + "Density": 10 + }, + { + "MapObject": "table_steel", + "Density": 40 + }, + { + "MapObject": "safe", + "Density": 15 + }, + { + "MapObject": "barrel", + "Density": 30 + }, + { + "MapObject": "barrel_blue", + "Density": 20 + }, + { + "MapObject": "table_lab", + "Density": 30 + }], + "EnemyDensity": 30, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Molotovs", + "Sniper rifle", + "Dynamite"], + "Song": "", + "WallMask": "484848ff", + "FloorMask": "004800ff", + "RoomMask": "480048ff", + "AltMask": "000048ff", + "Walls": 40, + "WallLength": 15, + "CorridorWidth": 1, + "Rooms": { + "Count": 8, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Truth revealed", + "Description": "You realize the news are bad almost immediately. These are official government documents. Deep top secret shit indeed. This is bad. This is worse than bad. And to make matters worse you hear steps in the stairs...from downstairs!", + "Type": "Classic", + "Width": 64, + "Height": 32, + "WallStyle": "stone", + "FloorStyle": "tile", + "RoomStyle": "flat", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "blast", + "Objectives": [{ + "Description": "Eliminate the threat", + "Type": "Kill", + "Index": 0, + "Count": 8, + "Required": 8, + "Flags": 9 + }, + { + "Description": "More proof!", + "Type": "Collect", + "Pickup": "folder", + "Count": 2, + "Required": 0, + "Flags": 1 + }], + "Enemies": [17, + 18, + 14, + 12, + 16, + 13, + 15, + 11], + "SpecialChars": [26, + 28, + 30, + 31], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 25 + }, + { + "MapObject": "box2", + "Density": 30 + }, + { + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "bench", + "Density": 15 + }, + { + "MapObject": "chair", + "Density": 5 + }, + { + "MapObject": "bookshelf", + "Density": 10 + }, + { + "MapObject": "table_steel", + "Density": 40 + }, + { + "MapObject": "safe", + "Density": 15 + }, + { + "MapObject": "barrel", + "Density": 30 + }, + { + "MapObject": "barrel_blue", + "Density": 20 + }, + { + "MapObject": "table_lab", + "Density": 30 + }], + "EnemyDensity": 30, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Molotovs", + "Sniper rifle", + "Dynamite"], + "Song": "", + "WallMask": "484848ff", + "FloorMask": "004800ff", + "RoomMask": "480048ff", + "AltMask": "000048ff", + "Walls": 40, + "WallLength": 15, + "CorridorWidth": 1, + "Rooms": { + "Count": 8, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Only forward...", + "Description": "Bad news first: those were definitely black ops wetwork personnel...high stakes and major players in other words. The documents you are reading do however indicate that this is the work of a renegade faction...probably quite illegal...", + "Type": "Classic", + "Width": 64, + "Height": 32, + "WallStyle": "stone", + "FloorStyle": "tile", + "RoomStyle": "flat", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "blast", + "Objectives": [{ + "Description": "Search the laboratories", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 53, + "Flags": 8 + }, + { + "Description": "Find some hard evidence", + "Type": "Collect", + "Pickup": "folder", + "Count": 2, + "Required": 1, + "Flags": 4 + }, + { + "Description": "One of those scientist bastards got what he deserved!", + "Type": "Kill", + "Index": 0, + "Count": 2, + "Required": 0, + "Flags": 1 + }], + "Enemies": [17, + 11, + 15, + 12, + 16, + 13, + 29, + 26, + 27, + 28, + 31, + 30], + "SpecialChars": [32], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 25 + }, + { + "MapObject": "box2", + "Density": 30 + }, + { + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "table_steel", + "Density": 15 + }, + { + "MapObject": "safe", + "Density": 5 + }, + { + "MapObject": "barrel", + "Density": 10 + }, + { + "MapObject": "barrel_blue", + "Density": 40 + }, + { + "MapObject": "table_lab", + "Density": 15 + }, + { + "MapObject": "box_red", + "Density": 30 + }, + { + "MapObject": "box_metal_green", + "Density": 20 + }], + "EnemyDensity": 30, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Molotovs", + "Sniper rifle", + "Dynamite"], + "Song": "", + "WallMask": "484848ff", + "FloorMask": "707070ff", + "RoomMask": "707070ff", + "AltMask": "000048ff", + "Walls": 40, + "WallLength": 15, + "CorridorWidth": 1, + "Rooms": { + "Count": 8, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Fresh meat...", + "Description": "As you reach the inner laboratory you realize with a sickening feeling that you are facing Sophie's former colleagues...now newly undead. Their skins still retain some traces of the newly lost life...", + "Type": "Classic", + "Width": 64, + "Height": 32, + "WallStyle": "stone", + "FloorStyle": "tile", + "RoomStyle": "flat", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "blast", + "Objectives": [{ + "Description": "Lay these poor souls to rest", + "Type": "Kill", + "Index": 0, + "Count": 19, + "Required": 19, + "Flags": 9 + }], + "Enemies": [26, + 27, + 28, + 31, + 30, + 29, + 15, + 11], + "SpecialChars": [25, + 24, + 23, + 22, + 21], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 25 + }, + { + "MapObject": "box2", + "Density": 30 + }, + { + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "table_steel", + "Density": 15 + }, + { + "MapObject": "safe", + "Density": 5 + }, + { + "MapObject": "barrel", + "Density": 10 + }, + { + "MapObject": "barrel_blue", + "Density": 40 + }, + { + "MapObject": "table_lab", + "Density": 15 + }, + { + "MapObject": "box_red", + "Density": 30 + }, + { + "MapObject": "box_metal_green", + "Density": 20 + }], + "EnemyDensity": 20, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Molotovs", + "Sniper rifle", + "Dynamite"], + "Song": "", + "WallMask": "484848ff", + "FloorMask": "707070ff", + "RoomMask": "707070ff", + "AltMask": "000048ff", + "Walls": 40, + "WallLength": 15, + "CorridorWidth": 1, + "Rooms": { + "Count": 8, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "They are truly mad...", + "Description": "As the last of the newly resurrected zombies find peace at your hands you hear manic laughter and a closing door. A low-keyed hum is suddenly everywhere...whatever they are up to is bound to be bad...", + "Type": "Classic", + "Width": 64, + "Height": 48, + "WallStyle": "stone", + "FloorStyle": "tile", + "RoomStyle": "flat", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "blast", + "Objectives": [{ + "Description": "Destroy all laboratory equipment", + "Type": "Destroy", + "MapObject": "table_lab", + "Count": 9, + "Required": 9, + "Flags": 8 + }, + { + "Description": "Die, you scum!", + "Type": "Kill", + "Index": 0, + "Count": 4, + "Required": 0, + "Flags": 1 + }], + "Enemies": [27, + 31, + 30, + 28, + 26, + 29, + 17, + 12, + 11], + "SpecialChars": [32], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 25 + }, + { + "MapObject": "box2", + "Density": 30 + }, + { + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "table_steel", + "Density": 15 + }, + { + "MapObject": "safe", + "Density": 5 + }, + { + "MapObject": "barrel", + "Density": 10 + }, + { + "MapObject": "barrel_blue", + "Density": 40 + }, + { + "MapObject": "box_red", + "Density": 15 + }, + { + "MapObject": "box_metal_green", + "Density": 30 + }], + "EnemyDensity": 20, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Molotovs", + "Sniper rifle", + "Dynamite"], + "Song": "", + "WallMask": "484848ff", + "FloorMask": "707070ff", + "RoomMask": "707070ff", + "AltMask": "000048ff", + "Walls": 40, + "WallLength": 10, + "CorridorWidth": 1, + "Rooms": { + "Count": 12, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "Uh-oh...", + "Description": "You got to the equipment a little too late. Something new slithered into the hallway just as you entered the last laboratory. You vaguely recall something Sophie mentioned about clones...there were several classes or something...", + "Type": "Classic", + "Width": 32, + "Height": 32, + "WallStyle": "stone", + "FloorStyle": "tile", + "RoomStyle": "flat", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "blast", + "Objectives": [{ + "Description": "Destroy the clones", + "Type": "Kill", + "Index": 0, + "Count": 5, + "Required": 5, + "Flags": 9 + }], + "Enemies": [26, + 27, + 28, + 31, + 30], + "SpecialChars": [34], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 25 + }, + { + "MapObject": "box2", + "Density": 30 + }, + { + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "table_steel", + "Density": 15 + }, + { + "MapObject": "safe", + "Density": 5 + }, + { + "MapObject": "barrel", + "Density": 10 + }, + { + "MapObject": "barrel_blue", + "Density": 40 + }, + { + "MapObject": "box_red", + "Density": 15 + }, + { + "MapObject": "box_metal_green", + "Density": 30 + }], + "EnemyDensity": 8, + "Weapons": ["Knife", + "Machine gun", + "Flamer", + "Shotgun", + "Powergun", + "Molotovs", + "Sniper rifle", + "Dynamite"], + "Song": "", + "WallMask": "484848ff", + "FloorMask": "707070ff", + "RoomMask": "707070ff", + "AltMask": "000048ff", + "Walls": 40, + "WallLength": 10, + "CorridorWidth": 1, + "Rooms": { + "Count": 12, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "The trouble with clones is that there are always more...", + "Description": "Yes, now you recall...there were A, B and C clones. You don't know which those were, nor which these are...not that you care much...hmm, these seem fireproof though...", + "Type": "Classic", + "Width": 32, + "Height": 32, + "WallStyle": "stone", + "FloorStyle": "tile", + "RoomStyle": "flat", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "blast", + "Objectives": [{ + "Description": "Destroy the clones", + "Type": "Kill", + "Index": 0, + "Count": 3, + "Required": 3, + "Flags": 9 + }], + "Enemies": [37], + "SpecialChars": [33], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 25 + }, + { + "MapObject": "box2", + "Density": 30 + }, + { + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "table_steel", + "Density": 15 + }, + { + "MapObject": "safe", + "Density": 5 + }, + { + "MapObject": "barrel", + "Density": 10 + }, + { + "MapObject": "barrel_blue", + "Density": 40 + }, + { + "MapObject": "box_red", + "Density": 15 + }, + { + "MapObject": "box_metal_green", + "Density": 30 + }], + "EnemyDensity": 1, + "Weapons": ["Knife", + "Machine gun", + "Shotgun", + "Powergun", + "Sniper rifle", + "Dynamite"], + "Song": "", + "WallMask": "484848ff", + "FloorMask": "707070ff", + "RoomMask": "707070ff", + "AltMask": "000048ff", + "Walls": 40, + "WallLength": 10, + "CorridorWidth": 1, + "Rooms": { + "Count": 12, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }, + { + "Title": "The clone that wouldn't go away...", + "Description": "This last clone just will not stop! It pursues you still and nothing you have will even dent it...you hear Sophie shouting somewhere...something about sunlight...isn't there a skylight here somewhere?", + "Type": "Classic", + "Width": 32, + "Height": 64, + "WallStyle": "steel", + "FloorStyle": "flat", + "RoomStyle": "flat", + "ExitStyle": "hazard", + "KeyStyle": "office", + "DoorStyle": "alien", + "Objectives": [{ + "Description": "Destroy the C clone", + "Type": "Rescue", + "Index": 35, + "Count": 1, + "Required": 0, + "Flags": 1 + }, + { + "Description": "Find the skylight and think of something...", + "Type": "Explore", + "Index": 0, + "Count": 100, + "Required": 60, + "Flags": 8 + }], + "Enemies": [36], + "SpecialChars": [], + "MapObjectDensities": [{ + "MapObject": "box", + "Density": 25 + }, + { + "MapObject": "box2", + "Density": 30 + }, + { + "MapObject": "cabinet", + "Density": 40 + }, + { + "MapObject": "bench", + "Density": 15 + }, + { + "MapObject": "chair", + "Density": 5 + }, + { + "MapObject": "bookshelf", + "Density": 10 + }, + { + "MapObject": "table_steel", + "Density": 40 + }, + { + "MapObject": "safe", + "Density": 15 + }], + "EnemyDensity": 1, + "Weapons": ["Machine gun", + "Shotgun", + "Powergun", + "Sniper rifle"], + "Song": "", + "WallMask": "848484ff", + "FloorMask": "847024ff", + "RoomMask": "008484ff", + "AltMask": "000048ff", + "Walls": 40, + "WallLength": 10, + "CorridorWidth": 1, + "Rooms": { + "Count": 10, + "Min": 6, + "Max": 10, + "Edge": false, + "Overlap": false, + "Walls": 0, + "WallLength": 0, + "WallPad": 0 + }, + "Squares": 0, + "Doors": { + "Enabled": true, + "Min": 1, + "Max": 1 + }, + "Pillars": { + "Count": 0, + "Min": 0, + "Max": 0 + } + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/missions/zombie.cdogscpn/players.json b/bios/Game Engines/C-Dogs SDL/cdogs/missions/zombie.cdogscpn/players.json new file mode 100644 index 00000000..c03cf3a8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/missions/zombie.cdogscpn/players.json @@ -0,0 +1,21 @@ +{ + "Version": 2, + "PlayerTemplates": [{ + "Name": "Lab Technician", + "Face": "Smith", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "ff6c00ff" + }, + { + "Name": "Smelly Postgrad", + "Face": "Bob", + "Skin": "d25106ff", + "Arms": "ffffffff", + "Body": "ffffffff", + "Legs": "363636ff", + "Hair": "363636ff" + }] +} \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/briefing/A Really Tense Moment FULL.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/music/briefing/A Really Tense Moment FULL.ogg new file mode 100644 index 00000000..82776dd4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/music/briefing/A Really Tense Moment FULL.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/briefing/A Really Tense Moment FULL.txt b/bios/Game Engines/C-Dogs SDL/cdogs/music/briefing/A Really Tense Moment FULL.txt new file mode 100644 index 00000000..715348a9 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/music/briefing/A Really Tense Moment FULL.txt @@ -0,0 +1,6 @@ +Dynamic Action Music Pack +ViRiX +soundcloud.com/virix +https://opengameart.org/content/dynamic-action-music-pack + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/briefing/Futuristic_junk.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/music/briefing/Futuristic_junk.ogg new file mode 100644 index 00000000..7ad1f74c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/music/briefing/Futuristic_junk.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/briefing/Futuristic_junk.txt b/bios/Game Engines/C-Dogs SDL/cdogs/music/briefing/Futuristic_junk.txt new file mode 100644 index 00000000..1dbce9bd --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/music/briefing/Futuristic_junk.txt @@ -0,0 +1,6 @@ +Futuristic_junk +Alexandr Zhelanov +https://soundcloud.com/alexandr-zhelanov +https://opengameart.org/content/futuristicjunk + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/briefing/README.txt b/bios/Game Engines/C-Dogs SDL/cdogs/music/briefing/README.txt new file mode 100644 index 00000000..5f535234 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/music/briefing/README.txt @@ -0,0 +1 @@ +Add music here to have them play in briefing menus \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/end/The 9th Circle V2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/music/end/The 9th Circle V2.ogg new file mode 100644 index 00000000..f63c5fd0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/music/end/The 9th Circle V2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/end/The 9th Circle V2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/music/end/The 9th Circle V2.txt new file mode 100644 index 00000000..3fab7f07 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/music/end/The 9th Circle V2.txt @@ -0,0 +1,5 @@ +The 9th Circle +Joth +https://opengameart.org/content/the-9th-circle + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/game/README.txt b/bios/Game Engines/C-Dogs SDL/cdogs/music/game/README.txt new file mode 100644 index 00000000..20f9cfdf --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/music/game/README.txt @@ -0,0 +1 @@ +Add music here to have them play in the game diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/game/red_doors2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/music/game/red_doors2.ogg new file mode 100644 index 00000000..1ddeb35c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/music/game/red_doors2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/game/red_doors2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/music/game/red_doors2.txt new file mode 100644 index 00000000..132bfd60 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/music/game/red_doors2.txt @@ -0,0 +1,6 @@ +Red Doors v2.0 +Matthew Pablo +http://www.matthewpablo.com +http://opengameart.org/content/red-doors-v20 + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/game/space_dimensions_8bit.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/music/game/space_dimensions_8bit.ogg new file mode 100644 index 00000000..e282c5e0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/music/game/space_dimensions_8bit.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/game/space_dimensions_8bit.txt b/bios/Game Engines/C-Dogs SDL/cdogs/music/game/space_dimensions_8bit.txt new file mode 100644 index 00000000..1cf7bd49 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/music/game/space_dimensions_8bit.txt @@ -0,0 +1,6 @@ +Space Dimensions (8bit/Retro Version) +Matthew Pablo +http://www.matthewpablo.com +http://opengameart.org/content/space-dimensions-8bitretro-version + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/lose/CrashedShip.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/music/lose/CrashedShip.ogg new file mode 100644 index 00000000..55dae5b3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/music/lose/CrashedShip.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/lose/CrashedShip.txt b/bios/Game Engines/C-Dogs SDL/cdogs/music/lose/CrashedShip.txt new file mode 100644 index 00000000..ab518c1a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/music/lose/CrashedShip.txt @@ -0,0 +1,4 @@ +Reencoded from Sci-Fi Ambient - Crashed Ship by Ted Kerr +https://opengameart.org/content/sci-fi-ambient-crashed-ship + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/lose/Epic Fall.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/music/lose/Epic Fall.ogg new file mode 100644 index 00000000..aa0bf5bd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/music/lose/Epic Fall.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/lose/Epic Fall.txt b/bios/Game Engines/C-Dogs SDL/cdogs/music/lose/Epic Fall.txt new file mode 100644 index 00000000..b4714048 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/music/lose/Epic Fall.txt @@ -0,0 +1,5 @@ +Reencoded from Epic Fall by Alexandr Zhelanov +Alexandr Zhelanov https://soundcloud.com/alexandr-zhelanov +https://opengameart.org/content/epic-fall + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/Battle_2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/Battle_2.ogg new file mode 100644 index 00000000..05bcaff0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/Battle_2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/Battle_2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/Battle_2.txt new file mode 100644 index 00000000..acdc6c0f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/Battle_2.txt @@ -0,0 +1,5 @@ +Reencoded from Post Apocalyptic and CyberPunk Melodies by Alexandr Zhelanov +Alexandr Zhelanov https://soundcloud.com/alexandr-zhelanov +https://opengameart.org/content/post-apocalyptic-and-cyberpunk-melodies + +https://creativecommons.org/licenses/by/4.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/README.txt b/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/README.txt new file mode 100644 index 00000000..03f88a0c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/README.txt @@ -0,0 +1 @@ +Add music here to have them play in the menu diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/metamorphosis2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/metamorphosis2.ogg new file mode 100644 index 00000000..37ad51a0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/metamorphosis2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/metamorphosis2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/metamorphosis2.txt new file mode 100644 index 00000000..8efea468 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/metamorphosis2.txt @@ -0,0 +1,4 @@ +Reencoded from Metamorphosis ver. 2 by VocalMix +http://opengameart.org/content/metamorphosis-ver-2 + +http://opengameart.org/content/oga-by-30-faq \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/space_0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/space_0.ogg new file mode 100644 index 00000000..d7d647c4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/space_0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/space_0.ogg.txt b/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/space_0.ogg.txt new file mode 100644 index 00000000..94e960dd --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/music/menu/space_0.ogg.txt @@ -0,0 +1,4 @@ +Reencoded from Space by Alexandr Zhelanov +http://opengameart.org/content/space-1 + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/victory/Party Sector.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/music/victory/Party Sector.ogg new file mode 100644 index 00000000..107f1c39 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/music/victory/Party Sector.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/victory/Party Sector.txt b/bios/Game Engines/C-Dogs SDL/cdogs/music/victory/Party Sector.txt new file mode 100644 index 00000000..4e57cce3 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/music/victory/Party Sector.txt @@ -0,0 +1,5 @@ +Reencoded from Party Sector by Joth +Joth https://soundcloud.com/user-215083110 +https://opengameart.org/content/party-sector + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/victory/low-fi.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/music/victory/low-fi.ogg new file mode 100644 index 00000000..86fe4a37 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/music/victory/low-fi.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/music/victory/low-fi.txt b/bios/Game Engines/C-Dogs SDL/cdogs/music/victory/low-fi.txt new file mode 100644 index 00000000..9718b6b4 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/music/victory/low-fi.txt @@ -0,0 +1,5 @@ +Reencoded from low-fi by Alexandr Zhelanov +https://soundcloud.com/alexandr-zhelanov +https://opengameart.org/content/low-fi + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ammo_low.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ammo_low.ogg new file mode 100644 index 00000000..da1ac60b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ammo_low.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ammo_low.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ammo_low.txt new file mode 100644 index 00000000..a23e21d5 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ammo_low.txt @@ -0,0 +1,3 @@ +Derived alert.wav by Corsica_S +http://freesound.org/people/Corsica_S/sounds/156453/ +http://creativecommons.org/licenses/by/4.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ammo_none.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ammo_none.ogg new file mode 100644 index 00000000..163c705b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ammo_none.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ammo_none.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ammo_none.txt new file mode 100644 index 00000000..8b62e8c1 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ammo_none.txt @@ -0,0 +1,9 @@ +Derived from + +Error.wav by Autistic Lucario +http://freesound.org/people/Autistic%20Lucario/sounds/142608/ +http://creativecommons.org/licenses/by/4.0/ + +GunSLide.wav by RazzDaSpazz +http://freesound.org/people/RazzDaSpazz/sounds/155174/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/0.ogg new file mode 100644 index 00000000..12f7ea0d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/1.ogg new file mode 100644 index 00000000..0dbec91a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/2.ogg new file mode 100644 index 00000000..3fe746f6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/3.ogg new file mode 100644 index 00000000..97a50bac Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/4.ogg new file mode 100644 index 00000000..892f1fdc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/5.ogg new file mode 100644 index 00000000..0373bd1c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/6.ogg new file mode 100644 index 00000000..58be42c0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/7.ogg new file mode 100644 index 00000000..2618fe9b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/8.ogg new file mode 100644 index 00000000..c395625f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/license.txt new file mode 100644 index 00000000..167813dc --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bang/license.txt @@ -0,0 +1,4 @@ +Derived from Synthesized explosion by Iwan Gabovitch +http://opengameart.org/content/synthesized-explosion + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/0.ogg new file mode 100644 index 00000000..e005505d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/1.ogg new file mode 100644 index 00000000..0e91622e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/2.ogg new file mode 100644 index 00000000..d33f9d3b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/3.ogg new file mode 100644 index 00000000..88e1740e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/4.ogg new file mode 100644 index 00000000..d82fabe9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/5.ogg new file mode 100644 index 00000000..6a7d957d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/6.ogg new file mode 100644 index 00000000..127a399d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/7.ogg new file mode 100644 index 00000000..30fbc83a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/8.ogg new file mode 100644 index 00000000..f28ac9ed Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/license.txt new file mode 100644 index 00000000..a2764268 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/boom/license.txt @@ -0,0 +1,4 @@ +Derived from Synthesized_Explosion_01.wav by RSilveira_88 +http://freesound.org/people/RSilveira_88/sounds/216278/ + +http://creativecommons.org/licenses/by/4.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bottle_pop.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bottle_pop.ogg new file mode 100644 index 00000000..d5179e45 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bottle_pop.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bottle_pop.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bottle_pop.txt new file mode 100644 index 00000000..0b0dc50f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bottle_pop.txt @@ -0,0 +1,4 @@ +Adapted from HOUSE-BOTTLE01-POP-CORK.wav +by kantouth +http://freesound.org/people/kantouth/sounds/106728/ +http://creativecommons.org/licenses/by/4.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bounce.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bounce.txt new file mode 100644 index 00000000..7fa0c9ed --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bounce.txt @@ -0,0 +1,4 @@ +Derived from pluck_can 09.wav by Ayavaron +http://freesound.org/people/Ayavaron/sounds/126501/ + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bounce.wav b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bounce.wav new file mode 100644 index 00000000..607f09e0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bounce.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bullet_pickup.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bullet_pickup.ogg new file mode 100644 index 00000000..ac40e184 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bullet_pickup.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bullet_pickup.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bullet_pickup.txt new file mode 100644 index 00000000..d088d787 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/bullet_pickup.txt @@ -0,0 +1,4 @@ +Derived from camera click_NIKON.wav by Snapper4298 +http://freesound.org/people/Snapper4298/sounds/178186/ + +http://creativecommons.org/licenses/by/4.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/cells_pickup.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/cells_pickup.ogg new file mode 100644 index 00000000..9c576b3a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/cells_pickup.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/cells_pickup.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/cells_pickup.txt new file mode 100644 index 00000000..25a18f1f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/cells_pickup.txt @@ -0,0 +1,8 @@ +Derived from +Transit Crystal Charge by crashoverride61088 +http://freesound.org/people/crashoverride61088/sounds/193622/ +http://creativecommons.org/publicdomain/zero/1.0/ +and +clicks_lamp.wav by jennerallydrawing +http://freesound.org/people/jennerallydrawing/sounds/251452/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chainsaw.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chainsaw.ogg new file mode 100644 index 00000000..3bb6fcb6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chainsaw.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chainsaw.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chainsaw.txt new file mode 100644 index 00000000..8f48c5ae --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chainsaw.txt @@ -0,0 +1,4 @@ +Chainsaw gasoline-powered.wav +by aoristos +http://freesound.org/people/aoristos/sounds/235795/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chainsaw_switch.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chainsaw_switch.ogg new file mode 100644 index 00000000..e6b534e1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chainsaw_switch.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chainsaw_switch.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chainsaw_switch.txt new file mode 100644 index 00000000..becb251f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chainsaw_switch.txt @@ -0,0 +1,4 @@ +Adapted from 8 Chainsaw Pulls.wav +by Stefan021 +https://freesound.org/people/Stefan021/sounds/431740/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/alien/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/alien/0.ogg new file mode 100644 index 00000000..feabc0c0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/alien/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/alien/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/alien/1.ogg new file mode 100644 index 00000000..7ddad4b5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/alien/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/alien/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/alien/license.txt new file mode 100644 index 00000000..88afc2ee --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/alien/license.txt @@ -0,0 +1,5 @@ +0 +1 +Small pest alien/creature +http://opengameart.org/content/small-pest-aliencreature +http://creativecommons.org/publicdomain/zero/1.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/dog/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/dog/0.ogg new file mode 100644 index 00000000..ae765f21 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/dog/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/dog/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/dog/1.ogg new file mode 100644 index 00000000..8a4d131a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/dog/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/dog/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/dog/2.ogg new file mode 100644 index 00000000..44357e66 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/dog/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/dog/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/dog/3.ogg new file mode 100644 index 00000000..1c296be7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/dog/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/dog/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/dog/license.txt new file mode 100644 index 00000000..3c58aa70 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/dog/license.txt @@ -0,0 +1,3 @@ +Mr Dog_01.wav +https://freesound.org/people/apolloaiello/sounds/276267/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/man/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/man/0.ogg new file mode 100644 index 00000000..0dc3b023 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/man/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/man/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/man/1.ogg new file mode 100644 index 00000000..7744bace Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/man/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/man/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/man/2.ogg new file mode 100644 index 00000000..2dad8e59 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/man/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/man/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/man/3.ogg new file mode 100644 index 00000000..e6de4137 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/man/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/man/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/man/license.txt new file mode 100644 index 00000000..d5725b01 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/man/license.txt @@ -0,0 +1,19 @@ +0 +Huh? - Vocal +https://freesound.org/people/davdud101/sounds/150505/ +http://creativecommons.org/publicdomain/zero/1.0/ + +1 +Huh_male.wav +https://freesound.org/people/Adam_N/sounds/166129/ +http://creativecommons.org/publicdomain/zero/1.0/ + +2 +"Huh?" type sound - Bewildered Male +https://freesound.org/people/Iceofdoom/sounds/411086/ +http://creativecommons.org/licenses/by/4.0/ + +3 +Huh Eh Man +https://freesound.org/people/dersuperanton/sounds/437649/ +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/mech/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/mech/0.ogg new file mode 100644 index 00000000..ae9a10cb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/mech/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/mech/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/mech/license.txt new file mode 100644 index 00000000..c72775c9 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/mech/license.txt @@ -0,0 +1,8 @@ +Derived from +mover stop.wav by dingus23 +https://freesound.org/people/dingus23/sounds/436385/ +http://creativecommons.org/licenses/by/4.0/ + +robot, machinery » Estlack_liftB_1.aif by estlacksensory +https://freesound.org/people/estlacksensory/sounds/118715/ +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/ogre/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/ogre/0.ogg new file mode 100644 index 00000000..2ad425cd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/ogre/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/ogre/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/ogre/1.ogg new file mode 100644 index 00000000..9e3ac2b9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/ogre/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/ogre/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/ogre/license.txt new file mode 100644 index 00000000..c4bad67d --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/ogre/license.txt @@ -0,0 +1,5 @@ +0 +1 +15 monster grunt/pain/death sounds +http://opengameart.org/content/15-monster-gruntpaindeath-sounds +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/woman/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/woman/0.ogg new file mode 100644 index 00000000..04761d48 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/woman/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/woman/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/woman/1.ogg new file mode 100644 index 00000000..66537342 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/woman/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/woman/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/woman/license.txt new file mode 100644 index 00000000..7c841439 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/woman/license.txt @@ -0,0 +1,9 @@ +0 +huh - Surprised and curious +https://freesound.org/people/jburunet/sounds/460922/ +http://creativecommons.org/publicdomain/zero/1.0/ + +1 +Eh?.mp3 +https://freesound.org/people/mariallinas/sounds/222652/ +http://creativecommons.org/publicdomain/zero/1.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/zombie/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/zombie/0.ogg new file mode 100644 index 00000000..f8d65676 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/zombie/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/zombie/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/zombie/1.ogg new file mode 100644 index 00000000..5372e68f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/zombie/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/zombie/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/zombie/2.ogg new file mode 100644 index 00000000..a9bf87ca Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/zombie/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/zombie/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/zombie/3.ogg new file mode 100644 index 00000000..d4d964a5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/zombie/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/zombie/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/zombie/4.ogg new file mode 100644 index 00000000..81cbef7e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/zombie/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/zombie/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/zombie/license.txt new file mode 100644 index 00000000..69e352fe --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/alert/zombie/license.txt @@ -0,0 +1,8 @@ +0 +1 +2 +3 +4 +Zombies Sound Pack +http://opengameart.org/content/zombies-sound-pack +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/alien/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/alien/0.ogg new file mode 100644 index 00000000..1ff48a37 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/alien/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/alien/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/alien/1.ogg new file mode 100644 index 00000000..a637b55f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/alien/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/alien/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/alien/2.ogg new file mode 100644 index 00000000..41a28f99 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/alien/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/alien/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/alien/license.txt new file mode 100644 index 00000000..f8a6ec6b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/alien/license.txt @@ -0,0 +1,6 @@ +0 +1 +2 +Small pest alien/creature +http://opengameart.org/content/small-pest-aliencreature +http://creativecommons.org/publicdomain/zero/1.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/dog/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/dog/0.ogg new file mode 100644 index 00000000..48311f89 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/dog/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/dog/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/dog/1.ogg new file mode 100644 index 00000000..88a80629 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/dog/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/dog/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/dog/license.txt new file mode 100644 index 00000000..db9dca07 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/dog/license.txt @@ -0,0 +1,9 @@ +0 +4_Beagle_Whining_Room_M +https://freesound.org/people/16G_Panska_Dolezal_Stepan/sounds/498703/ +http://creativecommons.org/publicdomain/zero/1.0/ + +1 +Dog Whine 1.wav +https://freesound.org/people/esperri/sounds/118966/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/0.ogg new file mode 100644 index 00000000..054d0d7a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/1.ogg new file mode 100644 index 00000000..94a11751 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/2.ogg new file mode 100644 index 00000000..b9cf4f1f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/3.ogg new file mode 100644 index 00000000..59a13d90 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/4.ogg new file mode 100644 index 00000000..622a7bbe Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/5.ogg new file mode 100644 index 00000000..e3d1c656 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/6.ogg new file mode 100644 index 00000000..666e1a41 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/7.ogg new file mode 100644 index 00000000..cfc456d0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/license.txt new file mode 100644 index 00000000..70c4a179 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/man/license.txt @@ -0,0 +1,14 @@ +0 +Helmut Scream +http://freesound.org/people/creativeheroes/sounds/84353/ +http://creativecommons.org/licenses/by/4.0/ + +1, 2 +Male_Thijs_loud_scream +http://freesound.org/people/thanvannispen/sounds/9432/ +http://creativecommons.org/licenses/by/4.0/ + +3 - 7 +human male scream multi +http://freesound.org/people/JohnsonBrandEditing/sounds/173944/ +http://creativecommons.org/publicdomain/zero/1.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/mech/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/mech/0.ogg new file mode 100644 index 00000000..3911cae3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/mech/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/mech/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/mech/license.txt new file mode 100644 index 00000000..4d73bf1d --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/mech/license.txt @@ -0,0 +1,3 @@ +Robotic mechanic step sounds by Lee Barkovich +https://opengameart.org/content/robotic-mechanic-step-sounds +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/ogre/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/ogre/0.ogg new file mode 100644 index 00000000..f9c7e5b9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/ogre/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/ogre/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/ogre/1.ogg new file mode 100644 index 00000000..6ae3038f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/ogre/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/ogre/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/ogre/2.ogg new file mode 100644 index 00000000..1e99e6bb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/ogre/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/ogre/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/ogre/3.ogg new file mode 100644 index 00000000..2f199335 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/ogre/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/ogre/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/ogre/license.txt new file mode 100644 index 00000000..20ea6210 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/ogre/license.txt @@ -0,0 +1,7 @@ +0 +1 +2 +3 +15 monster grunt/pain/death sounds +http://opengameart.org/content/15-monster-gruntpaindeath-sounds +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/woman/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/woman/0.ogg new file mode 100644 index 00000000..e7b82c24 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/woman/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/woman/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/woman/1.ogg new file mode 100644 index 00000000..b61b3cf0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/woman/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/woman/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/woman/2.ogg new file mode 100644 index 00000000..adc2e969 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/woman/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/woman/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/woman/3.ogg new file mode 100644 index 00000000..ccc4fcda Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/woman/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/woman/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/woman/4.ogg new file mode 100644 index 00000000..9da90294 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/woman/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/woman/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/woman/license.txt new file mode 100644 index 00000000..dc7255e7 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/woman/license.txt @@ -0,0 +1,24 @@ +0 +women_scream_AAA.aiff +https://www.freesound.org/people/thanvannispen/sounds/9429/ +http://creativecommons.org/licenses/by/4.0/ + +1 +Girl_Two_Screams.wav +https://www.freesound.org/people/tcrocker68/sounds/235595/ +http://creativecommons.org/publicdomain/zero/1.0/ + +2 +Girl_Scream.wav +https://www.freesound.org/people/tcrocker68/sounds/235592/ +http://creativecommons.org/publicdomain/zero/1.0/ + +3 +pandoramachineannalisaloefflerscreams_03.flac +https://www.freesound.org/people/pushkin/sounds/241591/ +http://creativecommons.org/publicdomain/zero/1.0/ + +4 +WomanScream.wav +https://www.freesound.org/people/Archeos/sounds/261419/ +http://creativecommons.org/publicdomain/zero/1.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/0.ogg new file mode 100644 index 00000000..a90bc564 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/1.ogg new file mode 100644 index 00000000..8ec8c63d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/2.ogg new file mode 100644 index 00000000..4d23b63e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/3.ogg new file mode 100644 index 00000000..bf4afc96 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/4.ogg new file mode 100644 index 00000000..e4162a71 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/5.ogg new file mode 100644 index 00000000..0476e13d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/license.txt new file mode 100644 index 00000000..81cf8b82 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/chars/die/zombie/license.txt @@ -0,0 +1,9 @@ +0 +1 +2 +3 +4 +5 +Zombies Sound Pack +http://opengameart.org/content/zombies-sound-pack +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/click.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/click.ogg new file mode 100644 index 00000000..a065b35c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/click.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/click.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/click.txt new file mode 100644 index 00000000..02f55a17 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/click.txt @@ -0,0 +1,4 @@ +Derived from Stapler_Hands_05.wav by Simon_Lacelle +http://freesound.org/people/Simon_Lacelle/sounds/67352/ + +http://creativecommons.org/licenses/by/4.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/door.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/door.ogg new file mode 100644 index 00000000..0da299ac Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/door.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/door.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/door.txt new file mode 100644 index 00000000..95546320 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/door.txt @@ -0,0 +1,3 @@ +Derived from Slide by jberkuta14 +https://www.freesound.org/people/jberkuta14/sounds/134894/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/door_close.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/door_close.ogg new file mode 100644 index 00000000..55c99906 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/door_close.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/door_close.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/door_close.txt new file mode 100644 index 00000000..95546320 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/door_close.txt @@ -0,0 +1,3 @@ +Derived from Slide by jberkuta14 +https://www.freesound.org/people/jberkuta14/sounds/134894/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/0.ogg new file mode 100644 index 00000000..66bc8b22 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/1.ogg new file mode 100644 index 00000000..18250682 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/2.ogg new file mode 100644 index 00000000..b29eecf7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/3.ogg new file mode 100644 index 00000000..edb67ef7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/4.ogg new file mode 100644 index 00000000..f09ef82b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/5.ogg new file mode 100644 index 00000000..b639ed4f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/6.ogg new file mode 100644 index 00000000..0886ee54 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/7.ogg new file mode 100644 index 00000000..6e04dd61 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/8.ogg new file mode 100644 index 00000000..3f40de09 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/license.txt new file mode 100644 index 00000000..154cc924 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion/license.txt @@ -0,0 +1,4 @@ +Derived from cannon_boom7.wav by ReadeOnly +http://freesound.org/people/ReadeOnly/sounds/186951/ + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion_small.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion_small.ogg new file mode 100644 index 00000000..156cf203 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion_small.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion_small.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion_small.txt new file mode 100644 index 00000000..fa49d2ab --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/explosion_small.txt @@ -0,0 +1,5 @@ +Derived from + +Huge Explosion by unfa +https://www.freesound.org/people/unfa/sounds/259300/ +http://creativecommons.org/publicdomain/zero/1.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/fireball.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/fireball.txt new file mode 100644 index 00000000..5f3a2096 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/fireball.txt @@ -0,0 +1,4 @@ +Derived from JM_FX_Fireball 01.wav by Julien Matthey +http://freesound.org/people/Julien%20Matthey/sounds/105016/ + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/fireball.wav b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/fireball.wav new file mode 100644 index 00000000..aac57d22 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/fireball.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/flamer.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/flamer.ogg new file mode 100644 index 00000000..7b35a308 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/flamer.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/flamer.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/flamer.txt new file mode 100644 index 00000000..7f866a0f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/flamer.txt @@ -0,0 +1,3 @@ +Derived from Flames 2 by shastrocks +https://www.freesound.org/people/shastrocks/sounds/182119/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/flamer_switch.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/flamer_switch.ogg new file mode 100644 index 00000000..887a3081 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/flamer_switch.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/flamer_switch.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/flamer_switch.txt new file mode 100644 index 00000000..67fa110a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/flamer_switch.txt @@ -0,0 +1,9 @@ +Derived from + +Kitchen_Hob_Burner_Gas_Fire_Flame_Ignition_Cooking.wav by tompallant +https://www.freesound.org/people/tompallant/sounds/260448/ +http://creativecommons.org/publicdomain/zero/1.0/ + +openning can.wav by Nic3_one +https://www.freesound.org/people/Nic3_one/sounds/166546/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/README.md b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/README.md new file mode 100644 index 00000000..3bd60975 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/README.md @@ -0,0 +1,13 @@ +Footsteps depend on the following: + +- Character class (some override all footstep sounds) +- Tile type +- Map item + +The tile type determines footstep sound based on the tile sprite. + +Some map items also modify footstep sounds if actors walk over it, like grates. + +See `MatGetFootstepSound` for details. + +Inspired by the Half-Life materials system - see https://greg-kennedy.com/hl_materials/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/0.ogg new file mode 100644 index 00000000..14b4930f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/1.ogg new file mode 100644 index 00000000..04969a7c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/2.ogg new file mode 100644 index 00000000..d5fc094c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/3.ogg new file mode 100644 index 00000000..e743dcb1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/4.ogg new file mode 100644 index 00000000..a459a671 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/5.ogg new file mode 100644 index 00000000..49559fee Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/6.ogg new file mode 100644 index 00000000..82462529 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/7.ogg new file mode 100644 index 00000000..2b8eb38f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/8.ogg new file mode 100644 index 00000000..6a327e87 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/9.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/9.ogg new file mode 100644 index 00000000..09f1fedb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/9.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/license.txt new file mode 100644 index 00000000..811f5df3 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/bones/license.txt @@ -0,0 +1,4 @@ +Derived from bone shell by blukotek +https://freesound.org/people/blukotek/sounds/249319/ + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/0.ogg new file mode 100644 index 00000000..9f303b87 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/1.ogg new file mode 100644 index 00000000..04aee021 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/2.ogg new file mode 100644 index 00000000..ba987dda Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/3.ogg new file mode 100644 index 00000000..f9eeb37b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/4.ogg new file mode 100644 index 00000000..4645be39 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/5.ogg new file mode 100644 index 00000000..fbbb348d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/6.ogg new file mode 100644 index 00000000..efd62ff3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/7.ogg new file mode 100644 index 00000000..19e1182e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/8.ogg new file mode 100644 index 00000000..04644c12 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/license.txt new file mode 100644 index 00000000..46955988 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/boots/license.txt @@ -0,0 +1,4 @@ +Derived from footstep-concrete.wav by swuing +http://www.freesound.org/people/swuing/sounds/38873/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/0.ogg new file mode 100644 index 00000000..d7311e30 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/1.ogg new file mode 100644 index 00000000..7db6379c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/2.ogg new file mode 100644 index 00000000..a7c2a619 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/3.ogg new file mode 100644 index 00000000..9d2fce8b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/4.ogg new file mode 100644 index 00000000..b60e3355 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/5.ogg new file mode 100644 index 00000000..7c603e31 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/6.ogg new file mode 100644 index 00000000..4d958a5d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/7.ogg new file mode 100644 index 00000000..57941cb8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/license.txt new file mode 100644 index 00000000..398b44eb --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/dog/license.txt @@ -0,0 +1,4 @@ +Derived from Wolf run.wav by sabotovat +https://freesound.org/people/sabotovat/sounds/414350/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/0.ogg new file mode 100644 index 00000000..ed598ec5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/1.ogg new file mode 100644 index 00000000..5782652b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/2.ogg new file mode 100644 index 00000000..3c73fa24 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/3.ogg new file mode 100644 index 00000000..32aa7c19 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/4.ogg new file mode 100644 index 00000000..20f5a834 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/5.ogg new file mode 100644 index 00000000..6f05ad0c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/6.ogg new file mode 100644 index 00000000..2c08feaf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/7.ogg new file mode 100644 index 00000000..df53a3d1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/8.ogg new file mode 100644 index 00000000..9b8cba81 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/license.txt new file mode 100644 index 00000000..86e471a1 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/grass/license.txt @@ -0,0 +1,4 @@ +Derived from footstep-grass.wav by swuing +https://freesound.org/people/swuing/sounds/38874/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/0.ogg new file mode 100644 index 00000000..508dfc45 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/1.ogg new file mode 100644 index 00000000..d323858f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/2.ogg new file mode 100644 index 00000000..e3d22d4d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/3.ogg new file mode 100644 index 00000000..e79b8de3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/4.ogg new file mode 100644 index 00000000..0f7c362b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/5.ogg new file mode 100644 index 00000000..2d87fc41 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/6.ogg new file mode 100644 index 00000000..cddaff80 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/7.ogg new file mode 100644 index 00000000..7e437fef Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/8.ogg new file mode 100644 index 00000000..5319f645 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/9.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/9.ogg new file mode 100644 index 00000000..81b682fa Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/9.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/license.txt new file mode 100644 index 00000000..75889fc2 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/gravel/license.txt @@ -0,0 +1,4 @@ +Derived from Pack: Gravel Footsteps by Ali_6868 +https://freesound.org/people/Ali_6868/packs/21608/ + +https://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/mech/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/mech/0.ogg new file mode 100644 index 00000000..9b0341fc Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/mech/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/mech/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/mech/license.txt new file mode 100644 index 00000000..8e57bb6e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/mech/license.txt @@ -0,0 +1,3 @@ +Derived from Robotic mechanic step sounds by Lee Barkovich +http://www.archive.org/details/Berklee44Barkovich +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/0.ogg new file mode 100644 index 00000000..4eee5b99 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/1.ogg new file mode 100644 index 00000000..83375188 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/2.ogg new file mode 100644 index 00000000..07f0d110 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/3.ogg new file mode 100644 index 00000000..a3a1c57e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/4.ogg new file mode 100644 index 00000000..99d6037a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/5.ogg new file mode 100644 index 00000000..5a7cfc58 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/6.ogg new file mode 100644 index 00000000..fe590ef7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/7.ogg new file mode 100644 index 00000000..dca6729b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/license.txt new file mode 100644 index 00000000..409e18bb --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/metal/license.txt @@ -0,0 +1,4 @@ +Derived from fboots on aluminum ladder 01 by Eelke +https://freesound.org/people/Eelke/sounds/462598/ + +http://creativecommons.org/licenses/by/4.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/0.ogg new file mode 100644 index 00000000..3e061cd1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/1.ogg new file mode 100644 index 00000000..6ab43f92 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/2.ogg new file mode 100644 index 00000000..8fd1bbb5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/3.ogg new file mode 100644 index 00000000..7107fc11 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/4.ogg new file mode 100644 index 00000000..7d0563eb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/5.ogg new file mode 100644 index 00000000..1fd0c5ca Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/6.ogg new file mode 100644 index 00000000..af202fe1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/7.ogg new file mode 100644 index 00000000..bae31451 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/8.ogg new file mode 100644 index 00000000..818321b2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/license.txt new file mode 100644 index 00000000..c4ed5c6f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/tile/license.txt @@ -0,0 +1,7 @@ +Derived from footstep-concrete.wav by swuing +http://www.freesound.org/people/swuing/sounds/38873/ + +And Squeaky footstep.wav from ceberation +https://freesound.org/people/ceberation/sounds/235524/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/water/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/water/0.ogg new file mode 100644 index 00000000..0e3a1cb8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/water/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/water/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/water/1.ogg new file mode 100644 index 00000000..72a3b694 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/water/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/water/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/water/2.ogg new file mode 100644 index 00000000..3f31e726 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/water/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/water/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/water/3.ogg new file mode 100644 index 00000000..7a4ee34c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/water/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/water/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/water/4.ogg new file mode 100644 index 00000000..8148bfad Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/water/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/water/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/water/license.txt new file mode 100644 index 00000000..a51c9c0c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/water/license.txt @@ -0,0 +1,7 @@ +Derived from Water Footsteps by EminYILDIRIM +https://freesound.org/people/EminYILDIRIM/sounds/608663/ +http://creativecommons.org/licenses/by/4.0/ + +And footstep-concrete.wav by swuing +http://www.freesound.org/people/swuing/sounds/38873/ +http://creativecommons.org/licenses/by/3.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/0.ogg new file mode 100644 index 00000000..92dbfd0b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/1.ogg new file mode 100644 index 00000000..9085869b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/2.ogg new file mode 100644 index 00000000..803cba46 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/3.ogg new file mode 100644 index 00000000..af212132 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/4.ogg new file mode 100644 index 00000000..4caf84f0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/5.ogg new file mode 100644 index 00000000..417d6006 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/6.ogg new file mode 100644 index 00000000..b47f26e8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/7.ogg new file mode 100644 index 00000000..78cef9e4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/8.ogg new file mode 100644 index 00000000..d95d41b6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/license.txt new file mode 100644 index 00000000..c84adc6a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/footsteps/wood/license.txt @@ -0,0 +1,4 @@ +Derived from footstep-wood.wav by swuing +https://freesound.org/people/swuing/sounds/38876/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/fusion.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/fusion.ogg new file mode 100644 index 00000000..6c48a3de Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/fusion.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/fusion.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/fusion.txt new file mode 100644 index 00000000..b97615f8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/fusion.txt @@ -0,0 +1,3 @@ +Derived from JM_NOIZ_Laser 01.wav by Julien Matthey +https://www.freesound.org/people/Julien%20Matthey/sounds/268344/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/gas_leak.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/gas_leak.ogg new file mode 100644 index 00000000..3fd2caaf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/gas_leak.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/gas_leak.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/gas_leak.txt new file mode 100644 index 00000000..8d73f8cd --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/gas_leak.txt @@ -0,0 +1,4 @@ +Derived from Décompression.wav by davidou +https://www.freesound.org/people/davidou/sounds/88495/ + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/gas_tank_pickup.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/gas_tank_pickup.ogg new file mode 100644 index 00000000..c9bb52f4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/gas_tank_pickup.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/gas_tank_pickup.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/gas_tank_pickup.txt new file mode 100644 index 00000000..b6afb35b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/gas_tank_pickup.txt @@ -0,0 +1,7 @@ +Derived from pbr_can 09.wav by Ayavaron +http://freesound.org/people/Ayavaron/sounds/126478/ +http://creativecommons.org/publicdomain/zero/1.0/ + +and fizzy water bottle open 001.WAV by uwesoundboiz +http://freesound.org/people/uwesoundboiz/sounds/60385/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/glass_break.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/glass_break.ogg new file mode 100644 index 00000000..6a1ec914 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/glass_break.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/glass_break.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/glass_break.txt new file mode 100644 index 00000000..f70d98e8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/glass_break.txt @@ -0,0 +1,3 @@ +Derived from Breaking Bottle by spookymodem +https://opengameart.org/content/breaking-bottle +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/grenade_pickup.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/grenade_pickup.ogg new file mode 100644 index 00000000..56ed41e2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/grenade_pickup.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/grenade_pickup.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/grenade_pickup.txt new file mode 100644 index 00000000..3db102a5 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/grenade_pickup.txt @@ -0,0 +1,7 @@ +Derived from rocks fall with leaf rustle 3.wav by Halleck +http://freesound.org/people/Halleck/sounds/121705/ +http://creativecommons.org/licenses/by/4.0/ + +and Canvas Tent 3.wav by kevinkace +http://freesound.org/people/kevinkace/sounds/66775/ +http://creativecommons.org/publicdomain/zero/1.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hahaha.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hahaha.ogg new file mode 100644 index 00000000..3bc2f20d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hahaha.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hahaha.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hahaha.txt new file mode 100644 index 00000000..f16e9f5f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hahaha.txt @@ -0,0 +1,3 @@ +Derived from Evil Laughs Demonic Echos.mp3 by teqstudios +https://www.freesound.org/people/teqstudios/sounds/118703/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/health.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/health.txt new file mode 100644 index 00000000..96981c11 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/health.txt @@ -0,0 +1,4 @@ +Derived from beeps-5.wav by Greencouch +http://freesound.org/people/Greencouch/sounds/124905/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/health.wav b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/health.wav new file mode 100644 index 00000000..b0bf9743 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/health.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/heatseeker_switch.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/heatseeker_switch.ogg new file mode 100644 index 00000000..7fefa35c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/heatseeker_switch.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/heatseeker_switch.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/heatseeker_switch.txt new file mode 100644 index 00000000..3802e749 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/heatseeker_switch.txt @@ -0,0 +1,9 @@ +Derived from + +HefterLocher.wav by Mortifreshman +http://freesound.org/people/Mortifreshman/sounds/246518/ +http://creativecommons.org/publicdomain/zero/1.0/ + +missile_launch_2.wav by smcameron +http://freesound.org/people/smcameron/sounds/51468/ +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/README.md b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/README.md new file mode 100644 index 00000000..a3c14ae9 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/README.md @@ -0,0 +1 @@ +All sounds in this folder are random pitch-shifted variations \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/0.ogg new file mode 100644 index 00000000..d5fa6df0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/1.ogg new file mode 100644 index 00000000..0785a47a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/2.ogg new file mode 100644 index 00000000..516307cd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/3.ogg new file mode 100644 index 00000000..347db577 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/4.ogg new file mode 100644 index 00000000..b276eeed Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/5.ogg new file mode 100644 index 00000000..7aef078d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/license.txt new file mode 100644 index 00000000..26692f85 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/dog_growl/license.txt @@ -0,0 +1,3 @@ +Derived from Dogs growling.wav by juskiddink +https://freesound.org/people/juskiddink/sounds/121565/ +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/0.ogg new file mode 100644 index 00000000..4a6935d5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/1.ogg new file mode 100644 index 00000000..24e8cddf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/2.ogg new file mode 100644 index 00000000..4e64bc68 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/3.ogg new file mode 100644 index 00000000..8a292515 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/4.ogg new file mode 100644 index 00000000..4038fcb0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/5.ogg new file mode 100644 index 00000000..7b5881c6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/6.ogg new file mode 100644 index 00000000..443425fa Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/7.ogg new file mode 100644 index 00000000..01652858 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/8.ogg new file mode 100644 index 00000000..56bc4e6a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/license.txt new file mode 100644 index 00000000..58830404 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fire/license.txt @@ -0,0 +1,4 @@ +Derived from gas_fire_catch.wav by themfish +http://www.freesound.org/people/themfish/sounds/45809/ + +http://creativecommons.org/licenses/by/4.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/0.ogg new file mode 100644 index 00000000..aaf2e778 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/1.ogg new file mode 100644 index 00000000..d0169abb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/10.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/10.ogg new file mode 100644 index 00000000..33f25413 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/10.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/11.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/11.ogg new file mode 100644 index 00000000..c547ca19 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/11.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/12.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/12.ogg new file mode 100644 index 00000000..96d8689c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/12.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/13.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/13.ogg new file mode 100644 index 00000000..2aa3611a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/13.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/14.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/14.ogg new file mode 100644 index 00000000..fb0aef7e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/14.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/15.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/15.ogg new file mode 100644 index 00000000..9fd66882 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/15.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/16.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/16.ogg new file mode 100644 index 00000000..73fc4721 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/16.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/17.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/17.ogg new file mode 100644 index 00000000..c634e2c0 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/17.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/2.ogg new file mode 100644 index 00000000..9c8b8b7a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/3.ogg new file mode 100644 index 00000000..45be6281 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/4.ogg new file mode 100644 index 00000000..abb7e9f4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/5.ogg new file mode 100644 index 00000000..c616fdd7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/6.ogg new file mode 100644 index 00000000..2928a3b5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/7.ogg new file mode 100644 index 00000000..2c1155b7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/8.ogg new file mode 100644 index 00000000..5f6249eb Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/9.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/9.ogg new file mode 100644 index 00000000..992a534e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/9.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/README.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/README.txt new file mode 100644 index 00000000..6f7ae103 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/fist_flesh/README.txt @@ -0,0 +1,4 @@ +Adapted from Punch, slap, n' kick.wav +by CGEffex +http://freesound.org/people/CGEffex/sounds/98341/ +http://creativecommons.org/licenses/by/4.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/0.ogg new file mode 100644 index 00000000..6849b8d1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/1.ogg new file mode 100644 index 00000000..bc4cecdf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/2.ogg new file mode 100644 index 00000000..35432e3e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/3.ogg new file mode 100644 index 00000000..8482ad39 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/4.ogg new file mode 100644 index 00000000..7fa39a56 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/5.ogg new file mode 100644 index 00000000..0e60593a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/6.ogg new file mode 100644 index 00000000..2e0553d6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/7.ogg new file mode 100644 index 00000000..c0a6c271 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/8.ogg new file mode 100644 index 00000000..55456aa2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/license.txt new file mode 100644 index 00000000..6d7aaa15 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/flesh/license.txt @@ -0,0 +1,4 @@ +Derived from Bullet_Impact_3 by toxicwafflezz +http://www.freesound.org/people/toxicwafflezz/sounds/150839/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/0.ogg new file mode 100644 index 00000000..4c84ac3f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/1.ogg new file mode 100644 index 00000000..66e10921 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/2.ogg new file mode 100644 index 00000000..d2587792 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/3.ogg new file mode 100644 index 00000000..9863d9c1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/4.ogg new file mode 100644 index 00000000..ce20bce3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/5.ogg new file mode 100644 index 00000000..4feb8015 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/6.ogg new file mode 100644 index 00000000..0f50770e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/7.ogg new file mode 100644 index 00000000..b026fd87 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/8.ogg new file mode 100644 index 00000000..53c1fdb9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/license.txt new file mode 100644 index 00000000..e2bd382f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/gas/license.txt @@ -0,0 +1,3 @@ +Derived from Wind, hit, time morph by qubodup +https://opengameart.org/content/wind-hit-time-morph +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/0.ogg new file mode 100644 index 00000000..e50a6085 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/1.ogg new file mode 100644 index 00000000..7717e55e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/2.ogg new file mode 100644 index 00000000..a613e98d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/3.ogg new file mode 100644 index 00000000..42494477 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/4.ogg new file mode 100644 index 00000000..339310e7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/5.ogg new file mode 100644 index 00000000..3877e941 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/6.ogg new file mode 100644 index 00000000..a085a121 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/7.ogg new file mode 100644 index 00000000..d80f6d34 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/8.ogg new file mode 100644 index 00000000..aed5cc69 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/license.txt new file mode 100644 index 00000000..d7735f16 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/hard/license.txt @@ -0,0 +1,4 @@ +Derived from Bullet_Flyby_2.wav by kMoon +http://www.freesound.org/people/kMoon/sounds/90782/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/0.ogg new file mode 100644 index 00000000..c0257a47 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/1.ogg new file mode 100644 index 00000000..fe963e92 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/2.ogg new file mode 100644 index 00000000..2c942321 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/3.ogg new file mode 100644 index 00000000..cf214105 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/4.ogg new file mode 100644 index 00000000..62f4cfe3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/5.ogg new file mode 100644 index 00000000..32359518 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/6.ogg new file mode 100644 index 00000000..1ea169f3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/7.ogg new file mode 100644 index 00000000..16efeea2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/8.ogg new file mode 100644 index 00000000..1ac34a9a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/license.txt new file mode 100644 index 00000000..821c8de7 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_flesh/license.txt @@ -0,0 +1,9 @@ +Derived from + +1_Knife_Slash_A.wav by lmbubec +http://www.freesound.org/people/lmbubec/sounds/118792/ +http://creativecommons.org/publicdomain/zero/1.0/ + +Zombie Flesh Bites by MrPokephile +http://www.freesound.org/people/MrPokephile/sounds/155973/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/0.ogg new file mode 100644 index 00000000..06ce6e27 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/1.ogg new file mode 100644 index 00000000..863b5100 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/2.ogg new file mode 100644 index 00000000..f4c3923c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/3.ogg new file mode 100644 index 00000000..0cdbe0ca Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/4.ogg new file mode 100644 index 00000000..3b3f15bf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/5.ogg new file mode 100644 index 00000000..0fa9fc6b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/6.ogg new file mode 100644 index 00000000..e3669e51 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/7.ogg new file mode 100644 index 00000000..d5aca5a6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/8.ogg new file mode 100644 index 00000000..f6ab21ed Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/license.txt new file mode 100644 index 00000000..04480346 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/knife_hard/license.txt @@ -0,0 +1,4 @@ +Derived from Door Knock.wav by geoffbarkman +http://www.freesound.org/people/geoffbarkman/sounds/53442/ + +http://creativecommons.org/licenses/by/4.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/0.ogg new file mode 100644 index 00000000..89794048 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/1.ogg new file mode 100644 index 00000000..92276211 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/2.ogg new file mode 100644 index 00000000..f8006b39 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/3.ogg new file mode 100644 index 00000000..fb722d7d Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/4.ogg new file mode 100644 index 00000000..2e486840 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/5.ogg new file mode 100644 index 00000000..6e27998b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/6.ogg new file mode 100644 index 00000000..5b465bad Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/7.ogg new file mode 100644 index 00000000..9d95b66e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/8.ogg new file mode 100644 index 00000000..1981b5df Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/license.txt new file mode 100644 index 00000000..9711da75 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/hits/petrify/license.txt @@ -0,0 +1,4 @@ +Derived from Crackling Plastic by PaulBannisterAudio +http://www.freesound.org/people/PaulBannisterAudio/sounds/133765/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/key.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/key.txt new file mode 100644 index 00000000..2a3bb682 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/key.txt @@ -0,0 +1,4 @@ +Derived from Keys 06.wav by LG +http://freesound.org/people/LG/sounds/73093/ + +http://creativecommons.org/licenses/by/4.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/key.wav b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/key.wav new file mode 100644 index 00000000..8e6fe448 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/key.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/knife_switch.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/knife_switch.ogg new file mode 100644 index 00000000..65f3094e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/knife_switch.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/knife_switch.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/knife_switch.txt new file mode 100644 index 00000000..74981ae9 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/knife_switch.txt @@ -0,0 +1,9 @@ +Derived from + +dagger_drawn2.wav by freefire66 +https://www.freesound.org/people/freefire66/sounds/175953/ +http://creativecommons.org/publicdomain/zero/1.0/ + +sheath_sword.wav by Qat +https://www.freesound.org/people/Qat/sounds/107590/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/knuckles.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/knuckles.ogg new file mode 100644 index 00000000..751287a1 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/knuckles.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/knuckles.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/knuckles.txt new file mode 100644 index 00000000..c29516c6 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/knuckles.txt @@ -0,0 +1,3 @@ +Derived from knuckles cracking by borq1 +https://freesound.org/people/borq1/sounds/475965/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/laserpew.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/laserpew.ogg new file mode 100644 index 00000000..beff469c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/laserpew.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/laserpew.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/laserpew.txt new file mode 100644 index 00000000..cafb76a1 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/laserpew.txt @@ -0,0 +1,4 @@ +Pew Laser fire Sound +by sketcherskt +https://opengameart.org/content/pew-laser-fire-sound +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/launch.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/launch.ogg new file mode 100644 index 00000000..eeb3acf2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/launch.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/launch.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/launch.txt new file mode 100644 index 00000000..ecaf641f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/launch.txt @@ -0,0 +1,4 @@ +Adapted from semtex grenade.wav +by superfreq +http://freesound.org/people/superfreq/sounds/191583/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/launcher_switch.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/launcher_switch.ogg new file mode 100644 index 00000000..69d94f0e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/launcher_switch.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/launcher_switch.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/launcher_switch.txt new file mode 100644 index 00000000..ae72a1b3 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/launcher_switch.txt @@ -0,0 +1,9 @@ +Derived from + +HefterLocher.wav by Mortifreshman +http://freesound.org/people/Mortifreshman/sounds/246518/ +http://creativecommons.org/publicdomain/zero/1.0/ + +vault.aiff by franzzle +http://freesound.org/people/franzzle/sounds/184843/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/life.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/life.ogg new file mode 100644 index 00000000..7f5b0b77 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/life.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/life.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/life.txt new file mode 100644 index 00000000..3a12e3a8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/life.txt @@ -0,0 +1,10 @@ +Adapted from +Alert (1) +by Beetlemuse +https://freesound.org/people/Beetlemuse/sounds/529626/ +https://creativecommons.org/licenses/by/4.0/ +And +Powerup 08.wav +By MATRIXXX_ +https://freesound.org/people/MATRIXXX_/sounds/523648/ +https://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/lmg.mp3 b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/lmg.mp3 new file mode 100644 index 00000000..8a4f4e03 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/lmg.mp3 differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/lmg.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/lmg.txt new file mode 100644 index 00000000..202b9d55 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/lmg.txt @@ -0,0 +1,4 @@ +Light Machine Gun +by KuraiWolf +https://opengameart.org/content/light-machine-gun +https://creativecommons.org/licenses/by/4.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/make_pitch_variations.sh b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/make_pitch_variations.sh new file mode 100755 index 00000000..e0f141ac --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/make_pitch_variations.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# Create a bunch of pitch-shifted variations of a sound file +# Requires SoX (http://sox.sourceforge.net/) +# Sounds vary between +/- 2 tones +# Usage: ./make_pitch_variations.sh +# Sound file should be named with a zero, e.g. foo0.ogg, so that the variations +# can be called foo1.ogg, foo2.ogg and so on (foo/0.ogg becomes foo/1.ogg etc.) +if [ "$#" -lt 2 ]; then + echo "Usage: ./make_pitch_variations.sh " + exit 1 +fi +SHIFT_RANGE=200 +if [ "$#" -eq 3 ]; then + SHIFT_RANGE=$3 +fi +FILENAME_PREFIX=${1%%0.*} +EXTENSION=${1##*.} +for i in $(seq 1 "$2") +do + FILENAME="${FILENAME_PREFIX}$(((i - 1) * 2 + 1)).${EXTENSION}" + SHIFT=$((SHIFT_RANGE * i / $2)) + sox -G "$1" "$FILENAME" pitch "$SHIFT" + FILENAME="${FILENAME_PREFIX}$((i * 2)).${EXTENSION}" + sox -G "$1" "$FILENAME" pitch "-$SHIFT" +done diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/map_close.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/map_close.ogg new file mode 100644 index 00000000..24c48c53 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/map_close.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/map_open.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/map_open.ogg new file mode 100644 index 00000000..6f646780 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/map_open.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/map_open_close.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/map_open_close.txt new file mode 100644 index 00000000..014d5018 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/map_open_close.txt @@ -0,0 +1,3 @@ +Derived from Oblivion drone sounds » 07-confirmation.wav +https://www.freesound.org/people/drzhnn/sounds/199940/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/menu.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/menu.txt new file mode 100644 index 00000000..a9d50898 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/menu.txt @@ -0,0 +1,8 @@ +menu_back +menu_enter +menu_error +menu_start +menu_switch +Derived from Hi-Tech Button Sound Pack I (Non Themed) by Circlerun +https://opengameart.org/content/hi-tech-button-sound-pack-i-non-themed +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/menu_back.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/menu_back.ogg new file mode 100644 index 00000000..9d370014 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/menu_back.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/menu_enter.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/menu_enter.ogg new file mode 100644 index 00000000..afdc873e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/menu_enter.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/menu_error.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/menu_error.ogg new file mode 100644 index 00000000..86b929d3 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/menu_error.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/menu_start.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/menu_start.ogg new file mode 100644 index 00000000..74144139 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/menu_start.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/menu_switch.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/menu_switch.ogg new file mode 100644 index 00000000..856f3a75 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/menu_switch.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mg.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mg.ogg new file mode 100644 index 00000000..8f571114 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mg.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mg.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mg.txt new file mode 100644 index 00000000..83066be2 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mg.txt @@ -0,0 +1,3 @@ +Derived from Sniper Shot by LeMudCrab +https://www.freesound.org/people/LeMudCrab/sounds/163460/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mg_switch.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mg_switch.ogg new file mode 100644 index 00000000..9cd3e707 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mg_switch.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mg_switch.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mg_switch.txt new file mode 100644 index 00000000..a92e36de --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mg_switch.txt @@ -0,0 +1,9 @@ +Derived from + +AR15 Various Sounds by wadaltmon +https://www.freesound.org/people/wadaltmon/sounds/263513/ +http://creativecommons.org/publicdomain/zero/1.0/ + +Steel chain hard clicking by ani_music +https://www.freesound.org/people/ani_music/sounds/167916/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mine_arm.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mine_arm.txt new file mode 100644 index 00000000..7b190748 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mine_arm.txt @@ -0,0 +1,4 @@ +Derived from Radio Beep by Kijadzel +http://freesound.org/people/Kijadzel/sounds/170608/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mine_arm.wav b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mine_arm.wav new file mode 100644 index 00000000..8b5475b5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mine_arm.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mine_switch.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mine_switch.ogg new file mode 100644 index 00000000..c9c96cf8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mine_switch.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mine_switch.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mine_switch.txt new file mode 100644 index 00000000..7b190748 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mine_switch.txt @@ -0,0 +1,4 @@ +Derived from Radio Beep by Kijadzel +http://freesound.org/people/Kijadzel/sounds/170608/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mine_trigger.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mine_trigger.txt new file mode 100644 index 00000000..7b190748 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mine_trigger.txt @@ -0,0 +1,4 @@ +Derived from Radio Beep by Kijadzel +http://freesound.org/people/Kijadzel/sounds/170608/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mine_trigger.wav b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mine_trigger.wav new file mode 100644 index 00000000..255eba3c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mine_trigger.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mini_cells_pickup.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mini_cells_pickup.ogg new file mode 100644 index 00000000..91a07dcf Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mini_cells_pickup.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mini_cells_pickup.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mini_cells_pickup.txt new file mode 100644 index 00000000..25a18f1f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mini_cells_pickup.txt @@ -0,0 +1,8 @@ +Derived from +Transit Crystal Charge by crashoverride61088 +http://freesound.org/people/crashoverride61088/sounds/193622/ +http://creativecommons.org/publicdomain/zero/1.0/ +and +clicks_lamp.wav by jennerallydrawing +http://freesound.org/people/jennerallydrawing/sounds/251452/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mission_complete.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mission_complete.ogg new file mode 100644 index 00000000..d9e70d16 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mission_complete.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mission_complete.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mission_complete.txt new file mode 100644 index 00000000..26435751 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/mission_complete.txt @@ -0,0 +1,4 @@ +Derived from +UI and Item sound effect Jingles Sample 2 by ViRiX Dreamcore soundcloud.com/virix +https://opengameart.org/content/ui-and-item-sound-effect-jingles-sample-2 +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/molotov_pickup.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/molotov_pickup.ogg new file mode 100644 index 00000000..6d41258e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/molotov_pickup.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/molotov_pickup.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/molotov_pickup.txt new file mode 100644 index 00000000..165cf215 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/molotov_pickup.txt @@ -0,0 +1,8 @@ +Derived from +flasks.mp3 by j1987 +http://freesound.org/people/j1987/sounds/94987/ +http://creativecommons.org/publicdomain/zero/1.0/ +and +Waterbottle, grab, squeeze.wav by MentalSanityOff +http://freesound.org/people/MentalSanityOff/sounds/153557/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/monster-2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/monster-2.ogg new file mode 100644 index 00000000..72688272 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/monster-2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/monster-2.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/monster-2.txt new file mode 100644 index 00000000..1267bfea --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/monster-2.txt @@ -0,0 +1,10 @@ +Derived from +Monster Sound Effects Pack +by Ogrebane +http://opengameart.org/content/monster-sound-effects-pack +http://creativecommons.org/publicdomain/zero/1.0/ +and +Bloody Blade 2.wav +by Kreastricon62 +https://freesound.org/people/Kreastricon62/sounds/323525/ +http://creativecommons.org/publicdomain/zero/1.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/package_pickup.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/package_pickup.ogg new file mode 100644 index 00000000..9838f3ee Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/package_pickup.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/package_pickup.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/package_pickup.txt new file mode 100644 index 00000000..eb9078b6 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/package_pickup.txt @@ -0,0 +1,4 @@ +Bone, Fall, Ledge Climbing, Impact (Yo Frankie!) by Blender Foundation +CC-BY 3.0 +http://opengameart.org/content/bone-fall-ledge-climbing-impact-yo-frankie +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/package_r.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/package_r.txt new file mode 100644 index 00000000..1e071457 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/package_r.txt @@ -0,0 +1,3 @@ +Derived from picking_up_DVDs.wav by daboy291 +https://freesound.org/people/daboy291/sounds/138078/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/package_r.wav b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/package_r.wav new file mode 100644 index 00000000..ced39ae7 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/package_r.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pickup.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pickup.ogg new file mode 100644 index 00000000..2238f3b6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pickup.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pickup.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pickup.txt new file mode 100644 index 00000000..1599e9e8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pickup.txt @@ -0,0 +1,3 @@ +Derived from picking_up_DVDs.wav by daboy291 +https://www.freesound.org/people/daboy291/sounds/138078/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pistol.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pistol.txt new file mode 100644 index 00000000..e7e9e694 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pistol.txt @@ -0,0 +1,4 @@ +Derived from Chaingun, pistol, rifle, shotgun shots by Michel Baradari +http://opengameart.org/content/chaingun-pistol-rifle-shotgun-shots + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pistol.wav b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pistol.wav new file mode 100644 index 00000000..0a9f0e41 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pistol.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pistol_switch.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pistol_switch.ogg new file mode 100644 index 00000000..075978e2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pistol_switch.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pistol_switch.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pistol_switch.txt new file mode 100644 index 00000000..783b1113 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pistol_switch.txt @@ -0,0 +1,9 @@ +Derived from + +GunSLide.wav by RazzDaSpazz +http://freesound.org/people/RazzDaSpazz/sounds/155174/ +http://creativecommons.org/publicdomain/zero/1.0/ + +Beretta M9 slide release by vabadus +http://freesound.org/people/vabadus/sounds/151067/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/powergun.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/powergun.ogg new file mode 100644 index 00000000..36d6d379 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/powergun.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/powergun.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/powergun.txt new file mode 100644 index 00000000..7a0c453e --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/powergun.txt @@ -0,0 +1,3 @@ +Derived from fusion-gun_flash0_by_OnlyTheGhosts.wav by OnlyTheGhosts +https://www.freesound.org/people/OnlyTheGhosts/sounds/251431/ +http://creativecommons.org/licenses/by/4.0/ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/powergun_r.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/powergun_r.ogg new file mode 100644 index 00000000..ec5e5492 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/powergun_r.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/powergun_r.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/powergun_r.txt new file mode 100644 index 00000000..c50c7e3c --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/powergun_r.txt @@ -0,0 +1,9 @@ +Derived from + +gunfiddle.wav by j1987 +https://www.freesound.org/people/j1987/sounds/107795/ +http://creativecommons.org/publicdomain/zero/1.0/ + +JM_NOIZ_Buzz 01 - Neon Light.wav by Julien Matthey +https://www.freesound.org/people/Julien%20Matthey/sounds/118340/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/powergun_switch.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/powergun_switch.ogg new file mode 100644 index 00000000..580f65e2 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/powergun_switch.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/powergun_switch.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/powergun_switch.txt new file mode 100644 index 00000000..5f908923 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/powergun_switch.txt @@ -0,0 +1,9 @@ +Derived from + +Desert Eagle Reload [Air Soft].mp3 by TheRichardGamer +https://www.freesound.org/people/TheRichardGamer/sounds/172970/ +http://creativecommons.org/publicdomain/zero/1.0/ + +Transit Crystal Charge by crashoverride61088 +http://freesound.org/people/crashoverride61088/sounds/193622/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pulse.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pulse.txt new file mode 100644 index 00000000..83c994eb --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pulse.txt @@ -0,0 +1,4 @@ +Derived from possiblelazer.wav by aust_paul +http://freesound.org/people/aust_paul/sounds/30935/ + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pulse.wav b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pulse.wav new file mode 100644 index 00000000..f3ad2dc6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pulse.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pulse_switch.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pulse_switch.ogg new file mode 100644 index 00000000..9d62db23 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pulse_switch.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pulse_switch.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pulse_switch.txt new file mode 100644 index 00000000..f87eacec --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/pulse_switch.txt @@ -0,0 +1,9 @@ +Derived from + +Camera Shutter by roachpowder +https://www.freesound.org/people/roachpowder/sounds/170229/ +http://creativecommons.org/publicdomain/zero/1.0/ + +car alarm lights switched on beeps.wav by RutgerMuller +https://www.freesound.org/people/RutgerMuller/sounds/50886/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/rescue.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/rescue.ogg new file mode 100644 index 00000000..085c543a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/rescue.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/rescue.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/rescue.txt new file mode 100644 index 00000000..e7b128b8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/rescue.txt @@ -0,0 +1,3 @@ +hint.wav +https://www.freesound.org/people/dland/sounds/320181/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/0.ogg new file mode 100644 index 00000000..5799b933 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/1.ogg new file mode 100644 index 00000000..fa57ed34 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/2.ogg new file mode 100644 index 00000000..378f1d3e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/3.ogg new file mode 100644 index 00000000..d3c286dd Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/4.ogg new file mode 100644 index 00000000..0e46f5c5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/5.ogg new file mode 100644 index 00000000..8bc3f832 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/6.ogg new file mode 100644 index 00000000..1d2d27fe Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/7.ogg new file mode 100644 index 00000000..ac7de2be Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/8.ogg new file mode 100644 index 00000000..9df11be6 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/license.txt new file mode 100644 index 00000000..7c478007 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/ricochet/license.txt @@ -0,0 +1,4 @@ +Derived from incoming Ricochets .wav by rakurka +http://freesound.org/people/rakurka/sounds/187533/ + +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/rocket_launch.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/rocket_launch.txt new file mode 100644 index 00000000..a322b408 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/rocket_launch.txt @@ -0,0 +1,4 @@ +4 projectile launches by Michel Baradari +http://opengameart.org/content/4-projectile-launches + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/rocket_launch.wav b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/rocket_launch.wav new file mode 100644 index 00000000..bd3d660a Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/rocket_launch.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/shells_pickup.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/shells_pickup.ogg new file mode 100644 index 00000000..4188a692 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/shells_pickup.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/shells_pickup.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/shells_pickup.txt new file mode 100644 index 00000000..6809dcfa --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/shells_pickup.txt @@ -0,0 +1,7 @@ +Derived from Shotgun shell ejection.aif by JohnDelayniKIng +http://freesound.org/people/JohnDelayniKIng/sounds/147261/ +http://creativecommons.org/publicdomain/zero/1.0/ + +and shotgun sounds by lensflare8642 +http://freesound.org/people/lensflare8642/sounds/145209/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/shotgun.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/shotgun.ogg new file mode 100644 index 00000000..6ddf0362 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/shotgun.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/shotgun.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/shotgun.txt new file mode 100644 index 00000000..2d904d6f --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/shotgun.txt @@ -0,0 +1,3 @@ +Derived from SPAS-12 by duesto +https://www.freesound.org/people/duesto/sounds/156904/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/shotgun_r.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/shotgun_r.ogg new file mode 100644 index 00000000..daa9e082 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/shotgun_r.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/shotgun_r.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/shotgun_r.txt new file mode 100644 index 00000000..98d8ee9b --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/shotgun_r.txt @@ -0,0 +1,3 @@ +Derived from Shotgun Cock Reload Layered (Powerful) by Paul368 +https://www.freesound.org/people/Paul368/sounds/200966/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/show_map.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/show_map.ogg new file mode 100644 index 00000000..30e1b8d9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/show_map.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/show_map.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/show_map.txt new file mode 100644 index 00000000..e7a170e8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/show_map.txt @@ -0,0 +1,3 @@ +Derived from 9 sci-fi computer sounds and beeps by Michel Baradari +https://opengameart.org/content/9-sci-fi-computer-sounds-and-beeps +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/0.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/0.ogg new file mode 100644 index 00000000..902e1fb5 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/0.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/1.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/1.ogg new file mode 100644 index 00000000..45b1e5ad Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/1.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/2.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/2.ogg new file mode 100644 index 00000000..4220b424 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/2.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/3.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/3.ogg new file mode 100644 index 00000000..be78b29e Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/3.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/4.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/4.ogg new file mode 100644 index 00000000..c78bb96f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/4.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/5.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/5.ogg new file mode 100644 index 00000000..f9711d03 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/5.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/6.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/6.ogg new file mode 100644 index 00000000..0ae575ea Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/6.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/7.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/7.ogg new file mode 100644 index 00000000..ac03cda8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/7.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/8.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/8.ogg new file mode 100644 index 00000000..15ddbb8b Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/8.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/license.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/license.txt new file mode 100644 index 00000000..af62d8f7 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/slide/license.txt @@ -0,0 +1,5 @@ +Derived from Sand paper rub.mp3 by orginaljun +orginaljun.deviantart.com +http://freesound.org/people/orginaljun/sounds/157832/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/spawn.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/spawn.ogg new file mode 100644 index 00000000..6c06fea8 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/spawn.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/spawn.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/spawn.txt new file mode 100644 index 00000000..a34ea29a --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/spawn.txt @@ -0,0 +1,8 @@ +Derived from +Ambient power chord (E2) by Khoon +http://freesound.org/people/Khoon/sounds/168741/ +http://creativecommons.org/publicdomain/zero/1.0/ +and +teleport by fins +http://freesound.org/people/fins/sounds/172207/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/spawn_item.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/spawn_item.ogg new file mode 100644 index 00000000..25036c06 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/spawn_item.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/spawn_item.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/spawn_item.txt new file mode 100644 index 00000000..c194e6aa --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/spawn_item.txt @@ -0,0 +1,3 @@ +alien_phaser.R.wav by torn.rugged.audio.35 +http://freesound.org/people/torn.rugged.audio.35/sounds/45935/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/swarmer.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/swarmer.txt new file mode 100644 index 00000000..a2d4b2a8 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/swarmer.txt @@ -0,0 +1,4 @@ +Derived from Jet_Whoosh.WAV by Benboncan +http://freesound.org/people/Benboncan/sounds/167563/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/swarmer.wav b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/swarmer.wav new file mode 100644 index 00000000..c675d0fa Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/swarmer.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/swarmer_switch.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/swarmer_switch.ogg new file mode 100644 index 00000000..5891e1a9 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/swarmer_switch.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/swarmer_switch.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/swarmer_switch.txt new file mode 100644 index 00000000..d49ef4a7 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/swarmer_switch.txt @@ -0,0 +1,9 @@ +Derived from + +HefterLocher.wav by Mortifreshman +http://freesound.org/people/Mortifreshman/sounds/246518/ +http://creativecommons.org/publicdomain/zero/1.0/ + +typewriter-olivetti-lettra-22.wav by keithpeter +http://freesound.org/people/keithpeter/sounds/123344/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/swell.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/swell.txt new file mode 100644 index 00000000..4396f4a6 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/swell.txt @@ -0,0 +1,4 @@ +Derived from missile_launch_2.wav by smcameron +http://freesound.org/people/smcameron/sounds/51468/ + +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/swell.wav b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/swell.wav new file mode 100644 index 00000000..fb69b54c Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/swell.wav differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/switch.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/switch.ogg new file mode 100644 index 00000000..ac3efeb4 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/switch.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/switch.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/switch.txt new file mode 100644 index 00000000..b04d4cc9 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/switch.txt @@ -0,0 +1,4 @@ +Adapted from Weapon Cock +by thecluegeek +https://www.freesound.org/people/thecluegeek/sounds/141364/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/victory.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/victory.ogg new file mode 100644 index 00000000..61116e2f Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/victory.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/victory.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/victory.txt new file mode 100644 index 00000000..1bd0d1a1 --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/victory.txt @@ -0,0 +1,4 @@ +Derived from VICTORY CRY REVERB 2.wav +by chripei +http://freesound.org/people/chripei/sounds/165491/ +http://creativecommons.org/licenses/by/3.0/ \ No newline at end of file diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/whistle.ogg b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/whistle.ogg new file mode 100644 index 00000000..11083063 Binary files /dev/null and b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/whistle.ogg differ diff --git a/bios/Game Engines/C-Dogs SDL/cdogs/sounds/whistle.txt b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/whistle.txt new file mode 100644 index 00000000..a1b14ffd --- /dev/null +++ b/bios/Game Engines/C-Dogs SDL/cdogs/sounds/whistle.txt @@ -0,0 +1,3 @@ +Derived from Thats correct.mp3 by cityrocker +https://www.freesound.org/people/cityrocker/sounds/121342/ +http://creativecommons.org/publicdomain/zero/1.0/ \ No newline at end of file diff --git a/bios/Game Engines/Fallout 2/fallout2-ce/f2_res.dat b/bios/Game Engines/Fallout 2/fallout2-ce/f2_res.dat new file mode 100644 index 00000000..b9275ff4 Binary files /dev/null and b/bios/Game Engines/Fallout 2/fallout2-ce/f2_res.dat differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/gamecontrollerdb.txt b/bios/Game Engines/Hurrican/hurrican/data/gamecontrollerdb.txt new file mode 100644 index 00000000..e1baf6d3 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/gamecontrollerdb.txt @@ -0,0 +1,2195 @@ +# Game Controller DB for SDL in 2.0.16 format +# Source: https://github.com/mdqinc/SDL_GameControllerDB + +# Windows +03000000300f00000a01000000000000,3 In 1 Conversion Box,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b8,x:b3,y:b0,platform:Windows, +03000000fa190000918d000000000000,3 In 1 Conversion Box,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b8,x:b3,y:b0,platform:Windows, +03000000fa2d00000100000000000000,3dRudder Foot Motion Controller,leftx:a0,lefty:a1,rightx:a5,righty:a2,platform:Windows, +03000000d0160000040d000000000000,4Play Adapter,a:b1,b:b3,back:b4,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,leftstick:b14,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b15,righttrigger:b9,rightx:a3,righty:a4,start:b5,x:b0,y:b2,platform:Windows, +03000000d0160000050d000000000000,4Play Adapter,a:b1,b:b3,back:b4,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,leftstick:b14,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b15,righttrigger:b9,rightx:a3,righty:a4,start:b5,x:b0,y:b2,platform:Windows, +03000000d0160000060d000000000000,4Play Adapter,a:b1,b:b3,back:b4,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,leftstick:b14,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b15,righttrigger:b9,rightx:a3,righty:a4,start:b5,x:b0,y:b2,platform:Windows, +03000000d0160000070d000000000000,4Play Adapter,a:b1,b:b3,back:b4,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,leftstick:b14,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b15,righttrigger:b9,rightx:a3,righty:a4,start:b5,x:b0,y:b2,platform:Windows, +03000000d0160000600a000000000000,4Play Adapter,a:b1,b:b3,back:b4,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,leftstick:b14,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b15,righttrigger:b9,rightx:a3,righty:a4,start:b5,x:b0,y:b2,platform:Windows, +03000000c82d00001930000000000000,8BitDo 64,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a4,start:b11,platform:Windows, +03000000c82d00000031000000000000,8BitDo Adapter,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00000531000000000000,8BitDo Adapter 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00000951000000000000,8BitDo Dogbone,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a2,rightx:a3,righty:a5,start:b11,platform:Windows, +03000000008000000210000000000000,8BitDo F30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +030000003512000011ab000000000000,8BitDo F30 Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000c82d00001028000000000000,8BitDo F30 Arcade Joystick,a:b0,b:b1,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d000011ab000000000000,8BitDo F30 Arcade Joystick,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000801000000900000000000000,8BitDo F30 Arcade Stick,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001038000000000000,8BitDo F30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000090000000000000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00006a28000000000000,8BitDo GameCube,a:b0,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b9,paddle2:b8,rightshoulder:b10,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b1,y:b4,platform:Windows, +03000000c82d00001251000000000000,8BitDo Lite 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00001151000000000000,8BitDo Lite SE,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000150000000000000,8BitDo M30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a3,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000151000000000000,8BitDo M30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a2,rightshoulder:b6,righttrigger:b7,rightx:a3,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00000650000000000000,8BitDo M30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00005106000000000000,8BitDo M30,a:b0,b:b1,back:b10,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,guide:b2,leftshoulder:b8,lefttrigger:b9,rightshoulder:b6,righttrigger:b7,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00002090000000000000,8BitDo Micro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000310000000000000,8BitDo N30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00000451000000000000,8BitDo N30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a2,rightx:a3,righty:a5,start:b11,platform:Windows, +03000000c82d00002028000000000000,8BitDo N30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00008010000000000000,8BitDo N30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d0000e002000000000000,8BitDo N30,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,start:b6,platform:Windows, +03000000c82d00000190000000000000,8BitDo N30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00001590000000000000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00006528000000000000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000290000000000000,8BitDo N64,+rightx:b9,+righty:b3,-rightx:b4,-righty:b8,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,platform:Windows, +03000000c82d00003038000000000000,8BitDo N64,+rightx:b9,+righty:b3,-rightx:b4,-righty:b8,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,platform:Windows, +03000000c82d00006928000000000000,8BitDo N64,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a4,start:b11,platform:Windows, +03000000c82d00002590000000000000,8BitDo NEOGEO,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +030000003512000012ab000000000000,8BitDo NES30,a:b2,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b0,platform:Windows, +03000000c82d000012ab000000000000,8BitDo NES30,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000022000000090000000000000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000203800000900000000000000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00002038000000000000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000751000000000000,8BitDo P30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a2,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00000851000000000000,8BitDo P30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a2,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00000360000000000000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000361000000000000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000660000000000000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000960000000000000,8BitDo Pro 3,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b17,paddle2:b16,paddle3:b2,paddle4:b5,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000131000000000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000231000000000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000331000000000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000431000000000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00002867000000000000,8BitDo S30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a2,rightshoulder:b6,righttrigger:b7,rightx:a3,righty:a5,start:b10,x:b3,y:b4,platform:Windows, +03000000c82d00000130000000000000,8BitDo SF30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000060000000000000,8BitDo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000061000000000000,8BitDo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +03000000102800000900000000000000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d000021ab000000000000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00003028000000000000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +030000003512000020ab000000000000,8BitDo SN30,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000030000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000351000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a2,rightshoulder:b7,rightx:a3,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00001290000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d000020ab000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00004028000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00006228000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000021000000000000,8BitDo SN30 Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00000160000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000161000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000260000000000000,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000261000000000000,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00001230000000000000,8BitDo Ultimate,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b2,paddle2:b5,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001260000000000000,8BitDo Ultimate 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b17,paddle2:b16,paddle3:b2,paddle4:b5,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001b30000000000000,8BitDo Ultimate 2C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b5,paddle2:b2,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001d30000000000000,8BitDo Ultimate 2C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b5,paddle2:b2,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001530000000000000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001630000000000000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001730000000000000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001130000000000000,8BitDo Ultimate Wired,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b26,paddle1:b24,paddle2:b25,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001330000000000000,8BitDo Ultimate Wireless,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b23,paddle2:b19,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00000121000000000000,8BitDo Xbox One SN30 Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000a00500003232000000000000,8BitDo Zero,a:b0,b:b1,back:b10,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001890000000000000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00003032000000000000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +030000008f0e00001200000000000000,Acme GA02,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Windows, +03000000c01100000355000000000000,Acrux,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000fa190000f0ff000000000000,Acteck AGJ 3200,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000d1180000402c000000000000,ADT1,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a3,rightx:a2,righty:a5,x:b3,y:b4,platform:Windows, +030000006f0e00008801000000000000,Afterglow Deluxe Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000341a00003608000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00000263000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001101000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001401000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001402000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001901000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001a01000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001301000000000000,Afterglow Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006f0e00001302000000000000,Afterglow Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006f0e00001304000000000000,Afterglow Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006f0e00001413000000000000,Afterglow Xbox Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00003901000000000000,Afterglow Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000ab1200000103000000000000,Afterglow Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000ad1b000000f9000000000000,Afterglow Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000100000008200000000000000,Akishop Customs PS360,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000007c1800000006000000000000,Alienware Dual Compatible PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Windows, +03000000491900001904000000000000,Amazon Luna Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b9,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Windows, +03000000710100001904000000000000,Amazon Luna Controller,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b5,leftstick:b8,leftx:a0,lefty:a1,misc1:b9,rightshoulder:b4,rightstick:b7,rightx:a3,righty:a4,start:b6,x:b3,y:b2,platform:Windows, +0300000008100000e501000000000000,Anbernic Game Pad,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000020500000913000000000000,Anbernic RG P01,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000373500000710000000000000,Anbernic RG P01,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000373500004610000000000000,Anbernic RG P01,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000190e00000110000000000000,Aquaplus Piece,a:b1,b:b0,back:b3,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b2,platform:Windows, +03000000830500000160000000000000,Arcade,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b3,x:b4,y:b4,platform:Windows, +03000000120c0000100e000000000000,Armor 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000490b00004406000000000000,ASCII Seamic Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows, +03000000869800002500000000000000,Astro C40 TR PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000a30c00002700000000000000,Astro City Mini,a:b2,b:b1,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Windows, +03000000a30c00002800000000000000,Astro City Mini,a:b2,b:b1,back:b8,leftx:a3,lefty:a4,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Windows, +03000000050b00000579000000000000,ASUS ROG Kunai 3,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000050b00000679000000000000,ASUS ROG Kunai 3,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000503200000110000000000000,Atari VCS Classic Controller,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,start:b3,platform:Windows, +03000000503200000210000000000000,Atari VCS Modern Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:Windows, +03000000380800001889000000000000,AtGames Legends Gamer Pro,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b13,lefttrigger:b14,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000008a3500000102000000000000,Backbone One,a:b4,b:b5,back:b14,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b10,leftstick:b17,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b18,righttrigger:b13,rightx:a3,righty:a4,start:b15,x:b7,y:b8,platform:Windows, +030000008a3500000201000000000000,Backbone One,a:b4,b:b5,back:b14,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b10,leftstick:b17,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b18,righttrigger:b13,rightx:a3,righty:a4,start:b15,x:b7,y:b8,platform:Windows, +030000008a3500000302000000000000,Backbone One,a:b4,b:b5,back:b14,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b10,leftstick:b17,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b18,righttrigger:b13,rightx:a3,righty:a4,start:b15,x:b7,y:b8,platform:Windows, +030000008a3500000402000000000000,Backbone One,a:b4,b:b5,back:b14,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b10,leftstick:b17,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b18,righttrigger:b13,rightx:a3,righty:a4,start:b15,x:b7,y:b8,platform:Windows, +03000000e4150000103f000000000000,Batarang,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000d6200000e557000000000000,Batarang PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000c01100001352000000000000,Battalife Joystick,a:b6,b:b7,back:b2,leftshoulder:b0,leftx:a0,lefty:a1,rightshoulder:b1,start:b3,x:b4,y:b5,platform:Windows, +030000006f0e00003201000000000000,Battlefield 4 PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000ad1b000001f9000000000000,BB 070,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000d62000002a79000000000000,BDA PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000bc2000005250000000000000,Beitong G3,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b5,righttrigger:b9,rightx:a3,righty:a4,start:b15,x:b3,y:b4,platform:Windows, +030000000d0500000208000000000000,Belkin Nostromo N40,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Windows, +03000000bc2000006012000000000000,Betop 2126F,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000bc2000000055000000000000,Betop BFM,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000790000000700000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows, +03000000808300000300000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows, +03000000bc2000006312000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000bc2000006321000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000bc2000006412000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000c01100000555000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000c01100000655000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +030000006f0e00006401000000000000,BF One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Windows, +03000000300f00000202000000000000,Bigben,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a5,righty:a2,start:b7,x:b2,y:b3,platform:Windows, +030000006b1400000209000000000000,Bigben,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006b1400000055000000000000,Bigben PS3 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000006b1400000103000000000000,Bigben PS3 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows, +03000000120c0000200e000000000000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000210e000000000000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000f10e000000000000,Brook PS2 Adapter,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000120c0000310c000000000000,Brook Super Converter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Windows, +03000000d81d00000b00000000000000,Buffalo BSGP1601 Series,a:b5,b:b3,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b9,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b13,x:b4,y:b2,platform:Windows, +030000005a1c00002400000000000000,Capcom Home Arcade Controller,a:b3,b:b4,back:b7,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b6,x:b0,y:b1,platform:Windows, +030000005b1c00002400000000000000,Capcom Home Arcade Controller,a:b3,b:b4,back:b7,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b6,x:b0,y:b1,platform:Windows, +030000005b1c00002500000000000000,Capcom Home Arcade Controller,a:b3,b:b4,back:b7,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b6,x:b0,y:b1,platform:Windows, +030000006d04000042c2000000000000,ChillStream,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000e82000006058000000000000,Cideko AK08b,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000457500000401000000000000,Cobra,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000b0400003365000000000000,Competition Pro,a:b0,b:b1,back:b2,leftx:a0,lefty:a1,start:b3,platform:Windows, +030000004c050000c505000000000000,CronusMax Adapter,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000d814000007cd000000000000,Cthulhu,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000d8140000cefa000000000000,Cthulhu,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000260900008888000000000000,Cyber Gadget GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a4,rightx:a2,righty:a3~,start:b7,x:b2,y:b3,platform:Windows, +030000003807000002cb000000000000,Cyborg,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000a306000022f6000000000000,Cyborg V.3 Rumble,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000f806000000a3000000000000,DA Leader,a:b7,b:b6,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b0,leftstick:b8,lefttrigger:b1,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:b3,rightx:a2,righty:a3,start:b12,x:b4,y:b5,platform:Windows, +030000001a1c00000001000000000000,Datel Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000451300000830000000000000,Defender Game Racer X7,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000791d00000103000000000000,Dual Box Wii,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000c0160000e105000000000000,Dual Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +030000004f040000070f000000000000,Dual Power,a:b8,b:b9,back:b4,dpdown:b1,dpleft:b2,dpright:b3,dpup:b0,leftshoulder:b13,leftstick:b6,lefttrigger:b14,leftx:a0,lefty:a1,rightshoulder:b12,rightstick:b7,righttrigger:b15,start:b5,x:b10,y:b11,platform:Windows, +030000004f04000012b3000000000000,Dual Power 3,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows, +030000004f04000020b3000000000000,Dual Trigger,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows, +03000000bd12000002e0000000000000,Dual Vibration Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a2,start:b11,x:b3,y:b0,platform:Windows, +03000000ff1100003133000000000000,DualForce,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b1,platform:Windows, +030000006f0e00003001000000000000,EA Sports PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000fc0400000250000000000000,Easy Grip,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows, +03000000bc2000000091000000000000,EasySMX Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +030000006e0500000a20000000000000,Elecom DUX60 MMO,a:b2,b:b3,back:b17,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b14,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b15,righttrigger:b13,rightx:a3,righty:a4,start:b20,x:b0,y:b1,platform:Windows, +03000000b80500000410000000000000,Elecom Gamepad,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Windows, +03000000b80500000610000000000000,Elecom Gamepad,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Windows, +03000095090000010000000000000000,Elecom JC-U609,a:b0,b:b1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,start:b8,x:b3,y:b4,platform:Windows, +0300004112000000e500000000000000,Elecom JC-U909Z,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b7,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,start:b8,x:b3,y:b4,platform:Windows, +03000041120000001050000000000000,Elecom JC-U911,a:b1,b:b2,back:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,start:b0,x:b4,y:b5,platform:Windows, +030000006e0500000520000000000000,Elecom P301U PlayStation Controller Adapter,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Windows, +03000000250900000218000000000000,Elecom PlayStation Adapter,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000411200004450000000000000,Elecom U1012,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Windows, +030000006e0500000320000000000000,Elecom U3613M,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Windows, +030000006e0500000e20000000000000,Elecom U3912T,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Windows, +030000006e0500000f20000000000000,Elecom U4013S,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Windows, +030000006e0500001320000000000000,Elecom U4113,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006e0500001020000000000000,Elecom U4113S,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Windows, +030000006e0500000720000000000000,Elecom W01U,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Windows, +030000007d0400000640000000000000,Eliminator AfterShock,a:b1,b:b2,back:b9,dpdown:+a3,dpleft:-a5,dpright:+a5,dpup:-a3,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a4,righty:a2,start:b8,x:b0,y:b3,platform:Windows, +03000000120c0000f61c000000000000,Elite,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000430b00000300000000000000,EMS Production PS2 Adapter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000062000001801000000000000,EMS TrioLinker Plus II,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b2,y:b3,platform:Windows, +03000000242f000000b7000000000000,ESM 9110,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Windows, +03000000101c0000181c000000000000,Essential,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b4,leftx:a1,lefty:a0,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +030000008f0e00000f31000000000000,EXEQ,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows, +03000000341a00000108000000000000,EXEQ RF Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000006f0e00008401000000000000,Faceoff Deluxe Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00008101000000000000,Faceoff Deluxe Pro Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00008001000000000000,Faceoff Pro Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000021000000090000000000000,FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b13,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b9,rightstick:b14,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +0300000011040000c600000000000000,FC801,a:b0,b:b1,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Windows, +03000000852100000201000000000000,FF GP1,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000ad1b000028f0000000000000,Fightpad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000ad1b00002ef0000000000000,Fightpad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000ad1b000038f0000000000000,Fightpad TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b8,rightshoulder:b5,righttrigger:b9,start:b7,x:b2,y:b3,platform:Windows, +03005036852100000000000000000000,Final Fantasy XIV Online Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000f806000001a3000000000000,Firestorm,a:b9,b:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b0,leftstick:b10,lefttrigger:b1,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b11,righttrigger:b3,start:b12,x:b8,y:b4,platform:Windows, +03000000b50700000399000000000000,Firestorm 2,a:b2,b:b4,back:b10,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b8,righttrigger:b9,start:b11,x:b3,y:b5,platform:Windows, +03000000b50700001302000000000000,Firestorm D3,a:b0,b:b2,leftshoulder:b4,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,x:b1,y:b3,platform:Windows, +03000000b40400001024000000000000,Flydigi Apex,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000151900004000000000000000,Flydigi Vader 2,a:b27,b:b26,back:b19,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b23,leftstick:b17,lefttrigger:b21,leftx:a0,lefty:a1,rightshoulder:b22,rightstick:b16,righttrigger:b20,rightx:a3,righty:a4,start:b18,x:b25,y:b24,platform:Windows, +03000000b40400001124000000000000,Flydigi Vader 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b12,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b14,paddle1:b4,paddle2:b5,paddle3:b16,paddle4:b17,rightshoulder:b7,rightstick:b13,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b2,y:b3,platform:Windows, +03000000b40400001224000000000000,Flydigi Vader 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b12,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b2,paddle1:b16,paddle2:b17,paddle3:b14,paddle4:b15,rightshoulder:b7,rightstick:b13,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +030000008305000000a0000000000000,G08XU,a:b0,b:b1,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b5,x:b2,y:b3,platform:Windows, +0300000066f700000100000000000000,Game VIB Joystick,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Windows, +03000000260900002625000000000000,GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,lefttrigger:a4,leftx:a0,lefty:a1,righttrigger:a5,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Windows, +03000000341a000005f7000000000000,GameCube Controller,a:b2,b:b3,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b1,y:b0,platform:Windows, +03000000430b00000500000000000000,GameCube Controller,a:b0,b:b2,dpdown:b10,dpleft:b8,dpright:b9,dpup:b11,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a3,rightx:a5,righty:a2,start:b7,x:b1,y:b3,platform:Windows, +03000000790000004718000000000000,GameCube Controller,a:b1,b:b0,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Windows, +03000000790000004618000000000000,GameCube Controller Adapter,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Windows, +030000008f0e00000d31000000000000,Gamepad 3 Turbo,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000ac0500003d03000000000000,GameSir G3,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000ac0500005b05000000000000,GameSir G3w,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000ac0500002d02000000000000,GameSir G4,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000ac0500004d04000000000000,GameSir G4,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000ac0500001a06000000000000,GameSir T3 2.02,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000373500009410000000000000,GameSir Tegenaria Lite,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +030000004c0e00001035000000000000,Gamester,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +030000000d0f00001110000000000000,GameStick Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +0300000047530000616d000000000000,GameStop,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000c01100000140000000000000,GameStop PS4 Fun Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000b62500000100000000000000,Gametel GT004 01,a:b3,b:b0,dpdown:b10,dpleft:b9,dpright:b8,dpup:b11,leftshoulder:b4,rightshoulder:b5,start:b7,x:b1,y:b2,platform:Windows, +030000008f0e00001411000000000000,Gamo2 Divaller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000120c0000a857000000000000,Gator Claw,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000c9110000f055000000000000,GC100XF,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000008305000009a0000000000000,Genius,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000008305000031b0000000000000,Genius Maxfire Blaze 3,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000451300000010000000000000,Genius Maxfire Grandias 12,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000005c1a00003330000000000000,Genius MaxFire Grandias 12V,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Windows, +03000000300f00000b01000000000000,GGE909 Recoil,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000f0250000c283000000000000,Gioteck PlayStation Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000f025000021c1000000000000,Gioteck PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000f025000031c1000000000000,Gioteck PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000f0250000c383000000000000,Gioteck VX2 PlayStation Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000f0250000c483000000000000,Gioteck VX2 PlayStation Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000d11800000094000000000000,Google Stadia Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:b11,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:Windows, +030000004f04000026b3000000000000,GP XID,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +0300000079000000d418000000000000,GPD Win,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000c6240000025b000000000000,GPX,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000007d0400000840000000000000,Gravis Destroyer Tilt,+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b1,b:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,x:b0,y:b3,platform:Windows, +030000007d0400000540000000000000,Gravis Eliminator Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +03000000280400000140000000000000,Gravis GamePad Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a3,dpup:-a4,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000008f0e00000610000000000000,GreenAsia,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a5,righty:a2,start:b11,x:b3,y:b0,platform:Windows, +03000000ac0500006b05000000000000,GT2a,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000341a00000302000000000000,Hama Scorpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000008a2e0000dd10000000000000,Hand Held Legend GC Ultimate,a:b0,b:b2,back:b17,dpdown:b5,dpleft:b6,dpright:b7,dpup:b4,guide:b18,leftshoulder:b10,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b19,misc2:b24,paddle1:b13,paddle2:b12,rightshoulder:b11,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b1,y:b3,platform:Windows, +030000008a2e0000df10000000000000,Hand Held Legend ProGCC,a:b1,b:b0,back:b17,dpdown:b5,dpleft:b6,dpright:b7,dpup:b4,guide:b18,leftshoulder:b10,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b19,paddle1:b13,paddle2:b12,rightshoulder:b11,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b3,y:b2,platform:Windows, +030000000d0f00004900000000000000,Hatsune Miku Sho PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000001008000001e1000000000000,Havit HV G60,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b0,platform:Windows, +030000000d0f00000c00000000000000,HEXT,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000d81400000862000000000000,HitBox Edition Cthulhu,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,lefttrigger:b4,rightshoulder:b7,righttrigger:b6,start:b9,x:b0,y:b3,platform:Windows, +03000000632500002605000000000000,HJD X,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +030000000d0f00000a00000000000000,Hori DOA,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000000d0f00008500000000000000,Hori Fighting Commander 2016 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00002500000000000000,Hori Fighting Commander 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00002d00000000000000,Hori Fighting Commander 3 Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00005f00000000000000,Hori Fighting Commander 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00005e00000000000000,Hori Fighting Commander 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000000d0f00008400000000000000,Hori Fighting Commander 5,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00006201000000000000,Hori Fighting Commander Octa,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00006401000000000000,Hori Fighting Commander Octa,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,start:b7,x:b2,y:b3,platform:Windows, +030000000d0f00005100000000000000,Hori Fighting Commander PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00008600000000000000,Hori Fighting Commander Xbox 360,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000000d0f0000ba00000000000000,Hori Fighting Commander Xbox 360,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000000d0f00008800000000000000,Hori Fighting Stick mini 4 PS3,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b8,x:b0,y:b3,platform:Windows, +030000000d0f00008700000000000000,Hori Fighting Stick mini 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000000d0f00001000000000000000,Hori Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00003200000000000000,Hori Fightstick 3W,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f0000c000000000000000,Hori Fightstick 4,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000000d0f00000d00000000000000,Hori Fightstick EX2,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +030000000d0f00003701000000000000,Hori Fightstick Mini,a:b1,b:b0,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Windows, +030000000d0f00004000000000000000,Hori Fightstick Mini 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,lefttrigger:b4,rightshoulder:b7,righttrigger:b6,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00002100000000000000,Hori Fightstick V3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00002700000000000000,Hori Fightstick V3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f0000a000000000000000,Hori Grip TAC4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b13,x:b0,y:b3,platform:Windows, +030000000d0f0000a500000000000000,Hori Miku Project Diva X HD PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000000d0f0000a600000000000000,Hori Miku Project Diva X HD PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000000d0f00000101000000000000,Hori Mini Hatsune Miku FT,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00005400000000000000,Hori Pad 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00000900000000000000,Hori Pad 3 Turbo,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00004d00000000000000,Hori Pad A,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00003801000000000000,Hori PC Engine Mini Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,platform:Windows, +030000000d0f00009200000000000000,Hori Pokken Tournament DX Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00002301000000000000,Hori PS4 Controller Light,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +030000000d0f00001100000000000000,Hori Real Arcade Pro 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00002600000000000000,Hori Real Arcade Pro 3P,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00004b00000000000000,Hori Real Arcade Pro 3W,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00006a00000000000000,Hori Real Arcade Pro 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00006b00000000000000,Hori Real Arcade Pro 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00008a00000000000000,Hori Real Arcade Pro 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00008b00000000000000,Hori Real Arcade Pro 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00006f00000000000000,Hori Real Arcade Pro 4 VLX,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00007000000000000000,Hori Real Arcade Pro 4 VLX,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00003d00000000000000,Hori Real Arcade Pro N3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b10,leftstick:b4,lefttrigger:b11,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b6,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f0000ae00000000000000,Hori Real Arcade Pro N4,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000000d0f00008c00000000000000,Hori Real Arcade Pro P4,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000000d0f0000aa00000000000000,Hori Real Arcade Pro S,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f0000d800000000000000,Hori Real Arcade Pro S,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Windows, +030000000d0f00002200000000000000,Hori Real Arcade Pro V3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00005b00000000000000,Hori Real Arcade Pro V4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00005c00000000000000,Hori Real Arcade Pro V4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f0000af00000000000000,Hori Real Arcade Pro VHS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00001b00000000000000,Hori Real Arcade Pro VX,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000ad1b000002f5000000000000,Hori Real Arcade Pro VX,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b11,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Windows, +030000000d0f00009c00000000000000,Hori TAC Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f0000c900000000000000,Hori Taiko Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00006400000000000000,Horipad 3TP,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00001300000000000000,Horipad 3W,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00005500000000000000,Horipad 4 FPS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00006e00000000000000,Horipad 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00006600000000000000,Horipad 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000000d0f00004200000000000000,Horipad A,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000ad1b000001f5000000000000,Horipad EXT2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000000d0f0000ee00000000000000,Horipad Mini 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f0000c100000000000000,Horipad Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f0000f600000000000000,Horipad Nintendo Switch Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000000d0f00000202000000000000,Horipad O Nintendo Switch 2 Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,misc2:b14,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows, +030000000d0f00006700000000000000,Horipad One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000000d0f00009601000000000000,Horipad Steam,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,misc2:b2,paddle1:b5,paddle2:b15,paddle3:b18,paddle4:b19,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +030000000d0f0000dc00000000000000,Horipad Switch,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000242e00000b20000000000000,Hyperkin Admiral N64 Controller,+rightx:b11,+righty:b13,-rightx:b8,-righty:b12,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b14,leftx:a0,lefty:a1,rightshoulder:b5,start:b9,platform:Windows, +03000000242e0000ff0b000000000000,Hyperkin N64 Adapter,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a2,righty:a3,start:b9,platform:Windows, +03000000790000004e95000000000000,Hyperkin N64 Controller Adapter,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b7,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a5,righty:a2,start:b9,platform:Windows, +03000000242e00006a48000000000000,Hyperkin RetroN Sq,a:b3,b:b7,back:b5,dpdown:+a4,dpleft:-a0,dpright:+a0,dpup:-a4,leftshoulder:b0,rightshoulder:b1,start:b4,x:b2,y:b6,platform:Windows, +03000000242f00000a20000000000000,Hyperkin Scout,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Windows, +03000000242e00000a20000000000000,Hyperkin Scout Premium SNES Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Windows, +03000000242e00006a38000000000000,Hyperkin Trooper 2,a:b0,b:b1,back:b4,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b3,start:b5,platform:Windows, +03000000f00300008d04000000000000,HyperX Clutch,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:-a2,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:+a5,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000d81d00000e00000000000000,iBuffalo AC02 Arcade Joystick,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b11,righttrigger:b3,rightx:a2,righty:a5,start:b8,x:b4,y:b5,platform:Windows, +03000000d81d00000f00000000000000,iBuffalo BSGP1204 Series,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000d81d00001000000000000000,iBuffalo BSGP1204P Series,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +030000005c0a00000285000000000000,iDroidCon,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b6,platform:Windows, +03000000696400006964000000000000,iDroidCon Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000511d00000230000000000000,iGUGU Gamecore,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b1,leftstick:b4,lefttrigger:b3,leftx:a0,lefty:a1,rightshoulder:b0,righttrigger:b2,platform:Windows, +03000000b50700001403000000000000,Impact Black,a:b2,b:b3,back:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows, +030000006f0e00002401000000000000,Injustice Fightstick PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +03000000830500005130000000000000,InterAct ActionPad,a:b0,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows, +03000000ef0500000300000000000000,InterAct AxisPad,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Windows, +03000000fd0500000230000000000000,InterAct AxisPad,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a5,start:b11,x:b0,y:b1,platform:Windows, +03000000fd0500000030000000000000,Interact GoPad,a:b3,b:b4,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,x:b0,y:b1,platform:Windows, +03000000fd0500003902000000000000,InterAct Hammerhead,a:b3,b:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b2,lefttrigger:b8,rightshoulder:b7,rightstick:b5,righttrigger:b9,start:b10,x:b0,y:b1,platform:Windows, +03000000fd0500002a26000000000000,InterAct Hammerhead FX,a:b3,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b0,y:b1,platform:Windows, +03000000fd0500002f26000000000000,InterAct Hammerhead FX,a:b4,b:b5,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b1,y:b2,platform:Windows, +03000000fd0500005302000000000000,InterAct ProPad,a:b3,b:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,x:b0,y:b1,platform:Windows, +03000000ac0500002c02000000000000,Ipega Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b13,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b9,rightstick:b14,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000491900000204000000000000,Ipega PG9023,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000491900000304000000000000,Ipega PG9087,+righty:+a5,-righty:-a4,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,start:b11,x:b3,y:b4,platform:Windows, +030000007e0500000620000000000000,Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b13,leftshoulder:b4,leftstick:b10,rightshoulder:b5,start:b8,x:b2,y:b3,platform:Windows, +030000007e0500000720000000000000,Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Windows, +03000000250900000017000000000000,Joypad Adapter,a:b2,b:b1,back:b9,leftshoulder:b5,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b6,start:b8,x:b3,y:b0,platform:Windows, +03000000bd12000003c0000000000000,Joypad Alpha Shock,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000ff1100004033000000000000,JPD FFB,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a2,start:b15,x:b3,y:b0,platform:Windows, +03000000242f00002d00000000000000,JYS Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000242f00008a00000000000000,JYS Adapter,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b0,y:b3,platform:Windows, +03000000c4100000c082000000000000,KADE,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000828200000180000000000000,Keio,a:b4,b:b5,back:b8,leftshoulder:b2,lefttrigger:b3,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,start:b9,x:b0,y:b1,platform:Windows, +03000000790000000200000000000000,King PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows, +03000000bd12000001e0000000000000,Leadership,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +030000006f0e00000103000000000000,Logic3,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006f0e00000104000000000000,Logic3,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000008f0e00001300000000000000,Logic3,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +030000006d040000d1ca000000000000,Logitech ChillStream,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006d040000d2ca000000000000,Logitech Cordless Precision,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006d04000011c2000000000000,Logitech Cordless Wingman,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b9,leftstick:b5,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b2,righttrigger:b7,rightx:a3,righty:a4,x:b4,platform:Windows, +030000006d04000016c2000000000000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006d0400001dc2000000000000,Logitech F310,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006d04000018c2000000000000,Logitech F510,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006d0400001ec2000000000000,Logitech F510,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006d04000019c2000000000000,Logitech F710,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006d0400001fc2000000000000,Logitech F710,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006d0400001ac2000000000000,Logitech Precision,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000006d04000009c2000000000000,Logitech WingMan,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Windows, +030000006d0400000bc2000000000000,Logitech WingMan Action Pad,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b8,lefttrigger:a5~,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b5,righttrigger:a2~,start:b8,x:b3,y:b4,platform:Windows, +030000006d0400000ac2000000000000,Logitech WingMan RumblePad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,rightx:a3,righty:a4,x:b3,y:b4,platform:Windows, +03000000380700005645000000000000,Lynx,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000222200006000000000000000,Macally,a:b1,b:b2,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b33,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700003888000000000000,Mad Catz Arcade Fightstick TE S Plus PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700008532000000000000,Mad Catz Arcade Fightstick TE S PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700006352000000000000,Mad Catz CTRLR,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000380700006652000000000000,Mad Catz CTRLR,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000380700005032000000000000,Mad Catz Fightpad Pro PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700005082000000000000,Mad Catz Fightpad Pro PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000380700008031000000000000,Mad Catz FightStick Alpha PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000003807000038b7000000000000,Mad Catz Fightstick TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b8,rightshoulder:b5,righttrigger:b9,start:b7,x:b2,y:b3,platform:Windows, +03000000380700008433000000000000,Mad Catz Fightstick TE S PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700008483000000000000,Mad Catz Fightstick TE S PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000380700008134000000000000,Mad Catz Fightstick TE2 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b7,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b4,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700008184000000000000,Mad Catz Fightstick TE2 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,leftstick:b10,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000380700006252000000000000,Mad Catz Micro CTRLR,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000380700008232000000000000,Mad Catz PlayStation Brawlpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700008731000000000000,Mad Catz PlayStation Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000003807000056a8000000000000,Mad Catz PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700001888000000000000,Mad Catz SFIV Fightstick PS3,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b4,righttrigger:b6,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000380700008081000000000000,Mad Catz SFV Arcade Fightstick Alpha PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000380700001847000000000000,Mad Catz Street Fighter 4 Xbox 360 FightStick,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b8,rightshoulder:b5,righttrigger:b9,start:b7,x:b2,y:b3,platform:Windows, +03000000380700008034000000000000,Mad Catz TE2 PS3 Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700008084000000000000,Mad Catz TE2 PS4 Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000002a0600001024000000000000,Matricom,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:Windows, +030000009f000000adbb000000000000,MaxJoypad Virtual Controller,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000250900000128000000000000,Mayflash Arcade Stick,a:b1,b:b2,back:b8,leftshoulder:b0,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b3,righttrigger:b7,start:b9,x:b5,y:b6,platform:Windows, +030000008f0e00001330000000000000,Mayflash Controller Adapter,a:b1,b:b2,back:b8,dpdown:h0.8,dpleft:h0.2,dpright:h0.1,dpup:h0.4,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a3~,righty:a2,start:b9,x:b0,y:b3,platform:Windows, +03000000242f00003700000000000000,Mayflash F101,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +03000000790000003018000000000000,Mayflash F300 Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +03000000242f00003900000000000000,Mayflash F300 Elite Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000790000004418000000000000,Mayflash GameCube Controller,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Windows, +03000000790000004318000000000000,Mayflash GameCube Controller Adapter,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Windows, +03000000242f00007300000000000000,Mayflash Magic NS,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b0,y:b3,platform:Windows, +0300000079000000d218000000000000,Mayflash Magic NS,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000d620000010a7000000000000,Mayflash Magic NS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000242f0000f500000000000000,Mayflash N64 Adapter,a:b2,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a2,righty:a5,start:b9,platform:Windows, +03000000242f0000f400000000000000,Mayflash N64 Controller Adapter,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a2,righty:a5,start:b9,platform:Windows, +03000000790000007918000000000000,Mayflash N64 Controller Adapter,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b9,leftx:a0,lefty:a1,righttrigger:b7,rightx:a3,righty:a2,start:b8,platform:Windows, +030000008f0e00001030000000000000,Mayflash Saturn Adapter,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,lefttrigger:b7,rightshoulder:b6,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows, +0300000025090000e803000000000000,Mayflash Wii Classic Adapter,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:a4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:a5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows, +03000000790000000318000000000000,Mayflash Wii DolphinBar,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Windows, +03000000790000000018000000000000,Mayflash Wii U Pro Adapter,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000790000002418000000000000,Mega Drive Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,rightshoulder:b2,start:b9,x:b3,y:b4,platform:Windows, +0300000079000000ae18000000000000,Mega Drive Controller,a:b0,b:b1,back:b7,dpdown:b14,dpleft:b15,dpright:b13,dpup:b2,rightshoulder:b6,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows, +03000000c0160000990a000000000000,Mega Drive Controller,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,righttrigger:b2,start:b3,platform:Windows, +030000005e0400002800000000000000,Microsoft Dual Strike,a:b3,b:b2,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,rightshoulder:b7,rightx:a0,righty:a1~,start:b5,x:b1,y:b0,platform:Windows, +030000005e0400000300000000000000,Microsoft SideWinder,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Windows, +030000005e0400000700000000000000,Microsoft SideWinder,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows, +030000005e0400000e00000000000000,Microsoft SideWinder Freestyle Pro,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,start:b8,x:b3,y:b4,platform:Windows, +030000005e0400002700000000000000,Microsoft SideWinder Plug and Play,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,lefttrigger:b4,righttrigger:b5,x:b2,y:b3,platform:Windows, +03000000280d00000202000000000000,Miller Lite Cantroller,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,start:b5,x:b2,y:b3,platform:Windows, +03000000ad1b000023f0000000000000,MLG,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a6,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +03000000ad1b00003ef0000000000000,MLG Fightstick TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b8,rightshoulder:b5,righttrigger:b9,start:b7,x:b2,y:b3,platform:Windows, +03000000380700006382000000000000,MLG PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000004523000015e0000000000000,Mobapad Chitu HD,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000491900000904000000000000,Mobapad Chitu HD,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000ffff00000000000000000000,Mocute M053,a:b3,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b11,leftstick:b7,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b6,righttrigger:b4,rightx:a3,righty:a4,start:b8,x:b1,y:b0,platform:Windows, +03000000d6200000e589000000000000,Moga 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Windows, +03000000d62000007162000000000000,Moga Pro,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Windows, +03000000d6200000ad0d000000000000,Moga Pro,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000c62400002a89000000000000,Moga XP5A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c62400002b89000000000000,Moga XP5A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c62400001a89000000000000,Moga XP5X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c62400001b89000000000000,Moga XP5X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000250900006688000000000000,MP-8866 Super Dual Box,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000091200004488000000000000,MUSIA PlayStation 2 Input Display,a:b0,b:b2,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b6,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b9,rightstick:b7,righttrigger:b11,rightx:a2,righty:a3,start:b5,x:b1,y:b3,platform:Windows, +03000000f70600000100000000000000,N64 Adaptoid,+rightx:b2,+righty:b1,-rightx:b4,-righty:b5,a:b0,b:b3,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b7,start:b8,platform:Windows, +030000006b140000010c000000000000,Nacon GC 400ES,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000006b1400001106000000000000,Nacon Revolution 3 PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +0300000085320000170d000000000000,Nacon Revolution 5 Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +0300000085320000190d000000000000,Nacon Revolution 5 Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000006b140000100d000000000000,Nacon Revolution Infinity PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000006b140000080d000000000000,Nacon Revolution Unlimited Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000bd12000001c0000000000000,Nebular,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a5,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000eb0300000000000000000000,NeGcon Adapter,a:a2,b:b13,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,lefttrigger:a4,leftx:a1,righttrigger:b11,start:b3,x:a3,y:b12,platform:Windows, +0300000038070000efbe000000000000,NEO SE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +0300000092120000474e000000000000,NeoGeo X Arcade Stick,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,x:b3,y:b2,platform:Windows, +03000000921200004b46000000000000,NES 2 port Adapter,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b11,platform:Windows, +03000000000f00000100000000000000,NES Controller,a:b1,b:b0,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b3,platform:Windows, +03000000921200004346000000000000,NES Controller,a:b0,b:b1,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b3,platform:Windows, +03000000790000004518000000000000,NEXILUX GameCube Controller Adapter,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Windows, +030000001008000001e5000000000000,NEXT SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,righttrigger:b6,start:b9,x:b3,y:b0,platform:Windows, +03000000050b00000045000000000000,Nexus,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b10,x:b2,y:b3,platform:Windows, +03000000152000000182000000000000,NGDS,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b3,y:b0,platform:Windows, +03000000ec110000e1a7000000000000,Nintendo Switch,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000007e0500006920000000000000,Nintendo Switch 2 Pro Controller,a:b0,b:b1,back:b14,dpdown:b8,dpleft:b10,dpright:b9,dpup:b11,guide:b16,leftshoulder:b12,leftstick:b15,lefttrigger:b13,leftx:a0,lefty:a1~,misc1:b17,misc2:b20,paddle1:b18,paddle2:b19,rightshoulder:b4,rightstick:b7,righttrigger:b5,rightx:a2,righty:a3~,start:b6,x:b2,y:b3,platform:Windows, +030000007e0500000920000000000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000000d0500000308000000000000,Nostromo N45,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b12,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b10,x:b2,y:b3,platform:Windows, +030000007e0500007320000000000000,NSO GameCube Controller,a:b1,b:b3,dpdown:b8,dpleft:b10,dpright:b9,dpup:b11,guide:b16,leftshoulder:b13,lefttrigger:b12,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b4,rightx:a2,righty:a3~,start:b6,x:b0,y:b2,platform:Windows, +030000007e0500001920000000000000,NSO N64 Controller,+rightx:b8,+righty:b2,-rightx:b3,-righty:b7,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,righttrigger:b10,start:b9,platform:Windows, +030000007e0500001720000000000000,NSO SNES Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b15,start:b9,x:b2,y:b3,platform:Windows, +03000000550900001472000000000000,NVIDIA Controller,a:b11,b:b10,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b7,leftstick:b5,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b4,righttrigger:a5,rightx:a3,righty:a6,start:b3,x:b9,y:b8,platform:Windows, +03000000550900001072000000000000,NVIDIA Shield,a:b9,b:b8,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b3,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b2,righttrigger:a4,rightx:a2,righty:a5,start:b0,x:b7,y:b6,platform:Windows, +030000005509000000b4000000000000,NVIDIA Virtual,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000120c00000288000000000000,Nyko Air Flo Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +030000004b120000014d000000000000,NYKO Airflo EX,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Windows, +03000000d62000001d57000000000000,Nyko Airflo PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000791d00000900000000000000,Nyko Playpad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000782300000a10000000000000,Onlive Controller,a:b15,b:b14,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b11,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b13,y:b12,platform:Windows, +030000000d0f00000401000000000000,Onyx,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000008916000001fd000000000000,Onza CE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a3,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000008916000000fd000000000000,Onza TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000d62000006d57000000000000,OPP PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006b14000001a1000000000000,Orange Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Windows, +0300000009120000072f000000000000,OrangeFox86 DreamPicoPort,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:-a2,leftx:a0,lefty:a1,righttrigger:-a5,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000362800000100000000000000,OUYA Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b2,platform:Windows, +03000000120c0000f60e000000000000,P4 Gamepad,a:b1,b:b2,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b5,lefttrigger:b7,rightshoulder:b4,righttrigger:b6,start:b9,x:b0,y:b3,platform:Windows, +03000000790000002201000000000000,PC Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +030000006f0e00008501000000000000,PDP Fightpad Pro GameCube Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000006f0e00000901000000000000,PDP PS3 Versus Fighting,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00008901000000000000,PDP Realmz Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000008f0e00004100000000000000,PlaySega,a:b1,b:b0,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,start:b8,x:b4,y:b3,platform:Windows, +03000000d620000011a7000000000000,PowerA Core Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000dd62000015a7000000000000,PowerA Fusion Nintendo Switch Arcade Stick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000d620000012a7000000000000,PowerA Fusion Nintendo Switch Fight Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000dd62000016a7000000000000,PowerA Fusion Pro Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000d620000013a7000000000000,PowerA Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000d62000003340000000000000,PowerA OPS Pro Wireless Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000d62000002640000000000000,PowerA OPS Wireless Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000d62000006dca000000000000,PowerA Pro Ex,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +0300000062060000d570000000000000,PowerA PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000d620000014a7000000000000,PowerA Spectra Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006d04000084ca000000000000,Precision,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +03000000d62000009557000000000000,Pro Elite PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000c62400001a53000000000000,Pro Ex Mini,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000d62000009f31000000000000,Pro Ex mini PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000d6200000c757000000000000,Pro Ex mini PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000120c0000110e000000000000,Pro5,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000100800000100000000000000,PS1 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +030000008f0e00007530000000000000,PS1 Controller,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b1,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000100800000300000000000000,PS2 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a4,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000250900000088000000000000,PS2 Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000250900006888000000000000,PS2 Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b6,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000250900008888000000000000,PS2 Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +030000006b1400000303000000000000,PS2 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000009d0d00001330000000000000,PS2 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000151a00006222000000000000,PS2 Dual Plus Adapter,a:b2,b:b1,back:b9,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000120a00000100000000000000,PS3 Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000120c00001307000000000000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000120c00001cf1000000000000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000120c0000f90e000000000000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000250900000118000000000000,PS3 Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000250900000500000000000000,PS3 Controller,a:b2,b:b1,back:b9,dpdown:h0.8,dpleft:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b0,y:b3,platform:Windows, +030000004c0500006802000000000000,PS3 Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b10,lefttrigger:a3~,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:a4~,rightx:a2,righty:a5,start:b8,x:b3,y:b0,platform:Windows, +030000004f1f00000800000000000000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +03000000632500007505000000000000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000888800000803000000000000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b9,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b3,y:b0,platform:Windows, +03000000888800000804000000000000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Windows, +030000008f0e00000300000000000000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b3,y:b0,platform:Windows, +030000008f0e00001431000000000000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000ba2200002010000000000000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a5,righty:a2,start:b9,x:b3,y:b2,platform:Windows, +03000000120c00000807000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000111e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000121e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000130e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000150e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000180e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000181e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000191e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c00001e0e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000a957000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000aa57000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000f21c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000f31c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000f41c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000f51c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000f70e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120e0000120c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000160e0000120c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000001a1e0000120c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000004c050000a00b000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000004c050000c405000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000004c050000cc09000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000004c0500005f0e000000000000,PS5 Access Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000004c050000e60c000000000000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000004c050000f20d000000000000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000830500005020000000000000,PSX,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b2,y:b3,platform:Windows, +03000000300f00000111000000000000,Qanba 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000300f00000211000000000000,Qanba 2P,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000300f00000011000000000000,Qanba Arcade Stick 1008,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b10,x:b0,y:b3,platform:Windows, +03000000300f00001611000000000000,Qanba Arcade Stick 4018,a:b1,b:b2,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b8,x:b0,y:b3,platform:Windows, +03000000222c00000025000000000000,Qanba Dragon Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000222c00000020000000000000,Qanba Drone Arcade Stick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,rightshoulder:b5,righttrigger:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000300f00001211000000000000,Qanba Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000300f00001210000000000000,Qanba Joystick Plus,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Windows, +03000000341a00000104000000000000,Qanba Joystick Q4RAF,a:b5,b:b6,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b0,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b3,righttrigger:b7,start:b9,x:b1,y:b2,platform:Windows, +03000000222c00000223000000000000,Qanba Obsidian Arcade Stick PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000222c00000023000000000000,Qanba Obsidian Arcade Stick PS4,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000008a2400006682000000000000,R1 Mobile Controller,a:b3,b:b1,back:b7,leftx:a0,lefty:a1,start:b6,x:b4,y:b0,platform:Windows, +03000000086700006626000000000000,RadioShack,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b3,y:b0,platform:Windows, +03000000ff1100004733000000000000,Ramox FPS Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b0,platform:Windows, +030000009b2800002300000000000000,Raphnet 3DO Adapter,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b2,start:b3,platform:Windows, +030000009b2800006900000000000000,Raphnet 3DO Adapter,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b2,start:b3,platform:Windows, +030000009b2800000800000000000000,Raphnet Dreamcast Adapter,a:b2,b:b1,dpdown:b5,dpleft:b6,dpright:b7,dpup:b4,lefttrigger:a2,leftx:a0,righttrigger:a3,righty:a1,start:b3,x:b10,y:b9,platform:Windows, +030000009b280000d000000000000000,Raphnet Dreamcast Adapter,a:b1,b:b0,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,lefttrigger:+a5,leftx:a0,lefty:a1,righttrigger:+a2,start:b3,x:b5,y:b4,platform:Windows, +030000009b2800006200000000000000,Raphnet GameCube Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Windows, +030000009b2800003200000000000000,Raphnet GC and N64 Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:+a5,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:+a2,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Windows, +030000009b2800006000000000000000,Raphnet GC and N64 Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:+a5,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:+a2,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Windows, +030000009b2800001800000000000000,Raphnet Jaguar Adapter,a:b2,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b0,righttrigger:b10,start:b3,x:b11,y:b12,platform:Windows, +030000009b2800003c00000000000000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Windows, +030000009b2800006100000000000000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Windows, +030000009b2800006300000000000000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Windows, +030000009b2800006400000000000000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Windows, +030000009b2800000200000000000000,Raphnet NES Adapter,a:b7,b:b6,back:b5,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,start:b4,platform:Windows, +030000009b2800004400000000000000,Raphnet PS1 and PS2 Adapter,a:b1,b:b2,back:b5,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b9,rightx:a3,righty:a4,start:b4,x:b0,y:b3,platform:Windows, +030000009b2800004300000000000000,Raphnet Saturn,a:b0,b:b1,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Windows, +030000009b2800000500000000000000,Raphnet Saturn Adapter 2.0,a:b1,b:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,start:b9,x:b0,y:b3,platform:Windows, +030000009b2800000300000000000000,Raphnet SNES Adapter,a:b0,b:b4,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Windows, +030000009b2800002600000000000000,Raphnet SNES Adapter,a:b1,b:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Windows, +030000009b2800002e00000000000000,Raphnet SNES Adapter,a:b1,b:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Windows, +030000009b2800002f00000000000000,Raphnet SNES Adapter,a:b1,b:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Windows, +030000009b2800005600000000000000,Raphnet SNES Adapter,a:b1,b:b4,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Windows, +030000009b2800005700000000000000,Raphnet SNES Adapter,a:b1,b:b4,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Windows, +030000009b2800001e00000000000000,Raphnet Vectrex Adapter,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a1,lefty:a2,x:b2,y:b3,platform:Windows, +030000009b2800002b00000000000000,Raphnet Wii Classic Adapter,a:b1,b:b4,back:b2,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,guide:b10,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a4,start:b3,x:b0,y:b5,platform:Windows, +030000009b2800002c00000000000000,Raphnet Wii Classic Adapter,a:b1,b:b4,back:b2,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,guide:b10,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a4,start:b3,x:b0,y:b5,platform:Windows, +030000009b2800008000000000000000,Raphnet Wii Classic Adapter,a:b1,b:b4,back:b2,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,guide:b10,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a4,start:b3,x:b0,y:b5,platform:Windows, +03000000790000008f18000000000000,Rapoo Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b3,y:b0,platform:Windows, +0300000032150000a602000000000000,Razer Huntsman V3 Pro,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b12,dpright:b13,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000321500000003000000000000,Razer Hydra,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000f8270000bf0b000000000000,Razer Kishi,a:b6,b:b7,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b18,leftshoulder:b12,leftstick:b19,lefttrigger:b14,leftx:a0,lefty:a1,rightshoulder:b13,rightstick:b20,righttrigger:b15,rightx:a3,righty:a4,start:b17,x:b9,y:b10,platform:Windows, +03000000321500000204000000000000,Razer Panthera PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000321500000104000000000000,Razer Panthera PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000321500000010000000000000,Razer Raiju,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000321500000507000000000000,Razer Raiju Mobile,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000321500000707000000000000,Razer Raiju Mobile,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000321500000710000000000000,Razer Raiju TE,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000321500000a10000000000000,Razer Raiju TE,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000321500000410000000000000,Razer Raiju UE,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000321500000910000000000000,Razer Raiju UE,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000321500000011000000000000,Razer Raion PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000321500000009000000000000,Razer Serval,+lefty:+a2,-lefty:-a1,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,leftx:a0,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000921200004547000000000000,Retro Bit Sega Genesis Controller Adapter,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,start:b6,x:b3,y:b4,platform:Windows, +03000000790000001100000000000000,Retro Controller,a:b1,b:b2,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,leftshoulder:b6,lefttrigger:b7,rightshoulder:b4,righttrigger:b5,start:b9,x:b0,y:b3,platform:Windows, +03000000830500006020000000000000,Retro Controller,a:b0,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b5,rightshoulder:b8,righttrigger:b9,start:b7,x:b2,y:b3,platform:Windows, +03000000632500007805000000000000,Retro Fighters Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +0300000003040000c197000000000000,Retrode Adapter,a:b0,b:b4,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Windows, +03000000bd12000013d0000000000000,Retrolink Sega Saturn Classic Controller,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b5,lefttrigger:b6,rightshoulder:b2,righttrigger:b7,start:b8,x:b3,y:b4,platform:Windows, +03000000bd12000015d0000000000000,Retrolink SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Windows, +03000000341200000400000000000000,RetroUSB N64 RetroPort,+rightx:b8,+righty:b10,-rightx:b9,-righty:b11,a:b7,b:b6,dpdown:b2,dpleft:b1,dpright:b0,dpup:b3,leftshoulder:b13,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b12,start:b4,platform:Windows, +0300000000f000000300000000000000,RetroUSB RetroPad,a:b1,b:b5,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Windows, +0300000000f00000f100000000000000,RetroUSB Super RetroPort,a:b1,b:b5,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Windows, +03000000830500000960000000000000,Revenger,a:b0,b:b1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b3,x:b4,y:b5,platform:Windows, +030000006b140000010d000000000000,Revolution Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000006b140000020d000000000000,Revolution Pro Controller 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000006b140000130d000000000000,Revolution Pro Controller 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001f01000000000000,Rock Candy,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006f0e00004601000000000000,Rock Candy,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000c6240000fefa000000000000,Rock Candy Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006f0e00008701000000000000,Rock Candy Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001e01000000000000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00002801000000000000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00002f01000000000000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000830500007030000000000000,Rockfire Space Ranger,a:b0,b:b1,back:b5,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b9,righttrigger:b8,start:b2,x:b3,y:b4,platform:Windows, +03000000050b0000e318000000000000,ROG Chakram,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows, +03000000050b0000e518000000000000,ROG Chakram,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows, +03000000050b00005819000000000000,ROG Chakram Core,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows, +03000000050b0000181a000000000000,ROG Chakram X,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows, +03000000050b00001a1a000000000000,ROG Chakram X,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows, +03000000050b00001c1a000000000000,ROG Chakram X,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows, +030000004f04000001d0000000000000,Rumble Force,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows, +030000000d0f0000ad00000000000000,RX Gamepad,a:b0,b:b4,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b3,rightshoulder:b6,start:b9,x:b2,y:b1,platform:Windows, +030000008916000000fe000000000000,Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000c6240000045d000000000000,Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006f0e00001311000000000000,Saffun Controller,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b0,platform:Windows, +03000000a30600001af5000000000000,Saitek Cyborg,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000a306000023f6000000000000,Saitek Cyborg,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000300f00001201000000000000,Saitek Dual Analog,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows, +03000000a30600000701000000000000,Saitek P220,a:b2,b:b3,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b4,righttrigger:b5,x:b0,y:b1,platform:Windows, +03000000a30600000cff000000000000,Saitek P2500 Force Rumble,a:b2,b:b3,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b0,y:b1,platform:Windows, +03000000a30600000d5f000000000000,Saitek P2600,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a3,righty:a2,start:b8,x:b0,y:b3,platform:Windows, +03000000a30600000dff000000000000,Saitek P2600,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a5,righty:a2,start:b8,x:b0,y:b3,platform:Windows, +03000000a30600000c04000000000000,Saitek P2900,a:b1,b:b2,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Windows, +03000000a306000018f5000000000000,Saitek P3200,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000300f00001001000000000000,Saitek P480 Rumble,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows, +03000000a30600000901000000000000,Saitek P880,a:b2,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b8,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b5,rightx:a3,righty:a2,x:b0,y:b1,platform:Windows, +03000000a30600000b04000000000000,Saitek P990,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Windows, +03000000a30600002106000000000000,Saitek PS1000 PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000a306000020f6000000000000,Saitek PS2700 PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000300f00001101000000000000,Saitek Rumble,a:b2,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows, +03000000e804000000a0000000000000,Samsung EIGP20,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c01100000252000000000000,Sanwa Easy Grip,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows, +03000000c01100004350000000000000,Sanwa Micro Grip P3,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,x:b3,y:b2,platform:Windows, +03000000411200004550000000000000,Sanwa Micro Grip Pro,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a1,righty:a2,start:b9,x:b1,y:b3,platform:Windows, +03000000c01100004150000000000000,Sanwa Micro Grip Pro,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows, +03000000c01100004450000000000000,Sanwa Online Grip,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b8,rightstick:b11,righttrigger:b9,rightx:a3,righty:a2,start:b14,x:b3,y:b4,platform:Windows, +03000000730700000401000000000000,Sanwa PlayOnline Mobile,a:b0,b:b1,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b3,platform:Windows, +030000009d0d00001130000000000000,Sanwa PlayStation Adapter,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000830500006120000000000000,Sanwa Smart Grip II,a:b0,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,x:b1,y:b3,platform:Windows, +03000000c01100000051000000000000,Satechi Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +030000004f04000028b3000000000000,Score A,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000952e00002577000000000000,Scuf PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000a30c00002500000000000000,Sega Genesis Mini 3B Controller,a:b2,b:b1,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,righttrigger:b5,start:b9,platform:Windows, +03000000a30c00002400000000000000,Sega Mega Drive Mini 6B Controller,a:b2,b:b1,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Windows, +03000000d804000086e6000000000000,Sega Multi Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:a2,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Windows, +0300000000050000289b000000000000,Sega Saturn Adapter,a:b1,b:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,start:b9,x:b0,y:b3,platform:Windows, +0300000000f000000800000000000000,Sega Saturn Controller,a:b1,b:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,rightshoulder:b7,righttrigger:b3,start:b0,x:b5,y:b6,platform:Windows, +03000000730700000601000000000000,Sega Saturn Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows, +03000000b40400000a01000000000000,Sega Saturn Controller,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Windows, +030000003b07000004a1000000000000,SFX,a:b0,b:b2,back:b7,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b9,righttrigger:b5,start:b8,x:b1,y:b3,platform:Windows, +03000000f82100001900000000000000,Shogun Bros Chameleon X1,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000120c00001c1e000000000000,SnakeByte 4S PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000140300000918000000000000,SNES Controller,a:b0,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Windows, +0300000081170000960a000000000000,SNES Controller,a:b4,b:b0,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b5,y:b1,platform:Windows, +03000000811700009d0a000000000000,SNES Controller,a:b0,b:b4,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Windows, +030000008b2800000300000000000000,SNES Controller,a:b0,b:b4,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Windows, +03000000921200004653000000000000,SNES Controller,a:b0,b:b4,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Windows, +030000008f0e00000910000000000000,Sony DualShock 2,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a2,start:b11,x:b3,y:b0,platform:Windows, +03000000317300000100000000000000,Sony DualShock 3,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000666600006706000000000000,Sony PlayStation Adapter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a2,righty:a3,start:b11,x:b3,y:b0,platform:Windows, +03000000e30500009605000000000000,Sony PlayStation Adapter,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000fe1400002a23000000000000,Sony PlayStation Adapter,a:b0,b:b1,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,x:b2,y:b3,platform:Windows, +030000004c050000da0c000000000000,Sony PlayStation Classic Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Windows, +03000000632500002306000000000000,Sony PlayStation Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Windows, +03000000f0250000c183000000000000,Sony PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000d9040000160f000000000000,Sony PlayStation Controller Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000ff000000cb01000000000000,Sony PlayStation Portable,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Windows, +030000004c0500003713000000000000,Sony PlayStation Vita,a:b1,b:b2,back:b8,dpdown:b13,dpleft:b15,dpright:b14,dpup:b12,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000341a00000208000000000000,Speedlink 6555,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:-a4,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a4,rightx:a3,righty:a2,start:b7,x:b2,y:b3,platform:Windows, +03000000341a00000908000000000000,Speedlink 6566,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000380700001722000000000000,Speedlink Competition Pro,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,x:b2,y:b3,platform:Windows, +030000008f0e00000800000000000000,Speedlink Strike FX,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000c01100000591000000000000,Speedlink Torid,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000de280000fc11000000000000,Steam Virtual Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000de280000ff11000000000000,Steam Virtual Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000120c0000160e000000000000,Steel Play Metaltech PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000110100001914000000000000,SteelSeries,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftstick:b13,lefttrigger:b6,leftx:a0,lefty:a1,rightstick:b14,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000381000001214000000000000,SteelSeries Free,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Windows, +03000000110100003114000000000000,SteelSeries Stratus Duo,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000381000003014000000000000,SteelSeries Stratus Duo,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000381000003114000000000000,SteelSeries Stratus Duo,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000381000001814000000000000,SteelSeries Stratus XL,a:b0,b:b1,back:b18,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,guide:b19,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b2,y:b3,platform:Windows, +03000000380700003847000000000000,Street Fighter Fightstick TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b11,start:b7,x:b2,y:b3,platform:Windows, +030000001f08000001e4000000000000,Super Famicom Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Windows, +03000000790000000418000000000000,Super Famicom Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b33,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Windows, +03000000341200001300000000000000,Super Racer,a:b2,b:b3,back:b8,leftshoulder:b5,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b4,righttrigger:b7,x:b0,y:b1,platform:Windows, +03000000457500002211000000000000,Szmy Power PC Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000004f0400000ab1000000000000,T16000M,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b4,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,start:b10,x:b2,y:b3,platform:Windows, +030000000d0f00007b00000000000000,TAC GEAR,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000e40a00000307000000000000,Taito Egret II Mini Control Panel,a:b4,b:b2,back:b6,guide:b9,leftx:a0,lefty:a1,rightshoulder:b0,righttrigger:b1,start:b7,x:b8,y:b3,platform:Windows, +03000000e40a00000207000000000000,Taito Egret II Mini Controller,a:b4,b:b2,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b9,rightshoulder:b0,righttrigger:b1,start:b7,x:b8,y:b3,platform:Windows, +03000000d814000001a0000000000000,TE Kitty,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000fa1900000706000000000000,Team 5,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000b50700001203000000000000,Techmobility X6-38V,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows, +03000000ba2200000701000000000000,Technology Innovation PS2 Adapter,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b2,platform:Windows, +03000000c61100001000000000000000,Tencent Xianyou Gamepad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,x:b3,y:b4,platform:Windows, +03000000790000001c18000000000000,TGZ Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000790000002601000000000000,TGZ Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b3,y:b0,platform:Windows, +03000000591c00002400000000000000,THEC64 Joystick,a:b0,b:b1,back:b6,leftshoulder:b4,leftx:a0,lefty:a4,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Windows, +03000000591c00002600000000000000,THEGamepad,a:b2,b:b1,back:b6,leftx:a0,lefty:a1,start:b7,x:b3,y:b0,platform:Windows, +030000004f04000015b3000000000000,Thrustmaster Dual Analog 4,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows, +030000004f04000023b3000000000000,Thrustmaster Dual Trigger PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000004f0400000ed0000000000000,Thrustmaster eSwap Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000004f04000008d0000000000000,Thrustmaster Ferrari 150 PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000004f04000000b3000000000000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b11,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b1,y:b3,platform:Windows, +030000004f04000004b3000000000000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows, +030000004f04000003d0000000000000,Thrustmaster Run N Drive PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b7,leftshoulder:a3,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:a4,rightstick:b11,righttrigger:b5,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000004f04000009d0000000000000,Thrustmaster Run N Drive PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006d04000088ca000000000000,Thunderpad,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +03000000666600000288000000000000,TigerGame PlayStation Adapter,a:b2,b:b1,back:b9,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000666600000488000000000000,TigerGame PlayStation Adapter,a:b2,b:b1,back:b9,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +030000004f04000007d0000000000000,TMini,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000571d00002100000000000000,Tomee NES Controller Adapter,a:b1,b:b0,back:b2,dpdown:+a4,dpleft:-a0,dpright:+a0,dpup:-a4,start:b3,platform:Windows, +03000000571d00002000000000000000,Tomee SNES Controller Adapter,a:b0,b:b1,back:b6,dpdown:+a4,dpleft:-a0,dpright:+a0,dpup:-a4,leftshoulder:b4,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Windows, +03000000d62000006000000000000000,Tournament PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000c01100000055000000000000,Tronsmart,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +030000005f140000c501000000000000,Trust Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000b80500000210000000000000,Trust Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +030000004f04000087b6000000000000,TWCS Throttle,dpdown:b8,dpleft:b9,dpright:b7,dpup:b6,leftstick:b5,lefttrigger:-a5,leftx:a0,lefty:a1,righttrigger:+a5,platform:Windows, +03000000411200000450000000000000,Twin Shock,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a4,start:b11,x:b3,y:b0,platform:Windows, +03000000d90400000200000000000000,TwinShock PS2 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000151900005678000000000000,Uniplay U6,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000101c0000171c000000000000,uRage Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +030000000b0400003065000000000000,USB Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b3,y:b0,platform:Windows, +03000000242f00006e00000000000000,USB Controller,a:b1,b:b4,back:b10,leftshoulder:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b9,righttrigger:b7,rightx:a2,righty:a5,start:b11,x:b0,y:b3,platform:Windows, +03000000300f00000701000000000000,USB Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000341a00002308000000000000,USB Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000666600000188000000000000,USB Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +030000006b1400000203000000000000,USB Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000790000000a00000000000000,USB Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows, +03000000b404000081c6000000000000,USB Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b3,y:b0,platform:Windows, +03000000b50700001503000000000000,USB Controller,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a5,righty:a2,start:b9,x:b0,y:b1,platform:Windows, +03000000bd12000012d0000000000000,USB Controller,a:b0,b:b1,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Windows, +03000000ff1100004133000000000000,USB Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a4,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000632500002305000000000000,USB Vibration Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000882800000305000000000000,V5 Game Pad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,x:b2,y:b3,platform:Windows, +03000000790000001a18000000000000,Venom PS4 Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000790000001b18000000000000,Venom PS4 Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00000302000000000000,Victrix PS4 Pro Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000006f0e00000702000000000000,Victrix PS4 Pro Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +0300000034120000adbe000000000000,vJoy Device,a:b0,b:b1,back:b15,dpdown:b6,dpleft:b7,dpright:b8,dpup:b5,guide:b16,leftshoulder:b9,leftstick:b13,lefttrigger:b11,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b14,righttrigger:b12,rightx:a3,righty:a4,start:b4,x:b2,y:b3,platform:Windows, +03000000120c0000ab57000000000000,Warrior Joypad JS083,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000007e0500003003000000000000,Wii U Pro,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,leftshoulder:b6,leftstick:b11,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b12,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows, +0300000032150000030a000000000000,Wildcat,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +0300000032150000140a000000000000,Wolverine,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000002e160000efbe000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b10,rightshoulder:b5,righttrigger:b11,start:b7,x:b2,y:b3,platform:Windows, +03000000380700001647000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000380700002045000000000000,Xbox 360 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000380700002644000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a2,righty:a5,start:b8,x:b2,y:b3,platform:Windows, +03000000380700002647000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000003807000026b7000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000380700003647000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a7,righty:a5,start:b7,x:b2,y:b3,platform:Windows, +030000005e0400001907000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e0400008e02000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e0400009102000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000ad1b000000fd000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000ad1b000001fd000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000ad1b000016f0000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000ad1b00008e02000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000c62400000053000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000c6240000fdfa000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000380700002847000000000000,Xbox 360 Fightpad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000a102000000000000,Xbox 360 Wireless Receiver,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e0400000a0b000000000000,Xbox Adaptive Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000120c00000a88000000000000,Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a2,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +03000000120c00001088000000000000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2~,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5~,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000002a0600002000000000000000,Xbox Controller,a:b0,b:b1,back:b13,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,leftshoulder:b5,leftstick:b14,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b15,righttrigger:b7,rightx:a2,righty:a5,start:b12,x:b2,y:b3,platform:Windows, +03000000380700001645000000000000,Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +03000000380700002645000000000000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000380700003645000000000000,Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +03000000380700008645000000000000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e0400000202000000000000,Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +030000005e0400008502000000000000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e0400008702000000000000,Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b7,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +030000005e0400008902000000000000,Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b10,leftstick:b8,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b9,righttrigger:b4,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +030000005e0400000c0b000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000d102000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000dd02000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000e002000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000e302000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000ea02000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000fd02000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000ff02000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006f0e0000a802000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006f0e0000c802000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000c62400003a54000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000130b000000000000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000341a00000608000000000000,Xeox,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000450c00002043000000000000,Xeox SL6556BK,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000006f0e00000300000000000000,XGear,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a5,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000e0ff00000201000000000000,Xiaomi Black Shark (L),back:b0,dpdown:b11,dpleft:b9,dpright:b10,dpup:b8,leftshoulder:b5,lefttrigger:b7,leftx:a0,lefty:a1,platform:Windows, +03000000172700004431000000000000,Xiaomi Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b20,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a7,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000172700003350000000000000,Xiaomi XMGP01YM,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000bc2000005060000000000000,Xiaomi XMGP01YM,+lefty:+a2,+righty:+a5,-lefty:-a1,-righty:-a4,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,start:b11,x:b3,y:b4,platform:Windows, +xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000007d0400000340000000000000,Xterminator Digital Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:-a4,lefttrigger:+a4,leftx:a0,lefty:a1,paddle1:b7,paddle2:b6,rightshoulder:b5,rightstick:b9,righttrigger:b2,rightx:a3,righty:a5,start:b8,x:b3,y:b4,platform:Windows, +030000002c3600000100000000000000,Yawman Arrow,+rightx:h0.2,+righty:h0.4,-rightx:h0.8,-righty:h0.1,a:b4,b:b5,back:b6,dpdown:b15,dpleft:b14,dpright:b16,dpup:b13,leftshoulder:b10,leftstick:b0,lefttrigger:-a4,leftx:a0,lefty:a1,paddle1:b11,paddle2:b12,rightshoulder:b8,rightstick:b9,righttrigger:+a4,start:b3,x:b1,y:b2,platform:Windows, +03000000790000004f18000000000000,ZDT Android Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000073500000400000000000000,Zenaim Arcade Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +03000000120c00000500000000000000,Zeroplus Adapter,a:b2,b:b1,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b0,righttrigger:b5,rightx:a3,righty:a2,start:b8,x:b3,y:b0,platform:Windows, +03000000120c0000101e000000000000,Zeroplus P4 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, + +# Mac OS X +030000008f0e00000300000009010000,2 In 1 Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000c82d00001930000000020000,8BitDo 64,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,platform:Mac OS X, +03000000c82d00001930000001000000,8BitDo 64,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,platform:Mac OS X, +03000000c82d00000031000001000000,8BitDo Adapter,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00000531000000020000,8BitDo Adapter 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00000951000000010000,8BitDo Dogbone,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b11,platform:Mac OS X, +03000000c82d00000090000001000000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00001038000000010000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00006a28000000010000,8BitDo GameCube,a:b0,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b9,paddle2:b8,rightshoulder:b10,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b1,y:b4,platform:Mac OS X, +03000000c82d00001251000000010000,8BitDo Lite 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00001251000000020000,8BitDo Lite 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00001151000000010000,8BitDo Lite SE,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00001151000000020000,8BitDo Lite SE,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000a30c00002400000006020000,8BitDo M30,a:b2,b:b1,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,guide:b9,leftshoulder:b6,lefttrigger:b5,rightshoulder:b4,righttrigger:b7,start:b8,x:b3,y:b0,platform:Mac OS X, +03000000c82d00000151000000010000,8BitDo M30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00000650000001000000,8BitDo M30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00005106000000010000,8BitDo M30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b2,leftshoulder:b6,lefttrigger:a5,rightshoulder:b7,righttrigger:a4,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00002090000000010000,8BitDo Micro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000451000000010000,8BitDo N30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b11,platform:Mac OS X, +03000000c82d00001590000001000000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00006528000000010000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00006928000000010000,8BitDo N64,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,platform:Mac OS X, +03000000c82d00002590000000010000,8BitDo NEOGEO,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00002590000001000000,8BitDo NEOGEO,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00002690000000010000,8BitDo NEOGEO,+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b10,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X, +030000003512000012ab000001000000,8BitDo NES30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d000012ab000001000000,8BitDo NES30,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00002028000000010000,8BitDo NES30,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000022000000090000001000000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000203800000900000000010000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000190000001000000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000751000000010000,8BitDo P30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00000851000000010000,8BitDo P30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00000660000000010000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000660000000020000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000131000001000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000231000001000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000331000001000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000431000001000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00002867000000010000,8BitDo S30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b3,y:b4,platform:Mac OS X, +03000000c82d00003028000000010000,8Bitdo SFC30 Gamepad,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000102800000900000000000000,8BitDo SFC30 Joystick,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000351000000010000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00001290000001000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00004028000000010000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000160000001000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000161000000010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000260000001000000,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000261000000010000,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00001230000000010000,8BitDo Ultimate,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b2,paddle2:b5,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00001b30000001000000,8BitDo Ultimate 2C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b5,paddle2:b2,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00001d30000001000000,8BitDo Ultimate 2C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b5,paddle2:b2,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00001530000001000000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00001630000001000000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00001730000001000000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00001130000000020000,8BitDo Ultimate Wired,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b24,paddle2:b25,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00001330000000020000,8BitDo Ultimate Wireless,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b23,paddle2:b19,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00001330000001000000,8BitDo Ultimate Wireless,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b23,paddle2:b19,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000a00500003232000008010000,8BitDo Zero,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000a00500003232000009010000,8BitDo Zero,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00001890000001000000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00003032000000010000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a31,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000491900001904000001010000,Amazon Luna Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b9,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Mac OS X, +03000000710100001904000000010000,Amazon Luna Controller,a:b0,b:b1,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b9,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Mac OS X, +0300000008100000e501000019040000,Anbernic Handheld,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a4,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000373500004610000001000000,Anbernic RG P01,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000a30c00002700000003030000,Astro City Mini,a:b2,b:b1,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000a30c00002800000003030000,Astro City Mini,a:b2,b:b1,back:b8,leftx:a3,lefty:a4,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000050b00000045000031000000,ASUS Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +03000000050b00000579000000010000,ASUS ROG Kunai 3,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b14,leftshoulder:b6,leftstick:b15,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b42,paddle1:b9,paddle2:b11,rightshoulder:b7,rightstick:b16,righttrigger:a4,rightx:a2,righty:a3,start:b13,x:b3,y:b4,platform:Mac OS X, +03000000050b00000679000000010000,ASUS ROG Kunai 3,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b14,leftshoulder:b6,leftstick:b15,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b23,rightshoulder:b7,rightstick:b16,righttrigger:a4,rightx:a2,righty:a3,start:b13,x:b3,y:b4,platform:Mac OS X, +03000000503200000110000045010000,Atari VCS Classic,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b3,start:b2,platform:Mac OS X, +03000000503200000110000047010000,Atari VCS Classic Controller,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b3,start:b2,platform:Mac OS X, +03000000503200000210000047010000,Atari VCS Modern Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a4,rightx:a2,righty:a3,start:b8,x:b2,y:b3,platform:Mac OS X, +030000008a3500000102000000010000,Backbone One,a:b0,b:b1,back:b16,dpdown:b11,dpleft:b13,dpright:b12,dpup:b10,guide:b17,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3~,start:b15,x:b2,y:b3,platform:Mac OS X, +030000008a3500000201000000010000,Backbone One,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000008a3500000202000000010000,Backbone One,a:b0,b:b1,back:b16,dpdown:b11,dpleft:b13,dpright:b12,dpup:b10,guide:b17,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3~,start:b15,x:b2,y:b3,platform:Mac OS X, +030000008a3500000402000000010000,Backbone One,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000008a3500000302000000010000,Backbone One PlayStation Edition,a:b0,b:b1,back:b16,dpdown:b11,dpleft:b13,dpright:b12,dpup:b10,guide:b17,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3~,start:b15,x:b2,y:b3,platform:Mac OS X, +03000000c62400001a89000000010000,BDA MOGA XP5-X Plus,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b14,leftshoulder:b6,leftstick:b15,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b16,righttrigger:a4,rightx:a2,righty:a3,start:b13,x:b3,y:b4,platform:Mac OS X, +03000000c62400001b89000000010000,BDA MOGA XP5-X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000d62000002a79000000010000,BDA PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +03000000120c0000200e000000010000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +03000000120c0000210e000000010000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000008305000031b0000000000000,Cideko AK08b,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000d8140000cecf000000000000,Cthulhu,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000260900008888000088020000,Cyber Gadget GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a5,rightx:a2,righty:a3~,start:b7,x:b2,y:b3,platform:Mac OS X, +03000000a306000022f6000001030000,Cyborg V3 Rumble Pad PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000791d00000103000009010000,Dual Box Wii Classic Adapter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b10,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +030000006e0500000720000010020000,Elecom JC-W01U,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Mac OS X, +030000006f0e00008401000003010000,Faceoff Deluxe Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b13,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000151900004000000001000000,Flydigi Vader 2,a:b14,b:b15,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b21,leftshoulder:b6,leftstick:b12,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b2,paddle2:b5,paddle3:b16,paddle4:b17,rightshoulder:b7,rightstick:b13,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Mac OS X, +03000000b40400001124000001040000,Flydigi Vader 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b12,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b14,paddle1:b2,paddle2:b5,paddle3:b16,paddle4:b17,rightshoulder:b7,rightstick:b13,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000b40400001224000003030000,Flydigi Vader 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b12,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b2,paddle1:b16,paddle2:b17,paddle3:b14,paddle4:b15,rightshoulder:b7,rightstick:b13,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000790000004618000000010000,GameCube Controller Adapter,a:b4,b:b0,dpdown:b56,dpleft:b60,dpright:b52,dpup:b48,lefttrigger:a12,leftx:a0,lefty:a4,rightshoulder:b28,righttrigger:a16,rightx:a20,righty:a8,start:b36,x:b8,y:b12,platform:Mac OS X, +03000000ac0500001a06000002020000,GameSir T3 2.02,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000373500000411000023000000,GameSir X4A Xbox Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000ad1b000001f9000000000000,Gamestop BB070 X360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +0500000047532047616d657061640000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +03000000c01100000140000000010000,GameStop PS4 Fun Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000006f0e00000102000000000000,GameStop Xbox 360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000ff1100003133000007010000,GameWare PC Control Pad,a:b2,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b3,y:b0,platform:Mac OS X, +03000000d11800000094000000010000,Google Stadia Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Mac OS X, +030000007d0400000540000001010000,Gravis Eliminator Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000280400000140000000020000,Gravis GamePad Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +030000008f0e00000300000007010000,GreenAsia Joystick,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Mac OS X, +030000000d0f00002d00000000100000,Hori Fighting Commander 3 Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00005f00000000000000,Hori Fighting Commander 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00005f00000000010000,Hori Fighting Commander 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00005e00000000000000,Hori Fighting Commander 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000000d0f00005e00000000010000,Hori Fighting Commander 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000000d0f00008400000000010000,Hori Fighting Commander PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00008500000000010000,Hori Fighting Commander PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000341a00000302000014010000,Hori Fighting Stick Mini,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00008800000000010000,Hori Fighting Stick mini 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00008700000000010000,Hori Fighting Stick mini 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000000d0f00004d00000000000000,Hori Gem Pad 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00003801000008010000,Hori PC Engine Mini Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,platform:Mac OS X, +030000000d0f00009200000000010000,Hori Pokken Tournament DX Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f0000aa00000072050000,Hori Real Arcade Pro for Nintendo Switch,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +030000000d0f00000002000017010000,Hori Split Pad Fit,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00000002000015010000,Hori Switch Split Pad Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00006e00000000010000,Horipad 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00006600000000010000,Horipad 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000000d0f00006600000000000000,Horipad FPS Plus 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f0000ee00000000010000,Horipad Mini 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f0000c100000072050000,Horipad Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000242e0000ff0b000000010000,Hyperkin N64 Adapter,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a2,righty:a3,start:b9,platform:Mac OS X, +03000000790000004e95000000010000,Hyperkin N64 Controller Adapter,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b7,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a5,righty:a2,start:b9,platform:Mac OS X, +03000000830500006020000000000000,iBuffalo Super Famicom Controller,a:b1,b:b0,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Mac OS X, +03000000ef0500000300000000020000,InterAct AxisPad,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Mac OS X, +03000000fd0500000030000010010000,Interact GoPad,a:b3,b:b4,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,x:b0,y:b1,platform:Mac OS X, +030000007e0500000620000001000000,Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b13,leftshoulder:b4,leftstick:b10,rightshoulder:b5,start:b8,x:b2,y:b3,platform:Mac OS X, +030000007e0500000720000001000000,Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Mac OS X, +03000000242f00002d00000007010000,JYS Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +030000006d04000019c2000000000000,Logitech Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d04000016c2000000020000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d04000016c2000000030000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d04000016c2000014040000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d04000016c2000000000000,Logitech F310,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d04000018c2000000000000,Logitech F510,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d04000019c2000005030000,Logitech F710,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d0400001fc2000000000000,Logitech F710,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000006d04000018c2000000010000,Logitech RumblePad 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3~,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000380700005032000000010000,Mad Catz PS3 Fightpad Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000380700008433000000010000,Mad Catz PS3 Fightstick TE S Plus,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000380700005082000000010000,Mad Catz PS4 Fightpad Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +03000000380700008483000000010000,Mad Catz PS4 Fightstick TE S Plus,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +0300000049190000020400001b010000,Manba One,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b22,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000790000000600000007010000,Marvo GT-004,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +030000008f0e00001330000011010000,Mayflash Controller Adapter,a:b2,b:b4,back:b16,dpdown:h0.8,dpleft:h0.2,dpright:h0.1,dpup:h0.4,leftshoulder:b12,lefttrigger:b16,leftx:a0,lefty:a2,rightshoulder:b14,rightx:a6~,righty:a4,start:b18,x:b0,y:b6,platform:Mac OS X, +03000000790000004318000000010000,Mayflash GameCube Adapter,a:b4,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a12,leftx:a0,lefty:a4,rightshoulder:b28,righttrigger:a16,rightx:a20,righty:a8,start:b36,x:b8,y:b12,platform:Mac OS X, +03000000790000004418000000010000,Mayflash GameCube Controller,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000242f00007300000000020000,Mayflash Magic NS,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b0,y:b3,platform:Mac OS X, +0300000079000000d218000026010000,Mayflash Magic NS,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000d620000010a7000003010000,Mayflash Magic NS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000008f0e00001030000011010000,Mayflash Saturn Adapter,a:b0,b:b2,dpdown:b28,dpleft:b30,dpright:b26,dpup:b24,leftshoulder:b10,lefttrigger:b14,rightshoulder:b12,righttrigger:b4,start:b18,x:b6,y:b8,platform:Mac OS X, +0300000025090000e803000000000000,Mayflash Wii Classic Adapter,a:b1,b:b0,back:b8,dpdown:b13,dpleft:b12,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Mac OS X, +03000000790000000318000000010000,Mayflash Wii DolphinBar,a:b8,b:b12,back:b32,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b44,leftshoulder:b16,lefttrigger:b24,leftx:a0,lefty:a4,rightshoulder:b20,righttrigger:b28,rightx:a8,righty:a12,start:b36,x:b0,y:b4,platform:Mac OS X, +03000000790000000018000000000000,Mayflash Wii U Pro Adapter,a:b4,b:b8,back:b32,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b16,leftstick:b40,lefttrigger:b24,leftx:a0,lefty:a4,rightshoulder:b20,rightstick:b44,righttrigger:b28,rightx:a8,righty:a12,start:b36,x:b0,y:b12,platform:Mac OS X, +03000000790000000018000000010000,Mayflash Wii U Pro Adapter,a:b4,b:b8,back:b32,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b16,leftstick:b40,lefttrigger:b24,leftx:a0,lefty:a4,rightshoulder:b20,rightstick:b44,righttrigger:b28,rightx:a8,righty:a12,start:b36,x:b0,y:b12,platform:Mac OS X, +030000005e0400002800000002010000,Microsoft Dual Strike,a:b3,b:b2,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,rightshoulder:b7,rightx:a0,righty:a1~,start:b5,x:b1,y:b0,platform:Mac OS X, +030000005e0400000300000006010000,Microsoft SideWinder,a:b0,b:b1,back:b9,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Mac OS X, +030000005e0400000700000006010000,Microsoft SideWinder,a:b0,b:b1,back:b8,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Mac OS X, +030000005e0400002700000001010000,Microsoft SideWinder Plug and Play,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,lefttrigger:b4,righttrigger:b5,x:b2,y:b3,platform:Mac OS X, +030000004523000015e0000072050000,Mobapad Chitu HD,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +03000000d62000007162000001000000,Moga Pro 2,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Mac OS X, +03000000c62400002a89000000010000,MOGA XP5A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b21,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c62400002b89000000010000,MOGA XP5A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000853200008906000000010000,Nacon Revolution X Unlimited,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000632500007505000000020000,NeoGeo mini PAD Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,x:b2,y:b3,platform:Mac OS X, +03000000921200004b46000003020000,NES 2-port Adapter,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b11,platform:Mac OS X, +030000001008000001e5000006010000,NEXT SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,righttrigger:b6,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000ec110000e1a7000001010000,Nintendo Switch,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +030000007e0500006920000001010000,Nintendo Switch 2 Pro Controller,a:b0,b:b1,back:b14,dpdown:b8,dpleft:b10,dpright:b9,dpup:b11,guide:b16,leftshoulder:b12,leftstick:b15,lefttrigger:b13,leftx:a0,lefty:a1~,misc1:b17,misc2:b20,paddle1:b18,paddle2:b19,rightshoulder:b4,rightstick:b7,righttrigger:b5,rightx:a2,righty:a3~,start:b6,x:b2,y:b3,platform:Mac OS X, +030000007e0500000920000000000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +030000007e0500000920000001000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +030000007e0500000920000010020000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:Mac OS X, +050000007e05000009200000ff070000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:Mac OS X, +030000007e0500007320000001010000,NSO GameCube Controller,a:b1,b:b3,dpdown:b8,dpleft:b10,dpright:b9,dpup:b11,guide:b16,leftshoulder:b13,lefttrigger:b12,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b4,rightx:a2,righty:a3~,start:b6,x:b0,y:b2,platform:Mac OS X, +030000007e0500001920000001000000,NSO N64 Controller,+rightx:b8,+righty:b7,-rightx:b3,-righty:b2,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,righttrigger:b10,start:b9,platform:Mac OS X, +030000007e0500001720000001000000,NSO SNES Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b15,start:b9,x:b2,y:b3,platform:Mac OS X, +03000000550900001472000025050000,NVIDIA Controller,a:b0,b:b1,back:b17,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b4,leftstick:b7,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Mac OS X, +030000004b120000014d000000010000,Nyko Airflo EX,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Mac OS X, +0300000009120000072f000000010000,OrangeFox86 DreamPicoPort,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a2,leftx:a0,lefty:a1,righttrigger:a5,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Mac OS X, +030000006f0e00000901000002010000,PDP PS3 Versus Fighting,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +030000008f0e00000300000000000000,Piranha Xtreme PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000d620000011a7000000020000,PowerA Core Plus Gamecube Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +03000000d620000011a7000010050000,PowerA Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000d62000006dca000000010000,PowerA Pro Ex,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000100800000300000006010000,PS2 Adapter,a:b2,b:b1,back:b8,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a4,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +030000004c0500006802000000000000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Mac OS X, +030000004c0500006802000000010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Mac OS X, +030000004c0500006802000072050000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Mac OS X, +030000004c050000a00b000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000004c050000c405000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000004c050000c405000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000004c050000cc09000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +0300004b4c0500005f0e000000010000,PS5 Access Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000004c050000e60c000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000004c050000f20d000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +050000004c050000e60c000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +050000004c050000f20d000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000005e040000e002000001000000,PXN P30 Pro Mobile,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Mac OS X, +03000000222c00000225000000010000,Qanba Dragon Arcade Joystick PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000222c00000020000000010000,Qanba Drone Arcade Stick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000009b2800005600000020020000,Raphnet SNES Adapter,a:b1,b:b4,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Mac OS X, +030000009b2800008000000022020000,Raphnet Wii Classic Adapter,a:b1,b:b4,back:b2,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,guide:b10,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a4,start:b3,x:b0,y:b5,platform:Mac OS X, +030000008916000000fd000000000000,Razer Onza TE,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000321500000204000000010000,Razer Panthera PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000321500000104000000010000,Razer Panthera PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +03000000321500000010000000010000,Razer Raiju,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000321500000507000001010000,Razer Raiju Mobile,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b21,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000321500000011000000010000,Razer Raion PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +03000000321500000009000000020000,Razer Serval,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Mac OS X, +030000003215000000090000163a0000,Razer Serval,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Mac OS X, +0300000032150000030a000000000000,Razer Wildcat,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000632500008005000000010000,Redgear,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000632500002305000000010000,Redragon Saturn,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000921200004547000000020000,Retro Bit Sega Genesis Controller Adapter,a:b0,b:b2,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,lefttrigger:b14,rightshoulder:b10,righttrigger:b4,start:b12,x:b6,y:b8,platform:Mac OS X, +03000000790000001100000000000000,Retro Controller,a:b1,b:b2,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,leftshoulder:b6,lefttrigger:b7,rightshoulder:b4,righttrigger:b5,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000790000001100000005010000,Retro Controller,a:b1,b:b2,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b4,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000830500006020000000010000,Retro Controller,a:b0,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b5,rightshoulder:b8,righttrigger:b9,start:b7,x:b2,y:b3,platform:Mac OS X, +0300000003040000c197000000000000,Retrode Adapter,a:b0,b:b4,back:b2,dpdown:+a4,dpleft:-a0,dpright:+a0,dpup:-a4,leftshoulder:b6,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Mac OS X, +03000000790000001100000006010000,Retrolink SNES Controller,a:b2,b:b1,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000341200000400000000000000,RetroUSB N64 RetroPort,+rightx:b8,+righty:b10,-rightx:b9,-righty:b11,a:b7,b:b6,dpdown:b2,dpleft:b1,dpright:b0,dpup:b3,leftshoulder:b13,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b12,start:b4,platform:Mac OS X, +030000006b140000010d000000010000,Revolution Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006b140000130d000000010000,Revolution Pro Controller 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000004c0500006802000002100000,Rii RK707,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b2,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b3,righttrigger:b9,rightx:a2,righty:a3,start:b1,x:b15,y:b12,platform:Mac OS X, +030000006f0e00008701000005010000,Rock Candy Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000c6240000fefa000000000000,Rock Candy PS3,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000e804000000a000001b010000,Samsung EIGP20,a:b1,b:b3,back:b15,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b20,leftshoulder:b11,leftx:a1,lefty:a3,rightshoulder:b12,rightx:a4,righty:a5,start:b16,x:b7,y:b9,platform:Mac OS X, +03000000730700000401000000010000,Sanwa PlayOnline Mobile,a:b0,b:b1,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b3,platform:Mac OS X, +03000000a30c00002500000006020000,Sega Genesis Mini 3B Controller,a:b2,b:b1,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,righttrigger:b5,start:b9,platform:Mac OS X, +03000000811700007e05000000000000,Sega Saturn,a:b2,b:b4,dpdown:b16,dpleft:b15,dpright:b14,dpup:b17,leftshoulder:b8,lefttrigger:a5,leftx:a0,lefty:a2,rightshoulder:b9,righttrigger:a4,start:b13,x:b0,y:b6,platform:Mac OS X, +03000000b40400000a01000000000000,Sega Saturn,a:b0,b:b1,back:b5,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b2,leftshoulder:b6,rightshoulder:b7,start:b8,x:b3,y:b4,platform:Mac OS X, +030000003512000021ab000000000000,SFC30 Joystick,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X, +0300000000f00000f100000000000000,SNES RetroPort,a:b2,b:b3,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b5,rightshoulder:b7,start:b6,x:b0,y:b1,platform:Mac OS X, +030000004c050000a00b000000000000,Sony DualShock 4 Adapter,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000004c050000cc09000000000000,Sony DualShock 4 V2,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +03000000666600006706000088020000,Sony PlayStation Adapter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b11,x:b3,y:b0,platform:Mac OS X, +030000004c050000da0c000000010000,Sony PlayStation Classic Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Mac OS X, +030000004c0500003713000000010000,Sony PlayStation Vita,a:b1,b:b2,back:b8,dpdown:b13,dpleft:b15,dpright:b14,dpup:b12,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Mac OS X, +030000005e0400008e02000001000000,Steam Virtual Gamepad,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000110100002014000000000000,SteelSeries Nimbus,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,x:b2,y:b3,platform:Mac OS X, +03000000110100002014000001000000,SteelSeries Nimbus,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,x:b2,y:b3,platform:Mac OS X, +03000000381000002014000001000000,SteelSeries Nimbus,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,x:b2,y:b3,platform:Mac OS X, +05000000484944204465766963650000,SteelSeries Nimbus Plus,a:b0,b:b1,back:b15,dpdown:b11,dpleft:b13,dpright:b12,dpup:b10,guide:b16,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3~,start:b14,x:b2,y:b3,platform:Mac OS X, +050000004e696d6275732b0000000000,SteelSeries Nimbus Plus,a:b0,b:b1,back:b15,dpdown:b11,dpleft:b13,dpright:b12,dpup:b10,guide:b16,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3~,start:b14,x:b2,y:b3,platform:Mac OS X, +03000000381000003014000000000000,SteelSeries Stratus Duo,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000381000003114000000000000,SteelSeries Stratus Duo,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000110100001714000000000000,SteelSeries Stratus XL,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,start:b12,x:b2,y:b3,platform:Mac OS X, +03000000110100001714000020010000,SteelSeries Stratus XL,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,start:b12,x:b2,y:b3,platform:Mac OS X, +030000000d0f0000f600000000010000,Switch Hori Pad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +03000000457500002211000000010000,SZMY Power PC Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000e40a00000307000001000000,Taito Egret II Mini Control Panel,a:b4,b:b2,back:b6,guide:b9,leftx:a0,lefty:a1,rightshoulder:b0,righttrigger:b1,start:b7,x:b8,y:b3,platform:Mac OS X, +03000000e40a00000207000001000000,Taito Egret II Mini Controller,a:b4,b:b2,back:b6,guide:b9,leftx:a0,lefty:a1,rightshoulder:b0,righttrigger:b1,start:b7,x:b8,y:b3,platform:Mac OS X, +03000000790000001c18000000010000,TGZ Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000790000001c18000003100000,TGZ Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000591c00002400000021000000,THEC64 Joystick,a:b0,b:b1,back:b6,leftshoulder:b4,leftx:a0,lefty:a4,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Mac OS X, +03000000591c00002600000021000000,THEGamepad,a:b2,b:b1,back:b6,dpdown:+a4,dpleft:-a0,dpright:+a0,dpup:-a4,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b0,platform:Mac OS X, +030000004f04000015b3000000000000,Thrustmaster Dual Analog 3.2,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Mac OS X, +030000004f0400000ed0000000020000,Thrustmaster eSwap Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000004f04000000b3000000000000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b11,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b1,y:b3,platform:Mac OS X, +03000000571d00002100000021000000,Tomee NES Controller Adapter,a:b1,b:b0,back:b2,dpdown:+a4,dpleft:-a0,dpright:+a0,dpup:-a4,start:b3,platform:Mac OS X, +03000000bd12000015d0000000010000,Tomee Retro Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000bd12000015d0000000000000,Tomee SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000571d00002000000021000000,Tomee SNES Controller Adapter,a:b0,b:b1,back:b6,dpdown:+a4,dpleft:-a0,dpright:+a0,dpup:-a4,leftshoulder:b4,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Mac OS X, +030000005f140000c501000000020000,Trust Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000100800000100000000000000,Twin USB Joystick,a:b4,b:b2,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b12,leftstick:b20,lefttrigger:b8,leftx:a0,lefty:a2,rightshoulder:b14,rightstick:b22,righttrigger:b10,rightx:a6,righty:a4,start:b18,x:b6,y:b0,platform:Mac OS X, +03000000632500002605000000010000,Uberwith Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000151900005678000010010000,Uniplay U6,a:b3,b:b6,back:b25,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b17,leftstick:b31,lefttrigger:b21,leftx:a1,lefty:a3,rightshoulder:b19,rightstick:b33,righttrigger:b23,rightx:a4,righty:a5,start:b27,x:b11,y:b13,platform:Mac OS X, +030000006f0e00000302000025040000,Victrix PS4 Pro Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000006f0e00000702000003060000,Victrix PS4 Pro Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +050000005769696d6f74652028303000,Wii Remote,a:b4,b:b5,back:b7,dpdown:b3,dpleft:b0,dpright:b1,dpup:b2,guide:b8,leftshoulder:b11,lefttrigger:b12,leftx:a0,lefty:a1,start:b6,x:b10,y:b9,platform:Mac OS X, +050000005769696d6f74652028313800,Wii U Pro Controller,a:b16,b:b15,back:b7,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b8,leftshoulder:b19,leftstick:b23,lefttrigger:b21,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b24,righttrigger:b22,rightx:a2,righty:a3,start:b6,x:b18,y:b17,platform:Mac OS X, +030000005e0400008e02000000000000,Xbox 360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e0400008e02000010010000,Xbox 360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4~,start:b8,x:b2,y:b3,platform:Mac OS X, +030000006f0e00000104000000000000,Xbox 360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000c6240000045d000000000000,Xbox 360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e0400000a0b000000000000,Xbox Adaptive Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e040000050b000003090000,Xbox Elite Controller Series 2,a:b0,b:b1,back:b31,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b53,leftshoulder:b6,leftstick:b13,lefttrigger:a6,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000130b000011050000,Xbox One Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000200b000011050000,Xbox One Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000200b000013050000,Xbox One Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000200b000015050000,Xbox One Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000d102000000000000,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e040000dd02000000000000,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e040000e002000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Mac OS X, +030000005e040000e002000003090000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Mac OS X, +030000005e040000e302000000000000,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e040000ea02000000000000,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e040000fd02000003090000,Xbox One Controller,a:b0,b:b1,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000220b000013050000,Xbox One Elite 2 Controller,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,paddle1:b11,paddle2:b13,paddle3:b12,paddle4:b14,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Mac OS X, +03000000c62400003a54000000000000,Xbox One PowerA Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e040000130b000001050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000130b000005050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000130b000009050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000130b000013050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000130b000015050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000130b000007050000,Xbox Wireless Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000130b000017050000,Xbox Wireless Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000130b000022050000,Xbox Wireless Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000220b000017050000,Xbox Wireless Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000172700004431000029010000,XiaoMi Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a6,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000120c0000100e000000010000,Zeroplus P4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000120c0000101e000000010000,Zeroplus P4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, + +# Linux +03000000c82d00001930000011010000,8BitDo 64,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,platform:Linux, +05000000c82d00001930000001000000,8BitDo 64,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,platform:Linux, +03000000c82d00000031000011010000,8BitDo Adapter,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00000631000000010000,8BitDo Adapter 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c82d00000951000000010000,8BitDo Dogbone,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b11,platform:Linux, +03000000021000000090000011010000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000090000011010000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00001038000000010000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00006a28000000010000,8BitDo GameCube,a:b0,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b9,paddle2:b8,rightshoulder:b10,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b1,y:b4,platform:Linux, +03000000c82d00001251000011010000,8BitDo Lite 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00001251000000010000,8BitDo Lite 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00001151000011010000,8BitDo Lite SE,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00001151000000010000,8BitDo Lite SE,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000151000000010000,8BitDo M30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00000650000011010000,8BitDo M30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000c82d00005106000000010000,8BitDo M30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00000a20000000020000,8BitDo M30 Xbox,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,start:b7,x:b2,y:b3,platform:Linux, +03000000c82d00002090000011010000,8BitDo Micro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00002090000000010000,8BitDo Micro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000451000000010000,8BitDo N30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b11,platform:Linux, +03000000c82d00001590000011010000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00006528000000010000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00006928000011010000,8BitDo N64,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,platform:Linux, +05000000c82d00006928000000010000,8BitDo N64,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,platform:Linux, +05000000c82d00002590000001000000,8BitDo NEOGEO,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000008000000210000011010000,8BitDo NES30,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +03000000c82d00000310000011010000,8BitDo NES30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b7,lefttrigger:b6,rightshoulder:b9,righttrigger:b8,start:b11,x:b3,y:b4,platform:Linux, +05000000c82d00008010000000010000,8BitDo NES30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b7,lefttrigger:b6,rightshoulder:b9,righttrigger:b8,start:b11,x:b3,y:b4,platform:Linux, +03000000022000000090000011010000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000190000011010000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000203800000900000000010000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00002038000000010000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000751000000010000,8BitDo P30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:a8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000c82d00000851000000010000,8BitDo P30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:a8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00000660000011010000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00001030000011010000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00000660000000010000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000020000000000000,8BitDo Pro 2 for Xbox,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +06000000c82d00000020000006010000,8BitDo Pro 2 for Xbox,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c82d00000960000011010000,8BitDo Pro 3,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b17,paddle2:b16,paddle3:b2,paddle4:b5,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000131000011010000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000231000011010000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000331000011010000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000431000011010000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00002867000000010000,8BitDo S30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b3,y:b4,platform:Linux, +03000000c82d00000060000011010000,8BitDo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00000060000000010000,8BitDo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00000061000000010000,8BitDo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +030000003512000012ab000010010000,8BitDo SFC30,a:b2,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b0,platform:Linux, +030000003512000021ab000010010000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d000021ab000010010000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux, +05000000102800000900000000010000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00003028000000010000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00000351000000010000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000160000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000160000011010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000161000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00001290000011010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00000161000000010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00006228000000010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000260000011010000,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00000261000000010000,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000202800000900000000010000,8BitDo SNES30,a:b1,b:b0,back:b10,dpdown:b122,dpleft:b119,dpright:b120,dpup:b117,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00001230000000010000,8BitDo Ultimate,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00000a31000014010000,8BitDo Ultimate 2C,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c82d00001d30000011010000,8BitDo Ultimate 2C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b5,paddle2:b2,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000c82d00001b30000001000000,8BitDo Ultimate 2C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b5,paddle2:b2,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00001530000011010000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00001630000011010000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00001730000011010000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00001130000011010000,8BitDo Ultimate Wired,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b24,paddle2:b25,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00000631000010010000,8BitDo Ultimate Wireless,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c82d00000631000014010000,8BitDo Ultimate Wireless,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c82d00000760000011010000,8BitDo Ultimate Wireless,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00001230000011010000,8BitDo Ultimate Wireless,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b2,paddle2:b5,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00001330000011010000,8BitDo Ultimate Wireless,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b23,paddle2:b19,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00000121000011010000,8BitDo Xbox One SN30 Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000c82d00000121000000010000,8BitDo Xbox One SN30 Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000a00500003232000001000000,8BitDo Zero,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Linux, +05000000a00500003232000008010000,8BitDo Zero,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00001890000011010000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00003032000000010000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c01100000355000011010000,Acrux Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00008801000011010000,Afterglow Deluxe Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00003901000000430000,Afterglow Prismatic Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00003901000013020000,Afterglow Prismatic Controller 048-007-NA,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00001302000000010000,Afterglow Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00003901000020060000,Afterglow Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000100000008200000011010000,Akishop Customs PS360,a:b1,b:b2,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +030000007c1800000006000010010000,Alienware Dual Compatible Game PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Linux, +05000000491900000204000021000000,Amazon Fire Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b17,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b12,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000491900001904000011010000,Amazon Luna Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b9,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Linux, +05000000710100001904000000010000,Amazon Luna Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Linux, +0300000008100000e501000001010000,Anbernic Handheld,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a4,start:b11,x:b3,y:b4,platform:Linux, +03000000020500000913000010010000,Anbernic RG P01,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000373500000710000010010000,Anbernic RG P01,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000373500004610000001000000,Anbernic RG P01,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000190e00000110000010010000,Aquaplus Piece,a:b1,b:b0,back:b3,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b2,platform:Linux, +03000000790000003018000011010000,Arcade Fightstick F300,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +03000000a30c00002700000011010000,Astro City Mini,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux, +03000000a30c00002800000011010000,Astro City Mini,a:b2,b:b1,back:b8,leftx:a0,lefty:a1,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux, +05000000050b00000045000031000000,ASUS Gamepad,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b10,x:b2,y:b3,platform:Linux, +05000000050b00000045000040000000,ASUS Gamepad,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b10,x:b2,y:b3,platform:Linux, +03000000050b00000579000011010000,ASUS ROG Kunai 3,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b36,paddle1:b52,paddle2:b53,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000050b00000679000000010000,ASUS ROG Kunai 3,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b21,paddle1:b22,paddle2:b23,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000503200000110000000000000,Atari VCS Classic Controller,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b4,start:b3,platform:Linux, +03000000503200000110000011010000,Atari VCS Classic Controller,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b4,start:b3,platform:Linux, +05000000503200000110000000000000,Atari VCS Classic Controller,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b4,start:b3,platform:Linux, +05000000503200000110000044010000,Atari VCS Classic Controller,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b4,start:b3,platform:Linux, +05000000503200000110000046010000,Atari VCS Classic Controller,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b4,start:b3,platform:Linux, +03000000503200000210000000000000,Atari VCS Modern Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a4,rightx:a2,righty:a3,start:b8,x:b2,y:b3,platform:Linux, +03000000503200000210000011010000,Atari VCS Modern Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Linux, +05000000503200000210000000000000,Atari VCS Modern Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Linux, +05000000503200000210000045010000,Atari VCS Modern Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Linux, +05000000503200000210000046010000,Atari VCS Modern Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Linux, +05000000503200000210000047010000,Atari VCS Modern Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:+a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:-a4,rightx:a2,righty:a3,start:b8,x:b2,y:b3,platform:Linux, +030000008a3500000201000011010000,Backbone One,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000008a3500000202000011010000,Backbone One,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000008a3500000302000011010000,Backbone One,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000008a3500000402000011010000,Backbone One,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c62400001b89000011010000,BDA MOGA XP5X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000d62000002a79000011010000,BDA PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000c21100000791000011010000,Be1 GC101 Controller 1.03,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000c31100000791000011010000,Be1 GC101 Controller 1.03,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000005e0400008e02000003030000,Be1 GC101 Xbox 360,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000bc2000004d50000011010000,Beitong A1T2 BFM,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000bc2000000055000001000000,Betop AX1 BFM,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000bc2000006412000011010000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b30,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000006b1400000209000011010000,Bigben,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000120c0000300e000011010000,Brook Audio Fighting Board PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000120c0000310e000011010000,Brook Audio Fighting Board PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000120c0000200e000011010000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000120c0000210e000011010000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000120c0000f70e000011010000,Brook Universal Fighting Board,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +03000000d81d00000b00000010010000,Buffalo BSGP1601,a:b5,b:b3,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b8,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b9,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b13,x:b4,y:b2,platform:Linux, +03000000e82000006058000001010000,Cideko AK08b,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000af1e00002400000010010000,Clockwork Pi DevTerm,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b9,x:b3,y:b0,platform:Linux, +030000000b0400003365000000010000,Competition Pro,a:b0,b:b1,back:b2,leftx:a0,lefty:a1,start:b3,platform:Linux, +03000000632500007a05000001020000,Cosmic Byte Ares Wired Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000260900008888000000010000,Cyber Gadget GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a5,rightx:a2,righty:a3~,start:b7,x:b2,y:b3,platform:Linux, +03000000a306000022f6000011010000,Cyborg V3 Rumble,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Linux, +030000005e0400008e02000002010000,Data Frog S80,a:b1,b:b0,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Linux, +03000000791d00000103000010010000,Dual Box Wii Classic Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000006f0e00003001000001010000,EA Sports PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000c11100000191000011010000,EasySMX,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000242f00009100000000010000,EasySMX ESM-9101,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006e0500000320000010010000,Elecom U3613M,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Linux, +030000006e0500000720000010010000,Elecom W01U,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Linux, +030000007d0400000640000010010000,Eliminator AfterShock,a:b1,b:b2,back:b9,dpdown:+a3,dpleft:-a5,dpright:+a5,dpup:-a3,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a4,righty:a2,start:b8,x:b0,y:b3,platform:Linux, +03000000430b00000300000000010000,EMS Production PS2 Adapter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a5,righty:a2,start:b9,x:b3,y:b0,platform:Linux, +030000006f0e00008401000011010000,Faceoff Deluxe Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00008101000011010000,Faceoff Deluxe Pro Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00008001000011010000,Faceoff Pro Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000852100000201000010010000,FF GP1,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +05000000b40400001224000001010000,Flydigi APEX 4,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b14,leftshoulder:b4,leftstick:b10,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b20,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +03000000b40400001124000011010000,Flydigi Vader 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b12,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b14,paddle1:b2,paddle2:b5,paddle3:b16,paddle4:b17,rightshoulder:b7,rightstick:b13,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000b40400001224000011010000,Flydigi Vader 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b12,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b2,paddle1:b16,paddle2:b17,paddle3:b14,paddle4:b15,rightshoulder:b7,rightstick:b13,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000151900004000000001000000,Flydigi Vader 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b21,leftshoulder:b6,leftstick:b12,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b14,paddle1:b2,paddle2:b5,paddle3:b16,paddle4:b17,rightshoulder:b7,rightstick:b13,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000007e0500003703000000000000,GameCube Adapter,a:b0,b:b1,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Linux, +19000000030000000300000002030000,GameForce Controller,a:b1,b:b0,back:b8,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,guide:b16,leftshoulder:b4,leftstick:b14,lefttrigger:b6,leftx:a1,lefty:a0,rightshoulder:b5,rightstick:b15,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux, +03000000373500000b10000019010000,GameSir Cyclone 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000ac0500005b05000010010000,GameSir G3w,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000bc2000000055000011010000,GameSir G3w,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000558500001b06000010010000,GameSir G4 Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000ac0500002d0200001b010000,GameSir G4s,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b33,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000ac0500007a05000011010000,GameSir G5,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b16,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000373500009710000001020000,GameSir Kaleid Flux,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000ac0500001a06000011010000,GameSir T3 2.02,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000bc2000005656000011010000,GameSir T4w,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000373500009410000010010000,GameSir Tegenaria Lite,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +0500000047532047616d657061640000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +030000006f0e00000104000000010000,Gamestop Logic3 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000008f0e00000800000010010000,Gasia PlayStation Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000451300000010000010010000,Genius Maxfire Grandias 12,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +03000000f025000021c1000010010000,Gioteck PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000f0250000c283000010010000,Gioteck VX2 PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +190000004b4800000010000000010000,GO-Advance Controller,a:b1,b:b0,back:b10,dpdown:b7,dpleft:b8,dpright:b9,dpup:b6,leftshoulder:b4,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b13,start:b15,x:b2,y:b3,platform:Linux, +190000004b4800000010000001010000,GO-Advance Controller,a:b1,b:b0,back:b12,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,leftshoulder:b4,leftstick:b13,lefttrigger:b14,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b16,righttrigger:b15,start:b17,x:b2,y:b3,platform:Linux, +190000004b4800000011000000010000,GO-Super Gamepad,a:b0,b:b1,back:b12,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b16,leftshoulder:b4,leftstick:b14,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b15,righttrigger:b7,rightx:a2,righty:a3,start:b13,x:b3,y:b2,platform:Linux, +03000000f0250000c183000010010000,Goodbetterbest Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000d11800000094000011010000,Google Stadia Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux, +05000000d11800000094000000010000,Google Stadia Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux, +0300000079000000d418000000010000,GPD Win 2 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000001010000,GPD Win Max 2 6800U Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000007d0400000540000000010000,Gravis Eliminator Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +03000000280400000140000000010000,Gravis GamePad Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +030000008f0e00000610000000010000,GreenAsia Electronics Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a2,start:b11,x:b3,y:b0,platform:Linux, +030000008f0e00001200000010010000,GreenAsia Joystick,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux, +0500000047532067616d657061640000,GS gamepad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +03000000f0250000c383000010010000,GT VX2,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000008a2e0000dd10000011010000,Hand Held Legend GC Ultimate,a:b0,b:b2,back:b17,dpdown:b5,dpleft:b6,dpright:b7,dpup:b4,guide:b18,leftshoulder:b10,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b19,misc2:b24,paddle1:b13,paddle2:b12,rightshoulder:b11,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b1,y:b3,platform:Linux, +030000008a2e0000df10000011010000,Hand Held Legend ProGCC,a:b1,b:b0,back:b17,dpdown:b5,dpleft:b6,dpright:b7,dpup:b4,guide:b18,leftshoulder:b10,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b19,paddle1:b13,paddle2:b12,rightshoulder:b11,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b3,y:b2,platform:Linux, +06000000adde0000efbe000002010000,Hidromancer Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d81400000862000011010000,HitBox PS3 PC Analog Mode,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b9,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b12,x:b0,y:b3,platform:Linux, +03000000c9110000f055000011010000,HJC Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +030000000d0f00006d00000020010000,Hori EDGE 301,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:+a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000000d0f00008400000011010000,Hori Fighting Commander,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00005f00000011010000,Hori Fighting Commander 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00005e00000011010000,Hori Fighting Commander 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000000d0f00005001000009040000,Hori Fighting Commander Octa Xbox One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000000d0f00008500000010010000,Hori Fighting Commander PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00008600000002010000,Hori Fighting Commander Xbox 360,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +030000000d0f00003701000013010000,Hori Fighting Stick Mini,a:b1,b:b0,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,start:b7,x:b3,y:b2,platform:Linux, +030000000d0f00008800000011010000,Hori Fighting Stick mini 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00008700000011010000,Hori Fighting Stick mini 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,rightshoulder:b5,rightstick:b11,righttrigger:a4,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000000d0f00001000000011010000,Hori Fightstick 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +03000000ad1b000003f5000033050000,Hori Fightstick VX,+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b8,guide:b10,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b2,y:b3,platform:Linux, +030000000d0f00004d00000011010000,Hori Gem Pad 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000ad1b000001f5000033050000,Hori Pad EX Turbo 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000000d0f00003801000011010000,Hori PC Engine Mini Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,platform:Linux, +030000000d0f00009200000011010000,Hori Pokken Tournament DX Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00001100000011010000,Hori Real Arcade Pro 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00002200000011010000,Hori Real Arcade Pro 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00006a00000011010000,Hori Real Arcade Pro 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00006b00000011010000,Hori Real Arcade Pro 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00001600000000010000,Hori Real Arcade Pro EXSE,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b2,y:b3,platform:Linux, +030000000d0f0000aa00000011010000,Hori Real Arcade Pro for Nintendo Switch,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000000d0f00008501000017010000,Hori Split Pad Fit,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000000d0f00008501000015010000,Hori Switch Split Pad Pro,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000000d0f00006e00000011010000,Horipad 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00006600000011010000,Horipad 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000000d0f0000ee00000011010000,Horipad Mini 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f0000c100000011010000,Horipad Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00006700000001010000,Horipad One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000000d0f0000ab01000011010000,Horipad Steam,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc2:b2,paddle1:b19,paddle2:b18,paddle3:b15,paddle4:b5,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000000d0f00009601000091000000,Horipad Steam,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc2:b2,paddle1:b19,paddle2:b18,paddle3:b15,paddle4:b5,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000000d0f0000f600000001000000,Horipad Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +03000000341a000005f7000010010000,HuiJia GameCube Controller Adapter,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Linux, +05000000242e00000b20000001000000,Hyperkin Admiral N64 Controller,+rightx:b11,+righty:b13,-rightx:b8,-righty:b12,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b14,leftx:a0,lefty:a1,rightshoulder:b5,start:b9,platform:Linux, +03000000242e0000ff0b000011010000,Hyperkin N64 Adapter,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a2,righty:a3,start:b9,platform:Linux, +03000000242e00006a38000010010000,Hyperkin Trooper 2,a:b0,b:b1,back:b4,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b3,start:b5,platform:Linux, +03000000242e00008816000001010000,Hyperkin X91,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000f00300008d03000011010000,HyperX Clutch,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000830500006020000010010000,iBuffalo Super Famicom Controller,a:b1,b:b0,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Linux, +030000008f0e00001330000001010000,iCode Retro Adapter,b:b3,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b9,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b1,start:b7,x:b2,y:b0,platform:Linux, +050000006964726f69643a636f6e0000,idroidcon Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000b50700001503000010010000,Impact,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux, +03000000d80400008200000003000000,IMS PCU0,a:b1,b:b0,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b5,x:b3,y:b2,platform:Linux, +03000000120c00000500000010010000,InterAct AxisPad,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Linux, +03000000ef0500000300000000010000,InterAct AxisPad,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Linux, +03000000fd0500000030000000010000,InterAct GoPad,a:b3,b:b4,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,x:b0,y:b1,platform:Linux, +03000000fd0500002a26000000010000,InterAct HammerHead FX,a:b3,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b2,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b5,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Linux, +0500000049190000020400001b010000,Ipega PG 9069,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b161,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000632500007505000011010000,Ipega PG 9099,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +0500000049190000030400001b010000,Ipega PG9099,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000491900000204000000000000,Ipega PG9118,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000300f00001101000010010000,Jess Tech Colour Rumble Pad,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux, +03000000300f00001001000010010000,Jess Tech Dual Analog Rumble,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux, +03000000300f00000b01000010010000,Jess Tech GGE909 PC Recoil,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux, +03000000ba2200002010000001010000,Jess Technology Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux, +030000007e0500000620000001000000,Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b13,leftshoulder:b4,leftstick:b10,rightshoulder:b5,start:b8,x:b2,y:b3,platform:Linux, +050000007e0500000620000001000000,Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b13,leftshoulder:b4,leftstick:b10,rightshoulder:b5,start:b8,x:b2,y:b3,platform:Linux, +030000007e0500000720000001000000,Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Linux, +050000007e0500000720000001000000,Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Linux, +03000000bd12000003c0000010010000,Joypad Alpha Shock,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000242f00002d00000011010000,JYS Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000242f00008a00000011010000,JYS Adapter,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b0,y:b3,platform:Linux, +030000006f0e00000103000000020000,Logic3 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006d040000d1ca000000000000,Logitech Chillstream,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006d040000d1ca000011010000,Logitech Chillstream,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006d04000019c2000010010000,Logitech Cordless RumblePad 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006d04000016c2000010010000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006d04000016c2000011010000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006d0400001dc2000014400000,Logitech F310,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006d0400001ec2000019200000,Logitech F510,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006d0400001ec2000020200000,Logitech F510,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006d04000019c2000011010000,Logitech F710,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006d0400001fc2000005030000,Logitech F710,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006d04000018c2000010010000,Logitech RumblePad 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006d04000011c2000010010000,Logitech WingMan Cordless RumblePad,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b6,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b10,rightx:a3,righty:a4,start:b8,x:b3,y:b4,platform:Linux, +030000006d0400000ac2000010010000,Logitech WingMan RumblePad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,rightx:a3,righty:a4,x:b3,y:b4,platform:Linux, +05000000380700006652000025010000,Mad Catz CTRLR,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700008532000010010000,Mad Catz Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b5,rightshoulder:b6,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +03000000380700005032000011010000,Mad Catz Fightpad Pro PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700005082000011010000,Mad Catz Fightpad Pro PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000ad1b00002ef0000090040000,Mad Catz Fightpad SFxT,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,start:b7,x:b2,y:b3,platform:Linux, +03000000380700008031000011010000,Mad Catz FightStick Alpha PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700008081000011010000,Mad Catz FightStick Alpha PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700008034000011010000,Mad Catz Fightstick PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700008084000011010000,Mad Catz Fightstick PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000380700008433000011010000,Mad Catz Fightstick TE S PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700008483000011010000,Mad Catz Fightstick TE S PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000380700001888000010010000,Mad Catz Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700003888000010010000,Mad Catz Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:a0,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700001647000010040000,Mad Catz Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000380700003847000090040000,Mad Catz Xbox 360 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +03000000ad1b000016f0000090040000,Mad Catz Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000120c00000500000000010000,Manta DualShock 2,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux, +030000008f0e00001330000010010000,Mayflash Controller Adapter,a:b1,b:b2,back:b8,dpdown:h0.8,dpleft:h0.2,dpright:h0.1,dpup:h0.4,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a3~,righty:a2,start:b9,x:b0,y:b3,platform:Linux, +03000000790000004318000010010000,Mayflash GameCube Adapter,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Linux, +03000000790000004418000010010000,Mayflash GameCube Controller,a:b1,b:b0,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Linux, +03000000242f00007300000011010000,Mayflash Magic NS,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b0,y:b3,platform:Linux, +0300000079000000d218000011010000,Mayflash Magic NS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000d620000010a7000011010000,Mayflash Magic NS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000242f0000f700000001010000,Mayflash Magic S Pro,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000008f0e00001030000010010000,Mayflash Saturn Adapter,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,lefttrigger:b7,rightshoulder:b6,righttrigger:b2,start:b9,x:b3,y:b4,platform:Linux, +0300000025090000e803000001010000,Mayflash Wii Classic Adapter,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:a4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:a5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux, +03000000790000000318000011010000,Mayflash Wii DolphinBar,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Linux, +03000000790000000018000011010000,Mayflash Wii U Pro Adapter,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000b50700001203000010010000,Mega World Logic 3 Controller,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux, +03000000b50700004f00000000010000,Mega World Logic 3 Controller,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Linux, +03000000780000000600000010010000,Microntek Joystick,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux, +030000005e0400002800000000010000,Microsoft Dual Strike,a:b3,b:b2,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,rightshoulder:b7,rightx:a0,righty:a1~,start:b5,x:b1,y:b0,platform:Linux, +030000005e0400000300000000010000,Microsoft SideWinder,a:b0,b:b1,back:b9,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Linux, +030000005e0400000700000000010000,Microsoft SideWinder,a:b0,b:b1,back:b8,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Linux, +030000005e0400000e00000000010000,Microsoft SideWinder Freestyle Pro,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,rightshoulder:b7,start:b8,x:b3,y:b4,platform:Linux, +030000005e0400002700000000010000,Microsoft SideWinder Plug and Play,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,lefttrigger:b4,righttrigger:b5,x:b2,y:b3,platform:Linux, +030000005e0400008502000000010000,Microsoft Xbox,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux, +030000005e0400008902000021010000,Microsoft Xbox,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux, +030000005e0400008e02000001000000,Microsoft Xbox 360,a:b0,b:b1,back:b6,dpdown:h0.1,dpleft:h0.2,dpright:h0.8,dpup:h0.4,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000004010000,Microsoft Xbox 360,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000056210000,Microsoft Xbox 360,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000062230000,Microsoft Xbox 360,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000d102000001010000,Microsoft Xbox One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000d102000003020000,Microsoft Xbox One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000dd02000003020000,Microsoft Xbox One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000ea02000008040000,Microsoft Xbox One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000ea0200000f050000,Microsoft Xbox One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +060000005e040000120b000009050000,Microsoft Xbox One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000e302000003020000,Microsoft Xbox One Elite,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000000b000007040000,Microsoft Xbox One Elite 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b12,paddle2:b14,paddle3:b13,paddle4:b15,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000000b000008040000,Microsoft Xbox One Elite 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b12,paddle2:b14,paddle3:b13,paddle4:b15,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +050000005e040000050b000003090000,Microsoft Xbox One Elite 2,a:b0,b:b1,back:b17,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a6,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e0400008e02000030110000,Microsoft Xbox One Elite 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b13,paddle3:b12,paddle4:b14,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b00000b050000,Microsoft Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b000016050000,Microsoft Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b000017050000,Microsoft Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +060000005e040000120b000001050000,Microsoft Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000030000000300000002000000,Miroof,a:b1,b:b0,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Linux, +03000000790000001c18000010010000,Mobapad Chitu HD,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000004d4f435554452d3035335800,Mocute 053X,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +05000000e80400006e0400001b010000,Mocute 053X M59,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000004d4f435554452d3035305800,Mocute 054X,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000d6200000e589000001000000,Moga 2,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Linux, +05000000d6200000ad0d000001000000,Moga Pro,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Linux, +05000000d62000007162000001000000,Moga Pro 2,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Linux, +03000000c62400002b89000011010000,MOGA XP5A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000c62400002a89000000010000,MOGA XP5A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b22,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000c62400001a89000000010000,MOGA XP5X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000250900006688000000010000,MP8866 Super Dual Box,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux, +030000005e0400008e02000010020000,MSI GC20 V2,a:b0,b:b1,back:b6,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000f70600000100000000010000,N64 Adaptoid,+rightx:b2,+righty:b1,-rightx:b4,-righty:b5,a:b0,b:b3,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b7,start:b8,platform:Linux, +030000006b1400000906000014010000,Nacon Asymmetric Wireless PS4 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006b140000010c000010010000,Nacon GC 400ES,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +03000000853200000706000012010000,Nacon GC-100,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +05000000853200000503000000010000,Nacon MG-X Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +0300000085320000170d000011010000,Nacon Revolution 5 Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +0300000085320000190d000011010000,Nacon Revolution 5 Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000000d0f00000900000010010000,Natec Genesis P44,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000004f1f00000800000011010000,NeoGeo PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +0300000092120000474e000000010000,NeoGeo X Arcade Stick,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,x:b3,y:b2,platform:Linux, +03000000790000004518000010010000,Nexilux GameCube Controller Adapter,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Linux, +030000001008000001e5000010010000,NEXT SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,righttrigger:b6,start:b9,x:b3,y:b0,platform:Linux, +060000007e0500003713000000000000,Nintendo 3DS,a:b0,b:b1,back:b8,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux, +03000000790000004618000010010000,Nintendo GameCube Controller Adapter,a:b1,b:b0,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a5~,righty:a2~,start:b9,x:b2,y:b3,platform:Linux, +03000000ec110000e1a7000010010000,Nintendo Switch,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +030000007e0500006920000011010000,Nintendo Switch 2 Pro Controller,a:b0,b:b1,back:b14,dpdown:b8,dpleft:b10,dpright:b9,dpup:b11,guide:b16,leftshoulder:b12,leftstick:b15,lefttrigger:b13,leftx:a0,lefty:a1~,misc1:b17,misc2:b20,paddle1:b18,paddle2:b19,rightshoulder:b4,rightstick:b7,righttrigger:b5,rightx:a2,righty:a3~,start:b6,x:b2,y:b3,platform:Linux, +060000004e696e74656e646f20537700,Nintendo Switch Combined Joy-Cons,a:b0,b:b1,back:b9,dpdown:b15,dpleft:b16,dpright:b17,dpup:b14,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux, +060000007e0500000620000000000000,Nintendo Switch Combined Joy-Cons,a:b0,b:b1,back:b9,dpdown:b15,dpleft:b16,dpright:b17,dpup:b14,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux, +060000007e0500000820000000000000,Nintendo Switch Combined Joy-Cons,a:b0,b:b1,back:b9,dpdown:b15,dpleft:b16,dpright:b17,dpup:b14,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux, +050000004c69632050726f20436f6e00,Nintendo Switch Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +050000007e0500000620000001800000,Nintendo Switch Left Joy-Con,a:b16,b:b15,back:b4,leftshoulder:b6,leftstick:b12,leftx:a1,lefty:a0~,rightshoulder:b8,start:b9,x:b14,y:b17,platform:Linux, +030000007e0500000920000000026803,Nintendo Switch Pro Controller,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Linux, +030000007e0500000920000011810000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux, +050000007e0500000920000001000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +050000007e0500000920000001800000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux, +050000007e0500000720000001800000,Nintendo Switch Right Joy-Con,a:b1,b:b2,back:b9,leftshoulder:b4,leftstick:b10,leftx:a1~,lefty:a0,rightshoulder:b6,start:b8,x:b0,y:b3,platform:Linux, +05000000010000000100000003000000,Nintendo Wii Remote,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +050000007e0500003003000001000000,Nintendo Wii U Pro Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux, +050000005a1d00000218000003000000,Nokia GC 5000,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000000d0500000308000010010000,Nostromo n45 Dual Analog,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b12,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b10,x:b2,y:b3,platform:Linux, +030000007e0500007320000011010000,NSO GameCube Controller,a:b1,b:b3,dpdown:b8,dpleft:b10,dpright:b9,dpup:b11,guide:b16,leftshoulder:b13,lefttrigger:b12,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b4,rightx:a2,righty:a3~,start:b6,x:b0,y:b2,platform:Linux, +030000007e0500001920000011810000,NSO N64 Controller,+rightx:b2,+righty:b3,-rightx:b4,-righty:b10,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b5,rightshoulder:b7,righttrigger:b9,start:b11,platform:Linux, +050000007e0500001920000001000000,NSO N64 Controller,+rightx:b8,+righty:b7,-rightx:b3,-righty:b2,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,righttrigger:b10,start:b9,platform:Linux, +050000007e0500001920000001800000,NSO N64 Controller,+rightx:b2,+righty:b3,-rightx:b4,-righty:b10,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b5,rightshoulder:b7,righttrigger:b9,start:b11,platform:Linux, +030000007e0500001e20000011810000,NSO Sega Genesis Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,misc1:b3,rightshoulder:b2,righttrigger:b4,start:b5,platform:Linux, +030000007e0500001720000011810000,NSO SNES Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b2,platform:Linux, +050000007e0500001720000001000000,NSO SNES Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,lefttrigger:b7,rightshoulder:b6,righttrigger:b8,start:b10,x:b3,y:b2,platform:Linux, +050000007e0500001720000001800000,NSO SNES Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b2,platform:Linux, +03000000550900001072000011010000,NVIDIA Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b8,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux, +03000000550900001472000011010000,NVIDIA Controller,a:b0,b:b1,back:b14,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b4,leftstick:b7,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b8,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Linux, +05000000550900001472000001000000,NVIDIA Controller,a:b0,b:b1,back:b14,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b4,leftstick:b7,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b8,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Linux, +030000004b120000014d000000010000,NYKO Airflo EX,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux, +03000000451300000830000010010000,NYKO CORE,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +19000000010000000100000001010000,ODROID Go 2,a:b1,b:b0,dpdown:b7,dpleft:b8,dpright:b9,dpup:b6,guide:b10,leftshoulder:b4,leftstick:b12,lefttrigger:b11,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b13,righttrigger:b14,start:b15,x:b2,y:b3,platform:Linux, +19000000010000000200000011000000,ODROID Go 2,a:b1,b:b0,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b12,leftshoulder:b4,leftstick:b14,lefttrigger:b13,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b15,righttrigger:b16,start:b17,x:b2,y:b3,platform:Linux, +05000000362800000100000002010000,OUYA Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b2,platform:Linux, +05000000362800000100000003010000,OUYA Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b2,platform:Linux, +05000000362800000100000004010000,OUYA Controller,a:b0,b:b3,back:b14,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,leftshoulder:b4,leftstick:b6,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:b13,rightx:a3,righty:a4,start:b16,x:b1,y:b2,platform:Linux, +03000000830500005020000010010000,Padix Rockfire PlayStation Bridge,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b2,y:b3,platform:Linux, +03000000ff1100003133000010010000,PC Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000006f0e0000b802000001010000,PDP Afterglow Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e0000b802000013020000,PDP Afterglow Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00006401000001010000,PDP Battlefield One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e0000d702000006640000,PDP Black Camo Wired Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:b13,dpleft:b14,dpright:b13,dpup:b14,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00003101000000010000,PDP EA Sports Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00008501000011010000,PDP Fightpad Pro Gamecube Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +030000006f0e0000c802000012010000,PDP Kingdom Hearts Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00002801000011010000,PDP PS3 Rock Candy Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00000901000011010000,PDP PS3 Versus Fighting,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00002f01000011010000,PDP Wired PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000ad1b000004f9000000010000,PDP Xbox 360 Versus Fighting,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e0000f102000000000000,PDP Xbox Atomic,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e0000a802000023020000,PDP Xbox One Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +030000006f0e0000a702000023020000,PDP Xbox One Raven Black,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e0000d802000006640000,PDP Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e0000ef02000007640000,PDP Xbox Series Kinetic Wired Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c62400000053000000010000,PowerA,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c62400003a54000001010000,PowerA 1428124-01,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d62000000540000001010000,PowerA Advantage Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d620000011a7000011010000,PowerA Core Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000dd62000015a7000011010000,PowerA Fusion Nintendo Switch Arcade Stick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000d620000012a7000011010000,PowerA Fusion Nintendo Switch Fight Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000d62000000140000001010000,PowerA Fusion Pro 2 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000dd62000016a7000000000000,PowerA Fusion Pro Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000c62400001a53000000010000,PowerA Mini Pro Ex,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d620000013a7000011010000,PowerA Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000d62000006dca000011010000,PowerA Pro Ex,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000d620000014a7000011010000,PowerA Spectra Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000c62400001a58000001010000,PowerA Xbox One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d62000000220000001010000,PowerA Xbox One Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Linux, +03000000d62000000228000001010000,PowerA Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c62400001a54000001010000,PowerA Xbox One Mini Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d62000000240000001010000,PowerA Xbox One Spectra Infinity,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d62000000520000050010000,PowerA Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d62000000b20000001010000,PowerA Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d62000000f20000001010000,PowerA Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b7,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006d040000d2ca000011010000,Precision Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000250900000017000010010000,PS/SS/N64 Adapter,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b5,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2~,righty:a3,start:b8,platform:Linux, +03000000ff1100004133000010010000,PS2 Controller,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux, +03000000341a00003608000011010000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000004c0500006802000010010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux, +030000004c0500006802000010810000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +030000004c0500006802000011010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux, +030000004c0500006802000011810000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +030000005f1400003102000010010000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000006f0e00001402000011010000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000008f0e00000300000010010000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +050000004c0500006802000000000000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux, +050000004c0500006802000000010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:a12,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:a13,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux, +050000004c0500006802000000800000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +050000004c0500006802000000810000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +05000000504c415953544154494f4e00,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux, +060000004c0500006802000000010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux, +030000004c050000a00b000011010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000004c050000a00b000011810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +030000004c050000c405000000810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +030000004c050000c405000011010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000004c050000c405000011810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +030000004c050000cc09000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000004c050000cc09000011010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000004c050000cc09000011810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +03000000c01100000140000011010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +050000004c050000c405000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +050000004c050000c405000000810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +050000004c050000c405000001800000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +050000004c050000cc09000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +050000004c050000cc09000000810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +050000004c050000cc09000001800000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +0300004b4c0500005f0e000011010000,PS5 Access Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000004c050000e60c000011010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000004c050000e60c000011810000,PS5 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +030000004c050000f20d000011010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000004c050000f20d000011810000,PS5 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +050000004c050000e60c000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +050000004c050000e60c000000810000,PS5 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +050000004c050000f20d000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +050000004c050000f20d000000810000,PS5 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +03000000300f00001211000011010000,Qanba Arcade Joystick,a:b2,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b5,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b6,start:b9,x:b1,y:b3,platform:Linux, +03000000222c00000225000011010000,Qanba Dragon Arcade Joystick PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000222c00000025000011010000,Qanba Dragon Arcade Joystick PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000222c00001220000011010000,Qanba Drone 2 Arcade Joystick PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000222c00001020000011010000,Qanba Drone 2 Arcade Joystick PS5,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000222c00000020000011010000,Qanba Drone Arcade PS4 Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,rightshoulder:b5,righttrigger:a4,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000300f00001210000010010000,Qanba Joystick Plus,a:b0,b:b1,back:b8,leftshoulder:b5,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b4,righttrigger:b6,start:b9,x:b2,y:b3,platform:Linux, +03000000222c00000223000011010000,Qanba Obsidian Arcade Joystick PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000222c00000023000011010000,Qanba Obsidian Arcade Joystick PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000009b2800000300000001010000,Raphnet 4nes4snes,a:b0,b:b4,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Linux, +030000009b2800004200000001010000,Raphnet Dual NES Adapter,a:b0,b:b1,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b3,platform:Linux, +0300132d9b2800006500000000000000,Raphnet GameCube Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Linux, +0300132d9b2800006500000001010000,Raphnet GameCube Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Linux, +030000009b2800003200000001010000,Raphnet GC and N64 Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Linux, +030000009b2800006000000001010000,Raphnet GC and N64 Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Linux, +030000009b2800003c00000001010000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Linux, +030000009b2800006100000001010000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Linux, +030000009b2800006300000001010000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Linux, +030000009b2800006400000001010000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Linux, +030000009b2800008000000020020000,Raphnet Wii Classic Adapter,a:b1,b:b4,back:b2,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Linux, +030000009b2800008000000001010000,Raphnet Wii Classic Adapter V3,a:b1,b:b4,back:b2,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Linux, +03000000f8270000bf0b000011010000,Razer Kishi,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000008916000001fd000024010000,Razer Onza Classic Edition,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000321500000204000011010000,Razer Panthera PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000321500000104000011010000,Razer Panthera PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000321500000810000011010000,Razer Panthera PS4 Evo Arcade Stick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000321500000010000011010000,Razer Raiju,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000321500000507000000010000,Razer Raiju Mobile,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b21,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000321500000a10000001000000,Razer Raiju Tournament Edition,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000321500000011000011010000,Razer Raion PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000008916000000fe000024010000,Razer Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c6240000045d000024010000,Razer Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c6240000045d000025010000,Razer Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000321500000009000011010000,Razer Serval,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux, +050000003215000000090000163a0000,Razer Serval,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux, +0300000032150000030a000001010000,Razer Wildcat,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000321500000b10000011010000,Razer Wolverine PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +0300000032150000140a000001010000,Razer Wolverine Ultimate Xbox,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000000d0f0000c100000010010000,Retro Bit Legacy16,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b12,leftshoulder:b4,lefttrigger:b6,misc1:b13,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +03000000790000001100000010010000,Retro Controller,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b4,righttrigger:b5,start:b9,x:b0,y:b3,platform:Linux, +0300000003040000c197000011010000,Retrode Adapter,a:b0,b:b4,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Linux, +190000004b4800000111000000010000,RetroGame Joypad,a:b1,b:b0,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +0300000081170000990a000001010000,Retronic Adapter,a:b0,leftx:a0,lefty:a1,platform:Linux, +0300000000f000000300000000010000,RetroPad,a:b1,b:b5,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Linux, +00000000526574726f53746f6e653200,RetroStone 2 Controller,a:b1,b:b0,back:b10,dpdown:b15,dpleft:b16,dpright:b17,dpup:b14,leftshoulder:b6,lefttrigger:b8,rightshoulder:b7,righttrigger:b9,start:b11,x:b4,y:b3,platform:Linux, +03000000341200000400000000010000,RetroUSB N64 RetroPort,+rightx:b8,+righty:b10,-rightx:b9,-righty:b11,a:b7,b:b6,dpdown:b2,dpleft:b1,dpright:b0,dpup:b3,leftshoulder:b13,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b12,start:b4,platform:Linux, +030000006b140000010d000011010000,Revolution Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000006b140000130d000011010000,Revolution Pro Controller 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00001f01000000010000,Rock Candy,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00008701000011010000,Rock Candy Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00001e01000011010000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000c6240000fefa000000010000,Rock Candy Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00004601000001010000,Rock Candy Xbox One Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00001311000011010000,Saffun Controller,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b0,platform:Linux, +03000000a306000023f6000011010000,Saitek Cyborg PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Linux, +03000000a30600001005000000010000,Saitek P150,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b7,lefttrigger:b6,rightshoulder:b2,righttrigger:b5,x:b3,y:b4,platform:Linux, +03000000a30600000701000000010000,Saitek P220,a:b2,b:b3,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b4,righttrigger:b5,x:b0,y:b1,platform:Linux, +03000000a30600000cff000010010000,Saitek P2500 Force Rumble,a:b2,b:b3,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b10,x:b0,y:b1,platform:Linux, +03000000a30600000d5f000010010000,Saitek P2600,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a3,righty:a2,start:b8,x:b0,y:b3,platform:Linux, +03000000a30600000c04000011010000,Saitek P2900,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b12,x:b0,y:b3,platform:Linux, +03000000a306000018f5000010010000,Saitek P3200 Rumble,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Linux, +03000000300f00001201000010010000,Saitek P380,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux, +03000000a30600000901000000010000,Saitek P880,a:b2,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,x:b0,y:b1,platform:Linux, +03000000a30600000b04000000010000,Saitek P990 Dual Analog,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b8,x:b0,y:b3,platform:Linux, +03000000a306000020f6000011010000,Saitek PS2700 Rumble,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Linux, +05000000e804000000a000001b010000,Samsung EIGP20,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000d81d00000e00000010010000,Savior,a:b0,b:b1,back:b8,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b11,righttrigger:b3,start:b9,x:b4,y:b5,platform:Linux, +03000000952e00004b43000011010000,Scuf Envision,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Linux, +03000000952e00004d43000011010000,Scuf Envision,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Linux, +03000000952e00004e43000011010000,Scuf Envision,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Linux, +03000000a30c00002500000011010000,Sega Genesis Mini 3B Controller,a:b2,b:b1,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,righttrigger:b5,start:b9,platform:Linux, +03000000790000001100000011010000,Sega Saturn,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b4,start:b9,x:b0,y:b3,platform:Linux, +03000000790000002201000011010000,Sega Saturn,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b5,rightshoulder:b6,righttrigger:b7,start:b9,x:b2,y:b3,platform:Linux, +03000000b40400000a01000000010000,Sega Saturn,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Linux, +03000000632500002305000010010000,ShanWan Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000632500002605000010010000,ShanWan Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000632500007505000010010000,ShanWan Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000bc2000000055000010010000,ShanWan Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000341a00000908000010010000,SL6566,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +030000004b2900000430000011000000,Snakebyte Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +050000004c050000cc09000001000000,Sony DualShock 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000666600006706000000010000,Sony PlayStation Adapter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a2,righty:a3,start:b11,x:b3,y:b0,platform:Linux, +030000004c050000da0c000011010000,Sony PlayStation Controller,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux, +03000000d9040000160f000000010000,Sony PlayStation Controller Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux, +03000000ff000000cb01000010010000,Sony PlayStation Portable,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Linux, +030000004c0500003713000011010000,Sony PlayStation Vita,a:b1,b:b2,back:b8,dpdown:b13,dpleft:b15,dpright:b14,dpup:b12,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Linux, +03000000250900000500000000010000,Sony PS2 pad with SmartJoy Adapter,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux, +030000005e0400008e02000073050000,Speedlink Torid,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000020200000,SpeedLink Xeox Pro Analog,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000de2800000112000001000000,Steam Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b10,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux, +03000000de2800000112000011010000,Steam Controller,a:b2,b:b3,back:b10,dpdown:+a5,dpleft:-a4,dpright:+a4,dpup:-a5,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a7,leftx:a0,lefty:a1,paddle1:b15,paddle2:b16,rightshoulder:b7,rightstick:b14,righttrigger:a6,rightx:a2,righty:a3,start:b11,x:b4,y:b5,platform:Linux, +03000000de2800000211000001000000,Steam Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b10,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux, +03000000de2800000211000011010000,Steam Controller,a:b2,b:b3,back:b10,dpdown:b18,dpleft:b19,dpright:b20,dpup:b17,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b16,paddle2:b15,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b5,platform:Linux, +03000000de2800004211000001000000,Steam Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b10,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux, +03000000de2800004211000011010000,Steam Controller,a:b2,b:b3,back:b10,dpdown:b18,dpleft:b19,dpright:b20,dpup:b17,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a7,leftx:a0,lefty:a1,paddle1:b16,paddle2:b15,rightshoulder:b7,righttrigger:a6,rightx:a2,righty:a3,start:b11,x:b4,y:b5,platform:Linux, +03000000de280000fc11000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +05000000de2800000212000001000000,Steam Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b10,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux, +05000000de2800000511000001000000,Steam Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b10,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux, +05000000de2800000611000001000000,Steam Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b10,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux, +03000000de2800000512000010010000,Steam Deck,a:b3,b:b4,back:b11,dpdown:b17,dpleft:b18,dpright:b19,dpup:b16,guide:b13,leftshoulder:b7,leftstick:b14,lefttrigger:a9,leftx:a0,lefty:a1,rightshoulder:b8,rightstick:b15,righttrigger:a8,rightx:a2,righty:a3,start:b12,x:b5,y:b6,platform:Linux, +03000000de2800000512000011010000,Steam Deck,a:b3,b:b4,back:b11,dpdown:b17,dpleft:b18,dpright:b19,dpup:b16,guide:b13,leftshoulder:b7,leftstick:b14,lefttrigger:a9,leftx:a0,lefty:a1,misc1:b2,paddle1:b21,paddle2:b20,paddle3:b23,paddle4:b22,rightshoulder:b8,rightstick:b15,righttrigger:a8,rightx:a2,righty:a3,start:b12,x:b5,y:b6,platform:Linux, +03000000de280000ff11000001000000,Steam Virtual Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +050000004e696d6275732b0000000000,SteelSeries Nimbus Plus,a:b0,b:b1,back:b10,guide:b11,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b12,x:b2,y:b3,platform:Linux, +03000000381000003014000075010000,SteelSeries Stratus Duo,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000381000003114000075010000,SteelSeries Stratus Duo,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +0500000011010000311400001b010000,SteelSeries Stratus Duo,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b32,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000110100001914000009010000,SteelSeries Stratus XL,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000ad1b000038f0000090040000,Street Fighter IV Fightstick TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000003b07000004a1000000010000,Suncom SFX Plus,a:b0,b:b2,back:b7,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b9,righttrigger:b5,start:b8,x:b1,y:b3,platform:Linux, +030000001f08000001e4000010010000,Super Famicom Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Linux, +03000000666600000488000000010000,Super Joy Box 5 Pro,a:b2,b:b1,back:b9,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux, +0300000000f00000f100000000010000,Super RetroPort,a:b1,b:b5,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Linux, +030000008f0e00000d31000010010000,SZMY Power 3 Turbo,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000457500000401000011010000,SZMY Power DS4 Wired Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000457500002211000010010000,SZMY Power Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000008f0e00001431000010010000,SZMY Power PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000e40a00000307000011010000,Taito Egret II Mini Control Panel,a:b4,b:b2,back:b6,guide:b9,leftx:a0,lefty:a1,rightshoulder:b0,righttrigger:b1,start:b7,x:b8,y:b3,platform:Linux, +03000000e40a00000207000011010000,Taito Egret II Mini Controller,a:b4,b:b2,back:b6,guide:b9,leftx:a0,lefty:a1,rightshoulder:b0,righttrigger:b1,start:b7,x:b8,y:b3,platform:Linux, +03000000ba2200000701000001010000,Technology Innovation PS2 Adapter,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a5,righty:a2,start:b9,x:b3,y:b2,platform:Linux, +03000000790000001c18000011010000,TGZ Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000591c00002400000010010000,THEC64 Joystick,a:b0,b:b1,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Linux, +03000000591c00002600000010010000,THEGamepad,a:b2,b:b1,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b3,y:b0,platform:Linux, +030000004f04000015b3000001010000,Thrustmaster Dual Analog 3.2,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux, +030000004f04000015b3000010010000,Thrustmaster Dual Analog 4,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux, +030000004f04000020b3000010010000,Thrustmaster Dual Trigger,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux, +030000004f04000023b3000000010000,Thrustmaster Dual Trigger PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000004f0400000ed0000011010000,Thrustmaster eSwap Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000b50700000399000000010000,Thrustmaster Firestorm Digital 2,a:b2,b:b4,back:b11,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b8,rightstick:b0,righttrigger:b9,start:b1,x:b3,y:b5,platform:Linux, +030000004f04000003b3000010010000,Thrustmaster Firestorm Dual Analog 2,a:b0,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b9,rightx:a2,righty:a3,x:b1,y:b3,platform:Linux, +030000004f04000000b3000010010000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b11,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b1,y:b3,platform:Linux, +030000004f04000004b3000010010000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux, +030000004f04000026b3000002040000,Thrustmaster GP XID,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c6240000025b000002020000,Thrustmaster GPX,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000004f04000008d0000000010000,Thrustmaster Run N Drive PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000004f04000009d0000000010000,Thrustmaster Run N Drive PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000004f04000007d0000000010000,Thrustmaster T Mini,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000004f04000012b3000010010000,Thrustmaster Vibrating Gamepad,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux, +03000000571d00002000000010010000,Tomee SNES Adapter,a:b0,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Linux, +03000000bd12000015d0000010010000,Tomee SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Linux, +03000000d814000007cd000011010000,Toodles 2008 Chimp PC PS3,a:b0,b:b1,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b2,platform:Linux, +030000005e0400008e02000070050000,Torid,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c01100000591000011010000,Torid,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000680a00000300000003000000,TRBot Virtual Joypad,a:b11,b:b12,back:b15,dpdown:b6,dpleft:b3,dpright:b4,dpup:b5,leftshoulder:b17,leftstick:b21,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b22,righttrigger:a2,rightx:a3,righty:a4,start:b16,x:b13,y:b14,platform:Linux, +03000000780300000300000003000000,TRBot Virtual Joypad,a:b11,b:b12,back:b15,dpdown:b6,dpleft:b3,dpright:b4,dpup:b5,leftshoulder:b17,leftstick:b21,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b22,righttrigger:a2,rightx:a3,righty:a4,start:b16,x:b13,y:b14,platform:Linux, +03000000e00d00000300000003000000,TRBot Virtual Joypad,a:b11,b:b12,back:b15,dpdown:b6,dpleft:b3,dpright:b4,dpup:b5,leftshoulder:b17,leftstick:b21,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b22,righttrigger:a2,rightx:a3,righty:a4,start:b16,x:b13,y:b14,platform:Linux, +03000000f00600000300000003000000,TRBot Virtual Joypad,a:b11,b:b12,back:b15,dpdown:b6,dpleft:b3,dpright:b4,dpup:b5,leftshoulder:b17,leftstick:b21,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b22,righttrigger:a2,rightx:a3,righty:a4,start:b16,x:b13,y:b14,platform:Linux, +030000005f140000c501000010010000,Trust Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +06000000f51000000870000003010000,Turtle Beach Recon,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000100800000100000010010000,Twin PS2 Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux, +03000000151900005678000010010000,Uniplay U6,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000100800000300000010010000,USB Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux, +03000000790000000600000007010000,USB gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b3,y:b0,platform:Linux, +03000000790000001100000000010000,USB Gamepad,a:b2,b:b1,back:b8,dpdown:a0,dpleft:a1,dpright:a2,dpup:a4,start:b9,platform:Linux, +03000000790000001a18000011010000,Venom PS4 Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000790000001b18000011010000,Venom PS4 Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00000302000011010000,Victrix Pro Fightstick PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000006f0e00000702000011010000,Victrix Pro Fightstick PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +05000000ac0500003232000001000000,VR Box Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux, +05000000434f4d4d414e440000000000,VX Gaming Command Series,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +0000000058626f782033363020576900,Xbox 360 Controller,a:b0,b:b1,back:b14,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,guide:b7,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Linux, +030000005e0400001907000000010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000010010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000014010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400009102000007010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000a102000000010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000a102000007010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000a102000030060000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00001503000000020000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000000010000,Xbox 360 EasySMX,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000a102000014010000,Xbox 360 Receiver,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +0000000058626f782047616d65706100,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400000202000000010000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux, +030000005e0400008e02000072050000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00001304000000010000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000ffff0000ffff000000010000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux, +030000005e0400000a0b000005040000,Xbox One Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux, +030000005e040000d102000002010000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000ea02000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000ea02000001030000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +050000005e040000e002000003090000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +050000005e040000fd02000003090000,Xbox One Controller,a:b0,b:b1,back:b15,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000fd02000030110000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +060000005e040000dd02000003020000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +050000005e040000e302000002090000,Xbox One Elite,a:b0,b:b1,back:b136,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a6,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000220b000013050000,Xbox One Elite 2 Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000050b000002090000,Xbox One Elite Series 2,a:b0,b:b1,back:b136,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a6,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000005e040000ea02000011050000,Xbox One S Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000ea02000015050000,Xbox One S Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000ea02000017050000,Xbox One S Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +060000005e040000ea0200000b050000,Xbox One S Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +060000005e040000ea0200000d050000,Xbox One S Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +060000005e040000ea02000016050000,Xbox One S Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b000001050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b000005050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b000007050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b000009050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b00000d050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b00000f050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b000011050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b000014050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b000015050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000130b000005050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000130b000001050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000130b000005050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000130b000007050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000130b000009050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000130b000011050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000130b000013050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000130b000015050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000130b000017050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +060000005e040000120b000007050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +060000005e040000120b00000b050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +060000005e040000120b00000d050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +060000005e040000120b00000f050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +050000005e040000130b000022050000,Xbox Series X Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +060000005e040000120b000011050000,Xbox Series X Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +050000005e040000200b000013050000,Xbox Wireless Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000200b000017050000,Xbox Wireless Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000200b000023050000,Xbox Wireless Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000220b000017050000,Xbox Wireless Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000450c00002043000010010000,XEOX SL6556 BK,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +05000000172700004431000029010000,XiaoMi Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b20,leftshoulder:b6,leftstick:b13,lefttrigger:a7,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a6,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Linux, +03000000c0160000e105000001010000,XinMo Dual Arcade,a:b4,b:b3,back:b6,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b9,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b1,y:b0,platform:Linux, +030000005e0400008e02000020010000,XInput Adapter,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000120c0000100e000011010000,Zeroplus P4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000120c0000101e000011010000,Zeroplus P4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000120c0000182e000011010000,Zeroplus PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, + +# Android +38653964633230666463343334313533,8BitDo Adapter,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +36666264316630653965636634386234,8BitDo Adapter 2,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b19,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +38426974446f20417263616465205374,8BitDo Arcade Stick,a:b0,b:b1,back:b15,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b5,leftshoulder:b9,lefttrigger:a4,rightshoulder:b10,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +61393962646434393836356631636132,8BitDo Arcade Stick,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b20,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b19,y:b2,platform:Android, +64323139346131306233636562663738,8BitDo Arcade Stick,a:b0,b:b1,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b19,y:b2,platform:Android, +64643565386136613265663236636564,8BitDo Arcade Stick,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b20,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b19,y:b2,platform:Android, +33313433353539306634656436353432,8BitDo Dogbone,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +38426974446f20446f67626f6e65204d,8BitDo Dogbone,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b6,platform:Android, +34343439373236623466343934376233,8BitDo FC30 Pro,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b28,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b29,righttrigger:b7,start:b5,x:b30,y:b2,platform:Android, +38426974446f204e4743204d6f646b69,8BitDo GameCube,a:b0,b:b2,back:b4,dpdown:b12,dpleft:b13,dpright:b14,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,paddle1:b18,paddle2:b17,rightshoulder:b15,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b1,y:b3,platform:Android, +38426974446f2038426974446f204c69,8BitDo Lite,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +30643332373663313263316637356631,8BitDo Lite 2,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38426974446f204c6974652032000000,8BitDo Lite 2,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +62656331626461363634633735353032,8BitDo Lite 2,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38393936616436383062666232653338,8BitDo Lite SE,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38426974446f204c6974652053450000,8BitDo Lite SE,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +39356430616562366466646636643435,8BitDo Lite SE,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000006500000ffff3f00,8BitDo M30,a:b1,b:b0,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b17,leftshoulder:b9,lefttrigger:a5,rightshoulder:b10,righttrigger:a4,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000051060000ffff3f00,8BitDo M30,a:b1,b:b0,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b17,leftshoulder:b9,lefttrigger:a4,rightshoulder:b10,righttrigger:a5,start:b6,x:b3,y:b2,platform:Android, +32323161363037623637326438643634,8BitDo M30,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftx:a0,lefty:a1,rightshoulder:b9,righttrigger:b10,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +33656266353630643966653238646264,8BitDo M30,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b20,righttrigger:a5,start:b10,x:b19,y:b2,platform:Android, +38426974446f204d3330204d6f646b69,8BitDo M30,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftx:a0,lefty:a1,rightshoulder:b9,righttrigger:b10,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +39366630663062373237616566353437,8BitDo M30,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:b18,start:b6,x:b2,y:b3,platform:Android, +64653533313537373934323436343563,8BitDo M30,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:a4,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b9,righttrigger:b10,start:b6,x:b2,y:b3,platform:Android, +66356438346136366337386437653934,8BitDo M30,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,righttrigger:b10,start:b18,x:b19,y:b2,platform:Android, +66393064393162303732356665666366,8BitDo M30,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:a5,start:b6,x:b2,y:b3,platform:Android, +38426974446f204d6963726f2067616d,8BitDo Micro,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,lefttrigger:a4,leftx:b0,lefty:b1,rightshoulder:b10,righttrigger:a5,rightx:b2,righty:b3,start:b6,x:b3,y:b2,platform:Android, +61653365323561356263373333643266,8BitDo Micro,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,lefttrigger:a4,leftx:b0,lefty:b1,rightshoulder:b10,righttrigger:a5,rightx:b2,righty:b3,start:b6,x:b3,y:b2,platform:Android, +62613137616239666338343866326336,8BitDo Micro,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,lefttrigger:a4,leftx:b0,lefty:b1,rightshoulder:b10,righttrigger:a5,rightx:b2,righty:b3,start:b6,x:b3,y:b2,platform:Android, +33663431326134333366393233616633,8BitDo N30,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b6,platform:Android, +38426974446f204e3330204d6f646b69,8BitDo N30,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b6,platform:Android, +05000000c82d000015900000ffff3f00,8BitDo N30 Pro 2,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000065280000ffff3f00,8BitDo N30 Pro 2,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b17,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38323035343766666239373834336637,8BitDo N64,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:b18,rightx:a2,righty:a3,start:b6,platform:Android, +38426974446f204e3634204d6f646b69,8BitDo N64,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:b18,rightx:a2,righty:a3,start:b6,platform:Android, +32363135613966656338666638666237,8BitDo NEOGEO,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +35363534633333373639386466346631,8BitDo NEOGEO,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +38426974446f204e454f47454f204750,8BitDo NEOGEO,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +39383963623932353561633733306334,8BitDo NEOGEO,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000000220000000900000ffff3f00,8BitDo NES30 Pro,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +050000002038000009000000ffff3f00,8BitDo NES30 Pro,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38313433643131656262306631373166,8BitDo P30,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +38326536643339353865323063616339,8BitDo P30,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +38426974446f2050333020636c617373,8BitDo P30,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +35376664343164386333616535333434,8BitDo Pro 2,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b17,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b18,righttrigger:a5,rightx:a3,start:b10,x:b19,y:b2,platform:Android, +38426974446f2038426974446f205072,8BitDo Pro 2,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38426974446f2050726f203200000000,8BitDo Pro 2,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +61333362366131643730353063616330,8BitDo Pro 2,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +62373739366537363166326238653463,8BitDo Pro 2,a:b1,b:b0,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,x:b3,y:b2,platform:Android, +38386464613034326435626130396565,8BitDo Receiver,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b19,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38426974446f2038426974446f205265,8BitDo Receiver,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b19,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +66303230343038613365623964393766,8BitDo Receiver,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b19,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38426974446f20533330204d6f646b69,8BitDo S30,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:a4,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b9,righttrigger:b10,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +66316462353561376330346462316137,8BitDo S30,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:a4,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b9,righttrigger:b10,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +05000000c82d000000600000ffff3f00,8BitDo SF30 Pro,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b15,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b16,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000000610000ffff3f00,8BitDo SF30 Pro,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38426974646f20534633302050726f00,8BitDo SF30 Pro,a:b1,b:b0,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b16,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b17,platform:Android, +61623334636338643233383735326439,8BitDo SFC30,a:b0,b:b1,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b3,rightshoulder:b31,start:b5,x:b30,y:b2,platform:Android, +05000000c82d000012900000ffff3f00,8BitDo SN30,a:b1,b:b0,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,rightshoulder:b10,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000062280000ffff3f00,8BitDo SN30,a:b1,b:b0,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,rightshoulder:b10,start:b6,x:b3,y:b2,platform:Android, +38316230613931613964356666353839,8BitDo SN30,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38426974446f20534e3330204d6f646b,8BitDo SN30,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +65323563303231646531383162646335,8BitDo SN30,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +35383531346263653330306238353131,8BitDo SN30 PP,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +05000000c82d000001600000ffff3f00,8BitDo SN30 Pro,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000002600000ffff0f00,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b17,leftshoulder:b9,leftstick:b7,lefttrigger:b15,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b16,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +36653638656632326235346264663661,8BitDo SN30 Pro Plus,a:b0,b:b1,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b19,y:b2,platform:Android, +38303232393133383836366330346462,8BitDo SN30 Pro Plus,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b17,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b18,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b19,y:b2,platform:Android, +38346630346135363335366265656666,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38426974446f20534e33302050726f2b,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b19,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +536f6e7920436f6d707574657220456e,8BitDo SN30 Pro Plus,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +66306331643531333230306437353936,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +050000002028000009000000ffff3f00,8BitDo SNES30,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +050000003512000020ab000000780f00,8BitDo SNES30,a:b21,b:b20,back:b30,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b26,rightshoulder:b27,start:b31,x:b24,y:b23,platform:Android, +33666663316164653937326237613331,8BitDo Zero,a:b0,b:b1,back:b15,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,rightshoulder:b10,start:b6,x:b2,y:b3,platform:Android, +38426974646f205a65726f2047616d65,8BitDo Zero,a:b0,b:b1,back:b15,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,rightshoulder:b10,start:b6,x:b2,y:b3,platform:Android, +05000000c82d000018900000ffff0f00,8BitDo Zero 2,a:b1,b:b0,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,rightshoulder:b10,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000030320000ffff0f00,8BitDo Zero 2,a:b1,b:b0,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,rightshoulder:b10,start:b6,x:b3,y:b2,platform:Android, +33663434393362303033616630346337,8BitDo Zero 2,a:b0,b:b1,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftx:a0,lefty:a1,rightshoulder:b20,start:b18,x:b19,y:b2,platform:Android, +34656330626361666438323266633963,8BitDo Zero 2,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b20,start:b10,x:b19,y:b2,platform:Android, +63396666386564393334393236386630,8BitDo Zero 2,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,start:b6,x:b3,y:b2,platform:Android, +63633435623263373466343461646430,8BitDo Zero 2,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,start:b6,x:b2,y:b3,platform:Android, +32333634613735616163326165323731,Amazon Luna Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,x:b2,y:b3,platform:Android, +4c696e757820342e31392e3137322077,Anbernic Handheld,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a4,start:b6,x:b2,y:b3,platform:Android, +417374726f2063697479206d696e6920,Astro City Mini,a:b23,b:b22,back:b29,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,rightshoulder:b25,righttrigger:b26,start:b30,x:b24,y:b21,platform:Android, +35643263313264386134376362363435,Atari VCS Classic Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,start:b6,platform:Android, +32353831643566306563643065356239,Atari VCS Modern Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +4f64696e20436f6e74726f6c6c657200,AYN Odin,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b14,dpright:b13,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:+a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:+a4,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +32303165626138343962363666346165,Brook Mars PS4 Controller,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b0,y:b2,platform:Android, +38383337343564366131323064613561,Brook Mars PS4 Controller,a:b1,b:b19,back:b17,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b0,y:b2,platform:Android, +34313430343161653665353737323365,Elecom JC-W01U,a:b23,b:b24,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b25,lefttrigger:b27,leftx:a0,lefty:a1,rightshoulder:b26,righttrigger:b28,rightx:a2,righty:a3,start:b30,x:b21,y:b22,platform:Android, +4875694a6961204a432d573031550000,Elecom JC-W01U,a:b23,b:b24,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b25,lefttrigger:b27,leftx:a0,lefty:a1,rightshoulder:b26,righttrigger:b28,rightx:a2,righty:a3,start:b30,x:b21,y:b22,platform:Android, +30363230653635633863366338623265,Evo VR,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftx:a0,lefty:a1,x:b2,y:b3,platform:Android, +05000000b404000011240000dfff3f00,Flydigi Vader 2,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,paddle1:b17,paddle2:b18,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +05000000bc20000000550000ffff3f00,GameSir G3w,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +34323662653333636330306631326233,Google Nexus,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +35383633353935396534393230616564,Google Stadia Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +476f6f676c65204c4c43205374616469,Google Stadia Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +5374616469614e3848532d6532633400,Google Stadia Controller,a:b0,b:b1,back:b15,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +05000000d6020000e5890000dfff3f00,GPD XD Plus,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Android, +05000000d6020000e5890000dfff3f80,GPD XD Plus,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a3,rightx:a4,righty:a5,start:b6,x:b2,y:b3,platform:Android, +66633030656131663837396562323935,Hori Battle,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Android, +35623466343433653739346434636330,Hori Fighting Commander 3 Pro,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b0,y:b2,platform:Android, +484f524920434f2e2c4c54442e203130,Hori Fighting Commander 3 Pro,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b20,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b3,righttrigger:b9,rightx:a2,righty:a3,start:b18,x:b0,y:b2,platform:Android, +484f524920434f2e2c4c544420205041,Hori Gem Pad 3,a:b1,b:b17,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b4,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b16,x:b0,y:b2,platform:Android, +65656436646661313232656661616130,Hori PC Engine Mini Controller,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,start:b18,platform:Android, +31303433326562636431653534636633,Hori Real Arcade Pro 3,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b0,y:b2,platform:Android, +32656664353964393561366362333636,Hori Switch Split Pad Pro,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Android, +30306539356238653637313730656134,HORIPAD Switch Pro Controller,a:b0,b:b1,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b19,y:b2,platform:Android, +48797065726b696e2050616400000000,Hyperkin Admiral N64 Controller,+rightx:b6,+righty:b7,-rightx:b17,-righty:b5,a:b1,b:b0,leftshoulder:b3,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b20,start:b18,platform:Android, +62333331353131353034386136626636,Hyperkin Admiral N64 Controller,+rightx:b6,+righty:b7,-rightx:b17,-righty:b5,a:b1,b:b0,leftshoulder:b3,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b20,start:b18,platform:Android, +31306635363562663834633739396333,Hyperkin N64 Adapter,a:b1,b:b19,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightx:a2,righty:a3,start:b18,platform:Android, +5368616e57616e202020202048797065,Hyperkin N64 Adapter,a:b1,b:b19,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightx:a2,righty:a3,start:b18,platform:Android, +0500000083050000602000000ffe0000,iBuffalo SNES Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b15,rightshoulder:b16,start:b10,x:b2,y:b3,platform:Android, +5553422c322d6178697320382d627574,iBuffalo Super Famicom Controller,a:b1,b:b0,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b17,rightshoulder:b18,start:b10,x:b3,y:b2,platform:Android, +64306137363261396266353433303531,InterAct GoPad,a:b24,b:b25,leftshoulder:b23,lefttrigger:b27,leftx:a0,lefty:a1,rightshoulder:b26,righttrigger:b28,x:b21,y:b22,platform:Android, +532e542e442e20496e74657261637420,InterAct HammerHead FX,a:b23,b:b24,back:b30,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b26,leftstick:b22,lefttrigger:b28,leftx:a0,lefty:a1,rightshoulder:b27,rightstick:b25,righttrigger:b29,rightx:a2,righty:a3,start:b31,x:b20,y:b21,platform:Android, +65346535636333663931613264643164,Joy-Con,a:b21,b:b22,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b25,lefttrigger:b27,leftx:a0,lefty:a1,rightshoulder:b26,righttrigger:b28,rightx:a2,righty:a3,start:b30,x:b23,y:b24,platform:Android, +33346566643039343630376565326335,Joy-Con (L),a:b0,b:b1,back:b7,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,rightshoulder:b20,start:b17,x:b19,y:b2,platform:Android, +35313531613435623366313835326238,Joy-Con (L),a:b0,b:b1,back:b7,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,rightshoulder:b20,start:b17,x:b19,y:b2,platform:Android, +4a6f792d436f6e20284c290000000000,Joy-Con (L),a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,rightshoulder:b20,start:b17,x:b19,y:b2,platform:Android, +38383665633039363066383334653465,Joy-Con (R),a:b0,b:b1,back:b5,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,rightshoulder:b20,start:b18,x:b19,y:b2,platform:Android, +39363561613936303237333537383931,Joy-Con (R),a:b0,b:b1,back:b5,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,rightshoulder:b20,start:b18,x:b19,y:b2,platform:Android, +39373064396565646338333134303131,Joy-Con (R),a:b1,b:b2,back:b5,leftstick:b8,leftx:a1~,lefty:a0,start:b6,x:b0,y:b3,platform:Android, +4a6f792d436f6e202852290000000000,Joy-Con (R),a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,rightshoulder:b20,start:b18,x:b19,y:b2,platform:Android, +39656136363638323036303865326464,JYS Aapter,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b0,y:b2,platform:Android, +63316564383539663166353034616434,JYS Adapter,a:b1,b:b3,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b0,y:b2,platform:Android, +64623163333561643339623235373232,Logitech F310,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +35623364393661626231343866613337,Logitech F710,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +4c6f6769746563682047616d65706164,Logitech F710,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +64396331333230326333313330336533,Logitech F710,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +39653365373864633935383236363438,Logitech G Cloud,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +416d617a6f6e2047616d6520436f6e74,Luna Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Android, +4c756e612047616d6570616400000000,Luna Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +30363066623539323534363639323363,Magic NS,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b0,y:b2,platform:Android, +31353762393935386662336365626334,Magic NS,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b0,y:b2,platform:Android, +39623565346366623931666633323530,Magic NS,a:b1,b:b3,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b0,y:b2,platform:Android, +6d6179666c617368206c696d69746564,Mayflash GameCube Adapter,a:b22,b:b21,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,lefttrigger:b25,leftx:a0,lefty:a1,rightshoulder:b28,righttrigger:b26,rightx:a5,righty:a2,start:b30,x:b23,y:b24,platform:Android, +436f6e74726f6c6c6572000000000000,Mayflash N64 Adapter,a:b1,b:b19,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightx:a2,righty:a3,start:b18,platform:Android, +65666330633838383061313633326461,Mayflash N64 Adapter,a:b1,b:b19,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightx:a2,righty:a3,start:b18,platform:Android, +37316565396364386635383230353365,Mayflash Saturn Adapter,a:b21,b:b22,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b26,lefttrigger:b28,rightshoulder:b27,righttrigger:b23,start:b30,x:b24,y:b25,platform:Android, +4875694a696120205553422047616d65,Mayflash Saturn Adapter,a:b21,b:b22,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b26,lefttrigger:b28,rightshoulder:b27,righttrigger:b23,start:b30,x:b24,y:b25,platform:Android, +535a4d792d706f776572204c54442043,Mayflash Wii Classic Adapter,a:b23,b:b22,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b31,leftshoulder:b27,lefttrigger:b25,leftx:a0,lefty:a1,rightshoulder:b28,righttrigger:b26,rightx:a2,righty:a3,start:b30,x:b24,y:b21,platform:Android, +30653962643666303631376438373532,Mayflash Wii DolphinBar,a:b23,b:b24,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b0,leftshoulder:b25,lefttrigger:b27,leftx:a0,lefty:a1,rightshoulder:b26,righttrigger:b28,rightx:a2,righty:a3,start:b30,x:b21,y:b22,platform:Android, +39346131396233376535393665363161,Mayflash Wii U Pro Adapter,a:b22,b:b23,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b25,leftstick:b31,lefttrigger:b27,rightshoulder:b26,rightstick:b0,righttrigger:b28,rightx:a0,righty:a1,start:b30,x:b21,y:b24,platform:Android, +31323564663862633234646330373138,Mega Drive,a:b23,b:b22,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,rightshoulder:b25,righttrigger:b26,start:b30,x:b24,y:b21,platform:Android, +37333564393261653735306132613061,Mega Drive,a:b21,b:b22,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b26,lefttrigger:b28,rightshoulder:b27,righttrigger:b23,start:b30,x:b24,y:b25,platform:Android, +64363363336633363736393038313464,Mega Drive,a:b1,b:b0,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,start:b9,x:b2,y:b3,platform:Android, +33323763323132376537376266393366,Microsoft Dual Strike,a:b24,b:b23,back:b25,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b27,lefttrigger:b29,rightshoulder:b78,rightx:a0,righty:a1~,start:b26,x:b22,y:b21,platform:Android, +30306461613834333439303734316539,Microsoft SideWinder Pro,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b20,lefttrigger:b9,rightshoulder:b19,righttrigger:b10,start:b17,x:b2,y:b3,platform:Android, +32386235353630393033393135613831,Microsoft Xbox Series Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +4d4f42415041442050726f2d48440000,Mobapad Chitu HD,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +4d4f435554452d303533582d4d35312d,Mocute 053X,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +33343361376163623438613466616531,Mocute M053,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +39306635663061636563316166303966,Mocute M053,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +7573622067616d657061642020202020,NEXT SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,righttrigger:b6,start:b9,x:b3,y:b0,platform:Android, +050000007e05000009200000ffff0f00,Nintendo Switch Pro Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,leftstick:b4,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b16,x:b17,y:b2,platform:Android, +31316661666466633938376335383661,Nintendo Switch Pro Controller,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,misc1:b5,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,start:b6,x:b3,y:b2,platform:Android, +34323437396534643531326161633738,Nintendo Switch Pro Controller,a:b0,b:b1,back:b15,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,leftstick:b7,lefttrigger:b17,misc1:b5,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +50726f20436f6e74726f6c6c65720000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b2,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b10,rightx:a2,righty:a3,start:b18,y:b3,platform:Android, +36326533353166323965623661303933,NSO N64 Controller,+rightx:b17,+righty:b10,-rightx:b2,-righty:b19,a:b1,b:b0,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,misc1:b7,rightshoulder:b20,righttrigger:b15,start:b18,platform:Android, +4e363420436f6e74726f6c6c65720000,NSO N64 Controller,+rightx:b17,+righty:b10,-rightx:b2,-righty:b19,a:b1,b:b0,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,misc1:b7,rightshoulder:b20,righttrigger:b15,start:b18,platform:Android, +534e455320436f6e74726f6c6c657200,NSO SNES Controller,a:b0,b:b1,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,rightshoulder:b20,start:b18,x:b19,y:b2,platform:Android, +64623863346133633561626136366634,NSO SNES Controller,a:b0,b:b1,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,rightshoulder:b20,start:b18,x:b19,y:b2,platform:Android, +050000005509000003720000cf7f3f00,NVIDIA Controller,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005509000010720000ffff3f00,NVIDIA Controller,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005509000014720000df7f3f00,NVIDIA Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Android, +050000005509000014720000df7f3f80,NVIDIA Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a3,rightx:a4,righty:a5,start:b6,x:b2,y:b3,platform:Android, +37336435666338653565313731303834,NVIDIA Controller,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +4e564944494120436f72706f72617469,NVIDIA Controller,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +61363931656135336130663561616264,NVIDIA Controller,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +39383335313438623439373538343266,OUYA Controller,a:b0,b:b2,dpdown:b18,dpleft:b15,dpright:b16,dpup:b17,leftshoulder:b3,leftstick:b9,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b10,righttrigger:b7,rightx:a3,righty:a4,x:b1,y:b19,platform:Android, +4f5559412047616d6520436f6e74726f,OUYA Controller,a:b0,b:b2,dpdown:b18,dpleft:b15,dpright:b6,dpup:b17,leftshoulder:b3,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b19,platform:Android, +506572666f726d616e63652044657369,PDP PS3 Rock Candy Controller,a:b1,b:b17,back:h0.2,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b4,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b16,x:b0,y:b2,platform:Android, +61653962353232366130326530363061,Pokken,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,lefttrigger:b9,rightshoulder:b20,righttrigger:b10,start:b18,x:b0,y:b2,platform:Android, +32666633663735353234363064386132,PS2,a:b23,b:b22,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b27,lefttrigger:b25,leftx:a0,lefty:a1,rightshoulder:b28,righttrigger:b26,rightx:a3,righty:a2,start:b30,x:b24,y:b21,platform:Android, +050000004c05000068020000dfff3f00,PS3 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +536f6e7920504c415953544154494f4e,PS3 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +61363034663839376638653463633865,PS3 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +66366539656564653432353139356536,PS3 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +66383132326164626636313737373037,PS3 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000004c050000c405000000783f00,PS4 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000004c050000c4050000fffe3f00,PS4 Controller,a:b1,b:b17,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,leftstick:b4,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:+a4,rightx:a2,righty:a5,start:b16,x:b0,y:b2,platform:Android, +050000004c050000c4050000fffe3f80,PS4 Controller,a:b1,b:b17,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,leftstick:b4,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:+a3,rightx:a4,righty:a5,start:b16,x:b0,y:b2,platform:Android, +050000004c050000c4050000ffff3f00,PS4 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000004c050000cc090000fffe3f00,PS4 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000004c050000cc090000ffff3f00,PS4 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +30303839663330346632363232623138,PS4 Controller,a:b1,b:b17,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b0,y:b2,platform:Android, +31326235383662333266633463653332,PS4 Controller,a:b1,b:b16,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:a4,rightx:a2,righty:a5,start:b17,x:b0,y:b2,platform:Android, +31373231336561636235613666323035,PS4 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +31663838336334393132303338353963,PS4 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +34613139376634626133336530386430,PS4 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +35643031303033326130316330353564,PS4 Controller,a:b1,b:b17,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,leftstick:b4,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:+a4,rightx:a2,righty:a5,start:b16,x:b0,y:b2,platform:Android, +37626233336235343937333961353732,PS4 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +37626464343430636562316661643863,PS4 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +38393161636261653636653532386639,PS4 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +63313733393535663339656564343962,PS4 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +63393662363836383439353064663939,PS4 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +65366465656364636137653363376531,PS4 Controller,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b0,y:b2,platform:Android, +66613532303965383534396638613230,PS4 Controller,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a5,start:b18,x:b0,y:b2,platform:Android, +050000004c050000e60c0000fffe3f00,PS5 Controller,a:b1,b:b17,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,leftstick:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b0,y:b2,platform:Android, +050000004c050000e60c0000fffe3f80,PS5 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,leftstick:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:a3,rightx:a4,righty:a5,start:b16,x:b2,y:b17,platform:Android, +050000004c050000e60c0000ffff3f00,PS5 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +32346465346533616263386539323932,PS5 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +32633532643734376632656664383733,PS5 Controller,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a5,start:b18,x:b0,y:b2,platform:Android, +37363764353731323963323639666565,PS5 Controller,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a5,start:b18,x:b0,y:b2,platform:Android, +61303162353165316365336436343139,PS5 Controller,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,misc1:b8,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a5,start:b18,x:b0,y:b2,platform:Android, +64336263393933626535303339616332,Qanba 4RAF,a:b0,b:b1,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b20,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b3,righttrigger:b9,rightx:a2,righty:a3,start:b18,x:b19,y:b2,platform:Android, +36626666353861663864336130363137,Razer Junglecat,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +05000000f8270000bf0b0000ffff3f00,Razer Kishi,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +62653861643333663663383332396665,Razer Kishi,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000003215000005070000ffff3f00,Razer Raiju Mobile,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000003215000007070000ffff3f00,Razer Raiju Mobile,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000003215000000090000bf7f3f00,Razer Serval,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,x:b2,y:b3,platform:Android, +5a6869587520526574726f2042697420,Retro Bit Saturn Controller,a:b21,b:b22,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b25,lefttrigger:b26,rightshoulder:b27,righttrigger:b28,start:b30,x:b23,y:b24,platform:Android, +32417865732031314b6579732047616d,Retro Bit SNES Controller,a:b0,b:b1,back:b15,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,rightshoulder:b10,start:b6,x:b2,y:b3,platform:Android, +36313938306539326233393732613361,Retro Bit SNES Controller,a:b0,b:b1,back:b15,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,rightshoulder:b10,start:b6,x:b2,y:b3,platform:Android, +526574726f466c616720576972656420,Retro Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b17,rightshoulder:b18,start:b10,x:b2,y:b3,platform:Android, +61343739353764363165343237303336,Retro Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b17,lefttrigger:b18,leftx:a0,lefty:a1,start:b10,x:b2,y:b3,platform:Android, +526574726f696420506f636b65742043,Retroid Pocket,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b17,paddle2:b18,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +582d426f7820436f6e74726f6c6c6572,Retroid Pocket,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b17,paddle2:b18,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +64633735616665613536653363336132,Retroid Pocket,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,paddle1:b19,paddle2:b20,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38653130373365613538333235303036,Retroid Pocket 2,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +64363363336633363736393038313463,Retrolink,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,start:b6,platform:Android, +37393234373533633333323633646531,RetroUSB N64 RetroPort,+rightx:b17,+righty:b15,-rightx:b18,-righty:b6,a:b10,b:b9,dpdown:b19,dpleft:b1,dpright:b0,dpup:b2,leftshoulder:b7,lefttrigger:b20,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Android, +5365616c6965436f6d707574696e6720,RetroUSB N64 RetroPort,+rightx:b17,+righty:b15,-rightx:b18,-righty:b6,a:b10,b:b9,dpdown:b19,dpleft:b1,dpright:b0,dpup:b2,leftshoulder:b7,lefttrigger:b20,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Android, +526574726f5553422e636f6d20534e45,RetroUSB SNES RetroPort,a:b1,b:b20,back:b19,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,rightshoulder:b10,start:b2,x:b0,y:b3,platform:Android, +64643037633038386238303966376137,RetroUSB SNES RetroPort,a:b1,b:b20,back:b19,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,rightshoulder:b10,start:b2,x:b0,y:b3,platform:Android, +37656564346533643138636436356230,Rock Candy Switch Controller,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,misc1:b7,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b0,y:b2,platform:Android, +33373336396634316434323337666361,RumblePad 2,a:b22,b:b23,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b25,lefttrigger:b27,leftx:a0,lefty:a1,rightshoulder:b26,righttrigger:b28,rightx:a2,righty:a3,start:b30,x:b21,y:b24,platform:Android, +36363537303435333566386638366333,Samsung EIGP20,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +53616d73756e672047616d6520506164,Samsung EIGP20,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +66386565396238363534313863353065,Sanwa PlayOnline Mobile,a:b21,b:b22,back:b23,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b24,platform:Android, +32383165316333383766336338373261,Saturn,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:a4,righttrigger:a5,x:b2,y:b3,platform:Android, +38613865396530353338373763623431,Saturn,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,lefttrigger:b10,rightshoulder:b20,righttrigger:b19,start:b17,x:b2,y:b3,platform:Android, +61316232336262373631343137633631,Saturn,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:a4,righttrigger:a5,x:b2,y:b3,platform:Android, +30353835333338613130373363646337,SG H510,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b17,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b18,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b19,y:b2,platform:Android, +66386262366536653765333235343634,SG H510,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,x:b2,y:b3,platform:Android, +66633132393363353531373465633064,SG H510,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b17,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b18,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b19,y:b2,platform:Android, +62653761636366393366613135366338,SN30 PP,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38376662666661636265313264613039,SNES,a:b0,b:b1,back:b9,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b3,rightshoulder:b20,start:b10,x:b19,y:b2,platform:Android, +5346432f555342205061640000000000,SNES Adapter,a:b0,b:b1,back:b9,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b3,rightshoulder:b20,start:b10,x:b19,y:b2,platform:Android, +5553422047616d657061642000000000,SNES Controller,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,rightshoulder:b10,start:b6,x:b3,y:b2,platform:Android, +62653335326261303663356263626339,Sony PlayStation Classic Controller,a:b19,b:b1,back:b17,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,lefttrigger:b3,rightshoulder:b10,righttrigger:b20,start:b18,x:b2,y:b0,platform:Android, +536f6e7920496e746572616374697665,Sony PlayStation Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,misc1:b8,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +576972656c65737320436f6e74726f6c,Sony PlayStation Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +63303964303462366136616266653561,Sony PSP,a:b21,b:b22,back:b27,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b25,leftx:a0,lefty:a1,rightshoulder:b26,start:b28,x:b23,y:b24,platform:Android, +63376637643462343766333462383235,Sony Vita,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftx:a0,lefty:a1,rightshoulder:b20,rightx:a3,righty:a4,start:b18,x:b0,y:b2,platform:Android, +05000000de2800000511000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Android, +05000000de2800000611000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Android, +0500000011010000201400000f7e0f00,SteelSeries Nimbus,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,righttrigger:b10,rightx:a2,righty:a3,x:b19,y:b2,platform:Android, +35306436396437373135383665646464,SteelSeries Nimbus Plus,a:b0,b:b1,leftshoulder:b3,leftstick:b17,lefttrigger:b9,leftx:a0,rightshoulder:b20,rightstick:b18,righttrigger:b10,rightx:a2,x:b19,y:b2,platform:Android, +33313930373536613937326534303931,Taito Egret II Mini Control Panel,a:b25,b:b23,back:b27,guide:b30,leftx:a0,lefty:a1,rightshoulder:b21,righttrigger:b22,start:b28,x:b29,y:b24,platform:Android, +54475a20436f6e74726f6c6c65720000,TGZ Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +62363434353532386238336663643836,TGZ Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +37323236633763666465316365313236,THEC64 Joystick,a:b21,b:b22,back:b27,leftshoulder:b25,leftx:a0,lefty:a1,rightshoulder:b26,start:b27,x:b23,y:b24,platform:Android, +38346162326232346533316164363336,THEGamepad,a:b23,b:b22,back:b27,leftshoulder:b25,leftx:a0,lefty:a1,rightshoulder:b26,start:b28,x:b24,y:b21,platform:Android, +050000004f0400000ed00000fffe3f00,Thrustmaster eSwap Pro Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +5477696e20555342204a6f7973746963,Twin Joystick,a:b22,b:b21,back:b28,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b26,leftstick:b30,lefttrigger:b24,leftx:a0,lefty:a1,rightshoulder:b27,rightstick:b31,righttrigger:b25,rightx:a3,righty:a2,start:b29,x:b23,y:b20,platform:Android, +30623739343039643830333266346439,Valve Steam Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,leftx:a0,lefty:a1,paddle1:b24,paddle2:b23,rightshoulder:b10,rightstick:b8,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +31643365666432386133346639383937,Valve Steam Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,leftx:a0,lefty:a1,paddle1:b24,paddle2:b23,rightshoulder:b10,rightstick:b8,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +30386438313564306161393537333663,Wii Classic Adapter,a:b23,b:b22,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b27,lefttrigger:b25,leftx:a0,lefty:a1,rightshoulder:b28,righttrigger:b26,rightx:a2,righty:a3,start:b30,x:b24,y:b21,platform:Android, +33333034646336346339646538643633,Wii Classic Adapter,a:b23,b:b22,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b27,lefttrigger:b25,leftx:a0,lefty:a1,rightshoulder:b28,righttrigger:b26,rightx:a2,righty:a3,start:b30,x:b24,y:b21,platform:Android, +050000005e0400008e02000000783f00,Xbox 360 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +30396232393162346330326334636566,Xbox 360 Controller,a:b0,b:b1,back:b4,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +38313038323730383864666463383533,Xbox 360 Controller,a:b0,b:b1,back:b4,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +58626f782033363020576972656c6573,Xbox 360 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +65353331386662343338643939643636,Xbox 360 Controller,a:b0,b:b1,back:b4,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +65613532386633373963616462363038,Xbox 360 Controller,a:b0,b:b1,back:b4,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +47656e6572696320582d426f78207061,Xbox Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +4d6963726f736f667420582d426f7820,Xbox Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +64633436313965656664373634323364,Xbox Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b19,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e04000091020000ff073f00,Xbox One Controller,a:b0,b:b1,back:b4,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Android, +050000005e04000091020000ff073f80,Xbox One Controller,a:b0,b:b1,back:b4,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e040000e00200000ffe3f00,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b16,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b17,y:b2,platform:Android, +050000005e040000e00200000ffe3f80,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b16,righttrigger:a5,rightx:a2,righty:a3,start:b10,x:b17,y:b2,platform:Android, +050000005e040000e0020000ffff3f00,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b4,leftshoulder:b3,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b17,y:b2,platform:Android, +050000005e040000e0020000ffff3f80,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b4,leftshoulder:b3,leftstick:b8,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b7,righttrigger:a5,rightx:a2,righty:a3,start:b10,x:b17,y:b2,platform:Android, +050000005e040000fd020000ffff3f00,Xbox One Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +33356661323266333733373865656366,Xbox One Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +34356136633366613530316338376136,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b3,leftstick:b15,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b16,righttrigger:a5,rightx:a3,righty:a4,x:b17,y:b2,platform:Android, +35623965373264386238353433656138,Xbox One Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +36616131643361333337396261666433,Xbox One Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +58626f7820576972656c65737320436f,Xbox One Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +65316262316265373335666131623538,Xbox One Controller,a:b0,b:b1,back:b15,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e040000000b000000783f00,Xbox One Elite 2 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Android, +050000005e040000000b000000783f80,Xbox One Elite 2 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e040000050b0000ffff3f00,Xbox One Elite 2 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a6,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e040000e002000000783f00,Xbox One S Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e040000ea02000000783f00,Xbox One S Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e040000fd020000ff7f3f00,Xbox One S Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e040000120b000000783f00,Xbox Series Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Android, +050000005e040000120b000000783f80,Xbox Series Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e040000130b0000ffff3f00,Xbox Series Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +65633038363832353634653836396239,Xbox Series Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000001727000044310000ffff3f00,XiaoMi Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a7,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a6,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Android, + +# iOS +05000000ac0500000100000000006d01,*,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a5,rightx:a3,righty:a4,x:b2,y:b3,platform:iOS, +05000000ac050000010000004f066d01,*,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a5,rightx:a3,righty:a4,x:b2,y:b3,platform:iOS, +05000000ac05000001000000cf076d01,*,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b2,y:b3,platform:iOS, +05000000ac05000001000000df076d01,*,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:iOS, +05000000ac05000001000000ff076d01,*,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:iOS, +05000000ac0500000200000000006d02,*,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,rightshoulder:b5,x:b2,y:b3,platform:iOS, +05000000ac050000020000004f066d02,*,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,rightshoulder:b5,x:b2,y:b3,platform:iOS, +05000000ac05000004000000a8986d04,8BitDo Micro,a:b1,b:b0,back:b4,dpdown:b7,dpleft:b8,dpright:b9,dpup:b10,guide:b2,leftshoulder:b11,lefttrigger:b12,rightshoulder:b13,righttrigger:b14,start:b3,x:b6,y:b5,platform:iOS, +05000000ac05000004000000fd216d04,8BitDo Pro 2,a:b3,b:b2,back:b6,dpdown:b9,dpleft:b10,dpright:b11,dpup:b12,guide:b4,leftshoulder:b13,leftstick:b14,lefttrigger:+a2,leftx:a0,lefty:a1~,paddle1:b1,paddle2:b0,rightshoulder:b16,rightstick:b17,righttrigger:+a5,rightx:a3,righty:a4~,start:b5,x:b8,y:b7,platform:iOS, +05000000ac05000004000000209f6d04,8Bitdo SN30 Pro,a:b1,b:b0,back:b4,dpdown:b7,dpleft:b8,dpright:b9,dpup:b10,guide:b2,leftshoulder:b11,leftstick:b12,lefttrigger:b13,leftx:a0,lefty:a1~,rightshoulder:b14,rightstick:b15,righttrigger:b16,rightx:a2,righty:a3~,start:b3,x:b6,y:b5,platform:iOS, +05000000ac050000040000003b8a6d04,8BitDo SN30 Pro+,a:b1,b:b0,back:b4,dpdown:b7,dpleft:b8,dpright:b9,dpup:b10,guide:b2,leftshoulder:b11,leftstick:b12,lefttrigger:b13,leftx:a0,lefty:a1~,rightshoulder:b14,rightstick:b15,righttrigger:b16,rightx:a2,righty:a3~,start:b3,x:b6,y:b5,platform:iOS, +050000008a35000003010000ff070000,Backbone One,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:iOS, +050000008a35000004010000ff070000,Backbone One,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:iOS, +4d466947616d65706164010000000000,MFi Extended Gamepad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:iOS, +4d466947616d65706164020000000000,MFi Gamepad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,rightshoulder:b5,start:b6,x:b2,y:b3,platform:iOS, +050000007e050000062000000f060000,Nintendo Switch Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b2,leftshoulder:b4,rightshoulder:b5,x:b1,y:b3,platform:iOS, +050000007e050000062000004f060000,Nintendo Switch Joy-Con (L),+leftx:h0.1,+lefty:h0.2,-leftx:h0.4,-lefty:h0.8,dpdown:b2,dpleft:b0,dpright:b3,dpup:b1,leftshoulder:b4,misc1:b6,rightshoulder:b5,platform:iOS, +050000007e05000008200000df070000,Nintendo Switch Joy-Con (L/R),a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:iOS, +050000007e0500000e200000df070000,Nintendo Switch Joy-Con (L/R),a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:iOS, +050000007e050000072000000f060000,Nintendo Switch Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b2,leftshoulder:b4,rightshoulder:b5,x:b1,y:b3,platform:iOS, +050000007e050000072000004f060000,Nintendo Switch Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b2,guide:b6,leftshoulder:b4,rightshoulder:b5,x:b1,y:b3,platform:iOS, +050000007e05000009200000df870000,Nintendo Switch Pro Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b10,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:iOS, +050000007e05000009200000ff870000,Nintendo Switch Pro Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b3,y:b2,platform:iOS, +050000004c050000cc090000df070000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:iOS, +050000004c050000cc090000df870001,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:iOS, +050000004c050000cc090000ff070000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:iOS, +050000004c050000cc090000ff870001,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,touchpad:b11,x:b2,y:b3,platform:iOS, +050000004c050000cc090000ff876d01,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:iOS, +050000004c050000e60c0000df870000,PS5 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,touchpad:b10,x:b2,y:b3,platform:iOS, +050000004c050000e60c0000ff870000,PS5 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,touchpad:b11,x:b2,y:b3,platform:iOS, +05000000ac0500000300000000006d03,Remote,a:b0,b:b2,leftx:a0,lefty:a1,platform:iOS, +05000000ac0500000300000043006d03,Remote,a:b0,b:b2,leftx:a0,lefty:a1,platform:iOS, +05000000de2800000511000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:iOS, +05000000de2800000611000001000000,Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:iOS, +050000005e040000050b0000df070001,Xbox Elite Wireless Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b10,paddle2:b12,paddle3:b11,paddle4:b13,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:iOS, +050000005e040000050b0000ff070001,Xbox Elite Wireless Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b13,paddle3:b12,paddle4:b14,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:iOS, +050000005e040000130b0000df870001,Xbox Series X Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b10,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:iOS, +050000005e040000130b0000ff870001,Xbox Series X Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:iOS, +050000005e040000e0020000df070000,Xbox Wireless Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:iOS, +050000005e040000e0020000ff070000,Xbox Wireless Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:iOS, diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/ChJees/SkillChallenge1.map b/bios/Game Engines/Hurrican/hurrican/data/levels/ChJees/SkillChallenge1.map new file mode 100644 index 00000000..9cdedcc5 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/ChJees/SkillChallenge1.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/ChJees/SkillChallenge2.map b/bios/Game Engines/Hurrican/hurrican/data/levels/ChJees/SkillChallenge2.map new file mode 100644 index 00000000..6292ebce Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/ChJees/SkillChallenge2.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/ChJees/levellist.dat b/bios/Game Engines/Hurrican/hurrican/data/levels/ChJees/levellist.dat new file mode 100644 index 00000000..cc425fbb --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/levels/ChJees/levellist.dat @@ -0,0 +1,2 @@ +SkillChallenge1.map +SkillChallenge2.map \ No newline at end of file diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/back_cave.png b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/back_cave.png new file mode 100644 index 00000000..5fd645ae Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/back_cave.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/clouds1.png b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/clouds1.png new file mode 100644 index 00000000..d40fb0f2 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/clouds1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/front_cave.png b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/front_cave.png new file mode 100644 index 00000000..d8f0d0d9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/front_cave.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/hud.png b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/hud.png new file mode 100644 index 00000000..d9cafc31 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/hud.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/hudenergy.png b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/hudenergy.png new file mode 100644 index 00000000..f161c2df Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/hudenergy.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/hudrad.png b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/hudrad.png new file mode 100644 index 00000000..b03bc2e7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/hudrad.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/hurrican-logo.png b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/hurrican-logo.png new file mode 100644 index 00000000..298aa289 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/hurrican-logo.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/hurrican_rund.png b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/hurrican_rund.png new file mode 100644 index 00000000..2b9f0089 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/hurrican_rund.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/l1.map b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/l1.map new file mode 100644 index 00000000..52ed3319 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/l1.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/levellist.dat b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/levellist.dat new file mode 100644 index 00000000..0939c40a --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/levellist.dat @@ -0,0 +1 @@ +l1.map \ No newline at end of file diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/s_genocide.png b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/s_genocide.png new file mode 100644 index 00000000..126b5681 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/s_genocide.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/static_blue.png b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/static_blue.png new file mode 100644 index 00000000..e05c0542 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Genocide/static_blue.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Second_Empire/clipboard b/bios/Game Engines/Hurrican/hurrican/data/levels/Second_Empire/clipboard new file mode 100644 index 00000000..b2bd2e65 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Second_Empire/clipboard differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Second_Empire/levellist.dat b/bios/Game Engines/Hurrican/hurrican/data/levels/Second_Empire/levellist.dat new file mode 100644 index 00000000..d68b7ccf --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/levels/Second_Empire/levellist.dat @@ -0,0 +1,4 @@ +world_01a.map +world_01b.map +world_03.map +world_04.map \ No newline at end of file diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Second_Empire/world_01a.map b/bios/Game Engines/Hurrican/hurrican/data/levels/Second_Empire/world_01a.map new file mode 100644 index 00000000..54e7e88a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Second_Empire/world_01a.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Second_Empire/world_01b.map b/bios/Game Engines/Hurrican/hurrican/data/levels/Second_Empire/world_01b.map new file mode 100644 index 00000000..52829a35 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Second_Empire/world_01b.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Second_Empire/world_03.map b/bios/Game Engines/Hurrican/hurrican/data/levels/Second_Empire/world_03.map new file mode 100644 index 00000000..4e3a6830 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Second_Empire/world_03.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Second_Empire/world_04.map b/bios/Game Engines/Hurrican/hurrican/data/levels/Second_Empire/world_04.map new file mode 100644 index 00000000..e52175aa Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Second_Empire/world_04.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/Bonus1.map b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/Bonus1.map new file mode 100644 index 00000000..a02adb61 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/Bonus1.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/Bonus2.map b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/Bonus2.map new file mode 100644 index 00000000..1f0b58a5 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/Bonus2.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/Bonus3.map b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/Bonus3.map new file mode 100644 index 00000000..df4c23f2 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/Bonus3.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/Final1.map b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/Final1.map new file mode 100644 index 00000000..97b6eb71 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/Final1.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/SecretP1.map b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/SecretP1.map new file mode 100644 index 00000000..b78e27e7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/SecretP1.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/SpeedLev.map b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/SpeedLev.map new file mode 100644 index 00000000..3018cca0 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/SpeedLev.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/SpeedLev2.map b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/SpeedLev2.map new file mode 100644 index 00000000..7a80c18d Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/SpeedLev2.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/ambient_wasserfall.wav b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/ambient_wasserfall.wav new file mode 100644 index 00000000..b123d86f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/ambient_wasserfall.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/hurrican-logo.png b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/hurrican-logo.png new file mode 100644 index 00000000..e1fb4892 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/hurrican-logo.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/hurrican_rund.png b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/hurrican_rund.png new file mode 100644 index 00000000..bbb4b55e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/hurrican_rund.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/levellist.dat b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/levellist.dat new file mode 100644 index 00000000..449610f1 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/levellist.dat @@ -0,0 +1,7 @@ +SecretP1.map +Bonus1.map +SpeedLev.map +SpeedLev2.map +Bonus2.map +Final1.map +Bonus3.map \ No newline at end of file diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_Jungle.png b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_Jungle.png new file mode 100644 index 00000000..0081ea74 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_Jungle.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_hurrigo.png b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_hurrigo.png new file mode 100644 index 00000000..88dd20b3 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_hurrigo.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_lemms1.png b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_lemms1.png new file mode 100644 index 00000000..6f699757 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_lemms1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_losers.png b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_losers.png new file mode 100644 index 00000000..5381a4eb Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_losers.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_metroids.png b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_metroids.png new file mode 100644 index 00000000..03115452 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_metroids.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_saship1.png b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_saship1.png new file mode 100644 index 00000000..1142841e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_saship1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_saship2.png b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_saship2.png new file mode 100644 index 00000000..e8beaef0 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_saship2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_schrott1.png b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_schrott1.png new file mode 100644 index 00000000..d2e90faf Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_schrott1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_snow2.png b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_snow2.png new file mode 100644 index 00000000..9183f56f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_snow2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_tetr.png b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_tetr.png new file mode 100644 index 00000000..296486a8 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_tetr.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_tetris1.png b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_tetris1.png new file mode 100644 index 00000000..93431aeb Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_tetris1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_tetris2.png b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_tetris2.png new file mode 100644 index 00000000..605b6f7b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/SecretPlanet/s_tetris2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Volcano_Temple/Info.txt b/bios/Game Engines/Hurrican/hurrican/data/levels/Volcano_Temple/Info.txt new file mode 100644 index 00000000..f841f3c2 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/levels/Volcano_Temple/Info.txt @@ -0,0 +1,10 @@ +Dies ist meine erste Map für Hurrican, ich hoffe sie gefällt euch! + +Zum Spielen des Levels, den Ordner "levels" einfach in euer Turrican Verzeichnis packen, +Hurrican starten und das Levelpack "Volcano_Temple" auswählen. + +Fehler auf der Map, Verbesserungsvorschläge oder Lob/Kritik könnt ihr an meine +Mailadresse thunderbird980@web.de schicken. + +MfG +Thunderbird \ No newline at end of file diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Volcano_Temple/TB_Volcano_Temple.map b/bios/Game Engines/Hurrican/hurrican/data/levels/Volcano_Temple/TB_Volcano_Temple.map new file mode 100644 index 00000000..0a2eb67b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Volcano_Temple/TB_Volcano_Temple.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Volcano_Temple/levellist.dat b/bios/Game Engines/Hurrican/hurrican/data/levels/Volcano_Temple/levellist.dat new file mode 100644 index 00000000..801eb0ae --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/levels/Volcano_Temple/levellist.dat @@ -0,0 +1 @@ +TB_Volcano_Temple.map \ No newline at end of file diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/Logdatei.txt b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/Logdatei.txt new file mode 100644 index 00000000..3ecabeee --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/Logdatei.txt @@ -0,0 +1,1680 @@ +Bitmap laden : C:\Programme\Hurrican\data/static_jungle.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_jungle.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_jungle.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/Clouds1.bmp erfolgreich ! +s_graues.bmp +s_Jungle2.bmp +s_panel.bmp +s_pflanzen.bmp +s_saeulen.bmp +s_Jungle.png +s_pflanzen.png +s_Jungle3.png +s_pflanzen.png +s_graues.bmp +s_pflanzen3.png +s_technik.bmp +s_pflanzen4.png +Bitmap laden : C:\Programme\Hurrican\data/static_slime.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_spinne.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_spinne.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds_cave.bmp erfolgreich ! +s_panel.bmp +s_kisten.png +s_machine3.bmp +s_traeger.bmp +s_chains.png +s_factory.bmp +s_factory5.bmp +s_rohre.bmp +s_graues.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_flugsack.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_graues.bmp +s_pflanzen.bmp +s_rohre.bmp +s_panel.bmp +s_traeger.bmp +s_chains.png +s_cave.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_slime.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_spinne.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_spinne.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds_cave.bmp erfolgreich ! +s_panel.bmp +s_kisten.png +s_machine3.bmp +s_traeger.bmp +s_chains.png +s_factory.bmp +s_factory5.bmp +s_rohre.bmp +s_graues.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_flugsack.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_graues.bmp +s_pflanzen.bmp +s_rohre.bmp +s_panel.bmp +s_traeger.bmp +s_chains.png +s_cave.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_slime.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_mpde.bmp +s_mpde2.bmp +s_mpde3.bmp +s_mpde5.bmp +s_mpde.bmp +s_blau2.png +s_rohre.bmp +s_factory5.bmp +s_mpde4.png +s_kisten.png +s_pflanzen3.png +s_traeger.bmp +s_chains.png +s_pflanzen2.png +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_slime.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_mpde.bmp +s_mpde2.bmp +s_mpde3.bmp +s_mpde5.bmp +s_mpde4.png +s_mpde5.png +s_mpde6.png +s_dino2.png +s_skull.png +s_traeger.bmp +s_chains.png +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_kisten.png +s_factory5.bmp +s_rohre.bmp +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_cave4.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_weltend1.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_kisten.png +s_factory5.bmp +s_rohre.bmp +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_chains.png +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_weltend1.bmp + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei EndeBitmap laden : C:\Programme\Hurrican\data/static_flugsack.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_graues.bmp +s_pflanzen.bmp +s_rohre.bmp +s_panel.bmp +s_traeger.bmp +s_chains.png +s_cave.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_kisten.png +s_factory5.bmp +s_rohre.bmp +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_chains.png +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_weltend1.bmp + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei EndeBitmap laden : C:\Programme\Hurrican\data/static_sea.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_mpde.bmp +s_mpde2.bmp +s_mpde3.bmp +s_mpde5.bmp +s_mpde.bmp +s_blau2.png +s_rohre.bmp +s_factory5.bmp +s_mpde4.png +s_arrow.bmp +s_pflanzen3.png +s_traeger.bmp +s_chains.png +s_pflanzen2.png +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_sea.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_mpde.bmp +s_mpde2.bmp +s_mpde3.bmp +s_mpde5.bmp +s_mpde.bmp +s_blau2.png +s_rohre.bmp +s_factory5.bmp +s_mpde4.png +s_arrow.bmp +s_pflanzen3.png +s_traeger.bmp +s_chains.png +s_pflanzen2.png +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_kisten.png +s_factory5.bmp +s_rohre.bmp +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_chains.png +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_weltend1.bmp +Fehler beim Laden von C:\Programme\Hurrican\data/static_aliencave.png ! +Fehler beim Laden von C:\Programme\Hurrican\data/back_aliencave.png ! +Fehler beim Laden von C:\Programme\Hurrican\data/front_aliencave.png ! +Bitmap laden : C:\Programme\Hurrican\data/Clouds1.bmp erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_kisten.png +s_factory5.bmp +s_rohre.bmp +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_chains.png +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_weltend1.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Fehler beim Laden von C:\Programme\Hurrican\data/back_aliencave.png ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/Clouds1.bmp erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei EndeBitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/Clouds1.bmp erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei EndeBitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/Clouds1.bmp erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei EndeBitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/Clouds1.bmp erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +s_graues.bmp + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei EndeBitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/Clouds1.bmp erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +s_graues.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_blue.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/static_cave.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/static_flugsack.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/static_lava.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/static_lila.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/static_planet.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/static_sea.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/static_slime.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/static_blue.bmp erfolgreich ! + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei EndeBitmap laden : C:\Programme\Hurrican\data/static_blue.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +s_graues.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_kisten.png +s_factory5.bmp +s_rohre.bmp +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_chains.png +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_weltend1.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_blue.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +s_graues.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_sea.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_mpde.bmp +s_mpde2.bmp +s_mpde3.bmp +s_mpde5.bmp +s_mpde.bmp +s_blau2.png +s_rohre.bmp +s_factory5.bmp +s_mpde4.png +s_arrow.bmp +s_pflanzen3.png +s_traeger.bmp +s_chains.png +s_pflanzen2.png +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_sea.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_mpde.bmp +s_mpde2.bmp +s_mpde3.bmp +s_mpde5.bmp +s_mpde.bmp +s_blau2.png +s_rohre.bmp +s_factory5.bmp +s_mpde4.png +s_arrow.bmp +s_pflanzen3.png +s_traeger.bmp +s_chains.png +s_pflanzen2.png +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_kisten.png +s_factory5.bmp +s_rohre.bmp +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_chains.png +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_weltend1.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_kisten.png +s_factory5.bmp +s_rohre.bmp +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_chains.png +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_weltend1.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_kisten.png +s_factory5.bmp +s_rohre.bmp +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_chains.png +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_weltend1.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_kisten.png +s_factory5.bmp +s_rohre.bmp +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_chains.png +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_weltend1.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_kisten.png +s_factory5.bmp +s_rohre.bmp +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_chains.png +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_weltend1.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_kisten.png +s_factory5.bmp +s_rohre.bmp +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_cave4.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_weltend1.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_blue.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +s_graues.bmp + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei EndeBitmap laden : C:\Programme\Hurrican\data/static_blue.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +s_graues.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_kisten.png +s_factory5.bmp +s_rohre.bmp +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_chains.png +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_weltend1.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_kisten.png +s_factory5.bmp +s_rohre.bmp +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_cave4.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_weltend1.bmp + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei EndeBitmap laden : C:\Programme\Hurrican\data/static_blue.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +s_graues.bmp + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei Ende +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei EndeBitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei EndeBitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei EndeBitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei EndeBitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei EndeBitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei EndeBitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei EndeBitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_sea.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_mpde.bmp +s_mpde2.bmp +s_mpde3.bmp +s_mpde5.bmp +s_mpde.bmp +s_blau2.png +s_rohre.bmp +s_factory5.bmp +s_mpde4.png +s_arrow.bmp +s_pflanzen3.png +s_traeger.bmp +s_chains.png +s_pflanzen2.png +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_kisten.png +s_factory5.bmp +s_rohre.bmp +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_chains.png +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_weltend1.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_kisten.png +s_factory5.bmp +s_rohre.bmp +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_chains.png +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_weltend1.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_blue.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +s_graues.bmp + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei EndeBitmap laden : C:\Programme\Hurrican\data/static_sea.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_mpde.bmp +s_mpde2.bmp +s_mpde3.bmp +s_mpde5.bmp +s_mpde.bmp +s_blau2.png +s_rohre.bmp +s_factory5.bmp +s_mpde4.png +s_arrow.bmp +s_pflanzen3.png +s_traeger.bmp +s_chains.png +s_pflanzen2.png +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_blue.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +s_graues.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_blue.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +s_graues.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_kisten.png +s_factory5.bmp +s_rohre.bmp +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_chains.png +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_weltend1.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_blue.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +s_graues.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_blue.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +s_graues.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_blue.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +s_graues.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_blue.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +s_graues.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_blue.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +s_graues.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_blue.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +s_graues.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_sea.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_mpde.bmp +s_mpde2.bmp +s_mpde3.bmp +s_mpde5.bmp +s_mpde.bmp +s_blau2.png +s_rohre.bmp +s_factory5.bmp +s_mpde4.png +s_arrow.bmp +s_pflanzen3.png +s_traeger.bmp +s_chains.png +s_pflanzen2.png +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_kisten.png +s_factory5.bmp +s_rohre.bmp +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_chains.png +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_weltend1.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_blue.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +s_graues.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_blue.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +s_graues.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei EndeBitmap laden : C:\Programme\Hurrican\data/static_blue.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_weltend1.bmp +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_chains.png +s_cave4.bmp +s_cave5.bmp +s_graues.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei EndeBitmap laden : C:\Programme\Hurrican\data/static_slime.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_spinne.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_spinne.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds_cave.bmp erfolgreich ! +s_panel.bmp +s_kisten.png +s_machine3.bmp +s_traeger.bmp +s_chains.png +s_factory.bmp +s_factory5.bmp +s_rohre.bmp +s_graues.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_slime.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_spinne.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_spinne.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds_cave.bmp erfolgreich ! +s_panel.bmp +s_kisten.png +s_machine3.bmp +s_traeger.bmp +s_chains.png +s_factory.bmp +s_factory5.bmp +s_rohre.bmp +s_graues.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_jungle.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_jungle.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_jungle.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/Clouds1.bmp erfolgreich ! +s_graues.bmp +s_Jungle2.bmp +s_panel.bmp +s_pflanzen.bmp +s_saeulen.bmp +s_Jungle.png +s_pflanzen.png +s_Jungle3.png +s_pflanzen.png +s_graues.bmp +s_pflanzen3.png +s_technik.bmp +s_pflanzen4.png +Bitmap laden : C:\Programme\Hurrican\data/static_slime.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_spinne.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_spinne.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds_cave.bmp erfolgreich ! +s_panel.bmp +s_kisten.png +s_machine3.bmp +s_traeger.bmp +s_chains.png +s_factory.bmp +s_factory5.bmp +s_rohre.bmp +s_graues.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_sea.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_mpde.bmp +s_mpde2.bmp +s_mpde3.bmp +s_mpde5.bmp +s_mpde.bmp +s_blau2.png +s_rohre.bmp +s_factory5.bmp +s_mpde4.png +s_arrow.bmp +s_pflanzen3.png +s_traeger.bmp +s_chains.png +s_pflanzen2.png +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_slime.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_mpde.bmp +s_mpde2.bmp +s_mpde3.bmp +s_mpde5.bmp +s_mpde.bmp +s_blau2.png +s_rohre.bmp +s_factory5.bmp +s_mpde4.png +s_kisten.png +s_pflanzen3.png +s_traeger.bmp +s_chains.png +s_pflanzen2.png +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_slime.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_mpde.bmp +s_mpde2.bmp +s_mpde3.bmp +s_mpde5.bmp +s_mpde.bmp +s_blau2.png +s_rohre.bmp +s_factory5.bmp +s_mpde4.png +s_kisten.png +s_pflanzen3.png +s_traeger.bmp +s_chains.png +s_pflanzen2.png +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_end.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_kisten.png +s_factory5.bmp +s_rohre.bmp +s_spinne1.bmp +s_spinne2.bmp +s_spinne3.png +s_chains.png +s_end.png +s_end2.png +s_end3.png +s_end4.png +s_weltend1.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_slime.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_tower.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_mpde.bmp +s_mpde2.bmp +s_mpde3.bmp +s_mpde5.bmp +s_mpde.bmp +s_blau2.png +s_rohre.bmp +s_factory5.bmp +s_mpde4.png +s_kisten.png +s_pflanzen3.png +s_traeger.bmp +s_chains.png +s_pflanzen2.png +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_flugsack.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_cave.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds7.png erfolgreich ! +s_graues.bmp +s_pflanzen.bmp +s_rohre.bmp +s_panel.bmp +s_traeger.bmp +s_chains.png +s_cave.bmp + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei EndeBitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp +Bitmap laden : C:\Programme\Hurrican\data/static_ice.bmp erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/back_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/front_ice.png erfolgreich ! +Bitmap laden : C:\Programme\Hurrican\data/clouds2.bmp erfolgreich ! +s_snowplate.bmp +s_bluestone.png +s_ice.png +s_ice2.png +s_ice3.png +s_snow.png +s_snow2.png +s_factory2.bmp +s_factory.bmp + +>--------------------< +| GameExit gestartet | +>--------------------< + +-> Direct3D erfolgreich beendet ! +-> DirectInput8 erfolgreich beendet ! + +-> GameExit erfolgreich beendet ! + +http://www.poke53280.de +Bugreports, Fragen etc : Eiswuxe@Poke53280.de + +-> Logdatei Ende \ No newline at end of file diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel1.map b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel1.map new file mode 100644 index 00000000..41a5264f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel1.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel10.map b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel10.map new file mode 100644 index 00000000..f2043ee9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel10.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel2.map b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel2.map new file mode 100644 index 00000000..dd9cf3b8 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel2.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel3.map b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel3.map new file mode 100644 index 00000000..5fe3aedd Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel3.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel4.map b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel4.map new file mode 100644 index 00000000..c4a3d118 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel4.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel5.map b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel5.map new file mode 100644 index 00000000..214281e0 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel5.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel6.map b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel6.map new file mode 100644 index 00000000..35f12e0e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel6.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel7.map b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel7.map new file mode 100644 index 00000000..9d16791a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel7.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel8.map b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel8.map new file mode 100644 index 00000000..efeb41ad Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel8.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel9.map b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel9.map new file mode 100644 index 00000000..9b38c998 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/WWlevel9.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/clipboard b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/clipboard new file mode 100644 index 00000000..47553b6a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/clipboard differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/hurrican-logo.png b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/hurrican-logo.png new file mode 100644 index 00000000..ad4902a9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/hurrican-logo.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/levellist.dat b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/levellist.dat new file mode 100644 index 00000000..e454eff9 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/levels/Walkers_World/levellist.dat @@ -0,0 +1,10 @@ +WWlevel1.map +WWlevel2.map +WWlevel3.map +WWlevel4.map +WWlevel5.map +WWlevel6.map +WWlevel7.map +WWlevel8.map +WWlevel9.map +WWlevel10.map diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/cave.map b/bios/Game Engines/Hurrican/hurrican/data/levels/cave.map new file mode 100644 index 00000000..ba61cacb Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/cave.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/eis.map b/bios/Game Engines/Hurrican/hurrican/data/levels/eis.map new file mode 100644 index 00000000..c563eca7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/eis.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/elevator.map b/bios/Game Engines/Hurrican/hurrican/data/levels/elevator.map new file mode 100644 index 00000000..20040ec7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/elevator.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/endboss.map b/bios/Game Engines/Hurrican/hurrican/data/levels/endboss.map new file mode 100644 index 00000000..34bc831b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/endboss.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/jungle.map b/bios/Game Engines/Hurrican/hurrican/data/levels/jungle.map new file mode 100644 index 00000000..d5707c69 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/jungle.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/levellist.dat b/bios/Game Engines/Hurrican/hurrican/data/levels/levellist.dat new file mode 100644 index 00000000..5656cbb8 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/levels/levellist.dat @@ -0,0 +1,9 @@ +jungle.map +temple.map +elevator.map +mpde.map +spinnenfabrik.map +tower.map +eis.map +cave.map +endboss.map \ No newline at end of file diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/mpde.map b/bios/Game Engines/Hurrican/hurrican/data/levels/mpde.map new file mode 100644 index 00000000..366e5fe5 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/mpde.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/spinnenfabrik.map b/bios/Game Engines/Hurrican/hurrican/data/levels/spinnenfabrik.map new file mode 100644 index 00000000..99894f97 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/spinnenfabrik.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/temple.map b/bios/Game Engines/Hurrican/hurrican/data/levels/temple.map new file mode 100644 index 00000000..ebd3658c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/temple.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/tower.map b/bios/Game Engines/Hurrican/hurrican/data/levels/tower.map new file mode 100644 index 00000000..c102f2f1 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/tower.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/tutorial.map b/bios/Game Engines/Hurrican/hurrican/data/levels/tutorial.map new file mode 100644 index 00000000..c9f68e01 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/tutorial.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/clipboard b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/clipboard new file mode 100644 index 00000000..7db799a7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/clipboard differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/cloudssmb.png b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/cloudssmb.png new file mode 100644 index 00000000..843bd5bb Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/cloudssmb.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/hurrican_rund.png b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/hurrican_rund.png new file mode 100644 index 00000000..35bea11f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/hurrican_rund.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/indy.map b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/indy.map new file mode 100644 index 00000000..f6dcbdb4 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/indy.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/levellist.dat b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/levellist.dat new file mode 100644 index 00000000..ed901b8e --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/levellist.dat @@ -0,0 +1,2 @@ +indy.map +xtc.map diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/read_me.txt b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/read_me.txt new file mode 100644 index 00000000..7337a834 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/read_me.txt @@ -0,0 +1,50 @@ + + + Welcome to + my first + + Hurrican Level Pack + + + ____________________ + ..::Cavenman's Valentine::.. + + + ...Levels - 2 + + ...author - selmiak + ...contact - faqs [ät] gmx [dot] de + ...website - www.selmiak.de.vu + ...release - 12.10.2007 + + + +And now 2 more Levels are here :) +Have mad fun playing the Levels, also try it on hard, it is a good challenge. + +And now stop reading and PLAY! + +always remember: + + SHOOT OR DIE! + +Enjoy! + + + + + + get Hurrican at... www.hurrican-game.de + + + + + + ...and don't forget to + visit my... + ...hurrican fanpage + + http://selmiak.pytalhost.com/selmiak/games/hurrican/main.html + + the url could change over time but the hurrican fanpage + can always be found on my webseite www.selmiak.de.vu diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/s_brucke2.png b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/s_brucke2.png new file mode 100644 index 00000000..d43a66cc Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/s_brucke2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/s_brucke3.png b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/s_brucke3.png new file mode 100644 index 00000000..cccfdbd4 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/s_brucke3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/s_brucke4.png b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/s_brucke4.png new file mode 100644 index 00000000..7d3b6ac6 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/s_brucke4.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/s_hurz.png b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/s_hurz.png new file mode 100644 index 00000000..da1ffdf9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/s_hurz.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/s_lsd.png b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/s_lsd.png new file mode 100644 index 00000000..b17cfc25 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/s_lsd.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/static_smb.png b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/static_smb.png new file mode 100644 index 00000000..63206794 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/static_smb.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/xtc.map b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/xtc.map new file mode 100644 index 00000000..10eb0eba Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/levels/valentine/xtc.map differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/Aztech.it b/bios/Game Engines/Hurrican/hurrican/data/music/Aztech.it new file mode 100644 index 00000000..9d3c9147 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/Aztech.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/Blue.it b/bios/Game Engines/Hurrican/hurrican/data/music/Blue.it new file mode 100644 index 00000000..ac6d65dd Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/Blue.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/Cracktro.it b/bios/Game Engines/Hurrican/hurrican/data/music/Cracktro.it new file mode 100644 index 00000000..2b491d3c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/Cracktro.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/JungleBeats.it b/bios/Game Engines/Hurrican/hurrican/data/music/JungleBeats.it new file mode 100644 index 00000000..7f789b15 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/JungleBeats.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/Machine Monotony.it b/bios/Game Engines/Hurrican/hurrican/data/music/Machine Monotony.it new file mode 100644 index 00000000..79113727 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/Machine Monotony.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/Punisher.it b/bios/Game Engines/Hurrican/hurrican/data/music/Punisher.it new file mode 100644 index 00000000..05a7158e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/Punisher.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/Tower.it b/bios/Game Engines/Hurrican/hurrican/data/music/Tower.it new file mode 100644 index 00000000..287f2d42 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/Tower.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/boss_dragon.it b/bios/Game Engines/Hurrican/hurrican/data/music/boss_dragon.it new file mode 100644 index 00000000..63f4728b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/boss_dragon.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/boss_golem.it b/bios/Game Engines/Hurrican/hurrican/data/music/boss_golem.it new file mode 100644 index 00000000..7a57a147 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/boss_golem.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/boss_ice.it b/bios/Game Engines/Hurrican/hurrican/data/music/boss_ice.it new file mode 100644 index 00000000..69b3866a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/boss_ice.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/boss_last.it b/bios/Game Engines/Hurrican/hurrican/data/music/boss_last.it new file mode 100644 index 00000000..41168e09 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/boss_last.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/boss_lift.it b/bios/Game Engines/Hurrican/hurrican/data/music/boss_lift.it new file mode 100644 index 00000000..abb1187e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/boss_lift.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/boss_onslaught.it b/bios/Game Engines/Hurrican/hurrican/data/music/boss_onslaught.it new file mode 100644 index 00000000..3e2f6715 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/boss_onslaught.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/boss_pharao.it b/bios/Game Engines/Hurrican/hurrican/data/music/boss_pharao.it new file mode 100644 index 00000000..75e73db1 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/boss_pharao.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/boss_robofist.it b/bios/Game Engines/Hurrican/hurrican/data/music/boss_robofist.it new file mode 100644 index 00000000..22934069 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/boss_robofist.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/boss_spider.it b/bios/Game Engines/Hurrican/hurrican/data/music/boss_spider.it new file mode 100644 index 00000000..47abe88b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/boss_spider.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/cave.it b/bios/Game Engines/Hurrican/hurrican/data/music/cave.it new file mode 100644 index 00000000..73b26838 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/cave.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/credits.it b/bios/Game Engines/Hurrican/hurrican/data/music/credits.it new file mode 100644 index 00000000..259ec160 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/credits.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/eis.it b/bios/Game Engines/Hurrican/hurrican/data/music/eis.it new file mode 100644 index 00000000..8faacc30 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/eis.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/elevator.it b/bios/Game Engines/Hurrican/hurrican/data/music/elevator.it new file mode 100644 index 00000000..48501c1f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/elevator.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/factory.it b/bios/Game Engines/Hurrican/hurrican/data/music/factory.it new file mode 100644 index 00000000..a7e62fa5 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/factory.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/flugsack.it b/bios/Game Engines/Hurrican/hurrican/data/music/flugsack.it new file mode 100644 index 00000000..d2ef37d4 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/flugsack.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/gameover.it b/bios/Game Engines/Hurrican/hurrican/data/music/gameover.it new file mode 100644 index 00000000..96121f09 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/gameover.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/highscore.it b/bios/Game Engines/Hurrican/hurrican/data/music/highscore.it new file mode 100644 index 00000000..76e6c40f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/highscore.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/intro.it b/bios/Game Engines/Hurrican/hurrican/data/music/intro.it new file mode 100644 index 00000000..0dd70e50 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/intro.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/loststation.it b/bios/Game Engines/Hurrican/hurrican/data/music/loststation.it new file mode 100644 index 00000000..17f113b4 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/loststation.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/menu.it b/bios/Game Engines/Hurrican/hurrican/data/music/menu.it new file mode 100644 index 00000000..387d19b0 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/menu.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/outtro.it b/bios/Game Engines/Hurrican/hurrican/data/music/outtro.it new file mode 100644 index 00000000..c4cc8fc0 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/outtro.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/music/stageclear.it b/bios/Game Engines/Hurrican/hurrican/data/music/stageclear.it new file mode 100644 index 00000000..479b1bcc Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/music/stageclear.it differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/abzug.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/abzug.wav new file mode 100644 index 00000000..bdf0210c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/abzug.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/ambient_wasserfall.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/ambient_wasserfall.wav new file mode 100644 index 00000000..b8adb85b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/ambient_wasserfall.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/ambient_wind.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/ambient_wind.wav new file mode 100644 index 00000000..3864ff5e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/ambient_wind.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/ammo.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/ammo.wav new file mode 100644 index 00000000..2f927a77 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/ammo.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/beamload.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/beamload.wav new file mode 100644 index 00000000..562634ec Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/beamload.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/beamload2.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/beamload2.wav new file mode 100644 index 00000000..196cf6a5 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/beamload2.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/blitz.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/blitz.wav new file mode 100644 index 00000000..777ddf8a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/blitz.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/blitzende.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/blitzende.wav new file mode 100644 index 00000000..5ab0577d Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/blitzende.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/blitzhit.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/blitzhit.wav new file mode 100644 index 00000000..cd183f9e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/blitzhit.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/blitzhit2.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/blitzhit2.wav new file mode 100644 index 00000000..44167146 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/blitzhit2.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/blitzsave.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/blitzsave.wav new file mode 100644 index 00000000..950c34c6 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/blitzsave.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/blitzstart.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/blitzstart.wav new file mode 100644 index 00000000..3aeac4ec Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/blitzstart.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/blitzstartsave.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/blitzstartsave.wav new file mode 100644 index 00000000..afb540c1 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/blitzstartsave.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/bounceshot.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/bounceshot.wav new file mode 100644 index 00000000..cbf1f8c9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/bounceshot.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/bratlaser.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/bratlaser.wav new file mode 100644 index 00000000..f3332936 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/bratlaser.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/canon.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/canon.wav new file mode 100644 index 00000000..29607f64 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/canon.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/chain.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/chain.wav new file mode 100644 index 00000000..70d08951 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/chain.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/click.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/click.wav new file mode 100644 index 00000000..ed0f36a4 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/click.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/collect.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/collect.wav new file mode 100644 index 00000000..b1e26c22 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/collect.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/column.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/column.wav new file mode 100644 index 00000000..3c5f29bc Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/column.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/dampf.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/dampf.wav new file mode 100644 index 00000000..b766f86b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/dampf.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/dampf2.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/dampf2.wav new file mode 100644 index 00000000..0bcb7084 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/dampf2.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/dive.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/dive.wav new file mode 100644 index 00000000..5345276f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/dive.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/door.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/door.wav new file mode 100644 index 00000000..d8b40ad9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/door.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/doorstop.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/doorstop.wav new file mode 100644 index 00000000..a24d0512 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/doorstop.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/droneshot.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/droneshot.wav new file mode 100644 index 00000000..837878be Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/droneshot.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/explosion1.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/explosion1.wav new file mode 100644 index 00000000..01803f7a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/explosion1.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/explosion2.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/explosion2.wav new file mode 100644 index 00000000..70c95299 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/explosion2.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/explosion3.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/explosion3.wav new file mode 100644 index 00000000..c7dc5e42 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/explosion3.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/explosion4.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/explosion4.wav new file mode 100644 index 00000000..dfadffab Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/explosion4.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/feuerfalle.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/feuerfalle.wav new file mode 100644 index 00000000..ffc3a790 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/feuerfalle.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/fireball.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/fireball.wav new file mode 100644 index 00000000..9731b5a9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/fireball.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/flamethrower.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/flamethrower.wav new file mode 100644 index 00000000..0aeae935 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/flamethrower.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/funke.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/funke.wav new file mode 100644 index 00000000..4d9634cd Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/funke.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/funke2.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/funke2.wav new file mode 100644 index 00000000..cf00fb32 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/funke2.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/funke3.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/funke3.wav new file mode 100644 index 00000000..f9ea4dcb Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/funke3.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/funke4.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/funke4.wav new file mode 100644 index 00000000..f2c4c24f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/funke4.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/gatling.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/gatling.wav new file mode 100644 index 00000000..d1d5e123 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/gatling.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/glassbreak.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/glassbreak.wav new file mode 100644 index 00000000..d9bb4c67 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/glassbreak.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/golemload.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/golemload.wav new file mode 100644 index 00000000..fd1400d9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/golemload.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/golemshot.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/golemshot.wav new file mode 100644 index 00000000..d00a1d72 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/golemshot.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/granate.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/granate.wav new file mode 100644 index 00000000..762c04c8 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/granate.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/heart1.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/heart1.wav new file mode 100644 index 00000000..e3a1ad07 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/heart1.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/heart2.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/heart2.wav new file mode 100644 index 00000000..7113e842 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/heart2.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/hit.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/hit.wav new file mode 100644 index 00000000..2c6287c0 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/hit.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/hit2.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/hit2.wav new file mode 100644 index 00000000..2330b204 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/hit2.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/hit3.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/hit3.wav new file mode 100644 index 00000000..d89d1b81 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/hit3.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/kotzen.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/kotzen.wav new file mode 100644 index 00000000..b26213c9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/kotzen.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/landen.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/landen.wav new file mode 100644 index 00000000..80aea9fc Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/landen.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/lasershot.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/lasershot.wav new file mode 100644 index 00000000..c9731390 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/lasershot.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/laugh.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/laugh.wav new file mode 100644 index 00000000..79d41d0c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/laugh.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/made.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/made.wav new file mode 100644 index 00000000..7cff56a1 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/made.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/mario.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/mario.wav new file mode 100644 index 00000000..8660f92c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/mario.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/message.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/message.wav new file mode 100644 index 00000000..c7878ecb Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/message.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/metal.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/metal.wav new file mode 100644 index 00000000..deb5458e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/metal.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/mushroomjump.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/mushroomjump.wav new file mode 100644 index 00000000..43d26051 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/mushroomjump.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/mutant.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/mutant.wav new file mode 100644 index 00000000..f9be0f54 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/mutant.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/pharaodie.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/pharaodie.wav new file mode 100644 index 00000000..7df91a6e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/pharaodie.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/pharaoramm.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/pharaoramm.wav new file mode 100644 index 00000000..382388f5 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/pharaoramm.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/powerline.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/powerline.wav new file mode 100644 index 00000000..3e2fdc3f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/powerline.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/presse.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/presse.wav new file mode 100644 index 00000000..b96b25c3 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/presse.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/rocket.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/rocket.wav new file mode 100644 index 00000000..344a4bdb Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/rocket.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/schleim.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/schleim.wav new file mode 100644 index 00000000..aaf861da Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/schleim.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/secret.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/secret.wav new file mode 100644 index 00000000..751916b5 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/secret.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/spidergrenade.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/spidergrenade.wav new file mode 100644 index 00000000..285b4b10 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/spidergrenade.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/spiderlaser.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/spiderlaser.wav new file mode 100644 index 00000000..5f60f592 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/spiderlaser.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/spiderlila.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/spiderlila.wav new file mode 100644 index 00000000..d8387eb6 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/spiderlila.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/spiderscream.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/spiderscream.wav new file mode 100644 index 00000000..be85f33e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/spiderscream.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/spiderwalk.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/spiderwalk.wav new file mode 100644 index 00000000..a2f7b1c2 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/spiderwalk.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/spreadshot.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/spreadshot.wav new file mode 100644 index 00000000..2a489851 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/spreadshot.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/standup.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/standup.wav new file mode 100644 index 00000000..bf2ef151 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/standup.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/stoneexplode.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/stoneexplode.wav new file mode 100644 index 00000000..43e630d6 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/stoneexplode.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/stonefall.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/stonefall.wav new file mode 100644 index 00000000..a8bbb7a5 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/stonefall.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/switch.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/switch.wav new file mode 100644 index 00000000..e36ba4f8 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/switch.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/takeoff.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/takeoff.wav new file mode 100644 index 00000000..ff8fb91c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/takeoff.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/thunder.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/thunder.wav new file mode 100644 index 00000000..3b738351 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/thunder.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/upgrade.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/upgrade.wav new file mode 100644 index 00000000..c913fc13 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/upgrade.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/v_bounce.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_bounce.wav new file mode 100644 index 00000000..10fda9ca Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_bounce.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/v_extralife.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_extralife.wav new file mode 100644 index 00000000..68b7e60b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_extralife.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/v_grenade.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_grenade.wav new file mode 100644 index 00000000..f599cde0 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_grenade.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/v_laser.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_laser.wav new file mode 100644 index 00000000..bbb9b12b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_laser.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/v_lightning.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_lightning.wav new file mode 100644 index 00000000..4a3c8c73 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_lightning.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/v_powerline.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_powerline.wav new file mode 100644 index 00000000..eebe7e83 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_powerline.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/v_powerup.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_powerup.wav new file mode 100644 index 00000000..972d9b07 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_powerup.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/v_rapidfire.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_rapidfire.wav new file mode 100644 index 00000000..a5671116 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_rapidfire.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/v_shield.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_shield.wav new file mode 100644 index 00000000..1fc5446a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_shield.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/v_smartbomb.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_smartbomb.wav new file mode 100644 index 00000000..04c95224 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_smartbomb.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/v_spread.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_spread.wav new file mode 100644 index 00000000..242f6ec0 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_spread.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/v_supershot.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_supershot.wav new file mode 100644 index 00000000..6dba00e8 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_supershot.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/v_wheel.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_wheel.wav new file mode 100644 index 00000000..a7d3029e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/v_wheel.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/walkergiggle.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/walkergiggle.wav new file mode 100644 index 00000000..e9ef2527 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/walkergiggle.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/waterdrop.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/waterdrop.wav new file mode 100644 index 00000000..0f4c1718 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/waterdrop.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/waterin.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/waterin.wav new file mode 100644 index 00000000..fab721dc Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/waterin.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/sfx/waterout.wav b/bios/Game Engines/Hurrican/hurrican/data/sfx/waterout.wav new file mode 100644 index 00000000..3ad7536c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/sfx/waterout.wav differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_color.frag b/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_color.frag new file mode 100644 index 00000000..e148cb80 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_color.frag @@ -0,0 +1,8 @@ +/* Input */ +varying vec4 v_Color; + +void main() +{ + /* Use the current color */ + gl_FragColor = v_Color; +} diff --git a/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_color.vert b/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_color.vert new file mode 100644 index 00000000..6b1fdd87 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_color.vert @@ -0,0 +1,15 @@ +/* Input */ +uniform mat4 u_MVPMatrix; /* A constant representing the combined model/view/projection matrix */ +attribute vec2 a_Position; /* Per-vertex position information - DKS: Note I changed this from 3D to 2D */ +attribute vec4 a_Color; /* Per-vertex color information */ +/* Output */ +varying vec4 v_Color; /* This will be passed into the fragment shader. */ + +void main() +{ + /* Send the color to the fragment shader */ + v_Color = a_Color; + /* gl_Position is a special variable used to store the final position. */ + /* Multiply the vertex by the matrix to get the final point in normalized screen coordinates. */ + gl_Position = u_MVPMatrix * vec4(a_Position, 0.0, 1.0); /* DKS: Note I changed a_Position from 3D to 2D */ +} diff --git a/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_etc1_texture.frag b/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_etc1_texture.frag new file mode 100644 index 00000000..7cd8a90b --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_etc1_texture.frag @@ -0,0 +1,11 @@ +/* Input */ +varying vec4 v_Color; +varying vec2 v_Texcoord0; +uniform sampler2D u_Texture0; +uniform sampler2D u_Texture1; + +void main() +{ + /* Sample the current texture */ + gl_FragColor = vec4(texture2D( u_Texture0, v_Texcoord0 ).rgb, texture2D( u_Texture1, v_Texcoord0 ).r) * v_Color; +} diff --git a/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_render.frag b/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_render.frag new file mode 100644 index 00000000..7bea118c --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_render.frag @@ -0,0 +1,100 @@ +/* Input */ +varying vec4 v_Color; +varying vec2 v_Texcoord0; +uniform sampler2D u_Texture0; +uniform int u_Time; + +/* Curvature */ +const float Curvature = 6.0; + +/* Color bleeding */ +const float color_bleeding = 1.1; +const float bleeding_range = 1.3; + +vec2 crt_coords(vec2 uv, float bend) +{ + uv -= 0.5; + uv *= 2.; + uv.x *= 1. + pow(abs(uv.y)/bend, 2.); + uv.y *= 1. + pow(abs(uv.x)/bend, 2.); + + uv /= 2.; + return uv + .5; +} + +float vignette(vec2 uv, float size, float smoothness, float edgeRounding) +{ + uv -= .5; + uv *= size; + float amount = sqrt(pow(abs(uv.x), edgeRounding) + pow(abs(uv.y), edgeRounding)); + return smoothstep(0., smoothness, 1.0 - amount); +} + +vec4 get_color_bleeding(vec4 current_color,vec4 color_left) +{ + vec4 c = current_color*vec4(color_bleeding, 0.5, 1.0-color_bleeding, 1); + vec4 l = color_left*vec4(1.0-color_bleeding, 0.5, color_bleeding, 1); + return c + l; +} + +float random(vec2 uv) +{ + return fract(sin(dot(uv * 0.05, vec2(12.9898, 78.233) * float(u_Time))) * 438.5453) * 1.9; +} + +float noise(vec2 uv) +{ + vec2 i = floor(uv); + vec2 f = fract(uv); + + float a = random(i); + float b = random(i + vec2(1.,0.)); + float c = random(i + vec2(0., 1.)); + float d = random(i + vec2(1.)); + + vec2 u = smoothstep(0., 1., f); + + return mix(a,b, u.x) + (c - a) * u.y * (1. - u.x) + (d - b) * u.x * u.y; +} + +void main() +{ + /* screen curvature */ + vec2 xy; + vec4 col; + if (c_curvature == 1) { + xy = crt_coords(v_Texcoord0, Curvature); + col = v_Color * vignette(xy, 1.9, 0.6, Curvature*2.0); + } else { + xy = v_Texcoord0; + col = v_Color; + } + + /* screen noise */ + vec4 color; + if (c_noise == 1) { + color = mix(col, vec4(noise(xy * 75.)), 0.05); + } else { + color = col; + } + + /* Color bleeding */ + vec4 p; + if (c_color_bleed == 1) { + float pixel_size = 1.0/float(c_WindowWidth)*bleeding_range; + vec4 current_color = texture2D(u_Texture0, xy) * color; + vec4 color_left = texture2D(u_Texture0, vec2(xy.x-pixel_size, xy.y)) * color; + p = get_color_bleeding(current_color, color_left); + } else { + p = texture2D(u_Texture0, xy) * color; + } + + /* Add scanlines */ + if (c_scanlines == 1) { + float r = float(c_WindowHeight / 216); + float f = mod(gl_FragCoord.y, r) / r; + gl_FragColor = mix(p, vec4(p.rgb * 0.5, p.a), f); + } else { + gl_FragColor = p; + } +} diff --git a/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_render.vert b/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_render.vert new file mode 100644 index 00000000..93ae2f69 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_render.vert @@ -0,0 +1,19 @@ +/* Input */ +uniform mat4 u_MVPMatrix; /* A constant representing the combined model/view/projection matrix. */ +attribute vec2 a_Position; /* Per-vertex position information - DKS: Note I changed this from 3D to 2D */ +attribute vec4 a_Color; /* Per-vertex color information */ +attribute vec2 a_Texcoord0; /* Per-vertex texcoord information */ +/* Output */ +varying vec4 v_Color; /* This will be passed into the fragment shader. */ +varying vec2 v_Texcoord0; + +void main() +{ + /* Send the color to the fragment shader */ + v_Color = a_Color; + /* Send the texcoords to the fragment shader */ + v_Texcoord0 = a_Texcoord0; + /* gl_Position is a special variable used to store the final position. */ + /* Multiply the vertex by the matrix to get the final point in normalized screen coordinates. */ + gl_Position = u_MVPMatrix * vec4(a_Position, 0.0, 1.0); /* DKS: Note I changed a_Position from 3D to 2D */ +} diff --git a/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_texture.frag b/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_texture.frag new file mode 100644 index 00000000..8e6b30f1 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_texture.frag @@ -0,0 +1,11 @@ +/* Input */ +varying vec4 v_Color; +varying vec2 v_Texcoord0; +uniform sampler2D u_Texture0; + +void main() +{ + /* Sample the current texture */ + gl_FragColor = texture2D( u_Texture0, v_Texcoord0 ) * v_Color; +} + diff --git a/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_texture.vert b/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_texture.vert new file mode 100644 index 00000000..93ae2f69 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/shaders/100/shader_texture.vert @@ -0,0 +1,19 @@ +/* Input */ +uniform mat4 u_MVPMatrix; /* A constant representing the combined model/view/projection matrix. */ +attribute vec2 a_Position; /* Per-vertex position information - DKS: Note I changed this from 3D to 2D */ +attribute vec4 a_Color; /* Per-vertex color information */ +attribute vec2 a_Texcoord0; /* Per-vertex texcoord information */ +/* Output */ +varying vec4 v_Color; /* This will be passed into the fragment shader. */ +varying vec2 v_Texcoord0; + +void main() +{ + /* Send the color to the fragment shader */ + v_Color = a_Color; + /* Send the texcoords to the fragment shader */ + v_Texcoord0 = a_Texcoord0; + /* gl_Position is a special variable used to store the final position. */ + /* Multiply the vertex by the matrix to get the final point in normalized screen coordinates. */ + gl_Position = u_MVPMatrix * vec4(a_Position, 0.0, 1.0); /* DKS: Note I changed a_Position from 3D to 2D */ +} diff --git a/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_color.frag b/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_color.frag new file mode 100644 index 00000000..71738313 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_color.frag @@ -0,0 +1,10 @@ +/* Input */ +in vec4 v_Color; +/* Output */ +out vec4 v_FragColor; + +void main() +{ + /* Use the current color */ + v_FragColor = v_Color; +} diff --git a/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_color.vert b/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_color.vert new file mode 100644 index 00000000..ef341273 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_color.vert @@ -0,0 +1,15 @@ +/* Input */ +uniform mat4 u_MVPMatrix; /* A constant representing the combined model/view/projection matrix */ +in vec2 a_Position; /* Per-vertex position information - DKS: Note I changed this from 3D to 2D */ +in vec4 a_Color; /* Per-vertex color information */ +/* Output */ +out vec4 v_Color; /* This will be passed into the fragment shader. */ + +void main() +{ + /* Send the color to the fragment shader */ + v_Color = a_Color; + /* gl_Position is a special variable used to store the final position. */ + /* Multiply the vertex by the matrix to get the final point in normalized screen coordinates. */ + gl_Position = u_MVPMatrix * vec4(a_Position, 0.0, 1.0); /* DKS: Note I changed a_Position from 3D to 2D */ +} diff --git a/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_etc1_texture.frag b/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_etc1_texture.frag new file mode 100644 index 00000000..32d0d06a --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_etc1_texture.frag @@ -0,0 +1,13 @@ +/* Input */ +in vec4 v_Color; +in vec2 v_Texcoord0; +uniform sampler2D u_Texture0; +uniform sampler2D u_Texture1; +/* Output */ +out vec4 v_FragColor; + +void main() +{ + /* Sample the current texture */ + v_FragColor = vec4(texture( u_Texture0, v_Texcoord0 ).rgb, texture( u_Texture1, v_Texcoord0 ).r) * v_Color; +} diff --git a/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_render.frag b/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_render.frag new file mode 100644 index 00000000..1efbc821 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_render.frag @@ -0,0 +1,102 @@ +/* Input */ +in vec4 v_Color; +in vec2 v_Texcoord0; +uniform sampler2D u_Texture0; +uniform int u_Time; +/* Output */ +out vec4 v_FragColor; + +/* Curvature */ +const float Curvature = 6.0; + +/* Color bleeding */ +const float color_bleeding = 1.1; +const float bleeding_range = 1.3; + +vec2 crt_coords(vec2 uv, float bend) +{ + uv -= 0.5; + uv *= 2.; + uv.x *= 1. + pow(abs(uv.y)/bend, 2.); + uv.y *= 1. + pow(abs(uv.x)/bend, 2.); + + uv /= 2.; + return uv + .5; +} + +float vignette(vec2 uv, float size, float smoothness, float edgeRounding) +{ + uv -= .5; + uv *= size; + float amount = sqrt(pow(abs(uv.x), edgeRounding) + pow(abs(uv.y), edgeRounding)); + return smoothstep(0., smoothness, 1.0 - amount); +} + +vec4 get_color_bleeding(vec4 current_color,vec4 color_left) +{ + vec4 c = current_color*vec4(color_bleeding,0.5,1.0-color_bleeding,1); + vec4 l = color_left*vec4(1.0-color_bleeding,0.5,color_bleeding,1); + return c + l; +} + +float random(vec2 uv) +{ + return fract(sin(dot(uv * 0.05, vec2(12.9898, 78.233) * float(u_Time))) * 438.5453) * 1.9; +} + +float noise(vec2 uv) +{ + vec2 i = floor(uv); + vec2 f = fract(uv); + + float a = random(i); + float b = random(i + vec2(1.,0.)); + float c = random(i + vec2(0., 1.)); + float d = random(i + vec2(1.)); + + vec2 u = smoothstep(0., 1., f); + + return mix(a,b, u.x) + (c - a) * u.y * (1. - u.x) + (d - b) * u.x * u.y; +} + +void main() +{ + /* screen curvature */ + vec2 xy; + vec4 col; + if (c_curvature == 1) { + xy = crt_coords(v_Texcoord0, Curvature); + col = v_Color * vignette(xy, 1.9, 0.6, Curvature*2.0); + } else { + xy = v_Texcoord0; + col = v_Color; + } + + /* screen noise */ + vec4 color; + if (c_noise == 1) { + color = mix(col, vec4(noise(xy * 75.)), 0.05); + } else { + color = col; + } + + /* Color bleeding */ + vec4 p; + if (c_color_bleed == 1) { + float pixel_size = 1.0/float(c_WindowWidth)*bleeding_range; + vec4 current_color = texture2D(u_Texture0, xy) * color; + vec4 color_left = texture2D(u_Texture0,vec2(xy.x-pixel_size, xy.y)) * color; + p = get_color_bleeding(current_color,color_left); + } else { + p = texture2D(u_Texture0, xy) * color; + } + + /* Add scanlines */ + if (c_scanlines == 1) { + float r = float(c_WindowHeight / 216); + float f = mod(gl_FragCoord.y, r) / r; + v_FragColor = mix(p, vec4(p.rgb * 0.5, p.a), f); + } else { + v_FragColor = p; + } +} diff --git a/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_render.vert b/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_render.vert new file mode 100644 index 00000000..21713c11 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_render.vert @@ -0,0 +1,19 @@ +/* Input */ +uniform mat4 u_MVPMatrix; /* A constant representing the combined model/view/projection matrix. */ +in vec2 a_Position; /* Per-vertex position information - DKS: Note I changed this from 3D to 2D */ +in vec4 a_Color; /* Per-vertex color information */ +in vec2 a_Texcoord0; /* Per-vertex texcoord information */ +/* Output */ +out vec4 v_Color; /* This will be passed into the fragment shader. */ +out vec2 v_Texcoord0; + +void main() +{ + /* Send the color to the fragment shader */ + v_Color = a_Color; + /* Send the texcoords to the fragment shader */ + v_Texcoord0 = a_Texcoord0; + /* gl_Position is a special variable used to store the final position. */ + /* Multiply the vertex by the matrix to get the final point in normalized screen coordinates. */ + gl_Position = u_MVPMatrix * vec4(a_Position, 0.0f, 1.0f); /* DKS: Note I changed a_Position from 3D to 2D */ +} diff --git a/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_texture.frag b/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_texture.frag new file mode 100644 index 00000000..dbcbb294 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_texture.frag @@ -0,0 +1,12 @@ +/* Input */ +in vec4 v_Color; +in vec2 v_Texcoord0; +uniform sampler2D u_Texture0; +/* Output */ +out vec4 v_FragColor; + +void main() +{ + /* Sample the current texture */ + v_FragColor = texture( u_Texture0, v_Texcoord0 ) * v_Color; +} diff --git a/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_texture.vert b/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_texture.vert new file mode 100644 index 00000000..21713c11 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/shaders/320/shader_texture.vert @@ -0,0 +1,19 @@ +/* Input */ +uniform mat4 u_MVPMatrix; /* A constant representing the combined model/view/projection matrix. */ +in vec2 a_Position; /* Per-vertex position information - DKS: Note I changed this from 3D to 2D */ +in vec4 a_Color; /* Per-vertex color information */ +in vec2 a_Texcoord0; /* Per-vertex texcoord information */ +/* Output */ +out vec4 v_Color; /* This will be passed into the fragment shader. */ +out vec2 v_Texcoord0; + +void main() +{ + /* Send the color to the fragment shader */ + v_Color = a_Color; + /* Send the texcoords to the fragment shader */ + v_Texcoord0 = a_Texcoord0; + /* gl_Position is a special variable used to store the final position. */ + /* Multiply the vertex by the matrix to get the final point in normalized screen coordinates. */ + gl_Position = u_MVPMatrix * vec4(a_Position, 0.0f, 1.0f); /* DKS: Note I changed a_Position from 3D to 2D */ +} diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/Zitronestiel.png b/bios/Game Engines/Hurrican/hurrican/data/textures/Zitronestiel.png new file mode 100644 index 00000000..684d5b94 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/Zitronestiel.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/alienexplosion.png b/bios/Game Engines/Hurrican/hurrican/data/textures/alienexplosion.png new file mode 100644 index 00000000..687811d5 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/alienexplosion.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/arcshot.png b/bios/Game Engines/Hurrican/hurrican/data/textures/arcshot.png new file mode 100644 index 00000000..50d4d107 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/arcshot.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/auge.png b/bios/Game Engines/Hurrican/hurrican/data/textures/auge.png new file mode 100644 index 00000000..787fd88e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/auge.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/back_cave.png b/bios/Game Engines/Hurrican/hurrican/data/textures/back_cave.png new file mode 100644 index 00000000..588e0a84 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/back_cave.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/back_ice.png b/bios/Game Engines/Hurrican/hurrican/data/textures/back_ice.png new file mode 100644 index 00000000..2194589b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/back_ice.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/back_jungle.png b/bios/Game Engines/Hurrican/hurrican/data/textures/back_jungle.png new file mode 100644 index 00000000..a5145698 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/back_jungle.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/back_lava.png b/bios/Game Engines/Hurrican/hurrican/data/textures/back_lava.png new file mode 100644 index 00000000..c0905e45 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/back_lava.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/back_spinne.png b/bios/Game Engines/Hurrican/hurrican/data/textures/back_spinne.png new file mode 100644 index 00000000..cd772e49 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/back_spinne.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/back_tower.png b/bios/Game Engines/Hurrican/hurrican/data/textures/back_tower.png new file mode 100644 index 00000000..8aa27b6a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/back_tower.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/ballerdrone.png b/bios/Game Engines/Hurrican/hurrican/data/textures/ballerdrone.png new file mode 100644 index 00000000..5ccb450b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/ballerdrone.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/beamsmoke.png b/bios/Game Engines/Hurrican/hurrican/data/textures/beamsmoke.png new file mode 100644 index 00000000..24502ad4 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/beamsmoke.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/beamsmoke2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/beamsmoke2.png new file mode 100644 index 00000000..c1c71324 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/beamsmoke2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/beamsmoke5.png b/bios/Game Engines/Hurrican/hurrican/data/textures/beamsmoke5.png new file mode 100644 index 00000000..65246106 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/beamsmoke5.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bigfish.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bigfish.png new file mode 100644 index 00000000..05ae1eba Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bigfish.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bigfishflossebig.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bigfishflossebig.png new file mode 100644 index 00000000..d537b106 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bigfishflossebig.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bigfishflosseklein.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bigfishflosseklein.png new file mode 100644 index 00000000..fa380376 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bigfishflosseklein.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bigfishflosseoben.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bigfishflosseoben.png new file mode 100644 index 00000000..f9dcf255 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bigfishflosseoben.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bigfishflosseunten.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bigfishflosseunten.png new file mode 100644 index 00000000..3da7d42e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bigfishflosseunten.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bigfishmaul.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bigfishmaul.png new file mode 100644 index 00000000..1bd23488 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bigfishmaul.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bigrocket.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bigrocket.png new file mode 100644 index 00000000..f846c00f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bigrocket.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/blatt.png b/bios/Game Engines/Hurrican/hurrican/data/textures/blatt.png new file mode 100644 index 00000000..bd9aef72 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/blatt.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/blauebombe.png b/bios/Game Engines/Hurrican/hurrican/data/textures/blauebombe.png new file mode 100644 index 00000000..4de59e83 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/blauebombe.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/blitzbeam.png b/bios/Game Engines/Hurrican/hurrican/data/textures/blitzbeam.png new file mode 100644 index 00000000..c5a8f505 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/blitzbeam.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/blitzflash1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/blitzflash1.png new file mode 100644 index 00000000..f04f848a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/blitzflash1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/blitzflash2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/blitzflash2.png new file mode 100644 index 00000000..9b0df82e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/blitzflash2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/blitzflash3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/blitzflash3.png new file mode 100644 index 00000000..9a165dc0 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/blitzflash3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/blitzflash4.png b/bios/Game Engines/Hurrican/hurrican/data/textures/blitzflash4.png new file mode 100644 index 00000000..60f8c159 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/blitzflash4.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/blitzstrahl1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/blitzstrahl1.png new file mode 100644 index 00000000..a2095b63 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/blitzstrahl1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/blitzstrahl2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/blitzstrahl2.png new file mode 100644 index 00000000..cffa7773 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/blitzstrahl2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/blitzstrahl3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/blitzstrahl3.png new file mode 100644 index 00000000..a1dbc202 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/blitzstrahl3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/blitzstrahl4.png b/bios/Game Engines/Hurrican/hurrican/data/textures/blitzstrahl4.png new file mode 100644 index 00000000..76484a15 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/blitzstrahl4.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/blitztexture.png b/bios/Game Engines/Hurrican/hurrican/data/textures/blitztexture.png new file mode 100644 index 00000000..3dae6f61 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/blitztexture.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/blue-explosion.png b/bios/Game Engines/Hurrican/hurrican/data/textures/blue-explosion.png new file mode 100644 index 00000000..db53f1c7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/blue-explosion.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bombe_big.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bombe_big.png new file mode 100644 index 00000000..90fe5afc Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bombe_big.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bombe_small.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bombe_small.png new file mode 100644 index 00000000..68f9b819 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bombe_small.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bossbar.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bossbar.png new file mode 100644 index 00000000..3d7ee223 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bossbar.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bosshud.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bosshud.png new file mode 100644 index 00000000..d121a7b1 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bosshud.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/boulder.png b/bios/Game Engines/Hurrican/hurrican/data/textures/boulder.png new file mode 100644 index 00000000..8fb14e2e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/boulder.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/boulder_small.png b/bios/Game Engines/Hurrican/hurrican/data/textures/boulder_small.png new file mode 100644 index 00000000..bc5f59b7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/boulder_small.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bounce1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bounce1.png new file mode 100644 index 00000000..5ce5f85e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bounce1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bounce2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bounce2.png new file mode 100644 index 00000000..1a600e11 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bounce2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bounce3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bounce3.png new file mode 100644 index 00000000..22e96113 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bounce3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bounce_big1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bounce_big1.png new file mode 100644 index 00000000..4f5bac09 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bounce_big1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bounce_big2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bounce_big2.png new file mode 100644 index 00000000..538d2795 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bounce_big2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bounce_big3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bounce_big3.png new file mode 100644 index 00000000..929975c0 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bounce_big3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bratklops0000.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bratklops0000.png new file mode 100644 index 00000000..7c2b6a94 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bratklops0000.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bratklops0001.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bratklops0001.png new file mode 100644 index 00000000..5fd052ec Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bratklops0001.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bratklops0002.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bratklops0002.png new file mode 100644 index 00000000..e7abc1fb Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bratklops0002.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bratklops0003.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bratklops0003.png new file mode 100644 index 00000000..2150eff0 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bratklops0003.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bratklops0004.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bratklops0004.png new file mode 100644 index 00000000..b204432a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bratklops0004.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bratklops0005.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bratklops0005.png new file mode 100644 index 00000000..a9ca0120 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bratklops0005.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bratklopslaser.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bratklopslaser.png new file mode 100644 index 00000000..48842ec9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bratklopslaser.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bratklopsshot.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bratklopsshot.png new file mode 100644 index 00000000..f65ad1fb Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bratklopsshot.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bratklopsshot2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bratklopsshot2.png new file mode 100644 index 00000000..4bf54c31 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bratklopsshot2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bruecke.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bruecke.png new file mode 100644 index 00000000..bf029e2b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bruecke.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bubble.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bubble.png new file mode 100644 index 00000000..51702681 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bubble.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/bullet.png b/bios/Game Engines/Hurrican/hurrican/data/textures/bullet.png new file mode 100644 index 00000000..77246615 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/bullet.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/canonball.png b/bios/Game Engines/Hurrican/hurrican/data/textures/canonball.png new file mode 100644 index 00000000..900487ac Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/canonball.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/climbspider.png b/bios/Game Engines/Hurrican/hurrican/data/textures/climbspider.png new file mode 100644 index 00000000..ecd3953d Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/climbspider.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/clouds1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/clouds1.png new file mode 100644 index 00000000..bf12d688 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/clouds1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/clouds2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/clouds2.png new file mode 100644 index 00000000..5fce5a35 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/clouds2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/clouds7.png b/bios/Game Engines/Hurrican/hurrican/data/textures/clouds7.png new file mode 100644 index 00000000..588e0a84 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/clouds7.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/clouds_cave.png b/bios/Game Engines/Hurrican/hurrican/data/textures/clouds_cave.png new file mode 100644 index 00000000..961551c7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/clouds_cave.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/clouds_jungle.png b/bios/Game Engines/Hurrican/hurrican/data/textures/clouds_jungle.png new file mode 100644 index 00000000..edc2f8ed Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/clouds_jungle.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/clouds_tower.png b/bios/Game Engines/Hurrican/hurrican/data/textures/clouds_tower.png new file mode 100644 index 00000000..7a4fedae Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/clouds_tower.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/column.png b/bios/Game Engines/Hurrican/hurrican/data/textures/column.png new file mode 100644 index 00000000..4b04b277 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/column.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/console.png b/bios/Game Engines/Hurrican/hurrican/data/textures/console.png new file mode 100644 index 00000000..8191522b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/console.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/copper1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/copper1.png new file mode 100644 index 00000000..ff321b30 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/copper1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/copper2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/copper2.png new file mode 100644 index 00000000..3ff0e04a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/copper2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/copper3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/copper3.png new file mode 100644 index 00000000..c5c6333c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/copper3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/deckenturm.png b/bios/Game Engines/Hurrican/hurrican/data/textures/deckenturm.png new file mode 100644 index 00000000..51d66d33 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/deckenturm.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/demofont.png b/bios/Game Engines/Hurrican/hurrican/data/textures/demofont.png new file mode 100644 index 00000000..32ed232d Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/demofont.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/demologo.png b/bios/Game Engines/Hurrican/hurrican/data/textures/demologo.png new file mode 100644 index 00000000..4a230298 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/demologo.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/demozahlen.png b/bios/Game Engines/Hurrican/hurrican/data/textures/demozahlen.png new file mode 100644 index 00000000..ff594244 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/demozahlen.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/diamant.png b/bios/Game Engines/Hurrican/hurrican/data/textures/diamant.png new file mode 100644 index 00000000..20ddd64a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/diamant.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/diamantcollected.png b/bios/Game Engines/Hurrican/hurrican/data/textures/diamantcollected.png new file mode 100644 index 00000000..158b718f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/diamantcollected.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/drache_arm.png b/bios/Game Engines/Hurrican/hurrican/data/textures/drache_arm.png new file mode 100644 index 00000000..5c83c562 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/drache_arm.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/drache_bein.png b/bios/Game Engines/Hurrican/hurrican/data/textures/drache_bein.png new file mode 100644 index 00000000..b6cbc980 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/drache_bein.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/drache_body.png b/bios/Game Engines/Hurrican/hurrican/data/textures/drache_body.png new file mode 100644 index 00000000..a5264479 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/drache_body.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/drache_hals.png b/bios/Game Engines/Hurrican/hurrican/data/textures/drache_hals.png new file mode 100644 index 00000000..b081b127 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/drache_hals.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/drache_head.png b/bios/Game Engines/Hurrican/hurrican/data/textures/drache_head.png new file mode 100644 index 00000000..99e861cf Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/drache_head.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/drache_head2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/drache_head2.png new file mode 100644 index 00000000..fb973621 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/drache_head2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/drache_klein.png b/bios/Game Engines/Hurrican/hurrican/data/textures/drache_klein.png new file mode 100644 index 00000000..c8060eb6 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/drache_klein.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/drache_smoke.png b/bios/Game Engines/Hurrican/hurrican/data/textures/drache_smoke.png new file mode 100644 index 00000000..f89149f4 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/drache_smoke.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/drache_spitze.png b/bios/Game Engines/Hurrican/hurrican/data/textures/drache_spitze.png new file mode 100644 index 00000000..5a9719d9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/drache_spitze.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/drache_tail.png b/bios/Game Engines/Hurrican/hurrican/data/textures/drache_tail.png new file mode 100644 index 00000000..f4b4af2a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/drache_tail.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/drone.png b/bios/Game Engines/Hurrican/hurrican/data/textures/drone.png new file mode 100644 index 00000000..05c166e8 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/drone.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/dronebullet.png b/bios/Game Engines/Hurrican/hurrican/data/textures/dronebullet.png new file mode 100644 index 00000000..3415488a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/dronebullet.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/droneflame.png b/bios/Game Engines/Hurrican/hurrican/data/textures/droneflame.png new file mode 100644 index 00000000..fd238c99 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/droneflame.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/druckwelle.png b/bios/Game Engines/Hurrican/hurrican/data/textures/druckwelle.png new file mode 100644 index 00000000..ad434242 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/druckwelle.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/dust.png b/bios/Game Engines/Hurrican/hurrican/data/textures/dust.png new file mode 100644 index 00000000..730ecfe7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/dust.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/eierbombe.png b/bios/Game Engines/Hurrican/hurrican/data/textures/eierbombe.png new file mode 100644 index 00000000..1e986727 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/eierbombe.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/eiermann.png b/bios/Game Engines/Hurrican/hurrican/data/textures/eiermann.png new file mode 100644 index 00000000..0aadbcef Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/eiermann.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/eisstachel.png b/bios/Game Engines/Hurrican/hurrican/data/textures/eisstachel.png new file mode 100644 index 00000000..57a26938 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/eisstachel.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/eiszapfen.png b/bios/Game Engines/Hurrican/hurrican/data/textures/eiszapfen.png new file mode 100644 index 00000000..bfaaa0f0 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/eiszapfen.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/eiszapfenshot.png b/bios/Game Engines/Hurrican/hurrican/data/textures/eiszapfenshot.png new file mode 100644 index 00000000..75743e11 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/eiszapfenshot.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/elektropampe.png b/bios/Game Engines/Hurrican/hurrican/data/textures/elektropampe.png new file mode 100644 index 00000000..59c6ab4e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/elektropampe.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/endbosshirni.png b/bios/Game Engines/Hurrican/hurrican/data/textures/endbosshirni.png new file mode 100644 index 00000000..b0305cf9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/endbosshirni.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/endbosskringel.png b/bios/Game Engines/Hurrican/hurrican/data/textures/endbosskringel.png new file mode 100644 index 00000000..01cf0080 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/endbosskringel.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/endbosskringel2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/endbosskringel2.png new file mode 100644 index 00000000..6b1881d4 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/endbosskringel2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/endbossmaschine.png b/bios/Game Engines/Hurrican/hurrican/data/textures/endbossmaschine.png new file mode 100644 index 00000000..eaac954b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/endbossmaschine.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/endbossmaschine_vorne.png b/bios/Game Engines/Hurrican/hurrican/data/textures/endbossmaschine_vorne.png new file mode 100644 index 00000000..6bcffbe1 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/endbossmaschine_vorne.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/endbossrahmen.png b/bios/Game Engines/Hurrican/hurrican/data/textures/endbossrahmen.png new file mode 100644 index 00000000..d943f907 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/endbossrahmen.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/endbosstuer.png b/bios/Game Engines/Hurrican/hurrican/data/textures/endbosstuer.png new file mode 100644 index 00000000..de2446d5 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/endbosstuer.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/endscreen_background.png b/bios/Game Engines/Hurrican/hurrican/data/textures/endscreen_background.png new file mode 100644 index 00000000..580934d6 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/endscreen_background.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/endscreen_henry.png b/bios/Game Engines/Hurrican/hurrican/data/textures/endscreen_henry.png new file mode 100644 index 00000000..11bdfb7e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/endscreen_henry.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/endscreen_turm.png b/bios/Game Engines/Hurrican/hurrican/data/textures/endscreen_turm.png new file mode 100644 index 00000000..69e9c59a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/endscreen_turm.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/enemy-guntower.png b/bios/Game Engines/Hurrican/hurrican/data/textures/enemy-guntower.png new file mode 100644 index 00000000..0dda5455 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/enemy-guntower.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/enemy-spiderbomb.png b/bios/Game Engines/Hurrican/hurrican/data/textures/enemy-spiderbomb.png new file mode 100644 index 00000000..b67a2810 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/enemy-spiderbomb.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/enemy-walker.png b/bios/Game Engines/Hurrican/hurrican/data/textures/enemy-walker.png new file mode 100644 index 00000000..46f7e3e0 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/enemy-walker.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/evil-smoke.png b/bios/Game Engines/Hurrican/hurrican/data/textures/evil-smoke.png new file mode 100644 index 00000000..b0bd1074 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/evil-smoke.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/evil-smoke2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/evil-smoke2.png new file mode 100644 index 00000000..69a41b7c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/evil-smoke2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/evilblitz.png b/bios/Game Engines/Hurrican/hurrican/data/textures/evilblitz.png new file mode 100644 index 00000000..2f0e5a26 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/evilblitz.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/evilblitz2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/evilblitz2.png new file mode 100644 index 00000000..39a69c0b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/evilblitz2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/evilfunke.png b/bios/Game Engines/Hurrican/hurrican/data/textures/evilfunke.png new file mode 100644 index 00000000..722683e1 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/evilfunke.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/evilround.png b/bios/Game Engines/Hurrican/hurrican/data/textures/evilround.png new file mode 100644 index 00000000..97074ce4 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/evilround.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/evilroundsmoke.png b/bios/Game Engines/Hurrican/hurrican/data/textures/evilroundsmoke.png new file mode 100644 index 00000000..992ce5ca Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/evilroundsmoke.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/evilshot.png b/bios/Game Engines/Hurrican/hurrican/data/textures/evilshot.png new file mode 100644 index 00000000..c20257ea Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/evilshot.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/evilshot2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/evilshot2.png new file mode 100644 index 00000000..9d1ed2dd Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/evilshot2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-big.png b/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-big.png new file mode 100644 index 00000000..d202cf93 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-big.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-big2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-big2.png new file mode 100644 index 00000000..078df50c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-big2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-giga.png b/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-giga.png new file mode 100644 index 00000000..a5c6b08a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-giga.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-green.png b/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-green.png new file mode 100644 index 00000000..ee3556bf Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-green.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-medium.png b/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-medium.png new file mode 100644 index 00000000..555f7f8b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-medium.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-medium2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-medium2.png new file mode 100644 index 00000000..b5c203fd Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-medium2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-medium3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-medium3.png new file mode 100644 index 00000000..555f7f8b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-medium3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-regular.png b/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-regular.png new file mode 100644 index 00000000..dcc81c67 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-regular.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-trace.png b/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-trace.png new file mode 100644 index 00000000..f5dc20da Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/explosion-trace.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/extracollected.png b/bios/Game Engines/Hurrican/hurrican/data/textures/extracollected.png new file mode 100644 index 00000000..d2869560 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/extracollected.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/extras.png b/bios/Game Engines/Hurrican/hurrican/data/textures/extras.png new file mode 100644 index 00000000..115d60f3 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/extras.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fahrstuhl.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fahrstuhl.png new file mode 100644 index 00000000..7b8f1e95 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fahrstuhl.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fahrstuhl_parallax.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fahrstuhl_parallax.png new file mode 100644 index 00000000..ff422993 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fahrstuhl_parallax.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fahrstuhlboss_canon.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fahrstuhlboss_canon.png new file mode 100644 index 00000000..13304830 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fahrstuhlboss_canon.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fahrstuhlboss_head.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fahrstuhlboss_head.png new file mode 100644 index 00000000..0a4c6407 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fahrstuhlboss_head.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fahrstuhlboss_rahmen.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fahrstuhlboss_rahmen.png new file mode 100644 index 00000000..bbd30330 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fahrstuhlboss_rahmen.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fallbombe.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fallbombe.png new file mode 100644 index 00000000..eb073548 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fallbombe.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fallingstone.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fallingstone.png new file mode 100644 index 00000000..e23f250a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fallingstone.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fallingstone2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fallingstone2.png new file mode 100644 index 00000000..9b86c9af Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fallingstone2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fass.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fass.png new file mode 100644 index 00000000..aa52f45f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fass.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fetterakete.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fetterakete.png new file mode 100644 index 00000000..ac699fa7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fetterakete.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fetterspinnenlaser.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fetterspinnenlaser.png new file mode 100644 index 00000000..6d093e85 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fetterspinnenlaser.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fettespinne.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fettespinne.png new file mode 100644 index 00000000..c089c689 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fettespinne.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fettespinne_UNUSED_BMP.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fettespinne_UNUSED_BMP.png new file mode 100644 index 00000000..628b0737 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fettespinne_UNUSED_BMP.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fettespinneshot.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fettespinneshot.png new file mode 100644 index 00000000..b0e00cd5 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fettespinneshot.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fettespinneshot2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fettespinneshot2.png new file mode 100644 index 00000000..07926701 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fettespinneshot2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/feuerspinne.png b/bios/Game Engines/Hurrican/hurrican/data/textures/feuerspinne.png new file mode 100644 index 00000000..f8092b38 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/feuerspinne.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fiesedrone.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fiesedrone.png new file mode 100644 index 00000000..d92f6707 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fiesedrone.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fieserwalker.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fieserwalker.png new file mode 100644 index 00000000..28921c6a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fieserwalker.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fieserwalker2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fieserwalker2.png new file mode 100644 index 00000000..88a0e06a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fieserwalker2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fireball.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fireball.png new file mode 100644 index 00000000..92c5fb8c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fireball.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fireball_big.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fireball_big.png new file mode 100644 index 00000000..502a6bf0 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fireball_big.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fireball_smoke.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fireball_smoke.png new file mode 100644 index 00000000..18caf858 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fireball_smoke.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/flame.png b/bios/Game Engines/Hurrican/hurrican/data/textures/flame.png new file mode 100644 index 00000000..3d207741 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/flame.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/flamme.png b/bios/Game Engines/Hurrican/hurrican/data/textures/flamme.png new file mode 100644 index 00000000..6d6a807e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/flamme.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/flammenwerfer.png b/bios/Game Engines/Hurrican/hurrican/data/textures/flammenwerfer.png new file mode 100644 index 00000000..335fdc21 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/flammenwerfer.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fledermaus.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fledermaus.png new file mode 100644 index 00000000..fffd6276 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fledermaus.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/floating.png b/bios/Game Engines/Hurrican/hurrican/data/textures/floating.png new file mode 100644 index 00000000..c1a86b64 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/floating.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/floating2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/floating2.png new file mode 100644 index 00000000..473a6ce9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/floating2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/floating3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/floating3.png new file mode 100644 index 00000000..432e451c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/floating3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_auge.png b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_auge.png new file mode 100644 index 00000000..63880646 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_auge.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_geschuetz.png b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_geschuetz.png new file mode 100644 index 00000000..cae107d9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_geschuetz.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_hitzone.png b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_hitzone.png new file mode 100644 index 00000000..ce6161ed Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_hitzone.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_hitzone2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_hitzone2.png new file mode 100644 index 00000000..91c5794a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_hitzone2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_kanone_fett.png b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_kanone_fett.png new file mode 100644 index 00000000..efcc17c4 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_kanone_fett.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_kanone_klein.png b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_kanone_klein.png new file mode 100644 index 00000000..782bcd62 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_kanone_klein.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_kanone_mini.png b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_kanone_mini.png new file mode 100644 index 00000000..c8e3e20d Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_kanone_mini.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_klappe.png b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_klappe.png new file mode 100644 index 00000000..25444c4c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_klappe.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_main.png b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_main.png new file mode 100644 index 00000000..44042e4d Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_main.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_schiene_l.png b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_schiene_l.png new file mode 100644 index 00000000..f03fc33a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_schiene_l.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_schiene_r.png b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_schiene_r.png new file mode 100644 index 00000000..63c18b01 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/flugboss_schiene_r.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/flugkanone.png b/bios/Game Engines/Hurrican/hurrican/data/textures/flugkanone.png new file mode 100644 index 00000000..b5538c44 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/flugkanone.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/flugkanonelaser.png b/bios/Game Engines/Hurrican/hurrican/data/textures/flugkanonelaser.png new file mode 100644 index 00000000..e1903aa5 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/flugkanonelaser.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/flugsack.png b/bios/Game Engines/Hurrican/hurrican/data/textures/flugsack.png new file mode 100644 index 00000000..0fb95264 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/flugsack.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/flugsacksmoke.png b/bios/Game Engines/Hurrican/hurrican/data/textures/flugsacksmoke.png new file mode 100644 index 00000000..ab570c72 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/flugsacksmoke.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/fog.png b/bios/Game Engines/Hurrican/hurrican/data/textures/fog.png new file mode 100644 index 00000000..cd60a3b7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/fog.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/front_cave.png b/bios/Game Engines/Hurrican/hurrican/data/textures/front_cave.png new file mode 100644 index 00000000..588e0a84 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/front_cave.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/front_ice.png b/bios/Game Engines/Hurrican/hurrican/data/textures/front_ice.png new file mode 100644 index 00000000..1df76193 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/front_ice.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/front_jungle.png b/bios/Game Engines/Hurrican/hurrican/data/textures/front_jungle.png new file mode 100644 index 00000000..e40194de Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/front_jungle.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/front_lava.png b/bios/Game Engines/Hurrican/hurrican/data/textures/front_lava.png new file mode 100644 index 00000000..b1fb2c7d Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/front_lava.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/front_spinne.png b/bios/Game Engines/Hurrican/hurrican/data/textures/front_spinne.png new file mode 100644 index 00000000..016c1511 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/front_spinne.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/front_tower.png b/bios/Game Engines/Hurrican/hurrican/data/textures/front_tower.png new file mode 100644 index 00000000..0739a2e0 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/front_tower.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/funke.png b/bios/Game Engines/Hurrican/hurrican/data/textures/funke.png new file mode 100644 index 00000000..acc0f877 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/funke.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/funke2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/funke2.png new file mode 100644 index 00000000..a912acec Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/funke2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/gameover.png b/bios/Game Engines/Hurrican/hurrican/data/textures/gameover.png new file mode 100644 index 00000000..d7e6b0cd Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/gameover.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/geschuetz.png b/bios/Game Engines/Hurrican/hurrican/data/textures/geschuetz.png new file mode 100644 index 00000000..1908851d Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/geschuetz.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/giantspiderflare.png b/bios/Game Engines/Hurrican/hurrican/data/textures/giantspiderflare.png new file mode 100644 index 00000000..564107a3 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/giantspiderflare.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/glassplitter.png b/bios/Game Engines/Hurrican/hurrican/data/textures/glassplitter.png new file mode 100644 index 00000000..2d2cdaf2 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/glassplitter.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/glubschi.png b/bios/Game Engines/Hurrican/hurrican/data/textures/glubschi.png new file mode 100644 index 00000000..3a3a0af8 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/glubschi.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/glubschi2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/glubschi2.png new file mode 100644 index 00000000..6b9d7a19 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/glubschi2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/golem_rumpf.png b/bios/Game Engines/Hurrican/hurrican/data/textures/golem_rumpf.png new file mode 100644 index 00000000..0ff714f3 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/golem_rumpf.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/golemarm_hinten.png b/bios/Game Engines/Hurrican/hurrican/data/textures/golemarm_hinten.png new file mode 100644 index 00000000..0d8d6eae Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/golemarm_hinten.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/golemarm_vorne.png b/bios/Game Engines/Hurrican/hurrican/data/textures/golemarm_vorne.png new file mode 100644 index 00000000..6e4f4837 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/golemarm_vorne.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/golemload.png b/bios/Game Engines/Hurrican/hurrican/data/textures/golemload.png new file mode 100644 index 00000000..0893a213 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/golemload.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/golemschuss.png b/bios/Game Engines/Hurrican/hurrican/data/textures/golemschuss.png new file mode 100644 index 00000000..ff6234bd Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/golemschuss.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/grenade.png b/bios/Game Engines/Hurrican/hurrican/data/textures/grenade.png new file mode 100644 index 00000000..bee9e8f2 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/grenade.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/grenadeflare.png b/bios/Game Engines/Hurrican/hurrican/data/textures/grenadeflare.png new file mode 100644 index 00000000..eb9ccbc6 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/grenadeflare.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/guiback.png b/bios/Game Engines/Hurrican/hurrican/data/textures/guiback.png new file mode 100644 index 00000000..371538ba Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/guiback.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/hud.png b/bios/Game Engines/Hurrican/hurrican/data/textures/hud.png new file mode 100644 index 00000000..0b037044 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/hud.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/hudarrow.png b/bios/Game Engines/Hurrican/hurrican/data/textures/hudarrow.png new file mode 100644 index 00000000..9486a65e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/hudarrow.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/hudautofire.png b/bios/Game Engines/Hurrican/hurrican/data/textures/hudautofire.png new file mode 100644 index 00000000..5b581f4a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/hudautofire.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/hudbalken.png b/bios/Game Engines/Hurrican/hurrican/data/textures/hudbalken.png new file mode 100644 index 00000000..599f8b3c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/hudbalken.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/hudbalken_full.png b/bios/Game Engines/Hurrican/hurrican/data/textures/hudbalken_full.png new file mode 100644 index 00000000..ec545655 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/hudbalken_full.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/hudblitz.png b/bios/Game Engines/Hurrican/hurrican/data/textures/hudblitz.png new file mode 100644 index 00000000..7b59032f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/hudblitz.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/hudbomb.png b/bios/Game Engines/Hurrican/hurrican/data/textures/hudbomb.png new file mode 100644 index 00000000..dd0063ac Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/hudbomb.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/hudenergy.png b/bios/Game Engines/Hurrican/hurrican/data/textures/hudenergy.png new file mode 100644 index 00000000..ffffcd18 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/hudenergy.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/hudfontbig.png b/bios/Game Engines/Hurrican/hurrican/data/textures/hudfontbig.png new file mode 100644 index 00000000..47a10321 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/hudfontbig.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/hudpower.png b/bios/Game Engines/Hurrican/hurrican/data/textures/hudpower.png new file mode 100644 index 00000000..13c278fa Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/hudpower.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/hudrad.png b/bios/Game Engines/Hurrican/hurrican/data/textures/hudrad.png new file mode 100644 index 00000000..a6890efc Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/hudrad.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/hudselected.png b/bios/Game Engines/Hurrican/hurrican/data/textures/hudselected.png new file mode 100644 index 00000000..4f4b1eb9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/hudselected.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/hudstate.png b/bios/Game Engines/Hurrican/hurrican/data/textures/hudstate.png new file mode 100644 index 00000000..4febee87 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/hudstate.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/hudsupershot.png b/bios/Game Engines/Hurrican/hurrican/data/textures/hudsupershot.png new file mode 100644 index 00000000..28b57906 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/hudsupershot.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/hurrican-logo.png b/bios/Game Engines/Hurrican/hurrican/data/textures/hurrican-logo.png new file mode 100644 index 00000000..f65bb8ea Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/hurrican-logo.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/hurrican_rund.png b/bios/Game Engines/Hurrican/hurrican/data/textures/hurrican_rund.png new file mode 100644 index 00000000..db0be241 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/hurrican_rund.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/intro1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/intro1.png new file mode 100644 index 00000000..d88e4184 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/intro1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/intro2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/intro2.png new file mode 100644 index 00000000..c001fae9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/intro2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/intro3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/intro3.png new file mode 100644 index 00000000..7160c084 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/intro3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/intro4.png b/bios/Game Engines/Hurrican/hurrican/data/textures/intro4.png new file mode 100644 index 00000000..088bac65 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/intro4.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/intro5.png b/bios/Game Engines/Hurrican/hurrican/data/textures/intro5.png new file mode 100644 index 00000000..7289c331 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/intro5.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/intro6.png b/bios/Game Engines/Hurrican/hurrican/data/textures/intro6.png new file mode 100644 index 00000000..95936aa1 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/intro6.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/jaeger.png b/bios/Game Engines/Hurrican/hurrican/data/textures/jaeger.png new file mode 100644 index 00000000..02e11e13 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/jaeger.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/kettenteil2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/kettenteil2.png new file mode 100644 index 00000000..6eb91530 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/kettenteil2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/kettenteile.png b/bios/Game Engines/Hurrican/hurrican/data/textures/kettenteile.png new file mode 100644 index 00000000..8b10081f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/kettenteile.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/krabblerlaser1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/krabblerlaser1.png new file mode 100644 index 00000000..219f563e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/krabblerlaser1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/krabblerlaser2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/krabblerlaser2.png new file mode 100644 index 00000000..401b6719 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/krabblerlaser2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/krabblerlinks.png b/bios/Game Engines/Hurrican/hurrican/data/textures/krabblerlinks.png new file mode 100644 index 00000000..12d486be Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/krabblerlinks.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/krabbleroben.png b/bios/Game Engines/Hurrican/hurrican/data/textures/krabbleroben.png new file mode 100644 index 00000000..fb20ad93 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/krabbleroben.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/krabblerrechts.png b/bios/Game Engines/Hurrican/hurrican/data/textures/krabblerrechts.png new file mode 100644 index 00000000..0bb12e30 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/krabblerrechts.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/kringel.png b/bios/Game Engines/Hurrican/hurrican/data/textures/kringel.png new file mode 100644 index 00000000..34a2ae36 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/kringel.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/kugel1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/kugel1.png new file mode 100644 index 00000000..3f2c49fb Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/kugel1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/kugel2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/kugel2.png new file mode 100644 index 00000000..af7705ff Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/kugel2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/kugel3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/kugel3.png new file mode 100644 index 00000000..e8c395fc Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/kugel3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/kugel4.png b/bios/Game Engines/Hurrican/hurrican/data/textures/kugel4.png new file mode 100644 index 00000000..d692cae3 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/kugel4.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/lafass.png b/bios/Game Engines/Hurrican/hurrican/data/textures/lafass.png new file mode 100644 index 00000000..e04e05b6 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/lafass.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/lafass_fall.png b/bios/Game Engines/Hurrican/hurrican/data/textures/lafass_fall.png new file mode 100644 index 00000000..e807e226 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/lafass_fall.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/lafass_spawner.png b/bios/Game Engines/Hurrican/hurrican/data/textures/lafass_spawner.png new file mode 100644 index 00000000..754c4b68 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/lafass_spawner.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/laser.png b/bios/Game Engines/Hurrican/hurrican/data/textures/laser.png new file mode 100644 index 00000000..0d116461 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/laser.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/laser2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/laser2.png new file mode 100644 index 00000000..14dbb15b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/laser2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/laserbig.png b/bios/Game Engines/Hurrican/hurrican/data/textures/laserbig.png new file mode 100644 index 00000000..bf24037f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/laserbig.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/laserbig2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/laserbig2.png new file mode 100644 index 00000000..272dfc09 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/laserbig2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/laserflame.png b/bios/Game Engines/Hurrican/hurrican/data/textures/laserflame.png new file mode 100644 index 00000000..73b1ccc8 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/laserflame.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/laserfunke.png b/bios/Game Engines/Hurrican/hurrican/data/textures/laserfunke.png new file mode 100644 index 00000000..27abc5b3 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/laserfunke.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/laserfunke2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/laserfunke2.png new file mode 100644 index 00000000..e56bb832 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/laserfunke2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/lasersmoke.png b/bios/Game Engines/Hurrican/hurrican/data/textures/lasersmoke.png new file mode 100644 index 00000000..591b7bba Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/lasersmoke.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/lasersmoke_big.png b/bios/Game Engines/Hurrican/hurrican/data/textures/lasersmoke_big.png new file mode 100644 index 00000000..25a1d3c0 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/lasersmoke_big.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/lavaball.png b/bios/Game Engines/Hurrican/hurrican/data/textures/lavaball.png new file mode 100644 index 00000000..bcd3777b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/lavaball.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/lavaflare.png b/bios/Game Engines/Hurrican/hurrican/data/textures/lavaflare.png new file mode 100644 index 00000000..55d8d6c4 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/lavaflare.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/lavakrabbe.png b/bios/Game Engines/Hurrican/hurrican/data/textures/lavakrabbe.png new file mode 100644 index 00000000..60704f2b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/lavakrabbe.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/lavakrabbe_teile.png b/bios/Game Engines/Hurrican/hurrican/data/textures/lavakrabbe_teile.png new file mode 100644 index 00000000..303df26e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/lavakrabbe_teile.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/lavamann.png b/bios/Game Engines/Hurrican/hurrican/data/textures/lavamann.png new file mode 100644 index 00000000..ea9bb9dd Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/lavamann.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/lift.png b/bios/Game Engines/Hurrican/hurrican/data/textures/lift.png new file mode 100644 index 00000000..df5a3611 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/lift.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/loading.png b/bios/Game Engines/Hurrican/hurrican/data/textures/loading.png new file mode 100644 index 00000000..4b7fdb6e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/loading.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/loadingbar.png b/bios/Game Engines/Hurrican/hurrican/data/textures/loadingbar.png new file mode 100644 index 00000000..459046fe Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/loadingbar.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/luefter1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/luefter1.png new file mode 100644 index 00000000..d3e3a011 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/luefter1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/luefter2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/luefter2.png new file mode 100644 index 00000000..a5f2f5b2 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/luefter2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/luefter_gross.png b/bios/Game Engines/Hurrican/hurrican/data/textures/luefter_gross.png new file mode 100644 index 00000000..4971c684 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/luefter_gross.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/made.png b/bios/Game Engines/Hurrican/hurrican/data/textures/made.png new file mode 100644 index 00000000..b6a68315 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/made.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/madeblut.png b/bios/Game Engines/Hurrican/hurrican/data/textures/madeblut.png new file mode 100644 index 00000000..5b31e44a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/madeblut.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/menufont.png b/bios/Game Engines/Hurrican/hurrican/data/textures/menufont.png new file mode 100644 index 00000000..8e030057 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/menufont.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/menukasten.png b/bios/Game Engines/Hurrican/hurrican/data/textures/menukasten.png new file mode 100644 index 00000000..bd468483 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/menukasten.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/menukasten_on.png b/bios/Game Engines/Hurrican/hurrican/data/textures/menukasten_on.png new file mode 100644 index 00000000..6019d9e8 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/menukasten_on.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/metalhead_birne.png b/bios/Game Engines/Hurrican/hurrican/data/textures/metalhead_birne.png new file mode 100644 index 00000000..6aea9dc4 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/metalhead_birne.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/metalhead_halsteil.png b/bios/Game Engines/Hurrican/hurrican/data/textures/metalhead_halsteil.png new file mode 100644 index 00000000..d3ae2489 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/metalhead_halsteil.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/metalhead_kiefer.png b/bios/Game Engines/Hurrican/hurrican/data/textures/metalhead_kiefer.png new file mode 100644 index 00000000..04b57ca7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/metalhead_kiefer.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/metalhead_kiefer2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/metalhead_kiefer2.png new file mode 100644 index 00000000..f806d665 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/metalhead_kiefer2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/metalhead_turbine.png b/bios/Game Engines/Hurrican/hurrican/data/textures/metalhead_turbine.png new file mode 100644 index 00000000..00605e3f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/metalhead_turbine.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/metalhead_turbine2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/metalhead_turbine2.png new file mode 100644 index 00000000..99fd9f1b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/metalhead_turbine2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/minidragon.png b/bios/Game Engines/Hurrican/hurrican/data/textures/minidragon.png new file mode 100644 index 00000000..7326bd1a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/minidragon.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/miniflare.png b/bios/Game Engines/Hurrican/hurrican/data/textures/miniflare.png new file mode 100644 index 00000000..9a2d6886 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/miniflare.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/minirocket.png b/bios/Game Engines/Hurrican/hurrican/data/textures/minirocket.png new file mode 100644 index 00000000..10758e5a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/minirocket.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/mittelspinne.png b/bios/Game Engines/Hurrican/hurrican/data/textures/mittelspinne.png new file mode 100644 index 00000000..1ffb562e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/mittelspinne.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/mushroom_head.png b/bios/Game Engines/Hurrican/hurrican/data/textures/mushroom_head.png new file mode 100644 index 00000000..3661a4b9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/mushroom_head.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/mutant.png b/bios/Game Engines/Hurrican/hurrican/data/textures/mutant.png new file mode 100644 index 00000000..a9e4d037 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/mutant.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/nest.png b/bios/Game Engines/Hurrican/hurrican/data/textures/nest.png new file mode 100644 index 00000000..28e3a3da Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/nest.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/neufisch.png b/bios/Game Engines/Hurrican/hurrican/data/textures/neufisch.png new file mode 100644 index 00000000..25020267 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/neufisch.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/oneup.png b/bios/Game Engines/Hurrican/hurrican/data/textures/oneup.png new file mode 100644 index 00000000..261cf67d Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/oneup.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p1_endritt.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_endritt.png new file mode 100644 index 00000000..8d4b8747 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_endritt.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri-teile.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri-teile.png new file mode 100644 index 00000000..7665262a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri-teile.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_crouch.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_crouch.png new file mode 100644 index 00000000..3a55502c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_crouch.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_idle.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_idle.png new file mode 100644 index 00000000..c5d34c62 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_idle.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_idleumkuck.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_idleumkuck.png new file mode 100644 index 00000000..6d9fabd7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_idleumkuck.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_jump.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_jump.png new file mode 100644 index 00000000..9fb8dca4 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_jump.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_jumpschraeg.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_jumpschraeg.png new file mode 100644 index 00000000..6aa54388 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_jumpschraeg.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_jumpup.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_jumpup.png new file mode 100644 index 00000000..5198827d Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_jumpup.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_kucken.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_kucken.png new file mode 100644 index 00000000..1da52d51 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_kucken.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_laufen.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_laufen.png new file mode 100644 index 00000000..11972476 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_laufen.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_pissen.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_pissen.png new file mode 100644 index 00000000..22750396 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_pissen.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_rad.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_rad.png new file mode 100644 index 00000000..7124cdc1 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_rad.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_ride.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_ride.png new file mode 100644 index 00000000..991db5e7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_ride.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_rundumschuss.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_rundumschuss.png new file mode 100644 index 00000000..604bf316 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_rundumschuss.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_shootdiagonal.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_shootdiagonal.png new file mode 100644 index 00000000..60cf08ec Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_shootdiagonal.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_shootup.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_shootup.png new file mode 100644 index 00000000..86f81269 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p1_hurri_shootup.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p2_endritt.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_endritt.png new file mode 100644 index 00000000..f6c40d58 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_endritt.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri-teile.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri-teile.png new file mode 100644 index 00000000..dee84786 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri-teile.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_crouch.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_crouch.png new file mode 100644 index 00000000..5cfc8322 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_crouch.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_idle.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_idle.png new file mode 100644 index 00000000..f3e84b55 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_idle.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_idleumkuck.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_idleumkuck.png new file mode 100644 index 00000000..f09d011c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_idleumkuck.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_jump.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_jump.png new file mode 100644 index 00000000..e98a58dc Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_jump.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_jumpschraeg.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_jumpschraeg.png new file mode 100644 index 00000000..3326fba7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_jumpschraeg.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_jumpup.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_jumpup.png new file mode 100644 index 00000000..cb8a6d00 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_jumpup.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_kucken.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_kucken.png new file mode 100644 index 00000000..7afd86b5 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_kucken.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_laufen.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_laufen.png new file mode 100644 index 00000000..2bf95813 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_laufen.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_pissen.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_pissen.png new file mode 100644 index 00000000..694aea46 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_pissen.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_rad.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_rad.png new file mode 100644 index 00000000..a30bb4c7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_rad.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_ride.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_ride.png new file mode 100644 index 00000000..b4447410 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_ride.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_rundumschuss.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_rundumschuss.png new file mode 100644 index 00000000..5b4f9656 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_rundumschuss.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_shootdiagonal.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_shootdiagonal.png new file mode 100644 index 00000000..9a995b49 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_shootdiagonal.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_shootup.png b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_shootup.png new file mode 100644 index 00000000..926e302e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/p2_hurri_shootup.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/pflanze.png b/bios/Game Engines/Hurrican/hurrican/data/textures/pflanze.png new file mode 100644 index 00000000..204d2c1f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/pflanze.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/pflanzeschuss.png b/bios/Game Engines/Hurrican/hurrican/data/textures/pflanzeschuss.png new file mode 100644 index 00000000..114305e1 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/pflanzeschuss.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/pharaokopf.png b/bios/Game Engines/Hurrican/hurrican/data/textures/pharaokopf.png new file mode 100644 index 00000000..e6fc01b2 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/pharaokopf.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/pharaolaser.png b/bios/Game Engines/Hurrican/hurrican/data/textures/pharaolaser.png new file mode 100644 index 00000000..a5914037 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/pharaolaser.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/pharaosmoke.png b/bios/Game Engines/Hurrican/hurrican/data/textures/pharaosmoke.png new file mode 100644 index 00000000..fdd21858 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/pharaosmoke.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/piranha.png b/bios/Game Engines/Hurrican/hurrican/data/textures/piranha.png new file mode 100644 index 00000000..5dd57006 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/piranha.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/piranhablut.png b/bios/Game Engines/Hurrican/hurrican/data/textures/piranhablut.png new file mode 100644 index 00000000..ac41f47d Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/piranhablut.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/piranhateile.png b/bios/Game Engines/Hurrican/hurrican/data/textures/piranhateile.png new file mode 100644 index 00000000..19628071 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/piranhateile.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/piranhateile2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/piranhateile2.png new file mode 100644 index 00000000..50e14e65 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/piranhateile2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/plattform.png b/bios/Game Engines/Hurrican/hurrican/data/textures/plattform.png new file mode 100644 index 00000000..94a3a4cb Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/plattform.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/pokenuke.png b/bios/Game Engines/Hurrican/hurrican/data/textures/pokenuke.png new file mode 100644 index 00000000..50bbba13 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/pokenuke.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/powerblock.png b/bios/Game Engines/Hurrican/hurrican/data/textures/powerblock.png new file mode 100644 index 00000000..c4d50518 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/powerblock.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/powerline.png b/bios/Game Engines/Hurrican/hurrican/data/textures/powerline.png new file mode 100644 index 00000000..ce53b5cf Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/powerline.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/powerlinesmoke.png b/bios/Game Engines/Hurrican/hurrican/data/textures/powerlinesmoke.png new file mode 100644 index 00000000..183581bf Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/powerlinesmoke.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/presse.png b/bios/Game Engines/Hurrican/hurrican/data/textures/presse.png new file mode 100644 index 00000000..6bfd6f45 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/presse.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/presswurst.png b/bios/Game Engines/Hurrican/hurrican/data/textures/presswurst.png new file mode 100644 index 00000000..de05e726 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/presswurst.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/punisher.png b/bios/Game Engines/Hurrican/hurrican/data/textures/punisher.png new file mode 100644 index 00000000..2e1fb322 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/punisher.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/pvr/PVRCompress.sh b/bios/Game Engines/Hurrican/hurrican/data/textures/pvr/PVRCompress.sh new file mode 100644 index 00000000..4a1d1a3a --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/data/textures/pvr/PVRCompress.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +# This script creates PVRTC textures from all of the PNG's. +# It will upscale to POT if needed and convert the image to 32 bit PNG. +# It also creates the list of filename's with scaling in scalefactors.txt +# The resulting TC2 or TC4 files should be copied to data/textures/pvr +# The scalefactors.txt should be copied to data/textures/pvr + +powerof2 () { +# Get the original size of the image + W=`identify ../$f | cut -f 3 -d " " | sed s/x.*//` + H=`identify ../$f | cut -f 3 -d " " | sed s/.*x//` + + # Determine the next power of 2 greater the original image size + P2W=`convert ../$f -format "%[fx:2^(ceil(log(w)/log(2)))]" info:` + P2H=`convert ../$f -format "%[fx:2^(ceil(log(h)/log(2)))]" info:` + if test $P2W -lt 32; then + P2W=32 + fi + if test $P2H -lt 32; then + P2H=32 + fi + + # Calculate the ratio size increase + FACTOR_W=$(echo "scale=3; $W/$P2W" | bc -l ) + FACTOR_H=$(echo "scale=3; $H/$P2H" | bc -l ) + + # Remove the file extentsion + FILENAME=${f%.*} + + # Display and write the results to file + echo Width ${FILENAME} ${FACTOR_W} ${W} ${P2W} + echo Height ${FILENAME} ${FACTOR_H} ${H} ${P2W} + echo ${FILENAME} ${FACTOR_W} ${FACTOR_H} >> scalefactors.txt +} + +rm scalefactors.txt +rm -rf tc2 +rm -rf tc4 +#rm -rf XRGB1555 +rm -rf ../png32 + +mkdir tc2 +mkdir tc4 +#mkdir XRGB1555 +mkdir ../png32 + +cd .. + +for f in *.png +do + cd pvr + echo "Processing $f file..." + + powerof2 + + convert ../$f -background transparent -extent ${P2W}x${P2H} PNG32:../png32/$f.png + + ./PVRTexTool -fPVRTC2 -i../png32/$f.png -o tc2/$f.pvr + ./PVRTexTool -fPVRTC4 -i../png32/$f.png -o tc4/$f.pvr +# ./PVRTexTool -f1555 -i../png32/$f.png -o XRGB1555/$f.pvr +# mv XRGB1555/$f.pvr XRGB1555/$f.XRGB1555 + + cd .. +done diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/pvr/PVRTexTool b/bios/Game Engines/Hurrican/hurrican/data/textures/pvr/PVRTexTool new file mode 100755 index 00000000..1751841e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/pvr/PVRTexTool differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/qualle.png b/bios/Game Engines/Hurrican/hurrican/data/textures/qualle.png new file mode 100644 index 00000000..ac19eb88 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/qualle.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/rain.png b/bios/Game Engines/Hurrican/hurrican/data/textures/rain.png new file mode 100644 index 00000000..027e1ee8 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/rain.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/raketenwerfer.png b/bios/Game Engines/Hurrican/hurrican/data/textures/raketenwerfer.png new file mode 100644 index 00000000..65a6c2cd Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/raketenwerfer.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/redlaser.png b/bios/Game Engines/Hurrican/hurrican/data/textures/redlaser.png new file mode 100644 index 00000000..6ce81a39 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/redlaser.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/riesenpiranha.png b/bios/Game Engines/Hurrican/hurrican/data/textures/riesenpiranha.png new file mode 100644 index 00000000..b133ddb6 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/riesenpiranha.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/riesenqualle.png b/bios/Game Engines/Hurrican/hurrican/data/textures/riesenqualle.png new file mode 100644 index 00000000..94e79c01 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/riesenqualle.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/riesenraupe.png b/bios/Game Engines/Hurrican/hurrican/data/textures/riesenraupe.png new file mode 100644 index 00000000..11db04a2 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/riesenraupe.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/roboman1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/roboman1.png new file mode 100644 index 00000000..9dace40e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/roboman1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/roboraupe.png b/bios/Game Engines/Hurrican/hurrican/data/textures/roboraupe.png new file mode 100644 index 00000000..18eb99c2 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/roboraupe.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/rocket.png b/bios/Game Engines/Hurrican/hurrican/data/textures/rocket.png new file mode 100644 index 00000000..71a20afe Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/rocket.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/rocketsmoke.png b/bios/Game Engines/Hurrican/hurrican/data/textures/rocketsmoke.png new file mode 100644 index 00000000..158d7d2c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/rocketsmoke.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/rocketsmokeblue.png b/bios/Game Engines/Hurrican/hurrican/data/textures/rocketsmokeblue.png new file mode 100644 index 00000000..277de113 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/rocketsmokeblue.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/rocketsmokegreen.png b/bios/Game Engines/Hurrican/hurrican/data/textures/rocketsmokegreen.png new file mode 100644 index 00000000..4a69750b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/rocketsmokegreen.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/rocketwerfer.png b/bios/Game Engines/Hurrican/hurrican/data/textures/rocketwerfer.png new file mode 100644 index 00000000..a4c124f7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/rocketwerfer.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/rocksplitter.png b/bios/Game Engines/Hurrican/hurrican/data/textures/rocksplitter.png new file mode 100644 index 00000000..2606a8f3 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/rocksplitter.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/rocksplittersmall.png b/bios/Game Engines/Hurrican/hurrican/data/textures/rocksplittersmall.png new file mode 100644 index 00000000..0819d5fe Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/rocksplittersmall.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/rocksplittersmallblue.png b/bios/Game Engines/Hurrican/hurrican/data/textures/rocksplittersmallblue.png new file mode 100644 index 00000000..79ccfc25 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/rocksplittersmallblue.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/rollmops_aufklappen.png b/bios/Game Engines/Hurrican/hurrican/data/textures/rollmops_aufklappen.png new file mode 100644 index 00000000..01386bfe Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/rollmops_aufklappen.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/rollmops_gun.png b/bios/Game Engines/Hurrican/hurrican/data/textures/rollmops_gun.png new file mode 100644 index 00000000..ff6a7f8b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/rollmops_gun.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/rollmops_kette.png b/bios/Game Engines/Hurrican/hurrican/data/textures/rollmops_kette.png new file mode 100644 index 00000000..d0dcc0b3 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/rollmops_kette.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/rollmops_rollen.png b/bios/Game Engines/Hurrican/hurrican/data/textures/rollmops_rollen.png new file mode 100644 index 00000000..8c97440f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/rollmops_rollen.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/rotzpott.png b/bios/Game Engines/Hurrican/hurrican/data/textures/rotzpott.png new file mode 100644 index 00000000..7b542e74 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/rotzpott.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/rotzshot.png b/bios/Game Engines/Hurrican/hurrican/data/textures/rotzshot.png new file mode 100644 index 00000000..d109167f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/rotzshot.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_Jungle.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_Jungle.png new file mode 100644 index 00000000..51119f80 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_Jungle.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_Jungle2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_Jungle2.png new file mode 100644 index 00000000..ef9e894a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_Jungle2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_Jungle3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_Jungle3.png new file mode 100644 index 00000000..4e635e7c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_Jungle3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_arrow.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_arrow.png new file mode 100644 index 00000000..2ac31c36 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_arrow.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_blau.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_blau.png new file mode 100644 index 00000000..c1e2fe6e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_blau.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_blau2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_blau2.png new file mode 100644 index 00000000..ef3bd0ea Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_blau2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_blau3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_blau3.png new file mode 100644 index 00000000..b2506591 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_blau3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_bluestone.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_bluestone.png new file mode 100644 index 00000000..4d7f55df Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_bluestone.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_braun.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_braun.png new file mode 100644 index 00000000..f9716dbd Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_braun.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_cave.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_cave.png new file mode 100644 index 00000000..a70fb453 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_cave.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_cave2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_cave2.png new file mode 100644 index 00000000..a06b1f44 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_cave2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_cave3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_cave3.png new file mode 100644 index 00000000..d2e15632 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_cave3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_cave4.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_cave4.png new file mode 100644 index 00000000..d80219fd Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_cave4.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_cave5.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_cave5.png new file mode 100644 index 00000000..18e80c06 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_cave5.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_cave6.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_cave6.png new file mode 100644 index 00000000..e3f487a0 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_cave6.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_chains.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_chains.png new file mode 100644 index 00000000..988d483c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_chains.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_colum1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_colum1.png new file mode 100644 index 00000000..d2f0fd82 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_colum1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_cracks.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_cracks.png new file mode 100644 index 00000000..4b6fc66b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_cracks.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_cschraeg.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_cschraeg.png new file mode 100644 index 00000000..e60207d2 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_cschraeg.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_dino2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_dino2.png new file mode 100644 index 00000000..be70e891 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_dino2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_end.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_end.png new file mode 100644 index 00000000..5b4bf63c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_end.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_end2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_end2.png new file mode 100644 index 00000000..270433ac Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_end2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_end3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_end3.png new file mode 100644 index 00000000..9ff825ad Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_end3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_end4.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_end4.png new file mode 100644 index 00000000..82bea2e7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_end4.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_factory.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_factory.png new file mode 100644 index 00000000..826f8fb8 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_factory.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_factory2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_factory2.png new file mode 100644 index 00000000..8afb2e03 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_factory2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_factory3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_factory3.png new file mode 100644 index 00000000..16783f01 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_factory3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_factory4.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_factory4.png new file mode 100644 index 00000000..ec96afad Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_factory4.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_factory5.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_factory5.png new file mode 100644 index 00000000..92fb2d85 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_factory5.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_fliesband.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_fliesband.png new file mode 100644 index 00000000..e548a12b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_fliesband.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_gerippe.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_gerippe.png new file mode 100644 index 00000000..345a8e2c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_gerippe.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_graues.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_graues.png new file mode 100644 index 00000000..457ce830 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_graues.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_hoehlen.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_hoehlen.png new file mode 100644 index 00000000..1548bcb3 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_hoehlen.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_ice.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_ice.png new file mode 100644 index 00000000..ac1d89e8 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_ice.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_ice2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_ice2.png new file mode 100644 index 00000000..d6c4f1ac Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_ice2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_ice3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_ice3.png new file mode 100644 index 00000000..c10a03c3 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_ice3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_jaeger1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_jaeger1.png new file mode 100644 index 00000000..faff6bdd Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_jaeger1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_jaeger2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_jaeger2.png new file mode 100644 index 00000000..1df1830c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_jaeger2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_kachel_.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_kachel_.png new file mode 100644 index 00000000..a51306e0 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_kachel_.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_kacheln.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_kacheln.png new file mode 100644 index 00000000..ba2bb144 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_kacheln.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_kisten.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_kisten.png new file mode 100644 index 00000000..4b61f88f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_kisten.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_machine1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_machine1.png new file mode 100644 index 00000000..39d53431 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_machine1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_machine2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_machine2.png new file mode 100644 index 00000000..04761988 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_machine2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_machine3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_machine3.png new file mode 100644 index 00000000..047e592f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_machine3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_machine4.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_machine4.png new file mode 100644 index 00000000..b0ca92e0 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_machine4.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_mario1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mario1.png new file mode 100644 index 00000000..8425625b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mario1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_mario2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mario2.png new file mode 100644 index 00000000..4dbf1adc Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mario2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_mario3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mario3.png new file mode 100644 index 00000000..70d69f56 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mario3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_mario4.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mario4.png new file mode 100644 index 00000000..b1df5525 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mario4.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_mario5.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mario5.png new file mode 100644 index 00000000..3b833e92 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mario5.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_mosi.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mosi.png new file mode 100644 index 00000000..24c3fe2b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mosi.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde.png new file mode 100644 index 00000000..aad2be8f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde2.png new file mode 100644 index 00000000..8445df07 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde3.png new file mode 100644 index 00000000..0097c5b2 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde4.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde4.png new file mode 100644 index 00000000..a6ad4d46 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde4.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde5.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde5.png new file mode 100644 index 00000000..51dbc617 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde5.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde5_UNUSED_BMP.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde5_UNUSED_BMP.png new file mode 100644 index 00000000..d5c7021a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde5_UNUSED_BMP.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde6.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde6.png new file mode 100644 index 00000000..267884c3 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mpde6.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_mushi.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mushi.png new file mode 100644 index 00000000..30e7e2a1 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mushi.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_mushi3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mushi3.png new file mode 100644 index 00000000..f3e8415c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_mushi3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_panel.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_panel.png new file mode 100644 index 00000000..aaf09ae9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_panel.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_panel3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_panel3.png new file mode 100644 index 00000000..f029e0e5 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_panel3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_pflanze_.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_pflanze_.png new file mode 100644 index 00000000..af0db2f3 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_pflanze_.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_pflanzen.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_pflanzen.png new file mode 100644 index 00000000..82ce6e8c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_pflanzen.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_pflanzen2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_pflanzen2.png new file mode 100644 index 00000000..1b856841 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_pflanzen2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_pflanzen3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_pflanzen3.png new file mode 100644 index 00000000..ffbd7d57 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_pflanzen3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_pflanzen4.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_pflanzen4.png new file mode 100644 index 00000000..9922cbe8 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_pflanzen4.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_plate.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_plate.png new file mode 100644 index 00000000..bb8022ed Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_plate.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_ray1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_ray1.png new file mode 100644 index 00000000..9b0a6dac Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_ray1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_ray2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_ray2.png new file mode 100644 index 00000000..04d0d0f6 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_ray2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_rohre.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_rohre.png new file mode 100644 index 00000000..e00ee1b9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_rohre.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_saeulen.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_saeulen.png new file mode 100644 index 00000000..436e054d Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_saeulen.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_schrott1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_schrott1.png new file mode 100644 index 00000000..efa426ff Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_schrott1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_skull.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_skull.png new file mode 100644 index 00000000..26bbab2a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_skull.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_snow.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_snow.png new file mode 100644 index 00000000..c0a4c272 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_snow.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_snow2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_snow2.png new file mode 100644 index 00000000..e2e749ab Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_snow2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_snowplate.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_snowplate.png new file mode 100644 index 00000000..08bfa913 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_snowplate.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_spears.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_spears.png new file mode 100644 index 00000000..63cdabe9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_spears.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_spinne1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_spinne1.png new file mode 100644 index 00000000..d2878bf9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_spinne1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_spinne2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_spinne2.png new file mode 100644 index 00000000..458f7af9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_spinne2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_spinne3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_spinne3.png new file mode 100644 index 00000000..4b16c60c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_spinne3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_technik.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_technik.png new file mode 100644 index 00000000..d7ed58fe Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_technik.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_tempel.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_tempel.png new file mode 100644 index 00000000..4ccfefa2 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_tempel.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_tempel2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_tempel2.png new file mode 100644 index 00000000..7786de57 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_tempel2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_tot.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_tot.png new file mode 100644 index 00000000..79cb35f3 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_tot.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_tower1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_tower1.png new file mode 100644 index 00000000..1587f31a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_tower1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_tower2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_tower2.png new file mode 100644 index 00000000..d24054d3 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_tower2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_tower3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_tower3.png new file mode 100644 index 00000000..dfda7ff6 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_tower3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_tower4.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_tower4.png new file mode 100644 index 00000000..a7a192f8 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_tower4.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_traeger.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_traeger.png new file mode 100644 index 00000000..94df907c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_traeger.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/s_weltend1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/s_weltend1.png new file mode 100644 index 00000000..949acc81 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/s_weltend1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/schabe.png b/bios/Game Engines/Hurrican/hurrican/data/textures/schabe.png new file mode 100644 index 00000000..4f4c28fc Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/schabe.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/schienenviech.png b/bios/Game Engines/Hurrican/hurrican/data/textures/schienenviech.png new file mode 100644 index 00000000..50e3ada4 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/schienenviech.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/schleim.png b/bios/Game Engines/Hurrican/hurrican/data/textures/schleim.png new file mode 100644 index 00000000..3ad8d83e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/schleim.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/schleim2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/schleim2.png new file mode 100644 index 00000000..e072df3f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/schleim2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/schleimboller.png b/bios/Game Engines/Hurrican/hurrican/data/textures/schleimboller.png new file mode 100644 index 00000000..d02e4ea5 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/schleimboller.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/schleimmaul.png b/bios/Game Engines/Hurrican/hurrican/data/textures/schleimmaul.png new file mode 100644 index 00000000..492c0b5e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/schleimmaul.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/schleimrot.png b/bios/Game Engines/Hurrican/hurrican/data/textures/schleimrot.png new file mode 100644 index 00000000..1de8dd7b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/schleimrot.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/schleimshot.png b/bios/Game Engines/Hurrican/hurrican/data/textures/schleimshot.png new file mode 100644 index 00000000..2bfed812 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/schleimshot.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/schleuse.png b/bios/Game Engines/Hurrican/hurrican/data/textures/schleuse.png new file mode 100644 index 00000000..592f9025 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/schleuse.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/schleuse2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/schleuse2.png new file mode 100644 index 00000000..2db1f5ac Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/schleuse2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/schneekoenig.png b/bios/Game Engines/Hurrican/hurrican/data/textures/schneekoenig.png new file mode 100644 index 00000000..5e664e9f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/schneekoenig.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/schneekoenig_knarre.png b/bios/Game Engines/Hurrican/hurrican/data/textures/schneekoenig_knarre.png new file mode 100644 index 00000000..0a90e6c1 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/schneekoenig_knarre.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/schneekoppe.png b/bios/Game Engines/Hurrican/hurrican/data/textures/schneekoppe.png new file mode 100644 index 00000000..9a33afb1 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/schneekoppe.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/schrott1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/schrott1.png new file mode 100644 index 00000000..0989c975 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/schrott1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/schrott2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/schrott2.png new file mode 100644 index 00000000..0a81fee9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/schrott2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/schussflamme.png b/bios/Game Engines/Hurrican/hurrican/data/textures/schussflamme.png new file mode 100644 index 00000000..cd0b5e90 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/schussflamme.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/schussflamme2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/schussflamme2.png new file mode 100644 index 00000000..e9f13d3a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/schussflamme2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/schussflamme3.png b/bios/Game Engines/Hurrican/hurrican/data/textures/schussflamme3.png new file mode 100644 index 00000000..792c3cc7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/schussflamme3.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/schussflammeflare.png b/bios/Game Engines/Hurrican/hurrican/data/textures/schussflammeflare.png new file mode 100644 index 00000000..6474a3c3 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/schussflammeflare.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/schwabbel.png b/bios/Game Engines/Hurrican/hurrican/data/textures/schwabbel.png new file mode 100644 index 00000000..0090d937 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/schwabbel.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/shadow.png b/bios/Game Engines/Hurrican/hurrican/data/textures/shadow.png new file mode 100644 index 00000000..0fcee701 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/shadow.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/shield.png b/bios/Game Engines/Hurrican/hurrican/data/textures/shield.png new file mode 100644 index 00000000..a2c3350d Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/shield.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/shieldspawner.png b/bios/Game Engines/Hurrican/hurrican/data/textures/shieldspawner.png new file mode 100644 index 00000000..51c1fd5a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/shieldspawner.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/shockexplosion.png b/bios/Game Engines/Hurrican/hurrican/data/textures/shockexplosion.png new file mode 100644 index 00000000..d7864476 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/shockexplosion.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/shootplattform.png b/bios/Game Engines/Hurrican/hurrican/data/textures/shootplattform.png new file mode 100644 index 00000000..114d351e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/shootplattform.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/shootplattformbutton.png b/bios/Game Engines/Hurrican/hurrican/data/textures/shootplattformbutton.png new file mode 100644 index 00000000..8c0d3591 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/shootplattformbutton.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/shotflare.png b/bios/Game Engines/Hurrican/hurrican/data/textures/shotflare.png new file mode 100644 index 00000000..5f8e50dd Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/shotflare.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/siderocket.png b/bios/Game Engines/Hurrican/hurrican/data/textures/siderocket.png new file mode 100644 index 00000000..3bb8de03 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/siderocket.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/skeletor.png b/bios/Game Engines/Hurrican/hurrican/data/textures/skeletor.png new file mode 100644 index 00000000..e453fc49 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/skeletor.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/skeletor_bullet.png b/bios/Game Engines/Hurrican/hurrican/data/textures/skeletor_bullet.png new file mode 100644 index 00000000..ed6a4755 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/skeletor_bullet.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/skeletor_flame.png b/bios/Game Engines/Hurrican/hurrican/data/textures/skeletor_flame.png new file mode 100644 index 00000000..015ecf33 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/skeletor_flame.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/skeletor_granate.png b/bios/Game Engines/Hurrican/hurrican/data/textures/skeletor_granate.png new file mode 100644 index 00000000..798cfc58 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/skeletor_granate.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/skeletor_shot.png b/bios/Game Engines/Hurrican/hurrican/data/textures/skeletor_shot.png new file mode 100644 index 00000000..7cde759b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/skeletor_shot.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/skills.png b/bios/Game Engines/Hurrican/hurrican/data/textures/skills.png new file mode 100644 index 00000000..8d135852 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/skills.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/skiwalker.png b/bios/Game Engines/Hurrican/hurrican/data/textures/skiwalker.png new file mode 100644 index 00000000..b49d9a4f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/skiwalker.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/skull.png b/bios/Game Engines/Hurrican/hurrican/data/textures/skull.png new file mode 100644 index 00000000..f1386330 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/skull.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/smallfont.png b/bios/Game Engines/Hurrican/hurrican/data/textures/smallfont.png new file mode 100644 index 00000000..8f5d24eb Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/smallfont.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/smallwespe.png b/bios/Game Engines/Hurrican/hurrican/data/textures/smallwespe.png new file mode 100644 index 00000000..51d40c78 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/smallwespe.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/smoke.png b/bios/Game Engines/Hurrican/hurrican/data/textures/smoke.png new file mode 100644 index 00000000..8d3763e7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/smoke.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/smoke2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/smoke2.png new file mode 100644 index 00000000..4da55ec9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/smoke2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/smokebig.png b/bios/Game Engines/Hurrican/hurrican/data/textures/smokebig.png new file mode 100644 index 00000000..8ecc66f3 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/smokebig.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/smokebig2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/smokebig2.png new file mode 100644 index 00000000..b035f720 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/smokebig2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/snow.png b/bios/Game Engines/Hurrican/hurrican/data/textures/snow.png new file mode 100644 index 00000000..5e3bbe54 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/snow.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/snowbomb.png b/bios/Game Engines/Hurrican/hurrican/data/textures/snowbomb.png new file mode 100644 index 00000000..7237080c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/snowbomb.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/snowbombsmall.png b/bios/Game Engines/Hurrican/hurrican/data/textures/snowbombsmall.png new file mode 100644 index 00000000..5a84813a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/snowbombsmall.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/snowflush.png b/bios/Game Engines/Hurrican/hurrican/data/textures/snowflush.png new file mode 100644 index 00000000..4e6201e9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/snowflush.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spiderbomb.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spiderbomb.png new file mode 100644 index 00000000..b5857ba8 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spiderbomb.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spiderboss_foot.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spiderboss_foot.png new file mode 100644 index 00000000..2e448285 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spiderboss_foot.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spiderboss_kopf.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spiderboss_kopf.png new file mode 100644 index 00000000..10c08ad2 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spiderboss_kopf.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spiderboss_leg1.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spiderboss_leg1.png new file mode 100644 index 00000000..b78e6df7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spiderboss_leg1.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spiderboss_leg2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spiderboss_leg2.png new file mode 100644 index 00000000..4ac4ec89 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spiderboss_leg2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spiderboss_rumpf.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spiderboss_rumpf.png new file mode 100644 index 00000000..d02d74af Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spiderboss_rumpf.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spidergrenade.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spidergrenade.png new file mode 100644 index 00000000..eaa6ee57 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spidergrenade.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spiderparts.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spiderparts.png new file mode 100644 index 00000000..ea960113 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spiderparts.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spidershot.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spidershot.png new file mode 100644 index 00000000..ec561d01 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spidershot.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spidershot2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spidershot2.png new file mode 100644 index 00000000..4f347ff5 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spidershot2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spidershotsmoke.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spidershotsmoke.png new file mode 100644 index 00000000..ead5b602 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spidershotsmoke.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spiderslow.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spiderslow.png new file mode 100644 index 00000000..3df0d96b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spiderslow.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spidersplitter.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spidersplitter.png new file mode 100644 index 00000000..99218ed9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spidersplitter.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spidersplitter2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spidersplitter2.png new file mode 100644 index 00000000..e3af6f1d Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spidersplitter2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spikelift.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spikelift.png new file mode 100644 index 00000000..51e2c425 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spikelift.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spinnenmaschine_oben.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spinnenmaschine_oben.png new file mode 100644 index 00000000..729218fc Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spinnenmaschine_oben.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spinnenmaschine_states.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spinnenmaschine_states.png new file mode 100644 index 00000000..7cba366b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spinnenmaschine_states.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spinnenmaschine_topf.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spinnenmaschine_topf.png new file mode 100644 index 00000000..ba50c4c4 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spinnenmaschine_topf.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spinnenmaschine_unten.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spinnenmaschine_unten.png new file mode 100644 index 00000000..f02fa562 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spinnenmaschine_unten.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spinnenmaschine_unten2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spinnenmaschine_unten2.png new file mode 100644 index 00000000..34284d5c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spinnenmaschine_unten2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spitter.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spitter.png new file mode 100644 index 00000000..e840a0a1 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spitter.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spitterbombe.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spitterbombe.png new file mode 100644 index 00000000..1b34004a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spitterbombe.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/splitter.png b/bios/Game Engines/Hurrican/hurrican/data/textures/splitter.png new file mode 100644 index 00000000..8f44a47b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/splitter.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spreadshot.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spreadshot.png new file mode 100644 index 00000000..aa21f3fa Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spreadshot.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spreadshot2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spreadshot2.png new file mode 100644 index 00000000..3db5618b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spreadshot2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spreadshot_big.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spreadshot_big.png new file mode 100644 index 00000000..1008ac8a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spreadshot_big.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spreadshot_big2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spreadshot_big2.png new file mode 100644 index 00000000..e9e0c09e Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spreadshot_big2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/spreadshotsmoke.png b/bios/Game Engines/Hurrican/hurrican/data/textures/spreadshotsmoke.png new file mode 100644 index 00000000..5e496ac3 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/spreadshotsmoke.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/stachelbeere.png b/bios/Game Engines/Hurrican/hurrican/data/textures/stachelbeere.png new file mode 100644 index 00000000..80efc12a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/stachelbeere.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/stahlfaust.png b/bios/Game Engines/Hurrican/hurrican/data/textures/stahlfaust.png new file mode 100644 index 00000000..f2751e05 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/stahlfaust.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/stahlfaust_eis.png b/bios/Game Engines/Hurrican/hurrican/data/textures/stahlfaust_eis.png new file mode 100644 index 00000000..0e2c6ed3 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/stahlfaust_eis.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/stahlmuecke.png b/bios/Game Engines/Hurrican/hurrican/data/textures/stahlmuecke.png new file mode 100644 index 00000000..2bfbe403 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/stahlmuecke.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/stalagtit.png b/bios/Game Engines/Hurrican/hurrican/data/textures/stalagtit.png new file mode 100644 index 00000000..294633d6 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/stalagtit.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/stampfstein.png b/bios/Game Engines/Hurrican/hurrican/data/textures/stampfstein.png new file mode 100644 index 00000000..558e1204 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/stampfstein.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/star.png b/bios/Game Engines/Hurrican/hurrican/data/textures/star.png new file mode 100644 index 00000000..1ac79973 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/star.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/starbig.png b/bios/Game Engines/Hurrican/hurrican/data/textures/starbig.png new file mode 100644 index 00000000..1961f70d Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/starbig.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/starsmall.png b/bios/Game Engines/Hurrican/hurrican/data/textures/starsmall.png new file mode 100644 index 00000000..aeb1f9f5 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/starsmall.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/static_blue.png b/bios/Game Engines/Hurrican/hurrican/data/textures/static_blue.png new file mode 100644 index 00000000..a4ed1b14 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/static_blue.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/static_cave.png b/bios/Game Engines/Hurrican/hurrican/data/textures/static_cave.png new file mode 100644 index 00000000..bfc52d1d Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/static_cave.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/static_end.png b/bios/Game Engines/Hurrican/hurrican/data/textures/static_end.png new file mode 100644 index 00000000..7f7d197c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/static_end.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/static_flugsack.png b/bios/Game Engines/Hurrican/hurrican/data/textures/static_flugsack.png new file mode 100644 index 00000000..cba398c3 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/static_flugsack.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/static_ice.png b/bios/Game Engines/Hurrican/hurrican/data/textures/static_ice.png new file mode 100644 index 00000000..365d5c0c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/static_ice.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/static_jungle.png b/bios/Game Engines/Hurrican/hurrican/data/textures/static_jungle.png new file mode 100644 index 00000000..317eb61f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/static_jungle.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/static_lava.png b/bios/Game Engines/Hurrican/hurrican/data/textures/static_lava.png new file mode 100644 index 00000000..80519a87 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/static_lava.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/static_lila.png b/bios/Game Engines/Hurrican/hurrican/data/textures/static_lila.png new file mode 100644 index 00000000..91033943 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/static_lila.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/static_planet.png b/bios/Game Engines/Hurrican/hurrican/data/textures/static_planet.png new file mode 100644 index 00000000..edfd084b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/static_planet.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/static_sea.png b/bios/Game Engines/Hurrican/hurrican/data/textures/static_sea.png new file mode 100644 index 00000000..390f3261 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/static_sea.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/static_slime.png b/bios/Game Engines/Hurrican/hurrican/data/textures/static_slime.png new file mode 100644 index 00000000..f4599217 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/static_slime.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/static_spinne.png b/bios/Game Engines/Hurrican/hurrican/data/textures/static_spinne.png new file mode 100644 index 00000000..a32d3b8f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/static_spinne.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/static_tech.png b/bios/Game Engines/Hurrican/hurrican/data/textures/static_tech.png new file mode 100644 index 00000000..1a8fe661 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/static_tech.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/static_tower.png b/bios/Game Engines/Hurrican/hurrican/data/textures/static_tower.png new file mode 100644 index 00000000..26c32f79 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/static_tower.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/staub.png b/bios/Game Engines/Hurrican/hurrican/data/textures/staub.png new file mode 100644 index 00000000..4143db45 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/staub.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/stelze.png b/bios/Game Engines/Hurrican/hurrican/data/textures/stelze.png new file mode 100644 index 00000000..aac3de37 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/stelze.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/stelzhead.png b/bios/Game Engines/Hurrican/hurrican/data/textures/stelzhead.png new file mode 100644 index 00000000..1159e5e6 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/stelzhead.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/stelzlaser.png b/bios/Game Engines/Hurrican/hurrican/data/textures/stelzlaser.png new file mode 100644 index 00000000..ab7541d9 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/stelzlaser.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/stelzsack.png b/bios/Game Engines/Hurrican/hurrican/data/textures/stelzsack.png new file mode 100644 index 00000000..ec1da373 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/stelzsack.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/suchschuss.png b/bios/Game Engines/Hurrican/hurrican/data/textures/suchschuss.png new file mode 100644 index 00000000..87cc5eba Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/suchschuss.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/suchschuss2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/suchschuss2.png new file mode 100644 index 00000000..d7e70e3c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/suchschuss2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/surfbrett.png b/bios/Game Engines/Hurrican/hurrican/data/textures/surfbrett.png new file mode 100644 index 00000000..66795efd Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/surfbrett.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/swimwalker.png b/bios/Game Engines/Hurrican/hurrican/data/textures/swimwalker.png new file mode 100644 index 00000000..846d349b Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/swimwalker.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/switch.png b/bios/Game Engines/Hurrican/hurrican/data/textures/switch.png new file mode 100644 index 00000000..e1f03149 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/switch.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/torpedo.png b/bios/Game Engines/Hurrican/hurrican/data/textures/torpedo.png new file mode 100644 index 00000000..40148d8d Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/torpedo.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/trenzshrine.png b/bios/Game Engines/Hurrican/hurrican/data/textures/trenzshrine.png new file mode 100644 index 00000000..80388267 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/trenzshrine.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/tropfen.png b/bios/Game Engines/Hurrican/hurrican/data/textures/tropfen.png new file mode 100644 index 00000000..6bc780fa Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/tropfen.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/tropfen2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/tropfen2.png new file mode 100644 index 00000000..49f96662 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/tropfen2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/tube.png b/bios/Game Engines/Hurrican/hurrican/data/textures/tube.png new file mode 100644 index 00000000..69de6216 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/tube.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/turbinesmoke.png b/bios/Game Engines/Hurrican/hurrican/data/textures/turbinesmoke.png new file mode 100644 index 00000000..e0d1ba2c Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/turbinesmoke.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/ufo.png b/bios/Game Engines/Hurrican/hurrican/data/textures/ufo.png new file mode 100644 index 00000000..efa496c7 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/ufo.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/ufolaser.png b/bios/Game Engines/Hurrican/hurrican/data/textures/ufolaser.png new file mode 100644 index 00000000..cfbe1d18 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/ufolaser.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/ufolaserflare.png b/bios/Game Engines/Hurrican/hurrican/data/textures/ufolaserflare.png new file mode 100644 index 00000000..1c93b48a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/ufolaserflare.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/walker-laser.png b/bios/Game Engines/Hurrican/hurrican/data/textures/walker-laser.png new file mode 100644 index 00000000..15d267bd Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/walker-laser.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/wandcannon.png b/bios/Game Engines/Hurrican/hurrican/data/textures/wandcannon.png new file mode 100644 index 00000000..c8a22d57 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/wandcannon.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/wandkrabbe.png b/bios/Game Engines/Hurrican/hurrican/data/textures/wandkrabbe.png new file mode 100644 index 00000000..2daac829 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/wandkrabbe.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/warning.png b/bios/Game Engines/Hurrican/hurrican/data/textures/warning.png new file mode 100644 index 00000000..f9816462 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/warning.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/wasp.png b/bios/Game Engines/Hurrican/hurrican/data/textures/wasp.png new file mode 100644 index 00000000..bd6519bc Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/wasp.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/wasserfall.png b/bios/Game Engines/Hurrican/hurrican/data/textures/wasserfall.png new file mode 100644 index 00000000..7a9ba1a6 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/wasserfall.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/wasserfall2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/wasserfall2.png new file mode 100644 index 00000000..96deb4c8 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/wasserfall2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/wassermine.png b/bios/Game Engines/Hurrican/hurrican/data/textures/wassermine.png new file mode 100644 index 00000000..71640913 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/wassermine.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/wasserspritzer.png b/bios/Game Engines/Hurrican/hurrican/data/textures/wasserspritzer.png new file mode 100644 index 00000000..48e03549 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/wasserspritzer.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/wassertropfen.png b/bios/Game Engines/Hurrican/hurrican/data/textures/wassertropfen.png new file mode 100644 index 00000000..7630107d Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/wassertropfen.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/wassertropfen2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/wassertropfen2.png new file mode 100644 index 00000000..95c5f980 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/wassertropfen2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/water.png b/bios/Game Engines/Hurrican/hurrican/data/textures/water.png new file mode 100644 index 00000000..1e221ae4 Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/water.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/water2.png b/bios/Game Engines/Hurrican/hurrican/data/textures/water2.png new file mode 100644 index 00000000..b30b264a Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/water2.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/data/textures/zitrone.png b/bios/Game Engines/Hurrican/hurrican/data/textures/zitrone.png new file mode 100644 index 00000000..4b7e8eed Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/data/textures/zitrone.png differ diff --git a/bios/Game Engines/Hurrican/hurrican/lang/deutsch.lng b/bios/Game Engines/Hurrican/hurrican/lang/deutsch.lng new file mode 100644 index 00000000..496dc3ad --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/lang/deutsch.lng @@ -0,0 +1,260 @@ +-------------------------------- +> Hurrican Sprach File < +> < +> - deutsch - < +> Poke53280 < +> 24.04.2007 < +> < +> http://www.poke53280.de < +-------------------------------- +//---------- Starter ----------// +Vollbild +Standard +Spiel starten +Beenden +Abbrechen +Sprache +Auf Update prüfen +Eine neue Version ist verfügbar. Wollen Sie jetzt die Hurrican Webseite öffnen? +Es ist keine neue Version verfügbar. +Verfügbare Levels auf dem Server +Aktuelle Levelliste vom Server laden +Levelpack wählen +Auswahl herunterladen +//---------- Miscellaneous ----------// +0 +benutztes Sprach File +Lade Bitmap : +Lade Wave : +Lade Module : + ... OK +Lade Leveldaten für\n +//---------- Tutorial Texts ----------// +Willkommen zum Hurrican Tutorial-Level. Hier wird dir die grundlegende Steuerung beigebracht. Über KEY_LEFT und KEY_RIGHT kannst du dich nach rechts und nach links bewegen. Auf die Taste KEY_CROUCH duckst du dich. Sieh dich jetzt einmal genau um, es gibt noch mehr solcher Hinweise. +Drücke zum Springen KEY_JUMP. Je länger du gedrückt hältst, desto höher kannst du springen. Dabei kannst du in der Luft die Richtung ändern, wenn du dementsprechenden KEY_LEFT oder KEY_RIGHT drückst. +Mit KEY_UP und KEY_DOWN kannst du dich im Level umsehen. So lassen sich einige versteckte Items finden. Sieh hier zum Beispiel mal in Richtung Decke... +Diese Diamanten liegen in den Levels verstreut. Für das Sammeln erhältst du Punkte. Zudem bekommst du für 50 gesammelte Diamanten deine Zeit wieder aufgefrischt. +Drücke KEY_SHOOT, um einen Schuß abzugeben und halte die Taste gedrückt für langsames Dauerfeuer. Durch schnelles, aufeinanderfolgendes Drücken kannst Du aber schneller schießen als mit dem Dauerfeuer. +Sieh dir die Wand rechts einmal genau an. Sieht nicht gerade sehr stabil aus. Versuche sie mit deinem Schuß zu zerstören. +Sehr gut. Es gibt immer wieder Stellen, an denen man Wände zerschießen kann, um weiterzukommen. Meist verbergen sich dahinter allerdings nur Extras. +Kommen wir nun zur Zielübung. Mit KEY_UP kannst du nach oben zielen. Durch Kombination mit KEY_LEFT oder KEY_RIGHT kannst du auch schräg zielen. Versuch jetzt, die Diamanten über dir freizuschießen. +Jetzt wird's spannend... Dort unten triffst du auf die ersten Gegner oder besser gesagt, auf die ersten fliegenden PowerUps. +-leer- +Sehr gut. Sammel jetzt alle Extras auf. +Dieser Effekt eben war das Zeichen dafür, dass sich deine Waffe aufgepowert hat. Welche das war, erkennst du an der Farbe der Energiekugeln. Rot steht für den Streuschuß. Die Striche (siehe Pfeil) geben dir die aktuelle Stufe deiner Waffen an. +Nun kommen wir zu den ersten gefährlicheren Gegnern, die Walker. Eine Eigenheit der Walker ist es, dass man ihnen auch auf den Kopf springen kann, um sie zu besiegen. +Wieder kein Weiterkommen, und diesmal ist die brüchige Wand UNTER uns... Halte KEY_BLITZ gedrückt und lenke deinen Blitz mit KEY_LEFT und KEY_RIGHT um dich herum. +Sehr gut. Der Blitz eignet sich übrigens auch zum Zerstören von Gegnern. Leider ist er ein wenig kurz geraten... Mach' dir nix draus, auf die Technik kommt es an :) Aber das lässt sich ändern. Rechts gibt es noch ein paar PowerUps. +Dein Blitz ist jetzt länger geworden! Probier es aus! Und das beste ist, er lässt sich noch weiter aufpowern. Der Balken neben dem Blitz-Symbol im HUD gibt die aktuelle Stufe an. Verlierst du ein Leben, verlierst du aber auch wieder eine Stufe des Blitzes! +Extras gibt es nicht nur in den fliegenden Extra-Containern. Es gibt auch versteckte PowerUp Steine, die erst sichtbar werden, wenn sie angeschossen werden. Schieß' hier ein wenig in die Luft, bis du einen findest. (Am besten mit dem Blitz)... +Das ist er. Nun heißt es, kräftig darauf schießen, bis er leer ist, und alles schön aufsammeln. +Das eben waren die sogenannten PowerLines, eine Spezial Waffe. Die Zahl der verfügbaren PowerLines siehst du im HUD (siehe Pfeil). Ein Stück weiter rechts kannst du sie gleich einsetzen. Wie, das wird dir dort erklärt ;) +Stell' dich genau in die Mitte der Brücke und drücke dann auf KEY_POWERLINE, um die Powerline zu aktivieren. +Woosh! Kleinere Gegner werden hiervon direkt weggefegt, größere tragen auch ganz schön Schaden davon. Sammle nun die aufsteigenden Extras ein. +Diese Extras waren Granaten. Die machen ganz schön Bumm. Klingt komisch, ist aber so. Wie zuvor gibt es weiter Rechts gleich die Praxis samt Erklärung. +Achtung, da rechts liegen zwei Wespennester, die ganz schön was aushalten! Drücke KEY_GRANATE, um eine Granate abzufeuern. Sie beschädigt alles in ihrem näheren Umkreis. Für das zweite Nest musst du von unten dagegen schiessen. +Hmm, scheinbar ein weiteres mal kein Weiterkommen. Duck' dich (KEY_CROUCH) und aktiviere gleichzeitig eine Powerline (KEY_POWERLINE). Damit verwandelst du dich in das Stachelrad. Am anderen Ende des Tunnels drückst du einfach die Sprungtaste, um wieder aufzustehen. +Wie du vielleicht gesehen hast, nimmt der blaue Kreis (siehe Pfeil) im HUD ab, solange du dich im Rad-Modus befindest. Er ist allerdings mit Powerups wieder aufzufüllen. Zudem lädt er sich mit der Zeit von alleine auf. +Richtig, das eben war das Rad-PowerUp. Als Rad bist du unverwundbar, und fügst zudem deinen Gegnern Schaden zu. Und um noch einen obendrauf zu setzen kannst du mit KEY_SHOOT auch noch Bombenlegen. Versuch es gleich an den Nestern weiter rechts. +Wow, du wirst ja langsam zu 'ner echten Killer-Maschine. Aber das Waffenrepertoire ist noch lange nicht ausgeschöpft. Zu den ganz speziellen Sachen kommen wir jetzt erst... +Diese Pfeile hier übrigens zeigen dir an bestimmten Stellen, in welche Richtung du gehen musst, um ins nächste Level zu gelangen. +Was, schon wieder so eine Mauer? Könnte man ja den Blitz verwenden... Aber nicht so voreilig. Stell dich ganz vor die Mauer und drücke KEY_SHOCKWAVE ... +Wow, die Schockwelle hat die ganze Wand weggesprengt, den Walker plattgemacht, und nebenbei noch nen ganzen Powerblock leergeräumt. Du kannst davon jedoch immer nur eine gleichzeitig mit dir rumtragen und musst sie nach Gebrauch durch Sammeln des passenden Extras wieder aufladen. Ist das Symbol im HUD erleuchtet (siehe Pfeil), dann ist die Schockwelle einsatzbereit. +Zielübung, die Zweite... Halte KEY_SHOOT und KEY_BLITZ gedrückt, um deine Waffe mit einem Beam aufzuladen. Währenddessen kannst du mit KEY_LEFT und KEY_RIGHT deine Waffe ausrichten. Lasse die beiden Tasten los, um den Beam abzuschiessen. Je länger du auflädst, desto stärker ist auch der Beam. Geh in die Mitte und schieß' wieder die Diamanten über dir frei. +Je länger dein Blitz ist, desto schneller lädt sich übrigens der Beam auf. Eine Kleinigkeit gibt es allerdings noch. Ein Stück weiter links lernst du noch die zwei anderen primären Waffensysteme kennen, die es neben dem Streuschuß noch gibt. +Das eben waren die Extras für den Bounce Schuss. Wie du siehst, liegen sie manchmal auch einfach so rum. Dieser Schuss teilt sich in den höheren Stufen nach einem Treffer in zwei kleinere Kugeln auf, die an der Wand abprallen. Sehr effektiv in engen Gängen, so wie diesem hier. +So, die letzte Waffe für heute: Der Laser. Sammle die PowerUps auf und teste ihn aus. Seine Besonderheit ist es, dass er durch mehrere Gegner durchfliegt. Die Waffen kannst du übrigens mit KEY_WAFFE_CYCLE durchwechseln. Probier es mal aus. +Das hier ist das Ende des Tutorials. Du wirst im Spiel sicher noch auf ein paar unbekannte PowerUps und andere Sachen stoßen. Dort gilt dann: Experimentiere ein bisschen, um herauszufinden, wie diese Dinge funktionieren. Das Tutorial-Level war ein wenig einfacher als das "echte" Leben. Du warst unverwundbar, und aus den Wespennestern sind auch keine Wespen geschlüpft. Aber jetzt solltest du einigermaßen gut auf dein Abenteuer vorbereitet sein. Also auf in den Kampf ;) +36 +37 +38 +39 +//---------- Konsolen Text ----------// +Hurrican + +(c) 2007 +Poke53280 +www.poke53280.de + +Gib "help" ein, um eine Liste der Konsolenkommandos zu erhalten + + +//---------- Summary Box ----------// +Zusammenfassung +Verstecke +Cheat freigespielt: +- Taste drücken - +//---------- Main Menu ----------// +LADE +SPIEL SPEICHERN +SPIEL STARTEN +ZURUECK ZUM SPIEL +EINSTELLUNGEN +HIGHSCORES +CREDITS +ENDE +TUTORIAL SPIELEN +NEUES SPIEL STARTEN +ALTES SPIEL FORTSETZEN +LEICHT +MITTEL +SCHWER +HURRICAN +Cursor : Auswählen - Enter : Bestätigen - ESC : Zurück +PLATZ +NAME +PUNKTE +STAGE +SKILL +LAUTSTAERKE +SOUND +MUSIK +STEUERUNG KONFIGURIEREN +SPRACHE WAEHLEN +MODUS: +Force feedback +Standardeinstellungen laden +Joypad +Joystick +WAHNSINN +NEUE HIGHSCORE AUF PLATZ +GIB DEINEN NAMEN EIN +WEITER +Zurück +Links laufen +Rechts laufen +Ducken +Nach oben schauen +Nach unten schauen +Springen +Schießen +Blitz aktivieren +Powerline +Granate +Schockwelle +Waffe wechseln +Laufen +Umschauen +X/Y Achse +Steuerkreuz +-Neue Taste drücken- +-Neuen Button drücken- +DETAILS: NIEDRIG +DETAILS: MEDIUM +DETAILS: HOCH +DETAILS: MAXIMUM +EIN SPIELER +ZWEI SPIELER +Spieler eins +Spieler zwei +Typ +Modus +Empfindlichkeit +Tastatur +Nicht definiert +Stage +Spieler +Datum +- kein Eintrag - +SECRET +Links +Rechts +Oben +Unten +Button +//---------- Hints ----------// +Wenn du alle Diamanten in einem Level findest, wirst du mit einem Cheat-Code belohnt. +Verlierst du ein Leben, so wird auch die aktuell gewählte Waffe um eine Stufe schwächer. +Wenn du als Rad Gegner berührst, läuft die Radenergie schneller ab. +Wenn du stehenbleibst und dich nicht bewegst, dann lädt sich die Radenergie schneller auf. +Drückst du die Sprungtaste, während du als Rad in der Luft bist, führst du einen Radsprung aus. +Sammelst du 50 Diamanten ein, dann wird deine Zeit wieder aufgefrischt. +Du kannst nicht mehr als 9 Granaten und 9 Powerlines mit dir tragen. +Einige Secrets verstecken sich hinter zerstörbaren Wänden. +Es gibt durchlässige Wände, hinter denen sich Secrets verstecken. +Rollst du als Rad über eine explodierende Bombe, so wirst du ein Stück nach oben geschleudert. +Sollte sich mal ein Fisch an dir festbeissen, kannst du an Land springen, um ihn loszuwerden. +Dampf und Rauch geben einem beim Springen ein wenig Auftrieb. +Einige Endgegner lassen sich nur sehr schwer mit bloßer Feuerkraft besiegen. +Die Feuersäulen aus den Wandflammenwerfern können auch Gegner verletzen. +Die Schildemitter fügen Gegnern bei Berührung Schaden zu. +Bei einigen Gegner ist es besser, ihnen aus dem Weg zu gehen anstatt sie zu bekämpfen. +Granaten verletzen alle Gegner, die sich während der Explosion in ihrem Umkreis befinden. +Die Powerlines eignen sich gut, um die versteckten Powerblöcke zu finden. +Die Stärke der Bounce-Schüsse nimmt mit jedem Abprallen an der Wand ein wenig ab. +Durch schnelles Drücken der Feuer-Taste kannst du schneller schiessen als mit Dauerfeuer. +Du kannst dich auf die Powerblöcke draufstellen um höhergelegene Stellen zu erreichen. +Du hast nach jedem Level die Möglichkeit, dein Spiel zu speichern. +Je länger dein Blitz ist, desto schneller lädt sich der Blitz-Beam auf. +Wenn du ein Leben verlierst, so wirkt deine Explosion wie eine Granate. +Mit dem Laser kann man durch mehrere Gegner hindurchschiessen. +Die Standardwaffen Spreadshot, Laser und Bounce gibt es in jeweils 8 Ausbaustufen. +Nach jedem Level bekommst du die Möglichkeit, dein Spiel zu speichern. +In den Optionen kannst du den Detailgrad der Spezialeffekte einstellen. +Manchen Gegnern kann man nur in bestimmten Zuständen Schaden zufügen. +Poke53280 wird dich NIEMALS nach deiner eMail-Adresse oder deinem Passwort fragen... +//---------- Pissen ----------// +Verdammt, ich muß mal dringend wohin ... +Argh! Ich halt's nicht mehr aus! +Warum hat der Blecheimer keine Piss-Klappe ??? +Wer hat das Ding bloß gebaut? +Dass man an sowas nicht gedacht hat. +Ist ja wieder mal typisch. +Das wurde wohl nur unzureichend getestet ... +Oh mann, jetzt wird's aber echt heftig! +Wenn ich wieder auf der Erde bin ... +... werde ich mich gleich mal darüber beschweren! +Das gibt's ja nicht. Sowas. +Der Kampfanzug hat jeden nur denkbaren technischen Schnickschnack ... +... aber das Wichtigste haben sie vergessen. +Was mach ich denn jetzt nur ??? +Na los, jetzt spiel schon weiter! +Grmblfxt ... ich werd' verrückt ... +Ich werd's ja wohl noch verhoben bekommen ... +... bis das Game fertig ist! +//---------- Intro Screen 1 ----------// +2138, irgendwo im Weltall... +Die "Dreadnought" ist gerade auf dem Rückflug nach einer erfolgreichen Mission. +Das nächste Ziel des Truppentransporters ist die Erde. +Plötzlich empfangen die Soldaten einen Notruf vom blauen Planeten. +"Die Erde wird angegriffen! Alle verfügbaren Einheiten umgehend zur Verteidigung bereit machen!" +"Raketen unbekannter Bauweise schlagen auf die Erde ein." +Sekunden später wird der Ursprung der todbringenden Flugkörper lokalisiert. +Es handelt sich um den Planeten Takatis. +Die Männer trauen ihren Augen nicht, als sie gebannt auf das Hologramm im Besprechungsraum starren. +Hinter dem Anschlag steckt kein Geringerer als Dr. Geng X. +Vor Jahren schon erhielt man die Nachricht von seinem Tod, doch nun ist er zurück. +Ohne zu zögern setzt die "Dreadnought" Kurs auf den bis dato unerforschten Planeten. +Nach kurzem Flug hat das Schiff sein Ziel erreicht. +Der fremde Himmelskörper strahlt eine trügerische Schönheit aus. +Die Crew beginnt mit dem Landeanflug auf Takatis. +Die Scanner zeigen eine erdähnliche Atmosphäre. +Plötzlich eröffnen zahlreiche Geschütze auf der Planetenoberfläche das Feuer. +Die Schutzschilde fallen aus und schwere Projektile reißen große Löcher in die Außenhülle. +Hilflos stürzen die Soldaten auf die Planetenoberfläche zu. +Beim Eintritt in die Atmospähre droht das gesamte Schiff zu zerbersten. +Sekunden nach dem Aufprall. +Der Großteil der Besatzung hat die Notlandung der "Dreadnought" nicht überlebt. +Nur ein einziger Soldat der UPFF ist noch am Leben. Er rappelt sich auf und begibt sich nach draussen. +Nur zwei Soldaten der UPFF sind noch am leben. Sie rappeln sich auf und begeben sich nach draussen. +Wild entschlossen, Dr. Geng X zu finden und die Welt von seinem Übel zu befreien. +//---------- Outtro ----------// +Das Unglaubliche ist vollbracht! +Nach einem langen Kampf ist Dr. Geng X endlich besiegt. +Das, was noch von ihm übrig blieb, liegt verborgen unter den qualmenden Trümmern +seiner zerstörten Festung. All seine finsteren Schöpfungen liegen mit ihm begraben, +tief in der ewigen Dunkelheit. +Der Frieden im Universum ist wieder hergestellt, doch niemand weiß, +wie lange dieser Frieden anhalten wird... +Die Zukunft muss erst noch geschrieben werden. +-------------- +Die Credits +-------------- +//---------- Warpzone ----------// +Und jetzt, für die Geduldigen unter euch, noch ein kleiner Hinweis +Wer im Tutorial-Level genau hinschaut, +der findet vielleicht sogar den geheimen Klempner-Boteneingang... +Das Rad gleich zu Beginn ist eine BOMBIGE Idee... +Immer schön links halten und nicht vergessen: Klempner STEHEN auf Röhren ;) + +//--- ENDE ---// diff --git a/bios/Game Engines/Hurrican/hurrican/lang/english.lng b/bios/Game Engines/Hurrican/hurrican/lang/english.lng new file mode 100644 index 00000000..7c5bcd40 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/lang/english.lng @@ -0,0 +1,260 @@ +-------------------------------- +> Hurrican Language File < +> - english - < +> Poke53280 28.04.2007 < +> edited by < +> Major Roy Fokker 23.07.2007 < +> < +> http://www.poke53280.de < +-------------------------------- +//---------- Starter ----------// +Fullscreen +Standard +Start game +Quit +Abort +Language +Check for updates +A new version is available. Do you want to visit the Hurrican website now? +No new version available. +Available levels on the server +Download current level list from server +Choose levelpack +Download selection +//---------- Miscellaneous ----------// +0 +Loading language file +Loading bitmap : +Loading wave : +Loading module : + ... OK +Loading leveldata for \n +//---------- Tutorial Texts ----------// +Welcome to the Hurrican tutorial level. Here you'll learn the basic controls. You can move left and right by pressing KEY_LEFT or KEY_RIGHT. You can crouch by pressing KEY_CROUCH. Now look around a bit. There are more hints like this in this level. +Press KEY_JUMP to jump. The longer you hold the key pressed, the higher you can jump. You can change direction while jumping by pressing KEY_LEFT or KEY_RIGHT. +You can look around by pressing KEY_UP and KEY_DOWN. This helps you find hidden items. For an example, look at the ceiling above you... +These diamonds are scattered around the levels. You'll get points for collecting them. In addition, for every 50 diamonds collected you'll get your time refilled. +Press KEY_SHOOT to fire and hold it down for a slow auto-fire. Pressing the key repeatedly makes you fire faster than the normal autofire. +Now look at the wall to your right. It doesn't look that solid. Try to destroy it by shooting it with your gun. +Very good. There are a number of places where you can destroy the walls. Though usually, you will only find secret areas hidden behind them. +Now for some aiming practice. You can aim up by pressing KEY_UP. By combining this with KEY_LEFT or KEY_RIGHT you can fire diagonally, too. Now try to shoot the platform above you to make the diamonds fall. +Now it's getting exciting... Down there you will meet the first enemies or, let's say, the first flying powerup containers. +-leer- +Very good. Collect all of the powerups now. +This effect is the indicator that your weapon was powered up. The color of the effect shows which weapon was strengthened. Red is the spreadshot, blue is the laser, and green is the bounce. The bars (at the arrow) show you the current weapon level. +And now for the first real enemies - the walkers. One special thing about them is that you can jump on top of them to flatten them. +The way is blocked again, but this time the destroyable wall is BELOW you. Hold down KEY_BLITZ and rotate the lightning with KEY_LEFT and KEY_RIGHT to destroy the wall. +Very good. By the way, the lightning can destroy enemies too. Unfortunately, it's a bit short... But don't worry - it's still effective if used skillfully. :) Also, to the right there are some powerups that will remedy this. +The lightning is longer now. Try it! And the best part is - it can get even longer. The bar beside the lightning symbol in the HUD shows the current level. When you lose a life, you will lose one level of the lightning, too. +Extras are not only found in the flying containers. They can also be located in powerup blocks which only appear after they are hit for the first time. Try shooting around here until you find one (rotate the lightning to make it a bit easier)... +There's the block. Now shoot it repeatedly until it is empty and collect all of the items. +Those were the so called "powerlines", a special weapon. The number of powerlines can be seen in the HUD (look at the arrow). Go a bit to the right to get information on how to use them and to see them in action. +Stand in the middle of the bridge and press KEY_POWERLINE to activate a powerline. +Woosh! Small enemies get wiped out and bigger ones are also damaged by this weapon. Now collect the emerging powerups. +These powerups are grenades. They go BOOM. Sounds funny, but it's true. :) Again, on the right you'll learn how to use these items. +Watch out, there are two nests that can take a lot of damage! Press KEY_GRANATE to fire a grenade. Grenades damage all enemies that are situated near the explosion. For the second nest, you'll need to stand below it and fire upwards. +Seems like a dead end again. Crouch (KEY_CROUCH) and activate the powerline simultaneously (KEY_POWERLINE). You will change into the razor wheel. At the end of the tunnel, simply press the jump key (KEY_JUMP) to stand up again. +As you might have noticed, the blue wheel gauge (look at the arrow) will empty out as you spin around. But you can fill it up again with powerups. Plus, it will charge up slowly by itself. +That was the wheel powerup. While you are in wheel mode, you are invulnerable and will damage enemies. And as if this wasn't enough, you can even place bombs by pressing KEY_SHOOT. Try it on the nests to the right. +Wow, you are some killing machine right now! But your arsenal is not complete yet. More weapons are still to come... +By the way, these arrows show you the direction that you must go if you want to reach the exit. +A wall again? We could use the lightning... But wait! Stand close to the wall and press KEY_SHOCKWAVE ... +Wow, that shockwave destroyed the whole wall, killed the walker and even emptied a powerblock. But you can only carry one of these smartbombs at a time and must restock it with the corresponding powerup after you have used it. If the symbol in the HUD glows (look at the arrow), the smartbomb is ready to use. +One more aiming exercise... Hold down KEY_SHOOT and KEY_BLITZ simultaneously to charge your beam weapon. While charging, you can change the aiming direction with KEY_LEFT and KEY_RIGHT. Release the keys to fire the beam. The longer you charge the beam, the bigger the shot will be. Go in the middle and try to shoot the diamonds above you with the beam. +The longer your lightning is, the faster the beam will charge. One more lesson - to the left you will learn about your two other primary weapon options besides the spread shot. +Those were bounce shot extras. As you can see, powerups can even lie around like this. This shot can divide into two or more shots according to your current weapon level. Very useful in close tunnels or corridors like this one here. +The last weapon for today is the laser. Collect the powerups and test it. Its special feature is that each one of its projectiles can slice through multiple enemies and destroy them all. You can cycle through your weapons with KEY_WAFFE_CYCLE. Try it some now. +This is the end of the tutorial. In the game you will learn about additional powerups and other items. Just remember - experiment awhile with everything to learn how to use it. This tutorial was a bit easier than the normal levels - the nests did not spawn enemies and you were invulnerable. But now you should be prepared for combat. Good luck! +36 +37 +38 +39 +//---------- Konsolen Text ----------// +Hurrican + +(c) 2007 +Poke53280 +www.poke53280.de + +Enter "help" to get info about console commands + + +//---------- Summary Box ----------// +Summary +Secrets +Cheat unlocked: +- Press any key - +//---------- Main Menu ----------// +LOADING +SAVE GAME +START GAME +BACK TO GAME +PREFERENCES +HIGHSCORES +CREDITS +QUIT +PLAY TUTORIAL +START NEW GAME +CONTINUE SAVED GAME +EASY +NORMAL +HARD +HURRICAN +cursor: select - enter: choose - ESC: back +RANK +NAME +SCORE +STAGE +SKILL +VOLUME +SOUND +MUSIC +CONFIGURE CONTROLS +CHOOSE LANGUAGE +MODE: +Force feedback +Load default settings +Joypad +Joystick +UNBELIEVABLE +NEW HIGHSCORE ON RANK +ENTER YOUR NAME +CONTINUE +Back +walk left +walk right +crouch +look up +look down +jump +shoot +activate lightning +powerline +grenade +shockwave +cycle weapons +walk +look +X/Y Axis +D-pad +-press new key- +-press new button- +DETAILS: LOW +DETAILS: MEDIUM +DETAILS: HIGH +DETAILS: MAXIMUM +ONE PLAYER +TWO PLAYER +Player one +Player two +type +mode +Sensitivity +keyboard +not defined +stage +player +date +- no entry - +SECRET +left +right +up +down +button +//---------- Hints ----------// +If you collect all diamonds in a level, you will unlock a cheatcode. +When you lose a life, the level of the current weapon will decrease. +Touching an enemy while in wheel mode makes your wheel energy decrease faster. +Your wheel energy recharges faster while you are standing still. +IF you press jump while you are in wheel mode and in the air, you will perform the wheel jump. +Collecting 50 diamonds will replenish the timer. +You cannot carry more than 9 grenades and 9 powerlines. +Some secrets are hidden behind destroyable walls. +There are counterfeit walls behind which you can find secrets. +If you roll over an exploding bomb while in wheel mode, you will be propelled upwards a bit. +If a fish bites onto you, jump onto land to make it let go. +Steam and smoke will increase the height of your jumps some. +Some bosses are very difficult to defeat using only pure firepower. +The fire from the wall flamethrowers can hurt enemies too. +The shield emitter will damage all enemies it touches. +Some enemies are better avoided than destroyed. +Grenades deliver damage to every enemy around the explosion. +Powerlines are best at finding hidden powerup blocks. +The damage of a single bounce shot will decrease everytime the shot bounces off a wall. +If you press the shoot key repeatedly, you can fire faster than with normal auto-fire. +You can jump on top of the powerblocks to reach higher areas. +You can save your game after each level. +The longer your lightning is, the faster the beam weapon will charge. +When you lose a life, the explosion acts like a grenade. +The laser weapon can cleave through multiple enemies. +The primary weapons spreadshot, laser, and bounce can be upgraded up to level 8. +You can save your game after each level. +You can alter the detail level of the special effects in the options menu. +Some enemies can only be hurt while in specific states. +Poke53280 will NEVER ask for your email address or your password... +//---------- Pissen ----------// +Damn it, I need to go somewhere... +Argh! I can't hold it anymore! +Why doesn't this tin bucket have a piss-flap??? +Who the hell designed this thing? +Why didn't anyone consider such a situation? +It's so typical... +They didn't test this thing properly... +Damn, it's getting pretty awkward now! +When I'm back on Earth... +.. I am going to complain about this! +That's impossible. +This assault suit has all the technical bells and whistles... +But they forgot the most important thing. +What can I do now? +Come on, keep playing! +Grmblfxt... I'm going crazy. +I must hold it... +.. until the game is finished! +//---------- Intro Screen 1 ----------// +2138, somewhere in space... +The "Dreadnought" is returning from a successful mission. +Next stop of the vessel is Earth. +Suddenly, its crew receives a distress call from the Blue Planet. +"Earth is under attack! All available units prepare to defend!" +"Rockets of unknown origin have struck the planet's surface!" +Seconds later, the origin of the deadly missiles is determined. +They are from the planet Takatis. +The men can't believe their eyes as they glare at the hologram in the briefing room. +None other than Dr. Geng X himself started the assault. +Years ago, news of his demise spread across the galaxy, but now he has returned. +Without hesitation, the "Dreadnought" sets course towards the unexplored planet. +After a short flight, the ship reaches its destination. +The alien planet glows with a deceptive beauty. +The crew initiates the landing process. +Scanners show an Earth-like atmosphere. +Suddenly, numerous cannons on the planet surface open fire. +The shield-system fails and huge projectiles rip through the ship's hull. +Helpless, the troopers plunge towards the planet's surface. +As they enter its atmosphere, their ship begins to break apart. +Seconds after the impact.. +Most of the crew do not survive the emergency landing of the "Dreadnought". +Only one trooper is still alive. Slowly he gets up and makes his way to the outside.. +Only two troopers are still alive. Slowly they get up and make their way to the outside.. +..determined to find Dr. Geng X and free the world from his evil presence. +//---------- Outtro ----------// +The unimaginable has been achieved! +After a protracted battle, Dr. Geng X was defeated. +Whatever is left of him lies hidden under the smoking wreckage +of his ruined stronghold. All of his sinister creations lie buried here with him, +down in the everlasting darkness. +Peace was restored to the universe again, but no one knows +how long this peace will last... +The future is yet to be written. + + + +//---------- Warpzone ----------// +And now, for the stalwart ones of you, a small hint: +Take a close look at the tutorial level +to find the secret plumber entrance... +Have a BLAST with the wheel right at the beginning... +Stay close to the left and don't forget - plumbers are into pipes ;) + +//--- ENDE ---// diff --git a/bios/Game Engines/Hurrican/hurrican/lang/espanol.lng b/bios/Game Engines/Hurrican/hurrican/lang/espanol.lng new file mode 100644 index 00000000..24aeacd2 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/lang/espanol.lng @@ -0,0 +1,260 @@ +-------------------------------- +> Hurrican Language File < +> < +> - Espanol - < +> Hal9000 < +> 01.07.2007 < +> < +> http://www.poke53280.de < +-------------------------------- +//---------- Starter ----------// +Pantalla completa +Estándar +Iniciar el juego +Salir +Abortar +Idioma +Buscar actualizaciones +Hay una nueva versión disponible. ¿Desea visitar la web de Hurrican ahora? +No hay nuevas versiones disponibles. +Lista de niveles disponibles +Descargar la lista de niveles más reciente +Seleccionar pack de niveles +Descargar seleccionados +//---------- Miscellaneous ----------// +0 +Cargando archivo de idioma +Cargando gráficos : +Cargando sonido : +Cargando módulo : + ... LISTO +Cargando datos del nivel para \n +//---------- Tutorial Texts ----------// +Bienvenido al tutorial de Hurrican. Aqui aprenderas los controles basicos. Puedes moverte a la izquierda o a la derecha pulsando KEY_LEFT o KEY_RIGHT. Puedes agacharte presionando KEY_CROUCH. Explora un poco, hay mas consejos como este en el tutorial. +Pulsa KEY_JUMP para saltar. Cuanto mas tiempo la tengas pulsada, mas alto saltaras. Puedes variar la direccion mientras saltas presionando KEY_LEFT o KEY_RIGHT. +Puedes mirar a los alrededores pulsando KEY_UP o KEY_DOWN. Esto puede ayudarte a descubrir zonas secretas. Por ejemplo, mira hacia arriba ahora... +Estos diamantes estan repartidos en todas las fases. Se obtendran puntos al tomarlos. Asimismo, por cada 50 diamantes recogidos se sumara mas tiempo al tiempo limite. +Pulsa KEY_SHOOT para disparar y mantenlo pulsado para disparar automaticamente. Pulsa la tecla repetidamente para disparar mas rapido que en el disparo automatico normal. +Observa el muro de tu derecha. No parece muy solido. Intenta destruirlo disparandolo con tu arma. +Muy bien, hay abundantes situaciones en el juego donde puedes disparar a los muros. Casi siempre encontraras zonas secretas tras ellos. +Ahora practica tu punteria. Puedes apuntar hacia arriba pulsando KEY_UP. Combinando con KEY_LEFT o KEY_RIGHT puedes disparar en diagonal. Intenta disparar a los diamantes encima de ti. +Esto se pone interesante. Abajo te esperan tus primeros enemigos, o mejor dicho, tus primeros contenedores volantes de powerups. +-leer- +Muy bien. Ahora recoge todos los powerups. +Este efecto indica que una de tus armas ha sido mejorada. El tipo de arma mejorada puede verse por el color del efecto. Rojo es para el disparo multiple, azul para el laser y verde para el disparo de rebote. Las barras en la parte superior indican el nivel de potencia del disparo. +Y ahora a veamos los primeros enemigos de verdad: los walkers. Ademas de dispararlos, puedes saltar encima de ellos para destruirlos. +De nuevo el camino se halla bloqueado, pero en esta ocasion el muro destruible esta bajo tus pies. Manten pulsado KEY_BLITZ y rota el rayo con KEY_LEFT o KEY_RIGHT para destruir el muro. +Bien hecho. Por cierto, el rayo tambien puede destruir a los enemigos. Por desgracia es un poco corto... No te preocupes: todo es cuestion de tecnica :) A la derecha hay algunos powerups para poder solucionar esto. +El rayo es mas largo ahora. ¡Intentalo! Lo mejor de todo es que puede ser incluso mas largo. La barra con el simbolo del rayo en el HUD muestra el nivel de potencia actual. Cuando pierdas una vida, perderas ademas un nivel del rayo. +Los powerups no solo se encuentran en los contenedores volantes, tambien se localizan en los bloques de powerups que solo se muestran al disparar en ellos por primera vez. Trata de localizar alguno por aqui hasta que lo encuentres (rotar el rayo facilitara la tarea)... +Ahi esta. Ahora disparalo hasta que no le queden mas y se destruya. Seguidamente recogelo todo. +Estas son las llamadas "rafagas de energia", un arma especial. El numero de rafagas puede verse en el HUD (mira en la flecha). Dirigete hacia la derecha para averiguar como se usan y verlas en accion. +Permanece en el medio del puente y pulsa KEY_POWERLINE para activar una rafaga de energia. +¡Toma ya! Los enemigos debiles son barridos y los mas grandes son deteriorados por esta arma. Ahora recoge todos los powerups que han salido. +Estos powerups son granadas. Hacen BOOM. Suena raro, pero es cierto :) De nuevo, yendo hacia la derecha aprenderas a usar dichas granadas. +Cuidado, hay dos nidos que pueden ser muy peligrosos. Pulsa KEY_GRANATE para disparar una granada. Las granadas afectan a todos los enemigos que haya alrededor de la explosion. Para el segundo nido debes situarte debajo de el y disparar hacia arriba. +Parece un camino sin salida. Agachate (KEY_CROUCH) y activa una rafaga a la vez (KEY_POWERLINE). De esta manera te transformaras en una rueda de acero. Al final del tunel simplemente pulsa saltar (KEY_JUMP) para volver al modo normal. +Como te habras dado cuenta, el circulo azul (mira la flecha) se reduce al estar en modo rueda. Puedes recargarlo con powerups aunque tambien se recarga por si mismo con el paso del tiempo. +Si, este es el powerup de la rueda. Cuando se esta en modo rueda se es invencible y se puede arrollar a los enemigos. Por si esto no fuera suficiente, puedes hasta colocar bombas si pulsas KEY_SHOOT. Pruebalo con los nidos de la derecha. +¡Wow, ahora eres una maquina de matar! Pero tu armamento no esta completo todavia. Aun te quedan algunas armas por ver... +Estas flechas en el camino te muestran por donde tienes que ir para encontrar la salida. +¿Otro muro? Podriamos usar el rayo, pero en vez de eso colocate cerca del muro y pulsa KEY_SHOCKWAVE... +Wow, esa onda de choque destruyo el muro, elimino al walker e incluso vacio un bloque de powerups. Solo puedes llevar una de estas bombas a la vez y se recargan con el powerup correspondiente. Si el simbolo brilla en el HUD (mira la flecha), la onda de choque estara lista. +Un ejercicio de punteria mas... Manten pulsado KEY_SHOOT y KEY_BLITZ a la vez para cargar tu arma. Mientras se carga, puedes cambiar la direccion con KEY_LEFT o KEY_RIGHT. Deja de pulsar las teclas para liberar el impulso. Cuanto mas tiempo tengas cargando el disparo, mas grande sera. Ve hacia el medio de los diamantes e intenta dispararlos encima de ti con el impulso. +Cuanto mas largo sea tu rayo, mas rapido se cargara el impulso. Una cosa mas: a la izquierda tienes las otras dos armas primarias del juego aparte del disparo multiple. +Estos son powerups del disparo de rebote. Como has comprobado, los powerups pueden encontrarse incluso de esta forma. Este disparo puede dividirse en dos mas menudos segun como sea su nivel de potencia. Muy util en tuneles estrechos y pasillos como este de aqui. +La ultima arma de hoy es el laser. Recoge los powerups y pruebala. Su caracteristica especial es que puede atravesar varios enemigos de un solo disparo. Puedes cambiar tu arma pulsando KEY_WAFFE_CYCLE. Practica un poco con ello. +Aqui termina el tutorial. En el juego aprenderas mas sobre los powerups y otras cosas. Recuerda: experimenta un poco con todo para entenderlo. El tutorial es un poco mas facil que el resto del juego pues los nidos no lanzaban enemigos y eras invulnerable. A partir de ahora deberas estar preparado para la batalla. ¡Buena suerte! +36 +37 +38 +39 +//---------- Konsolen Text ----------// +Hurrican + +(c) 2007 +Poke53280 +www.poke53280.de + +Introduce "help" para obtener informacion sobre los comandos de consola + + +//---------- Summary Box ----------// +Resumen +Secretos +Trucos desbloqueados: +- Pulsa cualquier tecla - +//---------- Main Menu ----------// +CARGANDO +GUARDAR PARTIDA +NUEVA PARTIDA +VOLVER A LA PARTIDA +OPCIONES +MEJORES PUNTUACIONES +CREDITOS +SALIR DEL JUEGO +JUGAR EL TUTORIAL +EMPEZAR NUEVA PARTIDA +CONTINUAR PARTIDA GUARDADA +FACIL +NORMAL +DIFICIL +HURRICAN +cursor: seleccionar - enter : eleccion - ESC : volver +POSICION +NOMBRE +PUNTUACION +FASE +DIFIC. +VOLUMEN +SONIDO +MUSICA +CONFIGURAR CONTROLES +SELECCIONAR IDIOMA +MODO: +Force feedback +Configuracion predeterminada +Joypad +Joystick +INCREIBLE +NUEVA PUNTUACION EN EL RANKING +INTRODUCE TU NOMBRE +CONTINUAR +Volver +izquierda +derecha +agacharse +mirar arriba +mirar abajo +saltar +disparar +activar rayo +rafaga de energia +granada +onda de choque +cambiar arma +caminar +mirar +Eje X/Y +D-pad +-pulsa nueva tecla- +-press nuevo boton- +DETALLES: BAJO +DETALLE: MEDIO +DETALLE: ALTO +DETALLE: MAXIMO +UN JUGADOR +DOS JUGADORES +Jugador uno +Jugador dos +tipo +modo +Sensibilidad +teclado +sin asignar +fase +jugador +fecha +- vacio - +SECRETO +izquierda +derecha +arriba +abajo +boton +//---------- Hints ----------// +Si recoges todos los diamantes de un nivel, desbloquearas un truco. +Cuando pierdas una vida, perderas un nivel de potencia del arma que tengas seleccionada. +Al tocar un enemigo en modo rueda, la energia de la rueda disminuira mas rapido. +Al permanecer quieto en modo normal, la energia de la rueda se recargara mas rapido. +Si saltas en modo rueda mientras estas en el aire realizaras un salto de mayor longitud. +Recoger 50 diamantes aumentara el tiempo limite. +No puedes llevar mas de 9 granadas y 9 rafagas de energia. +Algunos secretos estan ocultos tras muros destruibles. +Hay muros falsos que pueden llevarte a zonas secretas +El rodar debajo de una bomba en modo rueda te dara un empujon hacia arriba. +Si te muerde un gran pez, salta para deshacerte de el. +Los chorros de vapor y humo pueden elevarte mucho al saltar encima de ellos. +Algunos bosses son muy duros de pelar si solo usas disparo normal. +El fuego de los lanzallamas tambien afecta a los enemigos. +El escudo afecta a los enemigos al tener contacto con ellos. +Es preferible evitar a algunos enemigos que destruirlos. +Las granadas afectan a todos los enemigos alrededor de la explosion. +Las rafagas de energia son el mejor modo de encontar bloques de powerups ocultos. +La potencia del disparo de rebote disminuira con cada rebote en un muro. +Si pulsas la tecla de disparo repetidamente dispararas mas rapido que manteniendola pulsada. +Puedes saltar encima de los bloques de powerups para alcanzar zonas mas altas. +Puedes salvar la partida al final de cada nivel. +Cuanto mas largo sea tu rayo, mas rapido se cargara el impulso. +Al perder una vida, la explosion actuara como una granada. +Con el laser puedes disparar a traves de multiples enemigos +Las armas de disparo multiple, laser y disparo de rebote pueden mejorarse hasta 8 veces. +Puedes guardar tu partida al final de cada nivel. +Puedes cambiar el detalle del juego en las opciones del juego. +Algunos enemigos solo pueden destruirse en determinadas situaciones. +Poke53280 NUNCA preguntara por tu email ni tu password... +//---------- Pissen ----------// +Mierda, necesito ir a alguna parte... +Argh! Ya no lo aguanto mas! +Por que esta lata no funciona??? +Quien diablos ha ideado esto? +Por que nadie penso sobre esta situacion? +Tipico... +No testearon esta cosa apropiadamente... +Mierda, esto se hace cada vez mas embarazoso por momentos! +Cuando vuelva a la tierra... +... me quejare sobre esto! +Es imposible. +Este traje de asalto tiene todos los fallos tecnicos posibles... +Pero la cosa mas importante que han olvidado +Que puedo hacer ahora? +Vamos, sigue jugando! +Grmblfxt ... Voy a volverme loco. +Debo resignarme a ello... +... hasta que el juego este listo! +//---------- Intro Screen 1 ----------// +2138, en algun lugar del espacio +La nave "dreadnought" vuelve de una mision exitosa +La siguiente parada de la tropa es la Tierra +De repente, los soldados reciben una llamada de emergencia del planeta azul +"¡La Tierra esta siendo atacada! ¡Que todas las unidades disponibles se preparen para defenderla!" +"¡Misiles de origen desconocido han impactado en la Tierra!" +Segundos mas tarde el origen de los letales misiles es localizado. +El planeta Takatis. +Los hombres no pueden creer lo que ven sus ojos mientras observan el holograma en la sala tactica. +Nada menos que el Dr. Geng X inicio el asalto. +Tiempo atras el comunicado de su muerte cruzo toda la galaxia, pero ahora ha regresado. +Sin vacilar la "dreadnought" se dirige rumbo al planeta inexplorado. +Tras un breve trayecto la nave llega a su destino. +El planeta alienigena manifiesta una falsa belleza. +La tropa inicia las maniobras de aterrizaje. +Los sensores muestran una atmosfera similar a la terrestre. +De repente, numerosos obuses en la superficie del planeta abren fuego. +El sistema de escudos falla y los enormes proyectiles destruyen el armazon de la nave. +Sin ayuda, los soldados ganan la superficie del planeta. +Conforme penetran en la atmosfera, la nave arde por todos los costados. +Segundos despues del impacto. +La mayor parte de la tropa no sobrevivio al aterrizaje de emergencia del "dreadnought". +Solo un soldado sigue vivo. Se incorpora con dificultad y consigue salir al exterior. +Solo dos soldados siguen vivos. Se incorporan con dificultad y consiguen salir al exterior. +Decididos a buscar al Dr. Geng X y liberar al mundo de su presencia maligna. +//---------- Outtro ----------// +Lo que parecia imposible se hace realidad. +Tras un larga andadura, finalmente el Dr. Geng X es derrotado! +Lo que queda de el yace oculto tras los restos humeantes de su +arruinada fortaleza. Todas sus siniestras creaciones fueron enterradas con el, +en la mas negra oscuridad. +La paz ha sido restaurada en el universo, pero nadie sabe +cuanto tiempo durara esta paz. +El futuro no esta escrito. + + + +//---------- Warpzone ----------// +Y ahora, para los mas pacientes, un pequeño truco. +Observa con detenimiento el tutorial para encontrar +la entrada secreta del fontanero ... +Usar la rueda al principio del todo es una idea muy EXPLOSIVA... +Permanece en la izquierda y no lo olvides: los fontaneros van por las tuberias ;) + +//--- ENDE ---// diff --git a/bios/Game Engines/Hurrican/hurrican/lang/francais.lng b/bios/Game Engines/Hurrican/hurrican/lang/francais.lng new file mode 100644 index 00000000..708c6c0a --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/lang/francais.lng @@ -0,0 +1,260 @@ +-------------------------------- +> Hurrican Fichier Langage < +> < +> - francais - < +> par DLFRSILVER < +> 28.04.2007 < +> < +> http://www.poke53280.de < +-------------------------------- +//---------- Starter ----------// +Plein ecran +Standard +Commencer +Quitter +Annuler +Langue +Verifier MAJ +Une nouvelle version est disponible. Visiter le site web Hurrican maintenant? +Pas de nouvelle version disponible. +Niveaux disponibles sur le serveur +Liste actuelle des niveaux sur serveur +Choisissez un pack de niveau +Telechargez la selection +//---------- Miscellaneous ----------// +0 +Chargement du fichier de langue +Chargement des bitmaps : +Chargement des waves : +Chargement des modules : + ... OK +Chargement des donnees niveaux pour \n +//---------- Tutorial Texts ----------// +Bienvenue dans le niveau tutoriel de Hurrican. Vous apprendrez ici les controles de base. Vous pouvez aller a gauche ou a droite en appuyant sur KEY_LEFT ou KEY_RIGHT. Vous pouvez vous baisser en appuyant sur KEY_CROUCH. Maintenant regardez autour de vous. Il y a d'autres astuces de ce genre dans ce niveau. +Appuyez sur KEY_JUMP pour sauter. Plus vous maintenez la touche, plus vous sautez loin. Vous pouvez changer de direction durant le saut en appuyant sur KEY_LEFT ou KEY_RIGHT. +Vous pouvez examiner les environs en appuyant sur KEY_UP et KEY_DOWN. Ca vous aidera a trouver des objets caches. Par exemple, regardez au plafond au dessus de vous... +Ces diamants sont eparpilles partout dans les niveaux. Vous obtenez des points quand vous les ramassez. En plus, tout les 50 diamants ramasses on vous augmente votre temps. +Appuyez sur KEY_SHOOT pour tirer et maintenez la touche pour obtenir une sorte d'auto-fire au ralenti. Appuyer sur la touche de facon repetee vous permet de tirer plus vite qu'avec l'autofire standard. +Maintenant regardez le mur sur votre droite. Il n'a pas l'air bien solide. Essayez de le detruire en tirant dessus avec votre arme. +Tres bien. Il y a beaucoup d'endroits ou vous pouvez detruire les murs. La plupart du temps, vous ne trouverez les endroits secrets que derriere eux. +Maintenant, un peu d'exercice de visee. Vous pouvez viser vers le haut en appuyant sur KEY_UP. En combinant ca avec KEY_LEFT ou KEY_RIGHT vous pouvez aussi tirer en diagonale. Maintenant essayez de tirer sur les diamants en dessous de vous. +Maintenant ca devient excitant... Plus bas vous allez rencontrer les premiers ennemis ou, disons-le, les premiers containers a powerup volants. +-leer- +Tres bien. Maintenant ramassez tout les powerup. +Cet effet etait l'indicateur d'incrementation de la puissance de votre arme. On peut voir lequel en regardant la couleur de l'effet. Le rouge est le tir en eclate, le bleu le laser et le vert est le tir par rebond. Les barres (a la fleche) vous montrent le niveau de l'arme en cours. +Et maintenant les premiers vrais ennemis: les walkers. Une chose en particulier a leur sujet, vous pouvez leur sauter dessus pour les detruire. +A nouveau le passage est bloque, mais cette fois le mur friable est en DESSOUS de vous. Maintenez KEY_BLITZ et faites osciller l'arc electrique avec KEY_LEFT et KEY_RIGHT pour detruire le mur. +Tres bien. Au fait, l'arc electrique peut aussi detruire les ennemis. Malheureusement il est un peu court... Mais pas de souci: c'est une simple histoire de technique :) sur la droite il y a des powerups pour remedier a ce probleme. +L'arc electrique est plus long maintenant. essayez-le! Et voila le top du top: il peuvent devenir encore plus long. La barre a cote du symbole de l'arc dans le HUD montre le niveau en cours. Quand vous perdez une vie, vous perdrez aussi une taille pour l'arc. +Les extras ne sont pas seulement contenus dans les containers volants. Ils peuvent aussi se trouver dans les blocs a powerups qui apparaissent seulement quand on leur tire dessus. Essayez de tirer dans les environs jusqu'a ce que vous en trouviez un (Faites une rotation complete avec l'arc c'est plus facile)... +Voila ca y est. Maintenant tirez lui dessus de maniere repetee jusqu'a ce qu'il soit vide et ramassez tout les objets. +Voila celle que l'on appele "lignes de puissance", qui est une arme speciale. Le nombre de lignes de puissance peut etre observe dans le HUD (regardez la fleche). allez un peu sur la droite pour obtenir une information pour pouvoir les utiliser et les voir en action. +Restez au milieu du pont et appuyez sur KEY_POWERLINE pour activer une ligne de puissance. +Vsouchhh! Les petits ennemis sont litteralement balayes et les plus gros sont en partie endommages par cette arme. Maintenant ramassez les powerups qui apparaissent. +Ces powerups sont des grenades. Elles vont faire BOOM. Ca a l'air marrant, mais c'est vrai :) De nouveau, sur la droite vous apprendrez l'usage de ces objets. +Faites attention, il y a deux nids qui peuvent encaisser un max de degats! Appuyez sur KEY_GRANATE pour tirer une grenade. Elles peuvent endommager tout les ennemis qui se trouvent dans le champ de l'explosion. Pour le second nid vous aurez besoin de rester en dessous et tirer vers le haut. +On dirait que c'est encore un cul de sac. Baissez vous avec (KEY_CROUCH) et activez la ligne de puissance simultanement (KEY_POWERLINE). De maniere a vous transformer en roue d'acier. A la fin du tunnel, appuyez simplement sur la touche de saut (KEY_JUMP) pour vous relever. +Comme vous avez pu le remarquer, la roue bleue (regardez la fleche) va diminuer quand vous roulerez sous forme de roue. Mais vous pouvez la remplir a nouveau avec les powerups. En plus, elle se recharge lentement par elle-meme. +Oui, c'etait le powerup de la roue. quand vous etes en mode roue, vous etes invicible et faites des degats aux ennemis. Et comme si ca ne suffisait pas, vous pouvez meme placer des bombes en appuyant sur KEY_SHOOT. Essayez-la sur les nids sur la droite. +Waouh, vous etes une sorte de machine a tuer maintenant! Mais le panel d'arme n'est pas encore termine. Des nouvelles armes feront leur apparition... +Au fait, ces fleches vous montrent le chemin a prendre si vous voulez atteindre la sortie. +Encore un mur? On peut utilisez l'arc... Mais attendez! Mettez-vous pres du mur et appuyez sur KEY_SHOCKWAVE ... +Waouhh, cette onde de choc a detruit le mur tout entier, tue le walker et meme vide un bloc de puissance. Mais vous pouvez seulement porter une seule de ces bombes teleguidees a la fois et devez la remplir avec le powerup correspondant quand vous l'utilisez. Si le symbole dans le HUD brille (regardez la fleche), la bombe teleguidee est prete a etre utilisee. +Encore un exercice de visee... Maintenez KEY_SHOOT et KEY_BLITZ simultanement pour mettre votre arme en charge avec le faisceau. Pendant le chargement, vous pouvez changer la direction de la visee avec KEY_LEFT et KEY_RIGHT. Relachez les cles pour tirer avec le faisceau. Plus vous amenez le faisceau loin, plus le tir sera gros. Allez au milieu et essayez de tirer sur les diamants au dessus de vous avec le faisceau. +Plus votre arc electrique est long, plus le faisceau se chargera vite. Encore une chose: sur la gauche vous prendrez connaissance des deux armes primaires qui existent en plus du tir en eclate. +C'etait des tirs a rebond supplementaires. Comme vous le voyez, les powerups peuvent meme etre disposes de cette facon. Ce tir peut etre divise en deux tirs supplementaires suivant le niveau de l'arme que vous utilisez a l'instant. Tres utile dans des tunnels etroits ou des couloirs comme celui-ci. +La derniere arme pour aujourd'hui est le laser. Ramassez les powerups et testez-le. Sa particularite est pouvoir tirer a travers plusieurs ennemis avec un seul projectile. Vous pouvez faire le tour de vos armes avec KEY_WAFFE_CYCLE. Amusez-vous un peu avec. +Vous etes arrive a la fin du tutoriel. Dans le jeu vous rencontrerez certains powerups tout nouveau et d'autres. Gardez ceci a l'esprit: experimentez a gauche a droite avec tout ce que vous pouvez pour tout comprendre. Le tutoriel etait un peu plus facile que les niveaux normaux: les nids ne ressuscitent pas les ennemis et vous etiez invincible. Mais maintenant vous devez etre pret pour le combat. Bonne chance! +36 +37 +38 +39 +//---------- Konsolen Text ----------// +Hurrican + +(c) 2007 +Poke53280 +www.poke53280.de + +Tapez "help" pour obtenir des infos a propos de la console de commande + + +//---------- Summary Box ----------// +Resume +Secrets +Cheat debloque: +- Appuyez sur une touche - +//---------- Main Menu ----------// +CHARGEMENT +SAUVER LE JEU +COMMENCER LE JEU +RETOUR AU JEU +PREFERENCES +HIGHSCORES +REMERCIEMENTS +QUITTER +UTILISER LE TUTORIEL +COMMENCER NOUVELLE PARTIE +CONTINUER UN JEU SAUVE +FACILE +NORMAL +DIFFICILE +HURRICAN +curseur: selectionner - entree : choisir - Echap : retour +RANG +NOM +SCORE +NIVEAU +MODE +VOLUME +SON +MUSIQUE +CONFIGURER LES CONTROLES +CHOISIR LA LANGUE +MODE: +Retour de force +Parametres par defaut +Joypad +Joystick +INCROYABLE +NOUVEL HIGHSCORE +ENTREZ VOTRE NOM +CONTINUER +De retour +marcher a gauche +marcher a droite +se baisser +regarder en haut +regarder en bas +saut +tir +activer arc electrique +ligne de puissance +grenade +onde de choc +basculer les armes +marcher +regarder +Axe X/Y +D-pad +-appuyez sur une nouvelle touche- +-appuyez sur un nouveau bouton- +DETAILS: FAIBLE +DETAILS: MOYEN +DETAILS: ELEVE +DETAILS: MAXIMUM +UN JOUEUR +DEUX JOUEUR +Joueur un +Joueur deux +type +mode +Sensibilite +clavier +non defini +niveau +joueur +date +- pas d'entree - +SECRET +gauche +droite +haut +bas +bouton +//---------- Hints ----------// +Si vous ramassez tout les diamants dans un niveau, vous debloquerez un cheatcode. +Quand vous perdez une vie, vous perdrez aussi le niveau de puissance de l'arme que vous utilisez. +Quand vous touchez un ennemi alors que vous etes en mode roue, l'energie du mode roue diminuera plus vite. +Quand vous ne bougez pas, votre energie en mode roue se chargera plus rapidement. +When you press jump while your are in wheel mode and in the air, you can perform th wheel jump. +Ramasser 50 diamants rafraichira la limite de temps. +Vous ne pouvez pas porter plus de 9 grenades et 9 lignes de puissance. +Certains secrets sont caches derriere des murs friables. +Il y a des murs de terre derriere lesquels vous pouvez trouver des secrets. +Quand vous roulez sur une bombe qui explose lorsque vous etes en mode roue vous serez un peu secoue. +Si vous vous faites mordre par un gros poisson, alors sautez pour vous en defaire. +La vapeur et la fumee peut vous pousser un peu quand vous sautez. +Certains gardiens sont tres durs a vaincre quand vous utilisez seulement votre simple puissance de feu. +Le feu sur les murs a lance-flammes peuvent aussi endommager les ennemis. +Le bouclier de protection peut endommager les ennemis lorsqu'on les touche +Certains ennemis doivent etre evites plutot que d'etre detruits. +Les grenades font subir des degats a chaque ennemi autour de l'explosion. +Les lignes de puissances se trouvent de preference dans les blocs caches contenant les powerups. +Les degats d'un simple tir a rebond diminueront chaque fois que le tir rebondit sur un mur. +Quand vous appuyez sur la touche de tir de maniere repetee vous pouvez tirer plus vite qu'en ayant un auto-fire standard. +Vous pouvez sauter sur les blocs de puissance pour atteindre des endroits plus en hauteur. +Vous pouvez sauver votre jeu apres chaque niveau. +Plus votre arc electrique est long, plus le faisceau se chargera vite. +quand vous perdez une vie, l'explosion agit comme une grenade. +Avec le laser vous pouvez tirer a travers plusieurs ennemis. +Les armes de base tir en eclate, laser et a rebond peuvent etre augmentes jusqu'au niveau 8. +Vous pouvez sauvez votre partie apres chaque niveau. +Vous pouvez changer le niveau de detail des effets speciaux dans le menu des options. +Certains ennemis peuvent seulement etre endommages que quand ils sont dans un etat bien particulier. +Poke53280 ne vous demandera JAMAIS votre adresse email ou votre mot de passe... +//---------- Pissen ----------// +Bon sang, je dois aller quelquepart... +Argh! J'en peux plus! +Pourquoi cette boite de conserve n'a pas d'ailes??? +Qui a concu ce truc bordel? +Pourquoi personne n'a pense a ce genre de situtaion? +Comme par hasard... +Ils ont pas teste ce truc correctement... +'tain, ca devient franchement balaise la! +Quand je serais de retour sur la terre... +... m'en fout j'me plaindrais! +C'est impossible. +Cette combinaison d'assaut dispose de tout le tintouin technologique... +Mais le truc le plus important qu'ils ont oublie. +Qu'est-ce que j'peux faire maintenant? +Allez, continue de jouer! +Grmblfxt ... j'vais peter un cable. +Je dois patienter... +... jusqu'a ce que le jeu soit pret! +//---------- Intro Screen 1 ----------// +Annee 2138, quelquepart dans l'espace +Le "dreadnought" revient d'une mission reussie. +Le prochain arret du vaisseau de transport de troupes est la Terre. +Tout a coup, les soldats recoivent un appel d'urgence de la planete bleue. +"La Terre est attaquee! Que toutes les unites disponibles se preparent a la defense!" +"Des missiles d'origine inconnue frappent la Terre!" +Quelques secondes plus tard, l'origine des missiles mortels est localisee. +C'est la planete Takatis. +Les hommes n'en croient pas leurs yeux tandis qu'ils regardent fixement l'hologramme dans la salle de briefing. +Personne d'autre que le Docteur Geng X lui-meme n'a pu donner l'assaut. +Des annees auparavant sa mort avait ete annoncee a travers toute la galaxie, mais il est de retour... +Sans hesitations le "dreadnought" met le cap vers la planete inexploree. +Apres un court vol le vaisseau atteint sa destination. +La planete alien etincelle d'une horrible beaute. +L'equipage lance le processus d'atterissage. +Les scanners indiquent une atmosphere de type terrestre. +Soudain, les nombreux canons a la surface de la planete ouvrent le feu. +Le systeme de bouclier est inefficace et d'enormes projectiles taillent la coque du vaisseau en pieces. +Sans espoir, les soldats piquent vers la surface de la planete. +Alors qu'ils entrent dans l'atmosphere, le vaisseau est sur le point de se mettre en torche. +quelques secondes apres l'impact. +La plupart de l'equipage n'a pas survecu a l'atterissage d'urgence du "dreadnought". +Un seul soldat est encore vivant. Il se releve lentement et se fraye un passage vers l'exterieur. +Seul deux soldats sont encore vivants. Ils se relevent lentement et se frayent un passage vers l'exterieur. +Il faut retrouver le Docteur Geng X et liberer le monde de sa presence diabolique. +//---------- Outtro ----------// +L'incroyable s'est produit. +Apres un long combat, le Docteur Geng X est vaincu! +Tout ce qui reste de lui est enterre sous les decombres fumantes de son +complexe en ruine. Toutes ses sinistres creations sont ensevelies ici avec lui, +au plus profond des tenebres. +La paix a ete enfin ramenee dans l'univers, mais qui sait +combien de temps cette paix durera. +Le futur n'est pas encore ecrit. + + + +//---------- Warpzone ----------// +Et maintenant, pour les plus patients d'entre vous, quelques petites astuces +Regardez attentivement le niveau tutoriel pour trouver +l'entree secrete dans les tuyaux ... +Utilisez la roue juste au debut est une idee EXPLOSIVE... +Restez pres de la gauche et n'oubliez pas: les plombiers vont dans les tuyauteries (vive mario lol) ;) + +//--- ENDE ---// diff --git a/bios/Game Engines/Hurrican/hurrican/lang/italiano.lng b/bios/Game Engines/Hurrican/hurrican/lang/italiano.lng new file mode 100644 index 00000000..953a7fca --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/lang/italiano.lng @@ -0,0 +1,260 @@ +-------------------------------- +> Hurrican Language File < +> < +> - italiano - < +> Luca Longone < +> 05.07.2007 < +> < +> < +-------------------------------- +//---------- Starter ----------// +Schermo pieno +Standard +Inizia gioco +Esci +Abortisci +Lingua +Controlla aggiornamenti +Una nuova versione e' disponibile. Vuoi visitare il sito Hurrican adesso? +Nessuna nuova versione disponibile. +Livelli disponibili sul server +Scarica l'attuale lista dei livelli dal server +Scegli il level pack +Scarica selezionati +//---------- Miscellaneous ----------// +0 +Caricamento file delle lingue +Caricamento bitmap : +Caricamento wave : +Caricamento modulo : + ... OK +Caricamento dati del livello per \n +//---------- Tutorial Texts ----------// +Ben venuto al livello tutorial di Hurrican. Qui imparerai i controlli base. Puoi muoverti a destra e sinistra premendo KEY_LEFT o KEY_RIGHT. Puoi accovacciarti premendo KEY_CROUCH. Adesso guardati un po' in torno. Ci sono altri suggerimenti simili a questo nel livello. +Premi KEY_JUMP per saltare. Piu' a lungo terrai premuto il tasto, piu' in alto salterai. Puoi cambiare la direzione durante il salto premendo KEY_LEFT o KEY_RIGHT. +Puoi guardarti attorno premendo KEY_UP e KEY_DOWN. Questo ti aiutera' a trovare oggetti nascosti. Per esempio, guarda il soffitto sopra di te... +Questi diamanti sono disseminati lungo tutti i livelli. Otterrai punti raccogliendoli. In aggiunta, ogni volta che collezioni 50 diamanti, essi ti andranno a ricaricare il tempo. +Premi KEY_SHOOT per sparare e tieni premuto il tasto per ottenere un po' di lento auto-fire. Premendo ripetutamente potrai sparare piu' velocemente del normale auto-fire. +Ora guarda il muro alla tua destra. Non sembra molto solido. Prova a distruggerlo sparandogli con la tua arma. +Molto bene. Ci sono un sacco di punti in cui potrai sparare ai muri. La maggior parte delle volte tuttavia, troverai solo delle aree segrete dietro di essi. +Ora qualche esercizio di puntamento. Puoi puntare in su' premendo KEY_UP. Insieme a KEY_LEFT o KEY_RIGHT potrai sparare anche in diagonale. Ora prova a sparare per tirare giu' i diamanti sopra di te. +Ora inizia il divertimento... Laggiu' troverai i primi nemici o, per meglio dire, i primi contenitori di power up. +-leer- +Molto bene. Colleziona tutti i power up ora. +Questo effetto era l'indicazione che la tua arma e' stata rafforzata. Potrai vedere quale era dal colore dell'effetto. Rosso e' lo spread shot, blu e' il laser e verde e' il bounce. Le tacche (guarda la freccia) mostrano il livello corrente dell'arma. +E ora i primi veri nemici: i walker. Una loro particolarita' e' che gli puoi saltare sopra per metterli knock out. +La via e' nuovamente bloccata, ma questa volta il muro da distruggere e' SOTTO di te. Tieni premuto KEY_BLITZ e ruota il fulmine con KEY_LEFT e KEY_RIGHT per distruggerlo. +Molto bene. A proposito, il fulmine puo' distruggere anche i nemici. Sfortunatamente e' un po' corto... Ma non preoccuparti: dipende tutto dalla tecnica :) A destra ci sono alcuni power up per cambiare questa situazione. +Il fulmine e' piu' lungo ora. Provalo! E la cosa migliore e': puo' diventare ancora piu' lungo. Le tacche sotto il simbolo del fulmine nell'HUD mostrano il livello corrente. Quando perderai una vita, perderai anche una tacca del fulmine. +Gli extra non sono presenti solo nei contenitori volanti. Possono anche trovarsi nei blocchi dei power up che appaiono solo se vengono colpiti per la prima volta. Prova a sparare qui attorno finche' non ne trovi uno (fai ruotare il fulmine per rendere la cosa piu' facile)... +Eccolo. Ora sparagli a ripetizione finche' sara' vuoto e colleziona tutti gli oggetti. +Queste erano le cosiddette "power line", un'arma speciale. Il numero di power line puo' essere visto nell'HUD (guarda la freccia). Vai un po' a destra per ricevere le informazioni su come usarle e per vederle in azione. +Resta al centro del ponte e premi KEY_POWERLINE per attivare le power line. +Whoosh! I nemici piccoli vengono spazzati via e anche i piu' grandi vengono danneggiati da quest'arma. Ora colleziona i power up che vengono su'. +Questi power up erano granate. Fanno BOOM. Sembra divertente, ma e' la verita' :) Ancora una volta, a destra imparerai l'uso di questi oggetti. +Attento, ci sono due nidi che possono causare molti danni! Premi KEY_GRANATE per sparare una granata. Possono danneggiare tutti i nemici posizionati attorno all'esplosione. Per il secondo nido dovrai metterti sotto di esso, e sparare in su'. +Sembra di nuovo un vicolo cieco. Accovacciati (KEY_CROUCH) e attiva le power line simultaneamente (KEY_POWERLINE) in modo da poterti trasformare nella ruota d'acciaio. Alla fine del tunnel, premi semplicemente il tasto per saltare (KEY_JUMP) per rimetterti in piedi. +Come avrai notato, il cerchio blue (guarda la freccia) diminuira' quando rotoli come una ruota. Ma potrai ricaricarlo di nuovo coi power up. Inoltre, si ricarichera' lentamente da solo. +Gia', questo era il power up della ruota. Quando sei in modalita' ruota, sei invincible e causerai danni ai nemici. E come se non bastasse, potrai anche piazzare le bombe premendo KEY_SHOOT. Prova con i nidi a destra. +Wow, sei proprio una macchina assassina adesso! Ma l'armamentario non e' ancora completo. Alcune armi devono ancora arrivare... +Queste frecce a proposito ti mostrano la direzione da prendere se vuoi raggiungere l'uscita. +Ancora un muro? Potremmo usare il lampo... Ma aspetta! Avvicinati al muro e premi KEY_SHOCKWAVE ... +Wow, quell'onda-shock ha distrutto l'intero muro eliminando il walker, e ha anche svuotato un blocco di power up. Puoi trasportare solo una di queste smart bomb alla volta e dovrai ricaricarla con il power up corrispondente dopo averla usata. Se il simbolo nell'HUD e' illuminato (guarda la freccia), la smart bomb e' pronta all'uso. +Un'altro esercizio di puntamento... Tieni premuto KEY_SHOOT e KEY_BLITZ simultaneamente per caricare la tua arma con il colpo. Durante il caricamento, puoi cambiare la direzione di puntamento con KEY_LEFT e KEY_RIGHT. Lascia i tasti per sparare il colpo. Piu' a lungo mantieni il colpo, piu' sara' grande. Vai al centro e prova a sparare ai diamanti sopra di te con questo colpo. +Piu' e' lungo il tuo fulmine, piu' velocemente si carichera' il colpo. Un'altra cosa: a sinistra scoprirai le due armi principali che si trovano a fianco allo spread shot. +Questi erano gli extra per i bounce. Come puoi vedere, i power up possono trovarsi anche in giro cosi'. Questo sparo si puo' dividere in altri due spari in base al potere della tua arma al momento. Molto utile nei tunnel stretti o in corridoi come questo qui. +L'ultima arma di oggi e' il laser. Colleziona i power up e provalo. La sua particolarita' sta' nel fatto di poter sparare attraverso molti nemici con un colpo solo. Puoi cambiare arma con KEY_WAFFE_CYCLE. Fai un po' di pratica. +Questa e' la fine del tutorial. Nel gioco incontrerai altri power up e altra roba. Tieni pero' a mente: sperimenta un po' tutto per capire. Il tutorial era un po' piu' facile dei normali livelli: dai nidi non spuntavano nemici ed eri invincibile. Ma ora dovresti essere pronto alla battaglia. Buona fortuna! +36 +37 +38 +39 +//---------- Konsolen Text ----------// +Hurrican + +(c) 2007 +Poke53280 +www.poke53280.de + +Inserire "help" per informazioni sui comandi della console + + +//---------- Summary Box ----------// +Sommario +Segreti +Trucco sbloccato: +- Premi un tasto - +//---------- Main Menu ----------// +CARICAMENTO +SALVA GIOCO +INIZIA GIOCO +TORNA AL GIOCO +PREFERENZE +HIGHSCORE +CREDITI +ESCI +GIOCA TUTORIAL +INIZIA NUOVO GIOCO +CONTINUA GIOCO SALVATO +FACILE +NORMALE +DIFFICILE +HURRICAN +cursori: selezionare - enter : scegliere - ESC : indietro +POSIZIONE +NOME +PUNTEGGIO +STAGE +DIFF. +VOLUME +SUONO +MUSICA +CONFIGURA CONTROLLI +SCEGLI LINGUA +MODO: +Force feedback +Carica impostazioni predefinite +Joypad +Joystick +INCREDIBILE +NUOVO HIGHSCORE ALLA POSIZIONE +INSERISCI IL NOME +CONTINUA +dietro +cammina a sinistra +cammina a destra +accovacciati +guarda su' +guarda giu' +salta +spara +attiva lampo +power line +granata +onda-shock +cambia arma +cammina +guarda +Asse X/Y +D-pad +-premi nuovo tasto- +-premi nuovo bottone- +DETTAGLIO: BASSO +DETTAGLIO: MEDIO +DETTAGLIO: ALTO +DETTAGLIO: MASSIMO +UN GIOCATORE +DUE GIOCATORI +Giocatore uno +Giocatore due +tipo +modo +sensibilita' +tastiera +non definito +stage +giocatore +data +- nessun valore - +SEGRETO +sinistra +destra +su' +giu' +bottone +//---------- Hints ----------// +Collezionando tutti i diamanti di un livello, sbloccherai un codice per un trucco. +Perdendo una vita perderai anche il livello dell'arma corrente. +Toccando un nemico mentre sei in modalita' ruota, l'energia del cerchio diminuira' piu' rapidamente. +Stando fermo senza muoverti l'energia del cerchio si ricarichera' piu' rapidamente. +Premendo salto mentre sei in modalita' ruota e in aria, potrai eseguire il salto rotante. +Collezionando 50 diamanti riaggiornerai il limite di tempo. +Non puoi trasportare piu' di 9 granate e 9 power line. +Alcuni segreti si nascondono dietro muri da abbattere. +Dove ci saranno muri che non ti fermano, ci saranno dietro dei segreti. +Rotolando su una bomba che esplode, in modalita' ruota, subirai un leggero sobbalzo. +Se verrai morso da un grosso pesce salta sulla terra ferma per liberartene. +Vapore e fumo possono darti una leggera spinta quando salti. +Alcuni boss sono veramente duri da abbattere usando la sola e pura potenza di fuoco. +Il fuoco dai lanciafiamme a muro puo' causare danni anche ai nemici. +I generatori dello scudo possono danneggiare i nemici quando li toccano. +Alcuni nemnici e' meglio evitarli che distruggerli. +Le granate causano danni ad ogni nemico attorno all'esplosione. +Le power line sono la cosa migliore per trovare i blocchi dei power up. +Il danno di un singolo bounce diminuira' ad ogni rimbalzo sul muro. +Premendo ripetutamente il tasto fuoco puoi sparare piu' velocemente che con il normale auto-fire. +Puoi saltare sui blocchi dei power up per raggiungere le aree sovrastanti. +Puoi salvare il gioco alla fine di ogni livello. +Piu' e' lungo il tuo fulmine, piu' rapidamente si carichera' il colpo. +Perdendo una vita, l'esplosione sara' come quella di una granata. +Con il laser puoi sparare attraverso piu' nemici. +Le armi principali spread shot, laser e bounce possono essere potenziate fino a livello 8. +Puoi salvare il gioco alla fine del livello. +Puoi cambiare il livello di dettaglio degli effetti speciali dal menu opzioni. +Alcuni nemici possono essere colpiti solo in specifici momenti. +Poke53280 non ti chiedera' MAI l'indirizzo email o la tua password... +//---------- Pissen ----------// +Dannazione, devo andare da qualche parte... +Argh! Non riesco piu' a trattenerla! +Perche' questa armatura di latta non ha l'apertura per fare pipi'??? +Chi diavolo l'ha disegnata? +Perche' nessuno ha pensato a questa evenienza? +Tipico... +Non l'hanno provata abbastanza a lungo... +Dannazione, la cosa si sta facendo imbarazzante! +Quando torno sulla Terra... +... Ho intenzione di protestare per questo! +E' impossibile. +Questa suit d'assalto ha tutte le diavolerie e gli accessori immaginabili... +Ma hanno dimenticato la cosa piu' importante. +Che posso fare ora? +Avanti, torna a giocare! +Grmblfxt ... Sto diventando pazzo. +Devo trattenerla... +... finche' si ritorna al gioco! +//---------- Intro Screen 1 ----------// +2138, da qualche parte nello spazio +La "nave da guerra" e' di ritorno da una missione di successo. +La prossima fermata per la nave di trasporto truppe e' la Terra. +All'improvviso, i soldati ricevono una chiamata di emergenza dal pianeta azzurro. +"Terra sotto attacco! Tutte le unita' disponibili si preparino per la difesa!" +"Razzi di origine sconosciuta colpiscono la Terra!" +Alcuni secondi piu' tardi l'origine dei micidiali missili viene localizzata. +Il pianeta Takatis. +Gli uomini non possono credere ai loro occhi fissando l'ologramma nella stanza missioni. +Nessun altro a parte il Dr. Geng X in persona poteva dare inizio all'attacco. +Anni fa la notizia della sua morte si era diffusa per la galassia, ma ora e' tornato. +Senza esitazione la "nave da guerra" imposta la rotta verso il pianeta inesplorato. +Dopo un breve volo la nave raggiunge la sua destinazione. +Il pianeta brilla di una sua affascinante bellezza. +L'equipaggio inizia la procedura di atterraggio. +Gli scanner rilevano un'atmosfera simile alla Terra. +Improvvisamente, numerosi cannoni sulla superficie del pianeta aprono il fuoco. +Il sistema di scudi viene abbattuto ed enormi proiettili aprono squarci nella nave. +Senza aiuto, i soldati si dirigono sulla superficie del pianeta. +Quando entrano nell'atmosfera, la nave inizia a prendere fuoco. +Alcuni secondi dopo avviene l'impatto. +Gran parte dell'equipaggio non e' sopravvissuta all'atterraggio di emergenza della "nave da guerra". +Solo un soldato e' ancora vivo. Egli si alza lentamente e trova la via per uscire, determinato... +Solo due soldati sono ancora vivi. Si alzano lentamente e trovano la via d'uscita, determinati... +...A trovare il Dr. Geng X e liberare il mondo dalla sua diabolica presenza. +//---------- Outtro ----------// +L'incredibile e' divenuto realta'. +Dopo una lunga battaglia, Dr. Geng X viene sconfitto! +Qualunque cosa rimanga di lui restera' nascosta sotto le coltri di fumo della fortezza +distrutta e in rovina. Tutte le sue sinistre creazioni resteranno seppellite con lui, +giu' nella profonda ed eterna oscurita'. +La pace e' stata nuovamente ristabilita nell'universo, ma nessuno sa +quanto tempo questa pace potra' durare. +Il futuro deve ancora essere scritto. + + + +//---------- Warpzone ----------// +E ora, per quelli pazienti fra voi, alcuni piccoli suggerimenti +Guarda bene all'interno del livello tutorial per trovare +l'entrata segreta per le condutture ... +Usare la ruota proprio all'inizio sarebbe un'idea ESPLOSIVA... +Resta tutto a sinistra e non dimenticare: gli idraulici cercano i tubi ;) + +//--- ENDE ---// diff --git a/bios/Game Engines/Hurrican/hurrican/lang/languages.zip b/bios/Game Engines/Hurrican/hurrican/lang/languages.zip new file mode 100644 index 00000000..7c6f338f Binary files /dev/null and b/bios/Game Engines/Hurrican/hurrican/lang/languages.zip differ diff --git a/bios/Game Engines/Hurrican/hurrican/lang/polski.lng b/bios/Game Engines/Hurrican/hurrican/lang/polski.lng new file mode 100644 index 00000000..59513f89 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/lang/polski.lng @@ -0,0 +1,260 @@ +-------------------------------- +> Plik Jezykowy Hurrican < +> < +> - polski - < +> Romano < +> 29.06.2007 < +> < +> < +-------------------------------- +//---------- Starter ----------// +Pelny ekran +Standardowa +Uruchom gre +Wyjdz +Porzuc +Jezyk +Sprawdz uaktualnienia +Jest dostepna nowa wersja. Czy chcesz teraz odwiedzic strone internetowa Hurrican? +Nie ma nowszej wersji. +Dostepne poziomy na serwerze +Pobierz aktualna liste poziomow z serwera +Wybierz paczke poziomow +Pobierz wybrane +//---------- Miscellaneous ----------// +0 +Ladowanie pliku jezykowego +Ladowanie bitmapy : +Ladowanie dzwieku : +Ladowanie modulu : + ... OK +Ladowanie danych poziomu dla \n +//---------- Tutorial Texts ----------// +Witam na poziomie treningowym Hurrican. Tu nauczysz sie podstawowego sterowania. Mozesz poruszac sie w lewo i prawo przyciskajac KEY_LEFT lub KEY_RIGHT. Mozesz kleczec przyciskajac KEY_CROUCH. Teraz rozejrzyj sie troche. Jest wiecej podpowiedzi tego typu na tym poziomie. +Wcisnij KEY_JUMP by skoczyc. Im dluzej przytrzymasz klawisz, tym wyzej skoczysz. Mozesz zmieniac kierunek podczas skoku wciskajac KEY_LEFT lub KEY_RIGHT. +Mozesz sie rozgladac przyciskami KEY_UP i KEY_DOWN. To pomoze ci znalezc ukryte przedmioty. Jak na przyklad, popatrz sie teraz na sufit nad toba... +Te diamenty sa porozsiewane po poziomach. Za zbieranie ich dostajesz punkty. Dodatkowo za kazde 50 diamentow twoj czas sie uzupelnia. +Wcisnij KEY_SHOOT by strzelic, i przytrzymaj by strzelac powolnym ogniem automatycznym. Powtarzalnie wciskajac ten klawisz mozesz strzelac szybciej niz normalnym ogniem automatycznym. +Teraz popatrz na sciane na prawo. Nie wyglada zbyt solidnie. Sprobuj ja zniszczyc strzelajac do niej ze swojej broni. +Bardzo dobrze. Jest wiele miejsc w ktorych mozesz niszczyc sciany. Jednak w wiekszosci wypadkow, znajdziesz za nimi rozne sekrety. +Teraz czas pocwiczyc celnosc. Mozesz celowac w gore wciskajac KEY_UP. Mieszajac to z KEY_LEFT lub KEY_RIGHT mozesz tez strzelac po skosie. Teraz sprobuj zestrzelic te krysztaly nad toba. +Robi sie coraz ciekawiej... Tam w dole znajdziesz pierwszych wrogow, lub jak kto woli, pierwsze latajace zasobniki wzmocnien. +-leer- +Bardzo dobrze. Zbierz teraz wszystkie wzmocnienia. +Ten efekt to wskaznik oznaczajacy, ze twoja bron zostala wzmocniona. To ktora bron zostala wzmocniona zalezy od koloru efektu. Czerwony to karabin rozpryskowy, niebieski to laser a zielony to kule plazmowe. Paski (przy strzalce) pokazuja aktualny poziom broni. +Teraz pora na pierwszego, prawdziwego wroga: robot kroczacy. Tym co je odroznia jest to, ze mozesz na nie naskoczyc, i w ten sposob ogluszyc je. +I znowu droga jest zablokowana, tym razem zniszczalna sciana jest POD toba. Przytrzymaj KEY_BLITZ i obroc piorun przy pomocy KEY_LEFT i KEY_RIGHT tak by zniszczyc sciane. +Bardzo dobrze. Przy okazji, piorun moze tez niszczyc wrogow. Niestety jest nieco za krotki... Ale nie martw sie, to kwestia techniki :) Na prawo od ciebie jest kilka wzmocnien ktore to zmienia. +Piorun jest teraz dluzszy. Wyprobuj go! A najlepsze jest to, ze moze byc jeszcze dluzszy. Pasek przy symbolu blyskawicy na HUDzie pokazuje jego aktualny poziom. Gdy stracisz zycie, stracisz tez jeden poziom pioruna. +Bonusy nie sa zawarte tylko w latajacych zasobnikach. Moga tez byc w blokach wzmocnien ktore pojawiaja sie tylko gdy zostana juz chociaz raz trafione. Sprobuj postrzelac wokol siebie dopoki jednego nie znajdziesz (Obracanie piorunem powinno ci to ulatwic...) +Oto jest. Teraz ostrzelaj go, dopoki nie wyleca z niego wszystkie przedmioty. +To byly tak zwane "linie mocy", to bron specjalna. Liczbe linii mocy mozna ujrzec na HUDzie (patrz strzalka). Przejdz sie troche w prawo by uzyskac informacje jak ich uzywac, i zobaczyc je w akcji. +Stan na srodku mostu i wcisnij KEY_POWERLINE by aktywowac linie mocy. +Siuuu! Mali wrogowie zostaja zmieceni a wieksi zostaja uszkodzeni, dzieki tej broni. Zbierz teraz unoszace sie wzmocnienia. +Te wzmocnienia to byly granaty. Robia BUUM! Brzmi smiesznie, ale to prawda :) Ponownie, idac w prawo nauczysz sie uzytkowania tych przedmiotow. +Uwaga, sa tu dwa gniazda ktore wytrzymuja duze obrazenia! Wcisnij KEY_GRANATE by wystrzelic granat. Moga one razic wszystkich wrogow bedacych w promieniu wybuchu. By zniszczyc drugie gniazdo bedziesz musial stanac pod nim i wystrzelic w gore. +Wyglada na kolejny slepy zaulek. Ukleknij (KEY_CROUCH) i jednoczesnie aktywuj linie mocy (KEY_POWERLINE). Dzieki temu zmienisz sie w stalowe kolo. Na koncu tunelu, zwyczajnie wcisnij klawisz skoku (KEY_JUMP) by znow stanac na nogi. +Jak juz pewnie zauwazyles, niebieski pierscien (patrz strzalka) bedzie malal gdy bedziesz sie krecil wokol jako kolo. Ale mozesz napelnic go z powrotem dzieki wzmocnieniom. Dodatkowo sam sie powoli napelnia. +Tak, to bylo wzmocnienie kola. Kiedy jestes w trybie kola, jestes niezwyciezony i uszkadzasz wrogow. I jakby tego bylo malo, mozesz nawet rozrzucac bomby wciskajac KEY_SHOOT. Wyprobuj to na gniazdach znajdujacych sie na prawo od ciebie. +Wow, jestes teraz czyms w rodzaju maszyny do zabijania! Ale twoj arsenal nie jest jeszcze pelny. Dojdzie ci jeszcze kilka broni... +Te strzalki na twojej drodze wskazuja ci kierunek w ktorym musisz podazac, by dojsc do wyjscia z poziomu. +Znowu sciana? Moglibysmy uzyc pioruna... ale czekaj! Stan blisko tej sciany i wcisnij KEY_SHOCKWAVE... +Wow, ta fala uderzeniowa zniszczyla cala sciane, zabila robota kroczacego, a nawet oproznila blok wzmocnien. Ale mozesz nosic tylko jedna taka bombe i musisz zdobyc odpowiednie wzmocnienie by znow ja odzyskac. Jezeli symbol na HUDzie swieci (patrz strzalka), bomba jest gotowa do uzycia. +Jeszcze jedno cwiczenie celnosci... Przytrzymaj KEY_SHOOT i KEY_BLITZ jednoczesnie, by naladowac swoja bron promieniem. W czasie ladowania mozesz zmienic kierunek celowania przy pomocy KEY_LEFT i KEY_RIGHT. Pusc klawisze, by wystrzelic promien. Im dluzej bedziesz ladowal promien, tym wiekszy pocisk wystrzelisz. Stan na srodku i sprobuj zestrzelic w ten sposob diamenty nad toba. +Im dluzszy masz piorun, tym szybciej naladujesz promien. Jeszcze jedno: idac w lewo dowiesz sie o dwoch innych podstawowych broniach, poza karabinem rozpryskowym. +To byly bonusy kuli plazmowej. Jak widzisz, wzmocnienia moga nawet lezec ot tak sobie. Ten pocisk moze dzielic sie na dwa kolejne pociski, zaleznie od poziomu twojej broni. Bardzo przydatne w tunelach lub korytarzach jak ten tutaj. +Ostatnia bronia na dzis jest laser. Zbierz wzmocnienia i przetestuj go. Jego specjalna wlasciwoscia jest to ze potrafi przeszywac kilku wrogow jednym pociskiem. Mozesz zmieniac bronie za pomoca KEY_WAFFE_CYCLE. Pobaw sie troche. +To koniec treningu. W grze dowiesz sie wiecej o wzmocnieniach i innych rzeczach. Tylko zapamietaj sobie, poeksperymentuj troche ze wszystkim by to zrozumiec. Ten trening byl nieco latwiejszy niz normalne poziomy: gniazda nie tworzyly wrogow a ty byles niezniszczalny. Ale teraz powinienes byc gotowy do walki. Powodzenia! +36 +37 +38 +39 +//---------- Konsolen Text ----------// +Hurrican + +(c) 2007 +Poke53280 +www.poke53280.de + +Wpisz "help" by uzyskac informacje o komendach konsoli + + +//---------- Summary Box ----------// +Podsumowanie +Sekrety +Odblokowane cheaty: +- Wcisnij dowolny klawisz - +//---------- Main Menu ----------// +LADOWANIE +ZAPISZ GRE +ZACZNIJ GRE +POWROT DO GRY +OPCJE +HALA SLAWY +LISTA PLAC +WYJDZ +ROZPOCZNIJ TRENING +ROZPOCZNIJ NOWA GRE +KONTYNUUJ GRE +LATWY +NORMALNY +TRUDNY +HURRICAN +kursor : wybierz - enter : zatwierdz - ESC : cofnij +RANGA +IMIE +WYNIK +POZ. +UMIEJ. +GLOSNOSC +DZWIEK +MUZYKA +KONFIGURUJ STEROWANIE +WYBIERZ JEZYK +TRYB: +Wibracja +Ustawienia poczatkowe +Joypad +Joystick +NIESAMOWITE +NOWY WYNIK W RANDZE +WPISZ SWOJE IMIE +KONTYNUUJ +Zurück +idz w lewo +idz w prawo +klecz +patrz w gore +patrz w dol +skocz +strzel +aktywuj piorun +linia mocy +granat +fala uderzeniowa +zmien bron +idz +patrz +Os X/Y +D-pad +-wcisnij klawisz- +-wcisnij przycisk- +DETALE: NISKIE +DETALE: SREDNIE +DETALE: WYSOKIE +DETALE: NAJWYZSZE +JEDEN GRACZ +DWOCH GRACZY +Pierwszy gracz +Drugi gracz +typ +tryb +Czulosc +klawiatura +nie zdefiniowano +poziom +gracze +data +- brak wpisu - +SEKRET +lewo +prawo +gora +dol +przycisk +//---------- Hints ----------// +Jezeli zbierzesz wszystkie diamenty w poziomie, odblokujesz cheat. +Tracac zycie, stracisz tez poziom broni ktorej aktualnie uzywasz. +Dotykajac wroga bedac w trybie kola, energia kola bedzie spadac szybciej. +Stojac w bezruchu, energia kola zregeneruje sie szybciej. +Wciskajac przycisk skoku gdy jestes w trybie kola oraz jestes w powietrzu, wykonasz kolo-skok. +Zebranie 50 diamentow odnowi limit czasu. +Nie mozesz miec wiecej niz 9 granatow i 9 linii mocy. +Niektore sekrety sa schowane za zniszczalnymi scianami. +Istnieja przepuszczalne sciany za ktorymi mozesz znalezc sekrety. +Wjezdzajac na wybuchajaca bombe w trybie kola zostaniesz wyrzucony nieco w gore. +Gdy ugryzie ciebie wielka ryba wyskocz na suchy lad by sie jej pozbyc. +Para i dym moga ciebie uniesc nieco wyzej kiedy skaczesz. +Niektorzy bossowie sa bardzo trudni do pokonania przy uzyciu czystej sily ognia. +Ogien z nasciennych miotaczy ognia moze tez krzywdzic wrogow. +Wytworniki oslon moga uszkadzac wrogow gdy ich dotkna. +Niektorych wrogow lepiej unikac niz niszczyc. +Granaty uszkadzaja kazdego wroga w promieniu wybuchu. +Linie mocy najlatwiej znalezc w ukrytych blokach wzmocnien. +Obrazenia zadawane przez kule plazmowe zmniejsza sie za kazdym razem gdy kula odbije sie od sciany. +Powtarzalnie wciskajac przycisk strzalu strzelasz szybciej niz zwyklym ogniem automatycznym. +Mozesz wskakiwac na bloki mocy by wspiac sie na wyzsze obszary. +Mozesz zapisac gre po kazdym skonczonym poziomie. +Im dluzszy jest twoj piorun, tym szybciej promien sie laduje. +Gdy tracisz zycie, eksplozja tym wywolana przypomina wybuch granatu. +Laserem mozesz przestrzeliwac kilku wrogow pod rzad. +Bronie podstawowe, karabin rozpryskowy, laser i kule plazmowe mozna rozbudowac do 8 poziomu. +Mozesz zapisac gre po kazdym skonczonym poziomie. +Mozesz zmienic poziom detali efektow specjalnych w menu opcji. +Niektorych wrogow mozesz zranic tylko gdy sa w okreslonym stanie. +Poke53280 NIGDY nie poprosi cie o twoj adres e-mail lub o twoje haslo... +//---------- Pissen ----------// +Cholera, musze gdzies isc... +Argh! Nie wytrzymam juz dluzej! +Czemu ten blaszany kubel nie ma klapki w rozkroku??? +Kto do diabla to zaprojektowal? +Dlaczego nikt nie pomyslal o takiej sytuacji? +Typowe... +Nie testowali tej rzeczy w odpowiedni sposob... +Cholera, to zaczyna sie robic niezreczne! +Kiedy wroce na Ziemie... +...Bede na to narzekal! +To nie mozliwe. +Ten kombinezon bojowy ma wszelkie techniczne gwizdki i dzwonki... +Ale o najwazniejszej rzeczy to juz zapomnieli. +Co teraz moge zrobic? +No chodz, graj dalej! +Grmblfxt ... Zaczynam swirowac. +Musze to ukrywac... +...az gra bedzie skonczona! +//---------- Intro Screen 1 ----------// +2138, gdzies w przestrzeni +"Pancernik" jest w drodze powrotnej z pomyslnej misji. +Nastepnym przystankiem transportowca jest Ziemia. +Nagle, zolnierze dostaja alarmowe wolanie z blekitnej planety. +"Ziemia jest atakowana! Wszystkie jednostki przygotowac sie do obrony!" +"Rakiety nieznanego pochodzenia trafiaja w Ziemie!" +Sekundy pozniej pochodzenie zabojczych pociskow zostalo zlokalizowane. +Planeta Takatis. +Ludzie nie wierza swoim oczom patrzac sie na hologram w sali odpraw. +Nikt inny jak sam Dr. Geng X rozpoczal atak. +Lata temu wiadomosc o jego smierci rozbiegla sie po galaktyce, ale on wrocil. +Bez wahania "Pancernik" ustanawia kurs na niezbadana planete. +Po krotkim locie statek osiaga miejsce swojego przeznaczenia. +Obca planeta blyszczy zdradzieckim pieknem. +Zaloga rozpoczyna proces ladowania. +Skanery wskazuja na atmosfere podobna do ziemskiej. +Nagle, liczne dziala na powierzchni otwieraja ogien. +System oslon zawodzi i wielkie pociski rozrywaja kadlub statku na strzepy. +Bezradni, zolnierze spadaja na powierzchnie planety. +Statek prawie splonal gdy wchodzili w atmosfere. +Sekundy po uderzeniu. +Wiekszosc zalogi nie przetrwala awaryjnego ladowania "Pancernika". +Przezyl tylko jeden zolnierz. Powoli podnosi sie i wychodzi na zewnatrz. +Przezylo tylko dwoch zolnierzy. Powoli podnosza sie i wychodza na zewnatrz. +Czas odnalesc Dr. Geng X i uwolnic swiat z jego zlej obecnosci. +//---------- Outtro ----------// +Niesamowite stalo sie prawdziwe. +Po dlugiej walce, Dr. Geng X zostal pokonany! +Cokolwiek po nim zostalo lezy ukryte pod dymiacymi resztkami jego +zrujnowanej twierdzy. Wszystkie jego zlowrogie twory leza pogrzebane tu razem z nim, +w dole wiecznej ciemnosci. +Pokoj we wszechswiecie zostal przywrocony, lecz nikt nie wie +jak dlugo ten pokoj zapanuje. +Przyszlosc dopisze ta historie. + + + +//---------- Warpzone ----------// +A teraz, dla tych cierpliwych z was, mala podpowiedz +Dobrze sie rozejrzyjcie w poziomie treningowym by znalezc +tajne wejscie hydraulika... +Uzywanie kola na samym poczatku to BOMBOWY pomysl... +Trzymaj sie blisko lewej strony i nie zapomnij: hydraulicy ida po rury ;) + +//--- ENDE ---// diff --git a/bios/Game Engines/Hurrican/hurrican/lang/portugues.lng b/bios/Game Engines/Hurrican/hurrican/lang/portugues.lng new file mode 100644 index 00000000..1dcea092 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/lang/portugues.lng @@ -0,0 +1,260 @@ +-------------------------------- +> Hurrican Language File < +> < +> - portugues - < +> Raphael Belmont < +> 26.06.2007 < +> < +> http://www.poke53280.de < +-------------------------------- +//---------- Inicio ----------// +TelaCheia +Padrao +Iniciar jogo +Sair +Abortar +Idioma +Checar novas versoes +Uma nova versao esta disponivel. Deseja visitar o site Hurricane agora? +Nenhuma nova versao disponivel. +Niveis disponiveis no servidor. +Baixar lista atual de niveis no servidor +Selecione pacote de nivel +Selecao de download +//---------- Miscellaneous ----------// +0 +Carregando arquivo de idioma +Carregando imagem : +Carregando som : +Carregando modulo : + ... OK +Carregando dados do nivel para \n +//---------- Textos Tutoriais ----------// +Bem vindo ao Hurrican nivel tutorial. Aqui voce aprendera os comandos basicos. Voce pode mover para esquerda e direita pressionando seta_esquerda ou seta_direita. Voce pode agachar pressionando seta_baixo. Agora observe mais um pouco. Existem mais dicas como essa nesse nivel. +Pressione tecla de pulo para pular. Quanto mais voce pressionar a tecla mais alto pulara. Voce pode mudar a direcao enquanto pula pressionando esquerda ou direita. +Voce pode olhar ao redor pressionando para cima ou para baixo. Isso o ajuda a encontrar itens escondidos. Por exemplo, olhe para o teto acima de voce... +Esses diamantes estao espalhados pelo nivel. Voce recebera pontos por coleta-los. Ainda a cada 50 diamantes coletados seu tempo enchera novamente. +Pressione Tiro para atirar e mantenha pressionado para um lento auto-fogo. Pressionando a tecla constantemente voce pode atirar mais rapido do que o normal auto-fogo. +Agora olhe para a parede na sua direita. Nao parece muito solida. Tente destrui-la com sua arma. +Muito bem. Existem muitos lugares que voce pode destruir paredes. Na maioria voce encontrara somente areas secretas. +Agora um pouco de treinamento de mira. Voce pode mirar para cima pressionando Cima. Combinando com Esquerda ou Direita voce pode atirar na diagonal tambem. Agora tente acertar os diamantes acima de voce. +Agora esta ficando excitante... Embaixo voce encontrara os primeiros inimigos ou, digamos, as primeiras caixas contendo PowerUp. +-atencao- +Muito bem.Colete todos os PowerUp agora. +Esse efeito foi o indicador de forca da sua arma. Pode ser notado pela cor do efeito. Vermelho e o tiro espalhado, azul e o laser e verde e o que rebate. As barras (nas setas) mostram o nivel atual da arma. +E agora os primeiros inimigos reais: os caminhadores. Uma coisa especial sobre eles e que voce pode pular em cima deles para destrui-los. +Novamente o caminho esta bloqueado, mas agora a parede destruivel esta abaixo de voce. Pressione Relampago e gire o raio com esquerda e direita para destruir a parede. +Muito bem. A proposito o raio pode destruir inimigos tambem. Infelizmente e um pouco curto... Mas nao se preoculpe: e tudo questao de tecnica :) A direita estao alguns PowerUps para mudar isso. +O raio e mais longo agora. Experimente! E o melhor: pode ir mais longe ainda. A barra ao lado do simbolo do relampago no HUD mostra o nivel atual. Quando voce perde uma vida, voce perdera um nivel do relampago tambem. +Extras nao se encontram somente nas caixas flutuantes. Eles tambem podem ser encontrados no blocos PowerUp que somente aparecem quando sao atingidos uma primeira vez. Tente atirar por aqui ate voce encontar um (gire o relampago para facilitar um pouco)... +Aqui esta. Agora atire continuamente ate que esteja vazia e tudo coletado. +Esses foram os "powerlines", uma arma especial. O numero de powerlines pode ser visto no HUD (observe a seta). Va um pouco para a direita para aprender como usa-los e ve-los em acao. +Fique no meio da ponte e pressione KEY_POWERLINE para ativar uma powerline. +Woosh! Inimigos pequenos sao desintegrados e maiores sao danificados tambem. Agora colete os PowerUps. +Esses PowerUps eram granadas. Elas fazem BOOM. Parece engracado mas e verdade :) Novamente a direita voce aprendera como usar esses itens. +Cuidado, existem dois ninhos que podem causar um bom dano! Pressione KEY_GRANADA para jogar uma granada. Elas podem destruir tudo ao seu alcance. Para o segundo ninho voce precisara ficar abaixo e atirar pra cima. +Parece sem saida novamente. Agache e ative a powerline simultaneamente. Voce mudara para a roda de aco. No fim do tunel, simplesmente pressione pulo para levantar-se novamente. +Como voce deve ter notado (observe a seta) vai baixar quando voce rodar como a roda. Mas voce pode encher novamente com powerups. Porem ira encher por si so. +Sim, esse foi o PowerUp da roda. Quando voce esta no modo roda, voce e invencivel e danifica inimigos. E como se nao bastasse, voce pode ate colocar bombas pressionando Tiro. Tente nos ninhos a direita. +Wow, voce e uma maquina assassina agora! Mas o inventario nao esta completo ainda. Algumas armas irao ainda aparecer... +Essas setas pelo caminho mostram onde e a saida. +Uma parede novamente? Nos poderiamos usar o relampago... Mas espere! Fique ao lado da parede e pressione KEY_SHOCKWAVE ... +Wow, aquele shock destruiu toda a parede, matou o caminhador e ate o powerblock. Mas voce pode carregar apenas uma dessas bombas por vez e deve enche-lo com o correspondente powerup quando usar. Se o simbolo no HUD brilhar (observe a seta), a bomba esta pronta para o uso. +Mais um exercisio de mira... Pressione Tiro e Blitz simultaneamente para carregar sua arma e o raio. Enquanto carrega voce pode mudar a mira. Solte as teclas para atirar. Quanto mais longe maior sera o Tiro. Va ao meioe tente acertar os diamantes acima com o tiro. +Quanto mais longe for seu raio mais rapido carregara. Mais uma coisa: a esquerda voce aprendera sobre as duas armas primarias. +Esses foram extras do tiro. Como voce pode ver, powerups podem ate estar largados assim. Esse tiro pode se dividir em mais tiros de acordo com o nivel da arma. Muito bom em tuneis ou corredores como esse. +A ultima arma e o laser. Pegue os PowerUps e teste. O bom dele e que pode atravessar inimigos com um tiro so. Voce pode mudar suas armas pressionando ciclo de armas. Tente um pouco. +Esse e o fim do tutorial. No jogo enquanto joga voce aprendera mais. Apenas tente varias coisas diferentes. O tutorial foi um pouco mais facil que os niveis normais: os ninhos nao foram malignos e voce era invencivel. Mas agora prepare-se para a luta. Boa sorte! +36 +37 +38 +39 +//---------- Konsolen Texto ----------// +Hurrican + +(c) 2007 +Poke53280 +www.poke53280.de + +Entre "ajuda" para receber informacoes sobre comandos + + +//---------- Caixa de Resumo ----------// +Resumo +Segredos +Codigo destravado: +- Pressione qualquer tecla - +//---------- Menu Principal ----------// +CARREGANDO +CARREGANDO JOGO +INICIAR JOGO +VOLTAR AO JOGO +PREFERENCIAS +RECORDES +CREDITOS +SAIR +JOGAR TUTORIAL +COMECAR JOGO NOVO +CONTINUAR JOGO SALVO +FACIL +NORMAL +DIFICIL +HURRICAN +cursor: selecionar - enter : escolhe - ESC : volta +RANK +NOME +PONTUACAO +STAGIO +HABILIDADE +VOLUME +SOM +MUSICA +CONFIGURAR CONTROLES +ESCOLHA IDIOMA +MODO: +Force feedback +Usar padroes +Controle +Joystick +INACREDITAVEL +NOVO RECORDE NO RANK +ENTRE SEU NOME +CONTINUE +Zurück +andar esquerda +andar direita +agachar +olhar cima +olhar baixo +pulo +tiro +activar raio +powerline +granada +shockwave +ciclo armas +andar +olhar +X/Y Achse +D-pad +-pressione nova tecla- +-pressione novo botao- +DETALHES: BAIXO +DETALHES: MEDIO +DETALHES: ALTO +DETALHES: MAXIMO +UM JOGADOR +DOIS JOGADORES +Jogador um +Jogador dois +tipo +modo +Sensibilidade +teclado +nao definido +estagio +jogador +data +- sem registro - +SEGREDO +esquerda +direita +cima +baixo +botao +//---------- Dicas ----------// +Se voce coletar todos os diamantes em um nivel, voce ira destravar um codigo. +Quando perder uma vida, ira perder somente o nivel da arma que estava usando no momento. +Quando tocar um inimigo enquanto esta no modo roda sua energia da roda vai diminuir mais rapido. +Quando voce permanece parado a energia da roda aumentara mais rapido. +Quando voce pressiona pulo no modo roda, a roda ira saltar. +Coletar 50 diamantes renova seu tempo. +Voce nao pode carregar mais que 9 granadas e 9 powerlines. +Alguns segredos estao atras de paredes. +Existem paredes nao destrutiveis que guardam segredos. +Rolar sobre uma bomba explodindo ira joga-lo para cima. +Se voce for mordido por um peixe pula na terra para se livrar. +Tiro e fumaca podem faze o salto diferente. +Alguns chefes podem ser bem dificeis usando apenas tiro. +Fogo resultante de paredes podem atingir inimigos tambem. +O escudo fere inimigos tambem. +E melhor desviar de alguns inimigos do que tentar destrui-los. +Granadas danificam qualquer inimigo perto da explosao. +Powerlines sao melhores para encontrar objetos secretos. +O dano da arma que rebate abaixa a cada vez que rebate. +Pressione continuamente tiro para atirar mais rapido. +Pule sobre caixas de PowerUps para chegar em locais mais altos. +Voce pode salvar o jogo apos cada nivel. +Quanto mais longe o raio, mais rapido ele carrega. +Quando perder uma vida a explosao funciona como uma granada. +Com o laser voce atravessa inimigos com um unico tiro. +As armas primarias podem chegar ao nivel 8. +Voce pode alterar a qualidade da resolucao em opcoes. +Alguns inimigos so podem ser atingidos em locais especificos. +Se voce coletar todos os diamantes em um nivel, voce ira destravar um codigo. +Poke53280 nunca ira perguntar pelo seu email ou seu password... +//---------- Nervoso ----------// +Merda, preciso ir a algum lugar... +Argh! Nao posso segurar mais! +Por que essa lata velha nao tem mictorio??? +Quem diabos desenhou isso? +Por que ninguem pensou nisso? +Tipico... +Eles nao testaram isso por muito tempo... +Merda, to bem apertado agora! +Quando eu voltar a Terra... +... Vou reclamar disso! +Isso e impossivel. +Esse traje de assalto tem todos os aparatos tecnologicos... +Mas o mais importante, esqueceram. +O que que eu faco agora? +Vamos la, tenta nao pensar! +Grmblfxt ... To ficando doido. +Eu preciso segurar... +... ate o jogo carregar! +//---------- Tela de Introducao 1 ----------// +2138, algum lugar no espaco... +O "Senhor do Medo" esta no seu caminho de volta de uma missao bem sucedida. +Proxima parada da nave da tropa e a Terra. +De repente, os soldados recem um chamado do planeta azul. +"Terra sob ataque! Todas as unidades a seus postos!" +"Foguetes de origem desconhecida chegam a Terra!" +Segundos depois, a origem dos misseis e conhecida. +O planeta Takatis. +Os homens nao creem no que veem na sala de briefing. +Ninguem mais do que Dr. Geng iniciou o ataque. +Anos atras a mensagem da sua morte atravessou a galaxia, ams agora ele esta de volta. +Sem hesitacao o Senhor do Medo se dirige ao nao explorado planeta. +A nave chega ao seu destino. +O planeta alienigena brilha em uma beleza aterradora. +A tripulacao inicia processo de aterrissagem. +Os scanners mostram uma atsmosfera semelhante a da Terra. +De repente, numerosos canhoes surgem a superficie do planeta abrindo fogo. +O sistema de escudo falha e a nave e completamente destruida. +Sem saida, os tripulantes evadem a nave. +Eles acabam de chegar a atmosfera a nave explode. +Segundos apos o impacto. +Maioria da tripulacao nao sobrevive a destruicao da Senhor do Medo. +Apenas um soldado esta vivo. Lentamente ele se levanta e sai. +Apenas dois soldados estao vivos. Lentamente eles se levantam e saem. +Determinados a achar Dr. Geng X e libertar o mundo de sua presenca maligna. +//---------- Outro ----------// +O inacreditavel acontece. +Apos uma longa luta, Dr. Geng X foi derrotado! +O que resta dele esta abaixo de sua fortaleza abatida +todas as suas criacoes sinistars junto com ele, +caidas na eterna escuridao. +Paz e restaurada novamente no mundo embora ninguem saiba dizer +o quanto durara essa paz. +O futuro ainda esta a ser escrito. + + + +//---------- Zona de Transporte ----------// +E agora para os pacientes, uma pequena dica +Deem uma boa olhada no nivel tutorial +A entrada de encanamento ... +Usar a roda no inicio e uma ideia bombastica... +Fique proximo a esquerda e nao esqueca: encanadores sao para canos ;) + +//--- FINALLE ---// diff --git a/bios/Game Engines/Hurrican/hurrican/lang/svenska.lng b/bios/Game Engines/Hurrican/hurrican/lang/svenska.lng new file mode 100644 index 00000000..52968e86 --- /dev/null +++ b/bios/Game Engines/Hurrican/hurrican/lang/svenska.lng @@ -0,0 +1,260 @@ +-------------------------------- +> Hurrican Språkfil < +> < +> - svenska - < +> D-13 < +> 28.06.2007 < +> < +> www.recordedamigagames.org < +-------------------------------- +//---------- Starter ----------// +Fullskärm +Standard +Starta spel +Avsluta +Avbryt +Språk +Kolla efter uppdateringar +En ny version finns. Vill du gå till hemsidan för Hurrican nu? +Ingen ny version finns. +Tillgängliga världar på servern +Ladda hem nuvarande varldlista från server +Välj världpaket +Ladda hem +//---------- Miscellaneous ----------// +0 +Laddar sprakfil +Laddar bitmap : +Laddar wave : +Laddar modul : + ... OK +Laddar bandata för \n +//---------- Tutorial Texts ----------// +Välkommen till Hurrican träningsvärld. Här kommer du få lära dig den grundläggande styrningen. Du kan röra dig höger och vänster genom att trycka på KEY_LEFT eller KEY_RIGHT. Du kan ducka genom att trycka på KEY_CROUCH. Titta nu runt lite. Det finns fler tips som den här i världen. +Tryck KEY_JUMP för att hoppa. Håll knappen nere längre för högre hopp. Du kan ändra riktning medans du hoppar med KEY_LEFT eller KEY_RIGHT. +Du kan titta längre bort genom att trycka på KEY_UP och KEY_DOWN. Detta är bra för att hitta gömda föremål. Pröva att titta upp i taket... +Dessa diamanter finns spridda runt om i världarna. Du får poäng genom att samla dem. I övrigt, fyller du även på din tid varje gång om du samlar 50 stycken. +Tryck på KEY_SHOOT för att avfyra ditt vapen och håll inne knappen för att långsamt skjuta automatiskt. Om du trycker upprepat på knappen kan du skjuta ännu snabbare än om knappen bara är nedtryckt. +Titta väggen till höger om dig! Den ser bräcklig ut. Pröva att bryta dig igenom med ditt vapen. +Mycket bra. Det finns många ställen där du kan skjuta väggar. För det mesta döljer dem hemliga ställen. +Nu lite träning att sikta. Du kan sikta genom att trycka KEY_UP. Genom att kombinera detta med KEY_LEFT eller KEY_RIGHT kan du även skjuta diagonalt. Pröva att skjuta diamanterna ovanför dig. +Nu blir det spännande... Där nere kommer du möta dina första fiender, eller snarare, de första flygande tillbehörsbehållarna. +-leer- +Utmärkt. Samla alla tillbehör nu. +Den här effekten var ett tecken på att ditt vapen blev uppgraderat. Vilket tillbehör det var kan man se utav färgen på effekten runt spelaren. Röd är sprinkler, blå är laser och grön är studsare. Staplarna (vid pilen) visar dig din nuvarande vapenkraft. +Nu till dina första riktiga fiender: gångare. En speciell sak med dem är att du kan hoppa på dem för att besegra dem. +Vägen är blockerad igen, men den här gången är den svaga väggen UNDER dig. Håll ned KEY_BLITZ och rotera blixten med KEY_LEFT och KEY_RIGHT för att förstöra golvet. +Strålande. Föresten, blixten kan förstöra fiender med. Den är lite kort... men oroa dig inte: med lite träning så :) Till höger har vi några tillbehör för att ändra på det. +Blixten är längre nu. Testa! Och det bästa är: den kan bli ännu längre. Stapeln bredvid blixt-symbolen längst upp visar din nuvarande blixtkraft. När du förlorar ett liv, så förlorar du även en del kraft från blixten. +Tillbehör finns inte endast i de flygande behållarna. De finns även i tillbehörsklossar som bara syns om de blir träffade en gång av ditt vapen. Pröva att skjuta omkring dig här för att hitta en (använd blixten för att göra det lite enklare)... +Där är den. Fortsätt att skjuta på den tills den är tom och plocka upp alla tillbehör. +Detta var så kallade "kraftlinjer", ett lite speciellt vapen. Antal kraftlinjer kan du se i informationsfältet (vid pilen). Gå en bit till höger för att få information om hur de används och se hur de fungerar. +Stå i mitten av bron och tryck på KEY_POWERLINE för att aktivera en kraftlinje. +Swoosh! Små fiender besegras direkt och större blir skadade rejält av det här vapnet. Plocka nu tillbehören som dyker upp. +Dessa tillbehör är granater. Dom säger KABOOM! Låter kanske kul, men det är sant :) Åter igen, till höger om dig, får du lära dig använda dem. +Se upp, det finns två nästen som tål mycket skada! Tryck på KEY_GRANATE för att avfyra en granat. Den kan skada alla fiender som befinner sig runt explosionen. För det andra nästet behöver du stå under det och skjuta uppåt. +Verkar som en återvändsgränd igen. Ducka (KEY_CROUCH) och aktivera en kraftlinje samtidigt (KEY_POWERLINE). Så att du kan ändra dig till stålklingan. Vid slutet av tunneln hoppar du bara (KEY_JUMP) för att ändra tillbaka form. +Som du kanske märkt, den blå cirkeln (Titta på pilen) kommer minska när du är i stålhjuls-form. Men du kan fylla den igen med tillbehör. Plus att den fylls sakta igen av sig själv. +Japp, det var stålhjulet det. När du är i hjul-form, är du odödlig och gör samtidigt skada på fiender. Och som inte det vore nog, du kan även placera ut bomber på marken genom att trycka på KEY_SHOOT. Pröva det på nästet till höger. +Wow, du börjar likna en riktig fighter! Men det finns mer i arsenalen. Några vapen återstår... +Föresten, dessa pilar visar vilken väg du måste ta, om du vill komma i mål. +En vägg igen? VÄNTA! Vi skulle kunna använda blixten... men pröva istället att stå nära väggen och tryck på KEY_SHOCKWAVE ... +Smartbomben förstörde hela väggen, förstörde gångaren och tömde till och med en tillbehörskloss. Men du kan endast bära en enda sån här smartbomb åt gången och måste skaffa en ny genom rätt sorts tillbehör när du använt den. Om symbolen i informationsfältet glöder (se pilen), så har du en smartbomb redo. +En till övning för att sikta... Håll nere KEY_SHOOT och KEY_BLITZ samtidigt för att ladda ditt vapen med strålen. När du laddar kan du ändra var du siktar med KEY_LEFT och KEY_RIGHT. Släpp knapparna för att släppa lös strålen. Ju längre du laddar strålen, ju större kommer skottet vara. Gå till mitten och försök att skjuta diamanterna ovanför dig med strålen. +Ju mer tillbehör du har för blixten, ju snabbare kommer strålen att ladda upp. En till sak: till vänster kommer du få lära dig om de två övriga huvudvapnen som finns utöver sprinkler-skott. +Dessa var studsare. Tryck en gång på KEY_WAFFE_CYCLE för att byta till dem. Som du kan se så kan tillbehör även ligga runtomkring så här. Dessa skott kan splittras i två mindre skott beroende på din aktuella vapenkraft. Den är väldigt användbar i trånga utrymmen, så som tunnlar och korridorer, som den här framme. +Sista vapnet idag är lasern. Samla tillbehöret och testa den. Dess speciella egenskap är det faktum att den kan skjuta igenom flera fiender med ett och samma skott. Kom ihåg att du väljer mellan dina huvudvapen genom att trycka på KEY_WAFFE_CYCLE. Pröva lite och känn. +Detta är slutet på träningsvärlden. I spelet kommer du få lära dig lite mer om vissa tillbehör och lite andra saker. Kom bara ihåg: exprimentera lite med allt möjlight för att förstå det bättre. Träningsvärlden är också lite enklare än de vanliga världarna: nästena skickade inte ut fiender och du var också odödlig här. Men nu är du nog redo för den riktiga fighten. Lycka till! +36 +37 +38 +39 +//---------- Konsolen Text ----------// +Hurrican + +(c) 2007 +Poke53280 +www.poke53280.de + +Skriv "help" för att få info om konsoll-kommandon + + +//---------- Summary Box ----------// +Summa +Hemligheter +Fusk upplåst: +- Tryck en knapp - +//---------- Main Menu ----------// +LADDAR +SPARA SPEL +STARTA SPEL +FORTSÄTT SPEL +INSTÄLLNINGAR +HIGHSCORES +CREDITS +AVSLUTA +SPELA TRÄNINGSVÄRLD +STARTA NYTT SPEL +FORTSÄTT SPARAT SPEL +LÄTT +NORMALT +SVÅRT +HURRICAN +pilar: ändra - enter : välj - ESC : tillbaka +RANK +NAMN +POÄNG +VÄRLD +SVÅRIGHET +VOLYM +LJUD +MUSIK +ÄNDRA KONTROLLER +VÄLJ SPRÅK +SÄTT: +Vibration +Ladda standardinställningarna +Joypad +Joystick +OTROLIGT +NY POÄNG PÅ RANK +SKRIV DITT NAMN +FORTSÄTT +Tillbaka +gå vänster +gå höger +ducka +titta upp +titta ned +hoppa +skjut +aktivera blixten +kraftlinje +granat +smartbomb +ändra huvudvapen +gå +titta +X/Y Axel +D-pad +-tryck ny tangent- +-tryck ny knapp- +DETALJER: LÅG +DETALJER: MEDIUM +DETALJER: HÖG +DETALJER: MAXIMAL +EN SPELARE +TVÅ SPELARE +spelare ett +spelare två +typ +sätt +känslighet +tangentbord +- inget - +värld +spelare +datum +- INGEN SPARNING - +HEMLIGT +vänster +höger +upp +ned +knapp +//---------- Hints ----------// +Om du plockar alla diamanter på en bana, låser du upp en fuskkod. +När du förlorar ett liv, förlorar du också ett steg på ditt aktuella vapens, vapenkraft. +Om du rör en fiende i stålhjuls-form så kommer hjulenergin gå åt fortare. +Om du står helt stilla kommer hjulenergin ladda upp fortare. +När du trycker på hopp-knappen när du är i stålhjuls-form och i luften, gör du ett hjulhopp. +Samla 50 diamanter för att fylla på tiden igen. +Max antal granater och kraftlinjer är 9. +En del hemligheter ligger bakom förstörbara väggar. +Det finns väggar du kan gå igenom som döljer hemligheter. +Om du rullar över en exploderande bomb när du är stålhjul så kastas du upp en bit i luften. +Om du blir biten av en fisk - hoppa upp på land för att bli av med den. +Ånga och rök kan lyfta dig en del när du hoppar. +En del bossar är väldigt svåra om du bara använder vapen. +Eld från vägg-eldkastare kan också skada fiender. +Skölden-tillägget kan skada fiender när de tar i dem. +En del fiender är det bättre att undvika än att försöka besegra. +Granater gör skada på alla fiender runt explosionen. +En kraftlinje är bäst för att hitta gömda tillbehörsklossar. +Studsarens kulor blir svagare för varje gång de studsar mot en vägg. +Om du trycker på skjuta-knappen snabbt kan du skjuta snabbare än när du skjuter automatiskt genom att hålla nere knappen. +Du kan hoppa på tillbehörsklossar för att nå högre höjder. +Du kan spara ditt spel efter varje värld. +Ju längre blixt du har, ju snabbare laddar strålen upp. +När du dör exploderar du som en granat. +Lasern kan skjuta igenom flera fiender med samma skott. +Huvudvapnen sprinklern, lasern och studsaren kan uppgraderas till vapenkraft 8. +Ställ in styrningen så att de passar just dig. +Du kan ändra detaljnivån på specialeffekterna i menyn. +En del fiender tar endast skada vid ett visst tillfälle. +Poke53280 kommer ALDRIG fråga om din email-adress eller till lösenord... +//---------- Pissen ----------// +Skit, jag behöver gå nånstans... +Ahhh! Jag kan inte hålla mig! +Varför har inte den här plåtburken nån kiss-lucka??? +Vem tusan designade den här saken? +Varför tänkte ingen på en sån här situation? +Typiskt... +De har inte testat den här ordentligt... +Fan, det börjar bli lite olustigt nu! +När jag kommer tillbaka till jorden... +...kommer jag klaga om det här! +Det där är omöjligt. +Den här dräkten har all möjliga tekniska klockor och visslor... +Men den viktigaste grejen har de glömt. +Vad kan jag göra nu? +Kom igen, spela vidare! +Grmblfxt ... Jag blir galen. +Jag måste hålla mig... +...tills du är redo! +//---------- Intro Screen 1 ----------// +2138, någonstans i rymden +Skeppet "dreadnought" är på väg tillbaka efter ett lyckat uppdrag. +Nästa anhalt för stridsskeppet är jorden. +Plötsligt tar soldaterna emot en nödsignal från den blå planeten. +"Jorden under attack! Alla tillgängliga trupper, förbered för försvar!" +"Raketer av okänt ursprung träffar jorden!" +Sekunder senare är ursprunget av de dödliga missilerna funnen. +Planeten Takatis. +Trupperna tror inte sina ögon när de stirrar på hologrammet i uppdrags-rummet. +Ingen annan än Dr. Geng X själv startade attacken. +Flera år sedan spreds ryktet om hans död över galaxen, men nu är han tillbaka. +Utan fruktan sätter "dreadnought" kurs mot den outforskade planeten. +Efter en kort flygning når skeppet sin destination. +Den främmande planeten strålar med en missledande skönhet. +Besättningen startar landningsprocessen. +Instrumenten visar en liknande atmosfär som på jorden. +Plötsligt öppnar flera kanoner på planetens yta eld. +Sköld-systemet ger vika och stora projektiler sliter upp skeppet. +Hjälplösa faller soldaterna mot planetens yta. +När de träder in i atmosfären är skeppet nära att explodera. +Sekunder efter kraschen. +De flesta av besättningen har inte överlevt nödlandningen av "dreadnought". +Endast en soldat är vid liv. Sakta reser han sig och hittar sin väg ut. +Endast två soldater är vid liv. Sakta reser de sig och hittar sin väg ut. +Övertygade om att hitta Dr. Geng X och befria värden från hans ondska. +//---------- Outtro ----------// +Det otroliga har skett. +Efter en lång strid har Dr. Geng X blivit besegrad! +Vad som än finns kvar av honom ligger dolt under det rykande vraket av +hans fästning. Alla hans onda skapelser ligger begravda här med honom, +nere i det eviga mörkret. +Fred är återställd i hela universum, men ingen vet +hur länge den kan tänkas vara. +Framtiden är ännu oskriven. + + + +//---------- Warpzone ----------// +Och nu, för er som är tålamodiga av sig, ett litet tips +Ta en noga titt på träningsvärlden för att hitta +den hemliga rörmokar-ingången ... +Att använda hjulet precis i början är kanske inte så BOMBAT... +Stanna nära till vänster och glöm inte: rörmokare gillar rör ;) + +//--- ENDE ---// diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/bmp.qda b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/bmp.qda new file mode 100644 index 00000000..493f25db Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/bmp.qda differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/en.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/en.dat new file mode 100644 index 00000000..044b4331 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/en.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/jp.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/jp.dat new file mode 100644 index 00000000..b19b39cd Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/jp.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/019.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/019.map new file mode 100644 index 00000000..d4098a5b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/019.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/019a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/019a.map new file mode 100644 index 00000000..edce00cb Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/019a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/020.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/020.map new file mode 100644 index 00000000..748e2262 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/020.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/020a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/020a.map new file mode 100644 index 00000000..998da2d2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/020a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/021.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/021.map new file mode 100644 index 00000000..64982e93 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/021.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/021a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/021a.map new file mode 100644 index 00000000..e4b23ab8 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/021a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/022.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/022.map new file mode 100644 index 00000000..e1df8494 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/022.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/022a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/022a.map new file mode 100644 index 00000000..4e996d4e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/022a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/023.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/023.map new file mode 100644 index 00000000..dd11af70 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/023.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/023a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/023a.map new file mode 100644 index 00000000..4ce6562e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/023a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/024.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/024.map new file mode 100644 index 00000000..31653b14 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/024.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/024a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/024a.map new file mode 100644 index 00000000..9f050b9c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/024a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/025.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/025.map new file mode 100644 index 00000000..74c9d495 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/025.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/025a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/025a.map new file mode 100644 index 00000000..64d53b69 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/025a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/026.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/026.map new file mode 100644 index 00000000..27b35033 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/026.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/026a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/026a.map new file mode 100644 index 00000000..3ae4ad20 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/026a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/027.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/027.map new file mode 100644 index 00000000..3505a0e1 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/027.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/027a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/027a.map new file mode 100644 index 00000000..e012c117 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/027a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/028.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/028.map new file mode 100644 index 00000000..b22a4d1d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/028.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/028a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/028a.map new file mode 100644 index 00000000..5a20c3d2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/028a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/029.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/029.map new file mode 100644 index 00000000..467f08ae Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/029.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/029a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/029a.map new file mode 100644 index 00000000..5941c595 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/029a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/030.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/030.map new file mode 100644 index 00000000..3555b73c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/030.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/030a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/030a.map new file mode 100644 index 00000000..faa4f26b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/030a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/031.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/031.map new file mode 100644 index 00000000..c1685c68 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/031.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/031a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/031a.map new file mode 100644 index 00000000..74c1c1f7 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/031a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/032.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/032.map new file mode 100644 index 00000000..d59adccf Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/032.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/032a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/032a.map new file mode 100644 index 00000000..74bf0b32 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/032a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/033.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/033.map new file mode 100644 index 00000000..7cb97ddc Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/033.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/033a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/033a.map new file mode 100644 index 00000000..dcf3c956 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/033a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/034.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/034.map new file mode 100644 index 00000000..f3b25971 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/034.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/034a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/034a.map new file mode 100644 index 00000000..9fe432a2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/034a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/035.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/035.map new file mode 100644 index 00000000..df2d91d0 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/035.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/035a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/035a.map new file mode 100644 index 00000000..b1d092ac Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/035a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/036.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/036.map new file mode 100644 index 00000000..c3c18f9c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/036.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/036a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/036a.map new file mode 100644 index 00000000..2b7840b5 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/036a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/037.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/037.map new file mode 100644 index 00000000..1c61a1a1 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/037.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/037a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/037a.map new file mode 100644 index 00000000..b5534b29 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/037a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/038.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/038.map new file mode 100644 index 00000000..d6606595 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/038.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/038a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/038a.map new file mode 100644 index 00000000..e1ff03f5 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/038a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/039.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/039.map new file mode 100644 index 00000000..77ef19d4 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/039.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/039a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/039a.map new file mode 100644 index 00000000..3e32dd69 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/039a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/040.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/040.map new file mode 100644 index 00000000..c8717b77 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/040.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/040a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/040a.map new file mode 100644 index 00000000..6ff032b7 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/040a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/041.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/041.map new file mode 100644 index 00000000..e36c9631 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/041.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/041a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/041a.map new file mode 100644 index 00000000..ad6ab730 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/041a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/042.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/042.map new file mode 100644 index 00000000..2fcfca1c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/042.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/042a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/042a.map new file mode 100644 index 00000000..7e9bfd64 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/042a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/043.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/043.map new file mode 100644 index 00000000..e449de77 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/043.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/043a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/043a.map new file mode 100644 index 00000000..73c02739 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/043a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/044.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/044.map new file mode 100644 index 00000000..d6c647b8 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/044.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/044a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/044a.map new file mode 100644 index 00000000..b6c57010 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/044a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/045.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/045.map new file mode 100644 index 00000000..4cefe8ee Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/045.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/045a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/045a.map new file mode 100644 index 00000000..16b9da56 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/045a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/046.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/046.map new file mode 100644 index 00000000..46916aa5 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/046.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/046a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/046a.map new file mode 100644 index 00000000..cb3d8027 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/046a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/047.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/047.map new file mode 100644 index 00000000..0f4299e5 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/047.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/047a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/047a.map new file mode 100644 index 00000000..edb65bc3 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/047a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/048.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/048.map new file mode 100644 index 00000000..54ee7316 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/048.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/048a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/048a.map new file mode 100644 index 00000000..231e89e5 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/048a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/049.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/049.map new file mode 100644 index 00000000..dfeb97cd Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/049.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/049a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/049a.map new file mode 100644 index 00000000..d0d724fe Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/049a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/050.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/050.map new file mode 100644 index 00000000..196611b3 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/050.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/050a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/050a.map new file mode 100644 index 00000000..452852e0 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/050a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/051.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/051.map new file mode 100644 index 00000000..402332f4 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/051.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/051a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/051a.map new file mode 100644 index 00000000..537b5821 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/051a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/052.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/052.map new file mode 100644 index 00000000..a53b2c43 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/052.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/052a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/052a.map new file mode 100644 index 00000000..9f845ccb Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/052a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/053.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/053.map new file mode 100644 index 00000000..dac89589 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/053.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/053a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/053a.map new file mode 100644 index 00000000..efadc1be Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/053a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/054.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/054.map new file mode 100644 index 00000000..299795e9 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/054.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/054a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/054a.map new file mode 100644 index 00000000..8a446fd2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/054a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/055.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/055.map new file mode 100644 index 00000000..a60a2d30 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/055.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/055a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/055a.map new file mode 100644 index 00000000..e40615bd Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/055a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/056.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/056.map new file mode 100644 index 00000000..f2146374 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/056.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/056a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/056a.map new file mode 100644 index 00000000..415bdf3f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/056a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/057.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/057.map new file mode 100644 index 00000000..be0e78ae Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/057.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/057a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/057a.map new file mode 100644 index 00000000..d3188849 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/057a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/058.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/058.map new file mode 100644 index 00000000..a7918595 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/058.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/058a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/058a.map new file mode 100644 index 00000000..3903cb30 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/058a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/059.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/059.map new file mode 100644 index 00000000..556c4b1b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/059.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/059a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/059a.map new file mode 100644 index 00000000..0d2a086f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/059a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/060.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/060.map new file mode 100644 index 00000000..1bfd8408 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/060.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/060a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/060a.map new file mode 100644 index 00000000..000938ef Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/060a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/061.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/061.map new file mode 100644 index 00000000..d554bc94 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/061.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/061a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/061a.map new file mode 100644 index 00000000..0247e519 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/061a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/062.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/062.map new file mode 100644 index 00000000..00ff37af Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/062.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/062a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/062a.map new file mode 100644 index 00000000..e5d58e6c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/062a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/063.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/063.map new file mode 100644 index 00000000..57059d07 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/063.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/063a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/063a.map new file mode 100644 index 00000000..213d3ed6 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/063a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/064.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/064.map new file mode 100644 index 00000000..3cc84380 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/064.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/064a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/064a.map new file mode 100644 index 00000000..578f4c7d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/064a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/065.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/065.map new file mode 100644 index 00000000..3ef876d1 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/065.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/065a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/065a.map new file mode 100644 index 00000000..629c05bc Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/065a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/066.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/066.map new file mode 100644 index 00000000..365ad49d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/066.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/066a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/066a.map new file mode 100644 index 00000000..9df03dfe Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/066a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/067.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/067.map new file mode 100644 index 00000000..8c46303c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/067.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/067a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/067a.map new file mode 100644 index 00000000..f519f14b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/067a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/068.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/068.map new file mode 100644 index 00000000..5840a6dc Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/068.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/068a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/068a.map new file mode 100644 index 00000000..917721d9 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/068a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/069.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/069.map new file mode 100644 index 00000000..07ca6c8c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/069.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/069a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/069a.map new file mode 100644 index 00000000..b6c36a8e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/069a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/070.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/070.map new file mode 100644 index 00000000..f5e48b1b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/070.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/070a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/070a.map new file mode 100644 index 00000000..80acba09 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/070a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/071.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/071.map new file mode 100644 index 00000000..7c465289 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/071.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/071a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/071a.map new file mode 100644 index 00000000..8474d919 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/071a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/072.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/072.map new file mode 100644 index 00000000..f5624741 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/072.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/072a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/072a.map new file mode 100644 index 00000000..dbb3e722 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/072a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/073.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/073.map new file mode 100644 index 00000000..a5ae4cf8 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/073.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/073a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/073a.map new file mode 100644 index 00000000..ebd23f27 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/073a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/074.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/074.map new file mode 100644 index 00000000..debe2ed5 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/074.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/074a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/074a.map new file mode 100644 index 00000000..c3fa6211 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/074a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/075.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/075.map new file mode 100644 index 00000000..03815534 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/075.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/075a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/075a.map new file mode 100644 index 00000000..cd74ff7e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/075a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/076.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/076.map new file mode 100644 index 00000000..dd56531b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/076.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/076a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/076a.map new file mode 100644 index 00000000..8f201df1 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/076a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/077.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/077.map new file mode 100644 index 00000000..2888bad5 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/077.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/077a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/077a.map new file mode 100644 index 00000000..faa1ec55 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/077a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/078.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/078.map new file mode 100644 index 00000000..d8571de6 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/078.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/078a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/078a.map new file mode 100644 index 00000000..092c17e1 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/078a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/079.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/079.map new file mode 100644 index 00000000..dd8437ed Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/079.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/079a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/079a.map new file mode 100644 index 00000000..185acfbd Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/079a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/080.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/080.map new file mode 100644 index 00000000..968f0bb4 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/080.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/080a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/080a.map new file mode 100644 index 00000000..b4cf5d9e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/080a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/081.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/081.map new file mode 100644 index 00000000..ffb3dac7 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/081.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/081a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/081a.map new file mode 100644 index 00000000..43701bb1 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/081a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/082.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/082.map new file mode 100644 index 00000000..71abeb60 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/082.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/082a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/082a.map new file mode 100644 index 00000000..2b98d5f1 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/082a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/083.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/083.map new file mode 100644 index 00000000..ec84e264 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/083.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/083a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/083a.map new file mode 100644 index 00000000..aeaf0662 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/083a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/084.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/084.map new file mode 100644 index 00000000..2ef7d739 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/084.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/084a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/084a.map new file mode 100644 index 00000000..d0393ed3 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/084a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/085.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/085.map new file mode 100644 index 00000000..9f784c41 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/085.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/085a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/085a.map new file mode 100644 index 00000000..7d7d2d99 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/085a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/086.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/086.map new file mode 100644 index 00000000..bbe366ec Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/086.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/086a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/086a.map new file mode 100644 index 00000000..f8184099 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/086a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/087.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/087.map new file mode 100644 index 00000000..19305d08 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/087.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/087a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/087a.map new file mode 100644 index 00000000..47fd263f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/087a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/088.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/088.map new file mode 100644 index 00000000..e6f62ef8 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/088.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/088a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/088a.map new file mode 100644 index 00000000..026ae68a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/088a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/089.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/089.map new file mode 100644 index 00000000..87074aa7 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/089.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/089a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/089a.map new file mode 100644 index 00000000..d1b8965f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/089a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/090.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/090.map new file mode 100644 index 00000000..be1bc7a7 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/090.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/090a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/090a.map new file mode 100644 index 00000000..7ac15e3d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/090a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/091.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/091.map new file mode 100644 index 00000000..89ee0994 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/091.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/091a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/091a.map new file mode 100644 index 00000000..792ff2a7 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/091a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/092.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/092.map new file mode 100644 index 00000000..350fc24f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/092.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/092a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/092a.map new file mode 100644 index 00000000..a24d6ee2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/092a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/093.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/093.map new file mode 100644 index 00000000..e7d8d27b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/093.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/093a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/093a.map new file mode 100644 index 00000000..1c5d6534 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/093a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/094.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/094.map new file mode 100644 index 00000000..8dfd9952 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/094.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/094a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/094a.map new file mode 100644 index 00000000..c0720346 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/094a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/095.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/095.map new file mode 100644 index 00000000..deef6e11 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/095.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/095a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/095a.map new file mode 100644 index 00000000..6983759e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/095a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/096.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/096.map new file mode 100644 index 00000000..a4357a5f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/096.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/096a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/096a.map new file mode 100644 index 00000000..e24722af Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/096a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/097.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/097.map new file mode 100644 index 00000000..7a5d3948 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/097.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/097a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/097a.map new file mode 100644 index 00000000..81a95222 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/097a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/098.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/098.map new file mode 100644 index 00000000..cb66f24d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/098.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/098a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/098a.map new file mode 100644 index 00000000..d9fb0854 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/098a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/099.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/099.map new file mode 100644 index 00000000..93736d25 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/099.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/099a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/099a.map new file mode 100644 index 00000000..afe3154d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/099a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/100.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/100.map new file mode 100644 index 00000000..005cdf15 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/100.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/100a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/100a.map new file mode 100644 index 00000000..01684a46 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/100a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/101.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/101.map new file mode 100644 index 00000000..8fd7ef03 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/101.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/101a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/101a.map new file mode 100644 index 00000000..d160fb14 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/101a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/102.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/102.map new file mode 100644 index 00000000..e272483e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/102.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/102a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/102a.map new file mode 100644 index 00000000..e5de086d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/102a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/103.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/103.map new file mode 100644 index 00000000..baf6d8c4 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/103.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/103a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/103a.map new file mode 100644 index 00000000..4ab526e3 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/103a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/104.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/104.map new file mode 100644 index 00000000..9d602208 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/104.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/104a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/104a.map new file mode 100644 index 00000000..5cb3afe4 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/104a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/105.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/105.map new file mode 100644 index 00000000..b6c1c801 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/105.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/105a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/105a.map new file mode 100644 index 00000000..e3b544b7 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/105a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/106.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/106.map new file mode 100644 index 00000000..a7897c27 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/106.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/106a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/106a.map new file mode 100644 index 00000000..0f6fd5b0 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/106a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/107.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/107.map new file mode 100644 index 00000000..42a9146e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/107.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/107a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/107a.map new file mode 100644 index 00000000..0246195c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/107a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/108.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/108.map new file mode 100644 index 00000000..adc04809 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/108.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/108a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/108a.map new file mode 100644 index 00000000..fd50f660 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/108a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/109.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/109.map new file mode 100644 index 00000000..774d858d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/109.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/109a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/109a.map new file mode 100644 index 00000000..71023dde Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/109a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/110.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/110.map new file mode 100644 index 00000000..cce48a8e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/110.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/110a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/110a.map new file mode 100644 index 00000000..cdb5ead0 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/110a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/111.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/111.map new file mode 100644 index 00000000..08660c32 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/111.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/111a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/111a.map new file mode 100644 index 00000000..749e8105 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/111a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/112.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/112.map new file mode 100644 index 00000000..d5b72474 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/112.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/112a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/112a.map new file mode 100644 index 00000000..aa61ec3d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/112a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/113.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/113.map new file mode 100644 index 00000000..d91cc754 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/113.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/113a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/113a.map new file mode 100644 index 00000000..06645c8b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/113a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/114.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/114.map new file mode 100644 index 00000000..d4c76ea6 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/114.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/114a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/114a.map new file mode 100644 index 00000000..7904c819 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/114a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/115.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/115.map new file mode 100644 index 00000000..1edfcd3d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/115.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/115a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/115a.map new file mode 100644 index 00000000..81bf0cc0 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/115a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/116.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/116.map new file mode 100644 index 00000000..ea7b3f8f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/116.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/116a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/116a.map new file mode 100644 index 00000000..145dc34e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/116a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/117.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/117.map new file mode 100644 index 00000000..e1f6899f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/117.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/117a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/117a.map new file mode 100644 index 00000000..e94c2609 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/117a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/118.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/118.map new file mode 100644 index 00000000..03c46b0c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/118.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/118a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/118a.map new file mode 100644 index 00000000..cba7bd48 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/118a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/119.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/119.map new file mode 100644 index 00000000..e648e2ab Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/119.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/119a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/119a.map new file mode 100644 index 00000000..e9130495 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/119a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/120.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/120.map new file mode 100644 index 00000000..19dbb1ba Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/120.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/120a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/120a.map new file mode 100644 index 00000000..797e68b5 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/120a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/121.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/121.map new file mode 100644 index 00000000..09589be3 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/121.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/121a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/121a.map new file mode 100644 index 00000000..44773697 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/121a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/122.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/122.map new file mode 100644 index 00000000..0a758996 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/122.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/122a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/122a.map new file mode 100644 index 00000000..8a5261fe Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/122a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/123.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/123.map new file mode 100644 index 00000000..8e84be64 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/123.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/123a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/123a.map new file mode 100644 index 00000000..1ee38920 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/123a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/124.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/124.map new file mode 100644 index 00000000..4b1ca6d5 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/124.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/124a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/124a.map new file mode 100644 index 00000000..d91812b6 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/124a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/125.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/125.map new file mode 100644 index 00000000..4d81779a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/125.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/125a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/125a.map new file mode 100644 index 00000000..91ab6f70 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/125a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/126.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/126.map new file mode 100644 index 00000000..a37afd06 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/126.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/126a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/126a.map new file mode 100644 index 00000000..c1eb12eb Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/126a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/127.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/127.map new file mode 100644 index 00000000..c715ae3f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/127.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/127a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/127a.map new file mode 100644 index 00000000..ae455928 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/127a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/128.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/128.map new file mode 100644 index 00000000..06d835dc Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/128.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/128a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/128a.map new file mode 100644 index 00000000..bae2414b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/128a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/129.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/129.map new file mode 100644 index 00000000..64ee1175 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/129.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/129a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/129a.map new file mode 100644 index 00000000..898c37af Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/129a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/130.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/130.map new file mode 100644 index 00000000..836f46f6 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/130.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/130a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/130a.map new file mode 100644 index 00000000..0e7512d7 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/130a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/131.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/131.map new file mode 100644 index 00000000..d9e27216 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/131.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/131a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/131a.map new file mode 100644 index 00000000..4b784eb9 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/131a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/132.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/132.map new file mode 100644 index 00000000..6457da38 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/132.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/132a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/132a.map new file mode 100644 index 00000000..2d7edda2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/132a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/133.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/133.map new file mode 100644 index 00000000..12ed4421 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/133.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/133a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/133a.map new file mode 100644 index 00000000..bff235d6 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/133a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/134.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/134.map new file mode 100644 index 00000000..449e06ee Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/134.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/134a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/134a.map new file mode 100644 index 00000000..930d57fb Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/134a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/135.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/135.map new file mode 100644 index 00000000..fb70f77b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/135.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/135a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/135a.map new file mode 100644 index 00000000..1f8b8101 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/135a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/136.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/136.map new file mode 100644 index 00000000..a5317a8d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/136.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/136a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/136a.map new file mode 100644 index 00000000..1b70f85b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/136a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/137.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/137.map new file mode 100644 index 00000000..d4ac40d0 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/137.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/137a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/137a.map new file mode 100644 index 00000000..20ba5ec6 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/137a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/138.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/138.map new file mode 100644 index 00000000..ceb0de95 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/138.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/138a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/138a.map new file mode 100644 index 00000000..20ba5ec6 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/138a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/139.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/139.map new file mode 100644 index 00000000..aee8078e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/139.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/139a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/139a.map new file mode 100644 index 00000000..20ba5ec6 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/139a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/140.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/140.map new file mode 100644 index 00000000..618f5d1b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/140.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/140a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/140a.map new file mode 100644 index 00000000..e6cdb1b0 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/140a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/141.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/141.map new file mode 100644 index 00000000..19cd5ecd Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/141.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/141a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/141a.map new file mode 100644 index 00000000..3a5624a8 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/141a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/142.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/142.map new file mode 100644 index 00000000..0564b163 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/142.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/142a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/142a.map new file mode 100644 index 00000000..b671ad2f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/142a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/143.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/143.map new file mode 100644 index 00000000..5c746207 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/143.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/143a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/143a.map new file mode 100644 index 00000000..90d9acfe Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/143a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/144.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/144.map new file mode 100644 index 00000000..3faeb1dc Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/144.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/144a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/144a.map new file mode 100644 index 00000000..cf1bf88e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/144a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/145.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/145.map new file mode 100644 index 00000000..a0c832d3 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/145.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/145a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/145a.map new file mode 100644 index 00000000..4b229cf8 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/145a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/146.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/146.map new file mode 100644 index 00000000..0769dfa2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/146.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/146a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/146a.map new file mode 100644 index 00000000..f9bbc207 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/146a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/147.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/147.map new file mode 100644 index 00000000..b5f15348 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/147.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/147a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/147a.map new file mode 100644 index 00000000..280b1b30 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/147a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/148.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/148.map new file mode 100644 index 00000000..1bdd53a2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/148.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/148a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/148a.map new file mode 100644 index 00000000..70ca17c3 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/148a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/149.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/149.map new file mode 100644 index 00000000..82e3ef32 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/149.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/149a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/149a.map new file mode 100644 index 00000000..1ac7aa32 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/149a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/150.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/150.map new file mode 100644 index 00000000..4e3fba0f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/150.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/150a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/150a.map new file mode 100644 index 00000000..491a79bb Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/150a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/151.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/151.map new file mode 100644 index 00000000..45894108 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/151.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/151a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/151a.map new file mode 100644 index 00000000..134b1c18 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/151a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/152.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/152.map new file mode 100644 index 00000000..99d286c5 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/152.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/152a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/152a.map new file mode 100644 index 00000000..8afdc498 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/152a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/153.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/153.map new file mode 100644 index 00000000..06695de5 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/153.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/153a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/153a.map new file mode 100644 index 00000000..764ec629 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/153a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/154.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/154.map new file mode 100644 index 00000000..aad7d8b3 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/154.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/154a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/154a.map new file mode 100644 index 00000000..e0b28fa9 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/154a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/155.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/155.map new file mode 100644 index 00000000..8d5121c5 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/155.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/155a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/155a.map new file mode 100644 index 00000000..41dcf1c0 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/155a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/156.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/156.map new file mode 100644 index 00000000..afef9134 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/156.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/156a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/156a.map new file mode 100644 index 00000000..833e2f17 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/156a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/157.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/157.map new file mode 100644 index 00000000..d90b4ddf Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/157.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/157a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/157a.map new file mode 100644 index 00000000..0fa24ea0 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/157a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/158.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/158.map new file mode 100644 index 00000000..de5e91a2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/158.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/158a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/158a.map new file mode 100644 index 00000000..ef29ef91 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/158a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/159.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/159.map new file mode 100644 index 00000000..158e77c3 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/159.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/159a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/159a.map new file mode 100644 index 00000000..e01a16b2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/159a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/160.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/160.map new file mode 100644 index 00000000..9b370ee4 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/160.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/160a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/160a.map new file mode 100644 index 00000000..38ccde48 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/160a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/161.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/161.map new file mode 100644 index 00000000..66c01069 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/161.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/161a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/161a.map new file mode 100644 index 00000000..1f88ec24 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/161a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/162.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/162.map new file mode 100644 index 00000000..3062b97e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/162.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/162a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/162a.map new file mode 100644 index 00000000..19fb1d52 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/162a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/163.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/163.map new file mode 100644 index 00000000..1e709b78 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/163.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/163a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/163a.map new file mode 100644 index 00000000..eff7e779 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/163a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/164.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/164.map new file mode 100644 index 00000000..e2f9cb16 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/164.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/164a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/164a.map new file mode 100644 index 00000000..2c84020d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/164a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/165.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/165.map new file mode 100644 index 00000000..61b7038f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/165.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/165a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/165a.map new file mode 100644 index 00000000..b52ceb23 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/165a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/166.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/166.map new file mode 100644 index 00000000..c02e9218 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/166.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/166a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/166a.map new file mode 100644 index 00000000..ccace90e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/166a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/167.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/167.map new file mode 100644 index 00000000..23b2c888 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/167.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/167a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/167a.map new file mode 100644 index 00000000..6a608fef Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/167a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/168.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/168.map new file mode 100644 index 00000000..90feb272 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/168.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/168a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/168a.map new file mode 100644 index 00000000..f6463e39 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/168a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/169.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/169.map new file mode 100644 index 00000000..080ce163 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/169.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/169a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/169a.map new file mode 100644 index 00000000..eae5eca6 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/169a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/170.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/170.map new file mode 100644 index 00000000..bc2ea1da Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/170.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/170a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/170a.map new file mode 100644 index 00000000..7492b5dd Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/170a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/171.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/171.map new file mode 100644 index 00000000..9367e3fe Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/171.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/171a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/171a.map new file mode 100644 index 00000000..a49b8d6e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/171a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/172.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/172.map new file mode 100644 index 00000000..cce897bf Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/172.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/172a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/172a.map new file mode 100644 index 00000000..466bb96a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/172a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/173.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/173.map new file mode 100644 index 00000000..ab8b2ecf Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/173.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/173a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/173a.map new file mode 100644 index 00000000..198ea7c2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/173a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/174.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/174.map new file mode 100644 index 00000000..a9b59568 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/174.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/174a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/174a.map new file mode 100644 index 00000000..3762f17f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/174a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/175.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/175.map new file mode 100644 index 00000000..fc96032c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/175.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/175a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/175a.map new file mode 100644 index 00000000..f2a4a5ec Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/175a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/176.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/176.map new file mode 100644 index 00000000..82c3786a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/176.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/176a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/176a.map new file mode 100644 index 00000000..500d61ab Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/176a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/177.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/177.map new file mode 100644 index 00000000..689e24b2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/177.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/177a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/177a.map new file mode 100644 index 00000000..f0e2c163 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/177a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/178.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/178.map new file mode 100644 index 00000000..a198b857 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/178.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/178a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/178a.map new file mode 100644 index 00000000..e7f84dd1 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/178a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/179.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/179.map new file mode 100644 index 00000000..a9c75cae Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/179.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/179a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/179a.map new file mode 100644 index 00000000..222bde3b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/179a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/180.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/180.map new file mode 100644 index 00000000..b702bca5 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/180.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/180a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/180a.map new file mode 100644 index 00000000..a34e6a50 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/180a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/181.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/181.map new file mode 100644 index 00000000..e10bc6c2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/181.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/181a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/181a.map new file mode 100644 index 00000000..3cf85596 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/181a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/182.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/182.map new file mode 100644 index 00000000..d31451c2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/182.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/182a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/182a.map new file mode 100644 index 00000000..2b8dd76b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/182a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/183.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/183.map new file mode 100644 index 00000000..e4584536 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/183.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/183a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/183a.map new file mode 100644 index 00000000..309b5029 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/183a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/184.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/184.map new file mode 100644 index 00000000..5d2f3ea0 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/184.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/184a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/184a.map new file mode 100644 index 00000000..13b0a706 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/184a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/185.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/185.map new file mode 100644 index 00000000..20b983ae Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/185.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/185a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/185a.map new file mode 100644 index 00000000..380a5d63 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/185a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/186.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/186.map new file mode 100644 index 00000000..3df2ee9f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/186.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/186a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/186a.map new file mode 100644 index 00000000..c0af991d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/186a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/187.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/187.map new file mode 100644 index 00000000..41eb4ef3 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/187.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/187a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/187a.map new file mode 100644 index 00000000..d21aa063 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/187a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/188.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/188.map new file mode 100644 index 00000000..78eea471 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/188.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/188a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/188a.map new file mode 100644 index 00000000..ce7a1f90 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/188a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/189.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/189.map new file mode 100644 index 00000000..aedb274d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/189.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/189a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/189a.map new file mode 100644 index 00000000..e97b4992 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/189a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/190.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/190.map new file mode 100644 index 00000000..c12108e0 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/190.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/190a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/190a.map new file mode 100644 index 00000000..68b34e0d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/190a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/191.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/191.map new file mode 100644 index 00000000..73f8ca9f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/191.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/191a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/191a.map new file mode 100644 index 00000000..0f8c0e17 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/191a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/192.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/192.map new file mode 100644 index 00000000..44eb91fb Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/192.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/192a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/192a.map new file mode 100644 index 00000000..0967d1e7 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/192a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/193.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/193.map new file mode 100644 index 00000000..b47e7755 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/193.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/193a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/193a.map new file mode 100644 index 00000000..c5f4958b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/193a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/194.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/194.map new file mode 100644 index 00000000..53e6e52b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/194.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/194a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/194a.map new file mode 100644 index 00000000..c04d9203 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/194a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/195.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/195.map new file mode 100644 index 00000000..002da464 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/195.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/195a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/195a.map new file mode 100644 index 00000000..4b27ad90 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/195a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/196.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/196.map new file mode 100644 index 00000000..a8235873 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/196.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/196a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/196a.map new file mode 100644 index 00000000..5ba7ebaf Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/196a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/197.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/197.map new file mode 100644 index 00000000..7aee2e2e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/197.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/197a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/197a.map new file mode 100644 index 00000000..35fbf94a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/197a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/198.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/198.map new file mode 100644 index 00000000..ad88111d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/198.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/198a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/198a.map new file mode 100644 index 00000000..c12e2f42 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/198a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/199.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/199.map new file mode 100644 index 00000000..c99d7900 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/199.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/199a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/199a.map new file mode 100644 index 00000000..5a0fa3cc Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/199a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/200.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/200.map new file mode 100644 index 00000000..def80544 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/200.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/200a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/200a.map new file mode 100644 index 00000000..17318323 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/200a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/201.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/201.map new file mode 100644 index 00000000..fdd8d692 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/201.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/201a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/201a.map new file mode 100644 index 00000000..dbab54c8 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/201a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/202.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/202.map new file mode 100644 index 00000000..382f144b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/202.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/202a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/202a.map new file mode 100644 index 00000000..c849f925 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/202a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/203.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/203.map new file mode 100644 index 00000000..13a1cddf Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/203.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/203a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/203a.map new file mode 100644 index 00000000..48aeeab8 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/203a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/204.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/204.map new file mode 100644 index 00000000..51401506 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/204.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/204a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/204a.map new file mode 100644 index 00000000..c70beb58 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/204a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/205.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/205.map new file mode 100644 index 00000000..bccdd77e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/205.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/205a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/205a.map new file mode 100644 index 00000000..4be5fea2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/205a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/206.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/206.map new file mode 100644 index 00000000..77199131 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/206.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/206a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/206a.map new file mode 100644 index 00000000..5c60ade0 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/206a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/207.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/207.map new file mode 100644 index 00000000..7aee2e2e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/207.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/207a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/207a.map new file mode 100644 index 00000000..35fbf94a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/207a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/208.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/208.map new file mode 100644 index 00000000..b4708518 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/208.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/208a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/208a.map new file mode 100644 index 00000000..9706a5b6 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/208a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/209.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/209.map new file mode 100644 index 00000000..1130a3f9 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/209.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/209a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/209a.map new file mode 100644 index 00000000..cd0a62e9 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/209a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/210.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/210.map new file mode 100644 index 00000000..9e79974c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/210.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/210a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/210a.map new file mode 100644 index 00000000..d0892030 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/210a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/211.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/211.map new file mode 100644 index 00000000..fdd8d692 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/211.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/211a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/211a.map new file mode 100644 index 00000000..dbab54c8 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/211a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/212.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/212.map new file mode 100644 index 00000000..dafc08a6 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/212.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/212a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/212a.map new file mode 100644 index 00000000..f347b4de Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/212a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/213.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/213.map new file mode 100644 index 00000000..8a301483 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/213.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/213a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/213a.map new file mode 100644 index 00000000..113da44d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/213a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/214.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/214.map new file mode 100644 index 00000000..ba462f56 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/214.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/214a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/214a.map new file mode 100644 index 00000000..edabca1d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/214a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/215.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/215.map new file mode 100644 index 00000000..ba462f56 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/215.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/215a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/215a.map new file mode 100644 index 00000000..edabca1d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/215a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/216.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/216.map new file mode 100644 index 00000000..ba462f56 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/216.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/216a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/216a.map new file mode 100644 index 00000000..edabca1d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/216a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/217.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/217.map new file mode 100644 index 00000000..ba462f56 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/217.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/217a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/217a.map new file mode 100644 index 00000000..edabca1d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/217a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/218.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/218.map new file mode 100644 index 00000000..ba462f56 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/218.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/218a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/218a.map new file mode 100644 index 00000000..edabca1d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/218a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/219.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/219.map new file mode 100644 index 00000000..ba462f56 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/219.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/219a.map b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/219a.map new file mode 100644 index 00000000..edabca1d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/map/219a.map differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/allclear.mid b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/allclear.mid new file mode 100644 index 00000000..ffab6b17 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/allclear.mid differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/allclear.ogg b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/allclear.ogg new file mode 100644 index 00000000..7786bb9d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/allclear.ogg differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/boss.mid b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/boss.mid new file mode 100644 index 00000000..54a3146a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/boss.mid differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/boss.ogg b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/boss.ogg new file mode 100644 index 00000000..4a94ca5f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/boss.ogg differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/clear.mid b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/clear.mid new file mode 100644 index 00000000..c33e6f1a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/clear.mid differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/clear.ogg b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/clear.ogg new file mode 100644 index 00000000..eac0f15d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/clear.ogg differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/ending.mid b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/ending.mid new file mode 100644 index 00000000..b1836c21 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/ending.mid differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/ending.ogg b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/ending.ogg new file mode 100644 index 00000000..6402455b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/ending.ogg differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/gameover.mid b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/gameover.mid new file mode 100644 index 00000000..f944aa55 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/gameover.mid differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/gameover.ogg b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/gameover.ogg new file mode 100644 index 00000000..0d856953 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/gameover.ogg differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/init.mid b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/init.mid new file mode 100644 index 00000000..c71a9996 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/init.mid differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/init.ogg b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/init.ogg new file mode 100644 index 00000000..5eded24d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/init.ogg differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/lastboss.mid b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/lastboss.mid new file mode 100644 index 00000000..eb1d0145 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/lastboss.mid differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/lastboss.ogg b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/lastboss.ogg new file mode 100644 index 00000000..f1e7da9c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/lastboss.ogg differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main01.mid b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main01.mid new file mode 100644 index 00000000..236b2cfc Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main01.mid differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main01.ogg b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main01.ogg new file mode 100644 index 00000000..41e7da54 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main01.ogg differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main02.mid b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main02.mid new file mode 100644 index 00000000..05e85d88 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main02.mid differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main02.ogg b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main02.ogg new file mode 100644 index 00000000..68843dd5 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main02.ogg differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main03.mid b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main03.mid new file mode 100644 index 00000000..7aaa8aa4 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main03.mid differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main03.ogg b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main03.ogg new file mode 100644 index 00000000..5f39d3c3 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main03.ogg differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main04.mid b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main04.mid new file mode 100644 index 00000000..3601b16a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main04.mid differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main04.ogg b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main04.ogg new file mode 100644 index 00000000..620b0e6e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main04.ogg differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main05.mid b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main05.mid new file mode 100644 index 00000000..fa2b9fcf Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main05.mid differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main05.ogg b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main05.ogg new file mode 100644 index 00000000..414de04f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main05.ogg differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main06.mid b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main06.mid new file mode 100644 index 00000000..cf07a70d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main06.mid differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main06.ogg b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main06.ogg new file mode 100644 index 00000000..62743c58 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/main06.ogg differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/nazo.mid b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/nazo.mid new file mode 100644 index 00000000..56c06a03 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/nazo.mid differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/nazo.ogg b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/nazo.ogg new file mode 100644 index 00000000..950a3d30 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/nazo.ogg differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/start.mid b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/start.mid new file mode 100644 index 00000000..34e9f9dc Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/start.mid differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/start.ogg b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/start.ogg new file mode 100644 index 00000000..49acf20c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/midi/start.ogg differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/020.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/020.dat new file mode 100644 index 00000000..72a66b30 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/020.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/021.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/021.dat new file mode 100644 index 00000000..81be662f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/021.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/022.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/022.dat new file mode 100644 index 00000000..e7713839 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/022.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/023.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/023.dat new file mode 100644 index 00000000..510955d1 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/023.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/024.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/024.dat new file mode 100644 index 00000000..255f80a3 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/024.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/025.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/025.dat new file mode 100644 index 00000000..e1f4d11b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/025.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/026.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/026.dat new file mode 100644 index 00000000..83190c6f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/026.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/027.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/027.dat new file mode 100644 index 00000000..1649e29c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/027.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/028.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/028.dat new file mode 100644 index 00000000..75358c4b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/028.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/029.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/029.dat new file mode 100644 index 00000000..432402a1 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/029.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/030.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/030.dat new file mode 100644 index 00000000..46975462 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/030.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/031.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/031.dat new file mode 100644 index 00000000..4805522c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/031.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/032.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/032.dat new file mode 100644 index 00000000..0052e56a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/032.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/033.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/033.dat new file mode 100644 index 00000000..5a28c6f2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/033.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/034.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/034.dat new file mode 100644 index 00000000..497f2e3a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/034.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/035.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/035.dat new file mode 100644 index 00000000..ef275abe Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/035.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/036.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/036.dat new file mode 100644 index 00000000..ffcf0e88 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/036.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/037.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/037.dat new file mode 100644 index 00000000..f6afd25a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/037.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/038.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/038.dat new file mode 100644 index 00000000..5783161c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/038.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/040.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/040.dat new file mode 100644 index 00000000..625899ea Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/040.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/041.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/041.dat new file mode 100644 index 00000000..a449e593 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/041.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/042.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/042.dat new file mode 100644 index 00000000..3802f0fa Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/042.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/043.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/043.dat new file mode 100644 index 00000000..14004c05 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/043.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/044.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/044.dat new file mode 100644 index 00000000..bace6010 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/044.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/045.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/045.dat new file mode 100644 index 00000000..b86083a3 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/045.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/046.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/046.dat new file mode 100644 index 00000000..958bc09e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/046.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/047.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/047.dat new file mode 100644 index 00000000..23552426 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/047.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/048.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/048.dat new file mode 100644 index 00000000..f623874d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/048.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/049.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/049.dat new file mode 100644 index 00000000..bebaec4c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/049.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/050.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/050.dat new file mode 100644 index 00000000..cd3421a4 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/050.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/051.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/051.dat new file mode 100644 index 00000000..f238f996 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/051.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/052.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/052.dat new file mode 100644 index 00000000..107f9392 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/052.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/053.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/053.dat new file mode 100644 index 00000000..268fdbea Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/053.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/054.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/054.dat new file mode 100644 index 00000000..354b24d2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/054.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/055.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/055.dat new file mode 100644 index 00000000..7a146248 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/055.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/056.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/056.dat new file mode 100644 index 00000000..6fff6160 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/056.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/057.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/057.dat new file mode 100644 index 00000000..5a7c2ed9 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/057.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/058.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/058.dat new file mode 100644 index 00000000..fc3c6476 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/058.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/059.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/059.dat new file mode 100644 index 00000000..d0754ef9 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/059.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/060.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/060.dat new file mode 100644 index 00000000..91f0fb62 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/060.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/061.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/061.dat new file mode 100644 index 00000000..afe29aed Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/061.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/062.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/062.dat new file mode 100644 index 00000000..4548756a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/062.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/063.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/063.dat new file mode 100644 index 00000000..a512bf4c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/063.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/064.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/064.dat new file mode 100644 index 00000000..301c4d77 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/064.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/065.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/065.dat new file mode 100644 index 00000000..d00a677b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/065.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/066.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/066.dat new file mode 100644 index 00000000..27c37491 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/066.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/067.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/067.dat new file mode 100644 index 00000000..6602fbb1 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/067.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/068.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/068.dat new file mode 100644 index 00000000..ea6e14ba Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/068.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/069.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/069.dat new file mode 100644 index 00000000..f1506498 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/069.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/070.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/070.dat new file mode 100644 index 00000000..693cc85a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/070.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/071.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/071.dat new file mode 100644 index 00000000..ad79ba69 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/071.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/072.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/072.dat new file mode 100644 index 00000000..4291ed53 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/072.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/073.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/073.dat new file mode 100644 index 00000000..eafa87a6 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/073.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/074.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/074.dat new file mode 100644 index 00000000..f4d38b77 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/074.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/075.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/075.dat new file mode 100644 index 00000000..93e45059 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/075.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/076.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/076.dat new file mode 100644 index 00000000..0ecd7f58 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/076.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/077.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/077.dat new file mode 100644 index 00000000..e309a1d5 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/077.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/078.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/078.dat new file mode 100644 index 00000000..5e68eaf9 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/078.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/079.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/079.dat new file mode 100644 index 00000000..37787fa3 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/079.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/080.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/080.dat new file mode 100644 index 00000000..2dce790c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/080.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/081.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/081.dat new file mode 100644 index 00000000..77f56818 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/081.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/082.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/082.dat new file mode 100644 index 00000000..4cdb2dec Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/082.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/083.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/083.dat new file mode 100644 index 00000000..34990744 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/083.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/084.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/084.dat new file mode 100644 index 00000000..e88a51c0 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/084.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/085.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/085.dat new file mode 100644 index 00000000..d21ffa04 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/085.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/086.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/086.dat new file mode 100644 index 00000000..83affdc1 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/086.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/087.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/087.dat new file mode 100644 index 00000000..c436b1b2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/087.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/088.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/088.dat new file mode 100644 index 00000000..c6802ee1 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/088.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/089.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/089.dat new file mode 100644 index 00000000..b0c2fb3d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/089.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/091.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/091.dat new file mode 100644 index 00000000..a7149b98 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/091.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/092.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/092.dat new file mode 100644 index 00000000..104f6214 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/092.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/094.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/094.dat new file mode 100644 index 00000000..dc406581 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/094.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/095.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/095.dat new file mode 100644 index 00000000..208cd089 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/095.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/096.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/096.dat new file mode 100644 index 00000000..5ce5b6ba Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/096.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/097.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/097.dat new file mode 100644 index 00000000..7a06e67d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/097.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/098.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/098.dat new file mode 100644 index 00000000..d661ad31 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/098.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/099.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/099.dat new file mode 100644 index 00000000..ffdfc231 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/099.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/100.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/100.dat new file mode 100644 index 00000000..ce6fbf01 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/100.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/101.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/101.dat new file mode 100644 index 00000000..0d63b4f6 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/101.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/102.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/102.dat new file mode 100644 index 00000000..2d1c0e1b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/102.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/103.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/103.dat new file mode 100644 index 00000000..0865729e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/103.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/104.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/104.dat new file mode 100644 index 00000000..15b2997a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/104.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/105.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/105.dat new file mode 100644 index 00000000..a2977528 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/105.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/106.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/106.dat new file mode 100644 index 00000000..9f7b8dd3 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/106.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/107.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/107.dat new file mode 100644 index 00000000..478e1e65 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/107.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/108.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/108.dat new file mode 100644 index 00000000..1f0f65c6 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/108.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/109.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/109.dat new file mode 100644 index 00000000..130081f7 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/109.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/110.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/110.dat new file mode 100644 index 00000000..79e0b5d3 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/110.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/111.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/111.dat new file mode 100644 index 00000000..a9a08f25 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/111.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/112.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/112.dat new file mode 100644 index 00000000..6de17ba8 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/112.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/113.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/113.dat new file mode 100644 index 00000000..dc6b83cc Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/113.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/114.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/114.dat new file mode 100644 index 00000000..57be3064 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/114.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/115.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/115.dat new file mode 100644 index 00000000..06c97b8a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/115.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/116.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/116.dat new file mode 100644 index 00000000..9cf570d3 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/116.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/117.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/117.dat new file mode 100644 index 00000000..0e355912 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/117.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/118.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/118.dat new file mode 100644 index 00000000..022bc7e8 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/118.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/119.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/119.dat new file mode 100644 index 00000000..b60c9e4e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/119.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/120.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/120.dat new file mode 100644 index 00000000..09912ab4 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/120.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/121.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/121.dat new file mode 100644 index 00000000..48a8127d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/121.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/122.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/122.dat new file mode 100644 index 00000000..bdaa5f63 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/122.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/123.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/123.dat new file mode 100644 index 00000000..a8e96a4b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/123.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/124.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/124.dat new file mode 100644 index 00000000..d37f3cd0 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/124.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/125.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/125.dat new file mode 100644 index 00000000..e1e39916 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/125.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/126.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/126.dat new file mode 100644 index 00000000..7780ff91 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/126.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/127.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/127.dat new file mode 100644 index 00000000..c074e5ef Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/127.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/128.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/128.dat new file mode 100644 index 00000000..5fbd2a77 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/128.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/129.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/129.dat new file mode 100644 index 00000000..18941202 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/129.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/130.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/130.dat new file mode 100644 index 00000000..65e0c544 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/130.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/131.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/131.dat new file mode 100644 index 00000000..659e6fb6 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/131.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/132.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/132.dat new file mode 100644 index 00000000..23a798f7 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/132.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/133.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/133.dat new file mode 100644 index 00000000..e72ac9cf Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/133.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/134.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/134.dat new file mode 100644 index 00000000..ef17a69c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/134.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/135.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/135.dat new file mode 100644 index 00000000..65322ed1 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/135.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/136.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/136.dat new file mode 100644 index 00000000..95cce8ba Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/136.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/137.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/137.dat new file mode 100644 index 00000000..06e5be58 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/137.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/138.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/138.dat new file mode 100644 index 00000000..1f3fb712 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/138.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/140.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/140.dat new file mode 100644 index 00000000..bbc7bc99 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/140.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/141.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/141.dat new file mode 100644 index 00000000..ebf10bce Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/141.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/142.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/142.dat new file mode 100644 index 00000000..08b27f73 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/142.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/143.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/143.dat new file mode 100644 index 00000000..937be82f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/143.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/144.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/144.dat new file mode 100644 index 00000000..b33b7f8f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/144.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/145.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/145.dat new file mode 100644 index 00000000..d59ef907 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/145.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/146.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/146.dat new file mode 100644 index 00000000..6197f103 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/146.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/147.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/147.dat new file mode 100644 index 00000000..9e228859 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/147.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/148.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/148.dat new file mode 100644 index 00000000..2e622b80 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/148.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/149.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/149.dat new file mode 100644 index 00000000..577dae09 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/149.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/150.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/150.dat new file mode 100644 index 00000000..65426962 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/150.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/151.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/151.dat new file mode 100644 index 00000000..c8f4890f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/151.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/152.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/152.dat new file mode 100644 index 00000000..276875e0 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/152.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/153.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/153.dat new file mode 100644 index 00000000..252bece2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/153.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/154.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/154.dat new file mode 100644 index 00000000..1141cc7c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/154.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/155.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/155.dat new file mode 100644 index 00000000..e25fb038 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/155.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/156.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/156.dat new file mode 100644 index 00000000..58324db0 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/156.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/157.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/157.dat new file mode 100644 index 00000000..36f87fc2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/157.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/158.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/158.dat new file mode 100644 index 00000000..95204aac Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/158.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/159.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/159.dat new file mode 100644 index 00000000..e7239405 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/159.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/160.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/160.dat new file mode 100644 index 00000000..9eded70d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/160.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/161.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/161.dat new file mode 100644 index 00000000..b2d7154e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/161.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/162.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/162.dat new file mode 100644 index 00000000..dd179157 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/162.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/163.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/163.dat new file mode 100644 index 00000000..5a46da54 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/163.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/164.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/164.dat new file mode 100644 index 00000000..bc0ee60a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/164.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/165.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/165.dat new file mode 100644 index 00000000..c9e2f4cd Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/165.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/166.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/166.dat new file mode 100644 index 00000000..26a10766 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/166.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/167.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/167.dat new file mode 100644 index 00000000..23b15cb1 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/167.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/168.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/168.dat new file mode 100644 index 00000000..3a427c83 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/168.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/169.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/169.dat new file mode 100644 index 00000000..e63ecb3d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/169.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/170.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/170.dat new file mode 100644 index 00000000..4214fc4d Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/170.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/171.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/171.dat new file mode 100644 index 00000000..bacc1dc0 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/171.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/172.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/172.dat new file mode 100644 index 00000000..2ca69a67 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/172.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/173.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/173.dat new file mode 100644 index 00000000..7551d496 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/173.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/174.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/174.dat new file mode 100644 index 00000000..6a266b4e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/174.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/175.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/175.dat new file mode 100644 index 00000000..045aaca9 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/175.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/176.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/176.dat new file mode 100644 index 00000000..731e26c3 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/176.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/177.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/177.dat new file mode 100644 index 00000000..0638407c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/177.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/178.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/178.dat new file mode 100644 index 00000000..fb098c66 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/178.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/179.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/179.dat new file mode 100644 index 00000000..6f98b79b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/179.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/180.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/180.dat new file mode 100644 index 00000000..6883a131 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/180.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/181.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/181.dat new file mode 100644 index 00000000..7b077cdf Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/181.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/182.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/182.dat new file mode 100644 index 00000000..27efc605 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/182.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/183.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/183.dat new file mode 100644 index 00000000..03640637 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/183.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/184.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/184.dat new file mode 100644 index 00000000..395a8234 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/184.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/185.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/185.dat new file mode 100644 index 00000000..ae3a12d8 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/185.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/186.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/186.dat new file mode 100644 index 00000000..c7783d58 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/186.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/187.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/187.dat new file mode 100644 index 00000000..3c66506c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/187.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/188.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/188.dat new file mode 100644 index 00000000..86695898 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/188.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/189.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/189.dat new file mode 100644 index 00000000..10be237e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/189.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/190.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/190.dat new file mode 100644 index 00000000..295bcf63 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/190.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/191.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/191.dat new file mode 100644 index 00000000..db3d53b4 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/191.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/192.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/192.dat new file mode 100644 index 00000000..65b7bf92 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/192.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/193.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/193.dat new file mode 100644 index 00000000..544707a0 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/193.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/194.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/194.dat new file mode 100644 index 00000000..1f95d451 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/194.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/195.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/195.dat new file mode 100644 index 00000000..f88c184c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/195.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/196.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/196.dat new file mode 100644 index 00000000..d2606317 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/196.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/197.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/197.dat new file mode 100644 index 00000000..e26f2239 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/197.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/198.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/198.dat new file mode 100644 index 00000000..b4c285fc Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/198.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/199.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/199.dat new file mode 100644 index 00000000..28cbbd85 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/199.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/200.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/200.dat new file mode 100644 index 00000000..76eec90a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/200.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/201.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/201.dat new file mode 100644 index 00000000..83e86a2b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/201.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/202.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/202.dat new file mode 100644 index 00000000..c76e9d9a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/202.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/203.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/203.dat new file mode 100644 index 00000000..7dbe8b76 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/203.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/204.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/204.dat new file mode 100644 index 00000000..5c9399bf Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/204.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/205.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/205.dat new file mode 100644 index 00000000..9b36b73a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/205.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/206.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/206.dat new file mode 100644 index 00000000..e9b43c9b Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/206.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/207.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/207.dat new file mode 100644 index 00000000..cdd21ae5 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/207.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/208.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/208.dat new file mode 100644 index 00000000..be2f5153 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/208.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/209.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/209.dat new file mode 100644 index 00000000..401b4155 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/209.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/210.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/210.dat new file mode 100644 index 00000000..d5e95203 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/210.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/211.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/211.dat new file mode 100644 index 00000000..5e99ed7a Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/211.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/213.dat b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/213.dat new file mode 100644 index 00000000..980674ce Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/obj/213.dat differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/bee01.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/bee01.wav new file mode 100644 index 00000000..b27f8695 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/bee01.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/bell01.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/bell01.wav new file mode 100644 index 00000000..0fd14fa5 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/bell01.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/bom01.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/bom01.wav new file mode 100644 index 00000000..1681e91c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/bom01.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/bom02.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/bom02.wav new file mode 100644 index 00000000..8c51ed20 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/bom02.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/bom03.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/bom03.wav new file mode 100644 index 00000000..f935738e Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/bom03.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/door00.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/door00.wav new file mode 100644 index 00000000..fe397de4 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/door00.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/fire01.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/fire01.wav new file mode 100644 index 00000000..2f830cdb Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/fire01.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/gas01.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/gas01.wav new file mode 100644 index 00000000..ba392968 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/gas01.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/get01.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/get01.wav new file mode 100644 index 00000000..e43cf050 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/get01.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/get02.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/get02.wav new file mode 100644 index 00000000..94126d98 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/get02.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit01.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit01.wav new file mode 100644 index 00000000..62fa6dc5 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit01.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit02.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit02.wav new file mode 100644 index 00000000..ac2c85d8 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit02.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit03.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit03.wav new file mode 100644 index 00000000..9a6c3969 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit03.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit04.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit04.wav new file mode 100644 index 00000000..ea21a3c3 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit04.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit05.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit05.wav new file mode 100644 index 00000000..48034367 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit05.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit06.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit06.wav new file mode 100644 index 00000000..bce8b5d4 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit06.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit07.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit07.wav new file mode 100644 index 00000000..f12991ad Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/hit07.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/jump01.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/jump01.wav new file mode 100644 index 00000000..8b9d5a32 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/jump01.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/jump02.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/jump02.wav new file mode 100644 index 00000000..2c305f67 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/jump02.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/ng.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/ng.wav new file mode 100644 index 00000000..5c5f9b11 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/ng.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/ok.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/ok.wav new file mode 100644 index 00000000..5633dcc9 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/ok.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi01.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi01.wav new file mode 100644 index 00000000..9980ee0c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi01.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi02.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi02.wav new file mode 100644 index 00000000..b281bdf9 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi02.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi03.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi03.wav new file mode 100644 index 00000000..184f68d7 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi03.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi04.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi04.wav new file mode 100644 index 00000000..79ea4acf Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi04.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi05.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi05.wav new file mode 100644 index 00000000..7ceaa6ec Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi05.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi06.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi06.wav new file mode 100644 index 00000000..2cbd4aba Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi06.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi07.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi07.wav new file mode 100644 index 00000000..b5472304 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi07.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi08.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi08.wav new file mode 100644 index 00000000..70ed5894 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi08.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi09.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi09.wav new file mode 100644 index 00000000..9e03a07c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi09.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi10.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi10.wav new file mode 100644 index 00000000..6a518425 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/pi10.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/power01.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/power01.wav new file mode 100644 index 00000000..6aa3b914 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/power01.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/power02.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/power02.wav new file mode 100644 index 00000000..f0649fa2 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/power02.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot01.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot01.wav new file mode 100644 index 00000000..0a867819 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot01.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot02.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot02.wav new file mode 100644 index 00000000..08f1a5d1 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot02.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot03.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot03.wav new file mode 100644 index 00000000..69f9c628 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot03.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot04.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot04.wav new file mode 100644 index 00000000..be703d01 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot04.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot05.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot05.wav new file mode 100644 index 00000000..bc3f1c1c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot05.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot06.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot06.wav new file mode 100644 index 00000000..9ef98fde Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot06.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot07.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot07.wav new file mode 100644 index 00000000..0cdf1fe0 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/shot07.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/step01.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/step01.wav new file mode 100644 index 00000000..6fd68089 Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/step01.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/water01.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/water01.wav new file mode 100644 index 00000000..f5433c3f Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/water01.wav differ diff --git a/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/wolf01.wav b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/wolf01.wav new file mode 100644 index 00000000..b935d71c Binary files /dev/null and b/bios/Game Engines/Hydra Castle Labyrinth/hcl/data/wav/wolf01.wav differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/ending.def b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/ending.def new file mode 100644 index 00000000..c0186be8 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/ending.def @@ -0,0 +1,93 @@ +; Ending cutscene for KFM's story. + +; Like the intro, this storyboard has multiple scenes. +; Each scene uses two overlay anims, one for the picture, and +; another for the text. +; The fadein and fadeout parameters are used to fade one screen +; to the next. + +[SceneDef] +spr = ending.sff +startscene = 0 ;Starting scene number (for debugging) + +;------------------------------------ +[Scene 0] +; Fade +fadein.time = 60 ;Time to take for fading in +fadein.col = 0,0,0 ;Use 255,255,255 for white-fade +fadeout.time = 15 +fadeout.col = 255,255,255 +; Screen color +clearcolor = 255,255,255 +; Overlay Anims (from 0 to 9) +layerall.pos = 160,0 ;Default position for all layers +layer0.anim = 0 ;Anim action number +layer0.offset = 0,32 ;Position offset +layer0.starttime = 0 ;Time to start display +layer1.anim = 1 +layer1.offset = 0,176 +; Music +bgm = ending.mp3 ;Name of music file to play +bgm.loop = 0 +; Total time +end.time = 460 + +;------------------------------------ +[Scene 1] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 15 +fadeout.col = 255,255,255 +; Screen color +; The previous clearcolor value is carried over by default +; Overlay Anims (from 0 to 9) +; The previous layerall.pos value is carried over by default +layer0.anim = 10 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 11 +layer1.offset = 0,176 +; Total time +end.time = 300 + +;------------------------------------ +[Scene 2] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 90 +fadeout.col = 0,0,0 +; Overlay Anims (from 0 to 9) +layer0.anim = 20 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 21 +layer1.offset = 0,176 +; Total time +end.time = 400 + +;Background image +[Begin Action 0] +0,0, 0,0, -1 + +;Text +[Begin Action 1] +1,0, 0,0, 200 +1,1, 0,0, -1 + +;Background image +[Begin Action 10] +10,0, 0,0, -1 + +;Text +[Begin Action 11] +11,0, 0,0, -1 + +;Background image +[Begin Action 20] +20,0, 0,0, -1 + +;Text +[Begin Action 21] +21,0, 0,0, -1 \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/ending.sff b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/ending.sff new file mode 100644 index 00000000..c00229bb Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/ending.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/intro.def b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/intro.def new file mode 100644 index 00000000..4f879f81 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/intro.def @@ -0,0 +1,148 @@ +; Introduction cutscene for KFM's story. + +; This storyboard has multiple scenes. +; Each scene uses two overlay anims, one for the picture, and +; another for the text. +; The fadein and fadeout parameters are used to fade one screen +; to the next. + +[SceneDef] +spr = intro.sff +startscene = 0 ;Starting scene number (for debugging) + +;------------------------------------ +[Scene 0] +; Fade +fadein.time = 60 ;Time to take for fading in +fadein.col = 0,0,0 ;Use 255,255,255 for white-fade +fadeout.time = 15 +fadeout.col = 255,255,255 +; Screen color +clearcolor = 255,255,255 +; Overlay Anims (from 0 to 9) +layerall.pos = 160,0 ;Default position for all layers +layer0.anim = 0 ;Anim action number +layer0.offset = 0,32 ;Position offset +layer0.starttime = 0 ;Time to start display +layer1.anim = 1 +layer1.offset = 0,176 +; Music +bgm = intro.mp3 ;Name of music file to play +bgm.loop = 0 +; Total time +end.time = 300 + +;------------------------------------ +[Scene 1] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 15 +fadeout.col = 255,255,255 +; Screen color +; The previous clearcolor value is carried over by default +; Overlay Anims (from 0 to 9) +; The previous layerall.pos value is carried over by default +layer0.anim = 10 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 11 +layer1.offset = 0,176 +; Total time +end.time = 300 + +;------------------------------------ +[Scene 2] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 15 +fadeout.col = 255,255,255 +; Overlay Anims (from 0 to 9) +layer0.anim = 20 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 21 +layer1.offset = 0,176 +; Total time +end.time = 300 + +;------------------------------------ +[Scene 3] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 15 +fadeout.col = 255,255,255 +; Overlay Anims (from 0 to 9) +layer0.anim = 30 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 31 +layer1.offset = 0,176 +; Total time +end.time = 300 + +;------------------------------------ +[Scene 4] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 90 +fadeout.col = 0,0,0 +; Overlay Anims (from 0 to 9) +layer0.anim = 40 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 41 +layer1.offset = 53,85 +layer2.anim = 42 +layer2.offset = 0,176 +; Total time +end.time = 600 + +;Background image +[Begin Action 0] +0,0, 0,0, -1 + +;Text +[Begin Action 1] +1,0, 0,0, -1 + +;Background image +[Begin Action 10] +10,0, 0,0, -1 + +;Text +[Begin Action 11] +11,0, 0,0, -1 + +;Background image +[Begin Action 20] +20,0, 0,0, -1 + +;Text +[Begin Action 21] +21,0, 0,0, -1 + +;Background image +[Begin Action 30] +30,0, 0,0, -1 + +;Text +[Begin Action 31] +31,0, 0,0, -1 + +;Background image +[Begin Action 40] +40,0, 0,0, -1 + +;Blinking arrow +[Begin Action 41] +41,0, 0,0, 40 +-1,0, 0,0, 20 + +;Text (two lines) +[Begin Action 42] +42,0, 0,0, 200 +42,1, 0,0, -1 diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/intro.sff b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/intro.sff new file mode 100644 index 00000000..89fb4111 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/intro.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/kfm.air b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/kfm.air new file mode 100644 index 00000000..c6a1dc89 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/kfm.air @@ -0,0 +1,2508 @@ +; KFM's animation data +; see docs/air.txt for more information + +;--------------------------------------------------------------------------- +; Standing Animation +[Begin Action 0] +Clsn2Default: 2 + Clsn2[0] = -13, 0, 16,-79 + Clsn2[1] = 5,-79, -7,-93 +0,0, 0,0, 10 +0,1, 0,0, 7 +0,2, 0,0, 7 +0,3, 0,0, 7 +0,4, 0,0, 7 +0,5, 0,0, 45 +0,4, 0,0, 7 +0,3, 0,0, 7 +0,2, 0,0, 7 +0,1, 0,0, 7 +0,0, 0,0, 40 + +; Turning +[Begin Action 5] +Clsn2Default: 2 + Clsn2[0] = -10, 0, 10,-79 + Clsn2[1] = -4,-92, 6,-79 +5,0, 0,0, 4, H +5,0, 0,0, 4 + +; Crouch Turning +[Begin Action 6] +Clsn2Default: 3 + Clsn2[0] = 10, 0,-10,-47 + Clsn2[1] = 5,-47, -5,-60 + Clsn2[2] = 10,-39, 15, 0 +6,0, 0,0, 4, H +6,0, 0,0, 4 + +; Stand to crouch +[Begin Action 10] +Clsn2: 2 + Clsn2[0] = -12, 0, 17,-65 + Clsn2[1] = -7,-81, 6,-65 +11,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = -12,-52, 17, 0 + Clsn2[1] = -7,-67, 6,-52 +11,1, 0,0, 2 + +; Crouching animation +[Begin Action 11] +Clsn2: 2 + Clsn2[0] = 19, 0,-15,-48 + Clsn2[1] = -6,-62, 6,-48 +11,2, 0,0, 1 + +; Crouch to Stand +[Begin Action 12] +Clsn2: 2 + Clsn2[0] = -12,-52, 17, 0 + Clsn2[1] = -7,-67, 6,-52 +11,1, 0,0, 2 +Clsn2: 2 + Clsn2[0] = -12, 0, 17,-65 + Clsn2[1] = -7,-81, 6,-65 +11,0, 0,0, 2 + +; Walking Forward +[Begin Action 20] +Clsn2Default: 2 + Clsn2[0] = -14, 0, 16,-81 + Clsn2[1] = 6,-81, -7,-96 +20,0, 0,0, 3 +20,1, 0,0, 3 +20,2, 0,0, 3 +20,3, 0,0, 3 +20,4, 0,0, 3 +20,5, 0,0, 3 +20,6, 0,0, 3 +20,7, 0,0, 3 +20,8, 0,0, 3 +20,9, 0,0, 3 +20,10, 0,0, 3 +20,11, 0,0, 3 +20,12, 0,0, 3 +20,13, 0,0, 3 +20,14, 0,0, 3 +20,15, 0,0, 3 + +; Walking Back +[Begin Action 21] +Clsn2Default: 2 + Clsn2[0] = -14, 0, 16,-81 + Clsn2[1] = 6,-81, -7,-96 +21,11, 0,0, 3 +21,10, 0,0, 3 +21,9, 0,0, 3 +21,8, 0,0, 3 +21,7, 0,0, 3 +21,6, 0,0, 3 +21,5, 0,0, 3 +21,4, 0,0, 3 +21,3, 0,0, 3 +21,2, 0,0, 3 +21,1, 0,0, 3 +21,0, 0,0, 3 +21,15, 0,0, 3 +21,14, 0,0, 3 +21,13, 0,0, 3 +21,12, 0,0, 3 + +; Jump start frame +[Begin Action 40] +Clsn2: 2 + Clsn2[0] = -15, 0, 16,-67 + Clsn2[1] = -6,-83, 6,-67 +11,0, 0,0, 3 + +; Starting Jumping up +[Begin Action 41] +Clsn2: 2 + Clsn2[0] = 12,-11,-11,-94 + Clsn2[1] = -6,-109, 6,-94 +41,0, 0,0, 7 +Clsn2: 2 + Clsn2[0] = -11,-86, 12,-28 + Clsn2[1] = -6,-101, 8,-86 +41,1, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-77, 14,-33 + Clsn2[1] = 0,-91, 11,-77 +41,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-73, 14,-35 + Clsn2[1] = 3,-86, 15,-69 +41,3, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-73, 14,-35 + Clsn2[1] = 3,-86, 15,-69 +41,4, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-33, 14,-77 + Clsn2[1] = -2,-93, 11,-76 +41,5, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-84, 14,-27 + Clsn2[1] = -3,-99, 9,-84 +41,6, 0,0, 4 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +; Starting Jumping forwards +[Begin Action 42] +Clsn2: 2 + Clsn2[0] = 12,-11,-11,-94 + Clsn2[1] = -6,-109, 6,-94 +42,0, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -11,-86, 14,-28 + Clsn2[1] = 5,-96, 17,-85 +42,1, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -11,-77, 14,-33 + Clsn2[1] = 0,-91, 11,-77 +41,2, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -11,-73, 14,-35 + Clsn2[1] = 3,-86, 15,-69 +41,3, 0,0, 4 +Clsn2: 1 + Clsn2[0] = -18,-75, 18,-44 +42,3, 0,0, 3 +Clsn2: 1 + Clsn2[0] = -18,-75, 18,-44 +42,4, 0,0, 3 +Clsn2: 1 + Clsn2[0] = -18,-75, 18,-44 +42,5, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -11,-33, 14,-77 + Clsn2[1] = -2,-93, 11,-76 +41,5, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -11,-84, 14,-27 + Clsn2[1] = -3,-99, 9,-84 +41,6, 0,0, 5 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +; Starting Jumping backwards +[Begin Action 43] +Clsn2: 2 + Clsn2[0] = 12,-11,-11,-94 + Clsn2[1] = -6,-109, 6,-94 +43,0, 0,0, 6 +Clsn2: 2 + Clsn2[0] = -11,-86, 12,-28 + Clsn2[1] = -6,-101, 8,-86 +43,1, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -11,-77, 14,-33 + Clsn2[1] = 0,-91, 11,-77 +41,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-73, 14,-35 + Clsn2[1] = 3,-86, 15,-69 +41,3, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-73, 14,-35 + Clsn2[1] = 3,-86, 15,-69 +41,4, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-33, 14,-77 + Clsn2[1] = -2,-93, 11,-76 +41,5, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-84, 14,-27 + Clsn2[1] = -3,-99, 9,-84 +41,6, 0,0, 5 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +; Peak and coming down from Jumping up +;[Begin Action 44] + +; Peak and coming down from Jumping forwards +;[Begin Action 45] + +; Peak and coming down from Jumping backwards +;[Begin Action 46] + +; Jump land animation +[Begin Action 47] +Clsn2: 2 + Clsn2[0] = 15, 0,-16,-68 + Clsn2[1] = -5,-79, 6,-68 +11,0, 0,0, 3 + +; Run forwards +[Begin Action 100] +Clsn2Default: 2 + Clsn2[0] = 14, 0,-15,-79 + Clsn2[1] = 14,-79, 1,-91 +100,0, 0,0, 5 +100,1, 0,0, 5 +100,2, 0,0, 5 +100,3, 0,0, 5 +100,4, 0,0, 5 +100,5, 0,0, 5 + +; Hop backwards +[Begin Action 105] +Clsn2: 3 + Clsn2[0] = -9,-94, 14,-56 + Clsn2[1] = 2,-61, 25,-34 + Clsn2[2] = 6,-90, -6,-104 +43,0, 0,0, 8 +Clsn2: 2 + Clsn2[0] = -8,-28, 10,-81 + Clsn2[1] = 6,-81, -5,-94 +43,1, 0,0, 4 +Clsn2Default: 2 + Clsn2[0] = -8,-33, 13,-77 + Clsn2[1] = 0,-90, 10,-77 +41,6, 0,0, 4 +41,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -8,-28, 10,-81 + Clsn2[1] = 6,-81, -5,-94 +41,1, 0,0, -1 + +;--------------------------- +; Lose +[Begin Action 170] +5000, 0,-5,0, 5 +5000,10,-5,0, 6 +5000,11,-5,0, 9 +5000,10,-5,0, 5 +5000, 0,-5,0, 3 +5010, 0, 5,0, 3 +5300, 3, 5,0, 4 +5300, 2, 5,0, 2 +5300, 1, 5,0, -1 + +;--------------------------- +; Win +[Begin Action 181] +Clsn2Default: 1 + Clsn2[0] = 17, 0,-12,-83 +200,0, 0,0, 4 +181,0, 0,0, 5 +181,1, 0,0, 5 +181,2, 0,0, 5 +181,3, 0,0, 5 +181,4, 0,0, 5 +181,5, 0,0, 5 +181,6, 0,0, 30 +181,5, 0,0, 7 +181,4, 0,0, 6 +181,3, 0,0, 5 +181,2, 0,0, -1 + +;----------------------------------- +; INTRO +[Begin Action 190] +Clsn2Default: 1 + Clsn2[0] = 17, 0,-12,-83 +0,3, 0,0, 7 +0,2, 0,0, 7 +0,1, 0,0, 7 +0,0, 0,0, 20 +240,0,-8,0, 4 +240,1,-8,0, 3 +240,2,-8,0, 6 +240,3,-8,0, 5 +240,4,-8,0, 4 +200,0, 0,0, 4 + +; INTRO -- WOOD (projectile) +[Begin Action 191] +191,3, 0,0, 8 +191,2, 0,0, 8 +191,1, 0,0, 8 +191,0, 0,0, 8 + +; INTRO -- WOODBREAK (projectile) +; Note: Putting -1,0 for the sprite means it does not draw anything +[Begin Action 192] +192,0, 0,0, 5 +192,1, 0,0, 8 + -1,0, 0,0, 1 +192,1, 0,0, 3 + -1,0, 0,0, 1 +192,1, 0,0, 3 + -1,0, 0,0, 2 +192,1, 0,0, 3 + -1,0, 0,0, 2 +Loopstart +192,1, 0,0, 1 + -1,0, 0,0, 3 + +;--------------------------- +; Taunt +[Begin Action 195] +Clsn2Default: 2 + Clsn2[0] = 18, 0,-10,-79 + Clsn2[1] = -1,-94, 12,-78 +200,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 13, 0,-13,-84 + Clsn2[1] = -7,-99, 6,-85 +181,0, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -13,-88, 13, 0 + Clsn2[1] = -8,-105, 4,-87 +181,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -13,-88, 13, 0 + Clsn2[1] = 5,-84, 17,-104 +181,3, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -13,-88, 13, 0 + Clsn2[1] = 14,-76, 27,-95 +181,4, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 13, 0,-13,-78 + Clsn2[1] = 36,-81, 9,-64 +181,5, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 13, 0,-13,-78 + Clsn2[1] = 9,-79, 38,-62 +181,6, 0,0, 12 +Clsn2: 2 + Clsn2[0] = 13, 0,-13,-78 + Clsn2[1] = 36,-81, 9,-64 +181,5, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -13,-88, 13, 0 + Clsn2[1] = 14,-76, 27,-95 +181,4, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -13,-88, 13, 0 + Clsn2[1] = 5,-84, 17,-104 +181,3, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -13,-88, 13, 0 + Clsn2[1] = -8,-105, 4,-87 +181,2, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 13, 0,-13,-84 + Clsn2[1] = -7,-99, 6,-85 +181,0, 0,0, 3 +200,0, 0,0, 2 + +;----------------------------------- +; Stand Light Punch +[Begin Action 200] +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 2 +200,1, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 16,-80, 61,-71 +Clsn2: 3 + Clsn2[0] = 19, 0,-10,-80 + Clsn2[1] = 6,-94, 18,-78 + Clsn2[2] = 19,-80, 61,-71 +200,2, 0,0, 4 +200,1, 0,0, 3 +200,0, 0,0, 2 + +;----------------------------------- +; Stand Strong Punch +[Begin Action 210] +Clsn2: 2 + Clsn2[0] = 19, 0,-10,-81 + Clsn2[1] = 0,-96, 12,-80 +200,0, 0,0, 2 +Clsn2: 3 + Clsn2[0] = -11, 0, 43,-32 + Clsn2[1] = 41,-32, 12,-75 + Clsn2[2] = 21,-91, 34,-75 +210,0, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 45, 0, -7,-32 + Clsn2[1] = 19,-73, 48,-24 + Clsn2[2] = 35,-89, 48,-72 +210,1, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 47,-31, -6, 0 + Clsn2[1] = 17,-31, 47,-78 + Clsn2[2] = 31,-94, 42,-76 +210,2, 0,0, 2 +Clsn1: 2 + Clsn1[0] = 27,-86, 64,-60 + Clsn1[1] = 64,-63, 79,-82 +Clsn2: 5 + Clsn2[0] = 40, 0,-11,-32 + Clsn2[1] = 34,-32, 5,-86 + Clsn2[2] = 13,-97, 26,-77 + Clsn2[3] = 34,-60, 64,-86 + Clsn2[4] = 64,-63, 79,-82 +210,3, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 40, 0,-11,-32 + Clsn2[1] = 34,-32, 5,-86 + Clsn2[2] = 13,-97, 26,-77 +210,4, 0,0, 4 +Clsn2: 3 + Clsn2[0] = -11, 0, 32,-39 + Clsn2[1] = 24,-39, -1,-81 + Clsn2[2] = 20,-79, 8,-95 +210,5, 0,0, 6 +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-81 + Clsn2[1] = 0,-96, 12,-80 +200,0, 0,0, 3 + +; Standing Light Kick +[Begin Action 230] +Clsn2: 2 + Clsn2[0] = 19, 0,-10,-81 + Clsn2[1] = 0,-96, 12,-80 +200,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = -10,-84, 19, 0 + Clsn2[1] = 2,-99, 15,-83 +230,0, 0,0, 2 +Clsn1: 3 + Clsn1[0] = 38,-53, 14,-36 + Clsn1[1] = 35,-42, 56,-29 + Clsn1[2] = 69,-34, 53,-23 +Clsn2: 5 + Clsn2[0] = -6,-84, 18, 0 + Clsn2[1] = 6,-98, 19,-83 + Clsn2[2] = 18,-53, 38,-36 + Clsn2[3] = 56,-29, 35,-42 + Clsn2[4] = 53,-23, 69,-34 +230,1, 0,0, 3 +Clsn2: 5 + Clsn2[0] = -6,-84, 18, 0 + Clsn2[1] = 6,-98, 19,-83 + Clsn2[2] = 32,-37, 18,-54 + Clsn2[3] = 32,-42, 45,-29 + Clsn2[4] = 52,-22, 44,-34 +230,2, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -10,-84, 19, 0 + Clsn2[1] = 2,-99, 15,-83 +230,0, 0,0, 3 +200,0, 0,0, 2 + +; Standing Strong Kick +[Begin Action 240] +Clsn2Default: 3 + Clsn2[0] = -13,-82, 6, 0 + Clsn2[1] = -12,-95, 0,-81 + Clsn2[2] = 24,-28, 2,-66 +240,0, 0,0, 4 +240,1, 0,0, 3 +Clsn1: 1 + Clsn1[0] = 4,-65, 67,-50 +Clsn2: 4 + Clsn2[0] = 6, 0, -9,-62 + Clsn2[1] = -20,-80, 4,-57 + Clsn2[2] = -19,-94, -7,-79 + Clsn2[3] = 67,-50, 3,-65 +240,2, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 70,-65, 8,-50 +Clsn2: 4 + Clsn2[0] = 9, 0, -7,-62 + Clsn2[1] = -18,-80, 6,-57 + Clsn2[2] = -16,-94, -4,-80 + Clsn2[3] = 3,-65, 70,-50 +240,3, 0,0, 4 +Clsn2: 4 + Clsn2[0] = -6, -1, 9,-60 + Clsn2[1] = -12,-81, 13,-55 + Clsn2[2] = -9,-92, 2,-81 + Clsn2[3] = 9,-57, 37,-39 +240,4, 0,0, 4 +Clsn2: 3 + Clsn2[0] = -2, 0, 30,-58 + Clsn2[1] = -2,-79, 22,-58 + Clsn2[2] = 1,-94, 12,-79 +240,5, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -9, 0, 17,-80 + Clsn2[1] = 0,-94, 12,-81 +200,0, 0,0, 3 + +; Crouching light punch +[Begin Action 400] +Clsn2: 2 + Clsn2[0] = 18, 0,-15,-48 + Clsn2[1] = -4,-63, 9,-48 +400,0, 0,0, 3 +Clsn1: 1 + Clsn1[0] = 54,-40, 17,-48 +Clsn2: 3 + Clsn2[0] = -14, 0, 19,-48 + Clsn2[1] = 0,-63, 12,-48 + Clsn2[2] = 18,-48, 54,-40 +400,1, 0,0, 6 +Clsn2: 2 + Clsn2[0] = 18, 0,-15,-48 + Clsn2[1] = -4,-63, 9,-48 +400,0, 0,0, 3 + +; Crouching strong punch +[Begin Action 410] +Clsn2Default: 2 + Clsn2[0] = -10, 0, 30,-58 + Clsn2[1] = 2,-76, 14,-58 +410,0, 0,0, 2 +410,1, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 45,-37, 20,-62 +Clsn2: 3 + Clsn2[0] = -2, 0, 32,-55 + Clsn2[1] = 9,-75, 21,-54 + Clsn2[2] = 45,-37, 20,-62 +410,2, 0,0, 3 +Clsn1: 2 + Clsn1[0] = 51,-79, 29,-57 + Clsn1[1] = 44,-94, 57,-74 +Clsn2: 4 + Clsn2[0] = -1, 0, 39,-42 + Clsn2[1] = 14,-43, 34,-83 + Clsn2[2] = 51,-79, 34,-62 + Clsn2[3] = 44,-94, 57,-74 +410,3, 0,0, 7 +Clsn2: 3 + Clsn2[0] = 37, 0, -5,-37 + Clsn2[1] = 6,-37, 36,-64 + Clsn2[2] = 13,-78, 25,-64 +410,4, 0,0, 5 +410,0, 0,0, 3 + +; Crouching Light Kick +[Begin Action 430] +Clsn2: 3 + Clsn2[0] = 28, 0,-15,-28 + Clsn2[1] = -19,-49, 14,-28 + Clsn2[2] = -1,-47,-13,-60 +430,0, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 29, 0,-21,-31 + Clsn2[1] = 11,-23,-19,-45 + Clsn2[2] = -7,-42,-18,-54 +430,1, 0,0, 2 +Clsn1: 3 + Clsn1[0] = 24,-24, 8,-13 + Clsn1[1] = 23,-19, 45,-10 + Clsn1[2] = 45,-11, 63, 0 +Clsn2: 5 + Clsn2[0] = 11, 0,-20,-41 + Clsn2[1] = -21,-50,-10,-38 + Clsn2[2] = 24,-24, 8,-13 + Clsn2[3] = 23,-19, 45,-10 + Clsn2[4] = 45,-11, 63, 0 +430,2, 0,0, 3 +Clsn2: 5 + Clsn2[0] = -20,-41, 11, 0 + Clsn2[1] = -21,-50,-10,-39 + Clsn2[2] = 11,-25, 24,-13 + Clsn2[3] = 23,-19, 43,-10 + Clsn2[4] = 43,-11, 60, 0 +430,3, 0,0, 4 +Clsn2: 3 + Clsn2[0] = 29, 0,-21,-31 + Clsn2[1] = 11,-23,-19,-45 + Clsn2[2] = -7,-42,-18,-54 +430,1, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 28, 0,-15,-28 + Clsn2[1] = -19,-49, 14,-28 + Clsn2[2] = -1,-47,-13,-60 +430,0, 0,0, 3 + +; Crouching Strong Kick +[Begin Action 440] +Clsn2: 3 + Clsn2[0] = -15, 0, 28,-28 + Clsn2[1] = -7,-28, 25,-50 + Clsn2[2] = 7,-65, 19,-48 +440,0, 0,0, 4 +Clsn2Default: 3 + Clsn2[0] = 26, 0,-17,-24 + Clsn2[1] = -7,-24, 27,-48 + Clsn2[2] = 7,-58, 20,-46 +440,1, 0,0, 3 +440,2, 0,0, 2 +Clsn1: 3 + Clsn1[0] = 40,-10, 18,-25 + Clsn1[1] = 40,-17, 58, -4 + Clsn1[2] = 76, 1, 58,-10 +Clsn2: 5 + Clsn2[0] = 17,-52, -7, 0 + Clsn2[1] = 40,-10, 12,-25 + Clsn2[2] = 40,-17, 58, -4 + Clsn2[3] = 76, 1, 58,-10 + Clsn2[4] = 8,-59, 20,-46 +440,3, 0,0, 4 +Clsn2Default: 4 + Clsn2[0] = 17, 0, -7,-52 + Clsn2[1] = 8,-59, 20,-46 + Clsn2[2] = 17,-27, 33,-11 + Clsn2[3] = 33,-17, 52, -4 +440,4, 0,0, 5 +440,5, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 26, 0,-17,-24 + Clsn2[1] = -7,-24, 27,-48 + Clsn2[2] = 7,-58, 20,-46 +440,6, 0,0, 5 +Clsn2: 3 + Clsn2[0] = -15, 0, 28,-28 + Clsn2[1] = -7,-28, 25,-50 + Clsn2[2] = 7,-65, 19,-48 +440,0, 0,0, 4 + +; Jump light punch +[Begin Action 600] +Clsn2Default: 2 + Clsn2[0] = -11,-72, 16,-27 + Clsn2[1] = -5,-87, 8,-72 +600,0, 0,0, 3 +Clsn1: 2 + Clsn1[0] = 15,-70, 31,-60 + Clsn1[1] = 49,-54, 29,-65 +Clsn2: 4 + Clsn2[0] = -13,-72, 17,-27 + Clsn2[1] = 0,-87, 12,-71 + Clsn2[2] = 15,-70, 31,-60 + Clsn2[3] = 49,-54, 29,-65 +600,1, 0,0, 11 +Clsn2: 4 + Clsn2[0] = -13,-72, 17,-27 + Clsn2[1] = 0,-87, 12,-71 + Clsn2[2] = 15,-70, 31,-60 + Clsn2[3] = 49,-54, 29,-65 +600,1, 0,0, 4 +600,0, 0,0, -1 + +; Jump strong punch +[Begin Action 610] +Clsn2: 2 + Clsn2[0] = -13,-76, 18,-24 + Clsn2[1] = -2,-88, 11,-73 +610,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 20,-23,-10,-76 + Clsn2[1] = 7,-91, 27,-68 +610,1, 0,0, 3 +Clsn1: 1 + Clsn1[0] = 23,-45, 57,-77 +Clsn2: 3 + Clsn2[0] = 20,-23,-10,-76 + Clsn2[1] = 18,-85, 30,-70 + Clsn2[2] = 57,-45, 20,-77 +610,2, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -10,-77, 20,-23 + Clsn2[1] = 10,-92, 23,-71 +610,3, 0,0, 12 +Clsn2: 2 + Clsn2[0] = -10,-77, 20,-23 + Clsn2[1] = 6,-92, 30,-71 +610,1, 0,0, -1 + +; Jump light kick +[Begin Action 630] +Clsn2: 2 + Clsn2[0] = -15,-72, 17,-24 + Clsn2[1] = -8,-91, 4,-72 +640,0, 0,0, 3 +Clsn1: 1 + Clsn1[0] = 11,-54, 35,-37 +Clsn2: 3 + Clsn2[0] = -22,-72, 15,-33 + Clsn2[1] = -11,-90, 0,-71 + Clsn2[2] = 11,-54, 35,-37 +630,1, 0,0, 3 +Clsn1: 2 + Clsn1[0] = 34,-30, 13,-48 + Clsn1[1] = 21,-38, 7,-52 +Clsn2: 3 + Clsn2[0] = -7,-89, 5,-73 + Clsn2[1] = 19,-34,-18,-74 + Clsn2[2] = 13,-48, 34,-30 +630,2, 0,0, 12 +Clsn2: 2 + Clsn2[0] = -22,-72, 15,-33 + Clsn2[1] = -11,-90, 0,-71 +630,1, 0,0, -1 + +; Jump strong kick +[Begin Action 640] +Clsn2: 2 + Clsn2[0] = -15,-72, 17,-24 + Clsn2[1] = -8,-91, 4,-72 +640,0, 0,0, 6 +Clsn1: 2 + Clsn1[0] = 43,-48, 13,-33 + Clsn1[1] = 43,-42, 69,-28 +Clsn2: 4 + Clsn2[0] = -21,-73, 15,-29 + Clsn2[1] = -4,-73,-15,-90 + Clsn2[2] = 15,-48, 43,-33 + Clsn2[3] = 43,-42, 69,-28 +640,1, 0,0, 5 +Clsn2: 3 + Clsn2[0] = -19,-73, 14,-32 + Clsn2[1] = 14,-48, 35,-35 + Clsn2[2] = -12,-89, -2,-73 +640,2, 0,0, 8 +Clsn2: 2 + Clsn2[0] = -15,-72, 17,-24 + Clsn2[1] = -8,-91, 4,-72 +640,0, 0,0, -1 + +;----------------------------------- +; Kung Fu Throw Attempt +[Begin Action 800] +Clsn1: 1 + Clsn1[0] = 26,-81, 8, 0 +Clsn2Default: 2 + Clsn2[0] = -8, 0, 21,-81 + Clsn2[1] = 10,-94, 20,-80 +800,0, 0,0, 1 +800,0, 0,0, 1 +800,1, 0,0, 3 +800,2, 0,0, 10 +800,4, 0,0, 4 +800,0, 0,0, 3 + +;----------------------------------- +;Kung Fu Throw +[Begin Action 810] +800, 0, 0,0, 2 +800, 1, 0,0, 3 +800, 2, 0,0, 10 +800, 3, 0,0, 5 +800, 4, 0,0, 3 +800, 5, 0,0, 4 +800, 6, 0,0, 4 +800, 7, 0,0, 3 +800, 8, 0,0, 3 +800, 9, 0,0, 3 +800,10, 0,0, 5 +800,11, 0,0, 4, H +800,11, 0,0, 4, H +800,12, 0,0, 12, H +200, 0, 0,0, 5 + +;----------------------------------- +;Thrown by Kung Fu Throw (animation for opponent) +; Note: Use ONLY the required frames documented in spr.txt and spr.gif. +; It is important to be restricted to the required frames so that +; the throw animation will look correct for any given character. +; Notice that the animation timings are synchronized to KFM's +; throw animation (action 810). +[Begin Action 820] +5000, 0, 0,0, 2 +5010, 0, 0,0, 3 +5010,10, 0,0, 10 +5010,10, 0,0, 5 +5010, 0, 0,0, 3 +5061, 0, 0,0, 4 +5071, 0, 0,0, 4 +5071,10, 0,0, 3 +5071,20, 0,0, 3 +5031, 0, 0,0, 3, HV +5011, 0, 0,-40, 5, HV +Clsn2: 2 + Clsn2[0] = -26,-38, 6,-69 + Clsn2[1] = 18,-81,-12,-55 +5030,40, 0,0, 5 +Clsn2: 1 + Clsn2[0] = -26,-32, 20,-66 +5030,30, 0,0,-1 + +;----------------------------------- +; Light Kung Fu Palm +[Begin Action 1000] +Clsn2: 2 + Clsn2[0] = -14, 0, 15,-80 + Clsn2[1] = -6,-94, 7,-80 +200,0, -5,0, 1 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 2 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,1, 0,0, 2 +1000,2, 0,0, 2 +1000,3, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 68,-66, 9,-44 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-66, 68,-46 +1000,4, 0,0, 3 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 68,-46 +1000,5, 0,0, 7 +1000,7, 0,0, 4 +1000,2, 0,0, 3 +1000,1, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -14, 0, 15,-80 + Clsn2[1] = -6,-94, 7,-80 +200,0, -5,0, 2 + +;----------------------------------- +; Strong Kung Fu Palm +[Begin Action 1010] +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 2 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,1, 0,0, 2 +1000,2, 0,0, 2 +1000,3, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 68,-66, 9,-44 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-66, 68,-46 +1000,4, 0,0, 3 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 68,-46 +1000,5, 0,0, 5 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 68,-46 +1000,6, 0,0, 5 +1000,7, 0,0, 4 +1000,2, 0,0, 3 +1000,1, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -15, 0, 15,-80 + Clsn2[1] = -5,-94, 7,-79 +200,0, -5,0, 3 + +;----------------------------------- +; Fast Kung Fu Palm +[Begin Action 1020] +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,1, 0,0, 3 +1000,3, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 66,-66, 9,-44 +Clsn2Default: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-66, 66,-46 +1000,4, 0,0, 5 +Clsn1: 1 + Clsn2[0] = 66,-66, 9,-44 +1000,5, 0,0, 4 +Clsn2Default: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 66,-46 +1000,6, 0,0, 4 +1000,5, 0,0, 4 +1000,6, 0,0, 3 +1000,7, 0,0, 3 +1000,1, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -15, 0, 15,-80 + Clsn2[1] = -6,-94, 7,-80 +200,0, -5,0, 2 + +; Hit by Fast Kung Fu Palm +[Begin Action 1025] +Clsn2: 1 + Clsn2[0] = -29,-73, 8,-27 +5010,10, 0,0, 4 +Clsn2: 1 + Clsn2[0] = -29,-73, 8,-27 +5010,20, 0,0, 4 +Clsn2Default: 1 + Clsn2[0] = -29,-82, 12,-48 +5030, 0, 0,0, 4 +5030,10, 0,0, -1 + +; Hit by Fast Kung Fu Palm - hit wall +[Begin Action 1027] +Clsn2Default: 1 + Clsn2[0] = -33,-68, 1,-23 +5010,20, 0,0, 3 +5010,10, 0,0, 3 +5010, 0, 0,0, 2 + +;----------------------------------- +; Light Kung Fu Knee - move forwards +[Begin Action 1050] +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 25, 0,-16,-41 + Clsn2[1] = -16, 0,-39,-21 + Clsn2[2] = 18,-41, -7,-71 + Clsn2[3] = 5,-81, 15,-68 +1050,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 24, 0, -9,-79 + Clsn2[1] = 7,-91, 19,-78 +1050,1, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 5,-67, 24,-36 +Clsn2: 2 + Clsn2[0] = -12,-105, 10, 0 + Clsn2[1] = 5,-67, 24,-31 +1050,2, 0,0, 2 + +;----------------------------------- +; Light Kung Fu Knee - jump +[Begin Action 1051] +Clsn1: 1 + Clsn1[0] = 34,-90, 9,-49 +Clsn2Default: 4 + Clsn2[0] = -13,-101, 13,-60 + Clsn2[1] = -6,-34, 9,-60 + Clsn2[2] = 30,-80, 9,-49 + Clsn2[3] = 6,-110, 18,-95 +1050,3, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,4, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,3, 0,0, 4 +Clsn2: 3 + Clsn2[0] = -8,-97, 12,-35 + Clsn2[1] = 16,-92, 5,-105 + Clsn2[2] = 10,-71, 25,-40 +1050,5, 0,0, 4 +Clsn2: 3 + Clsn2[0] = -8,-95, 12,-33 + Clsn2[1] = 6,-104, 16,-92 + Clsn2[2] = 10,-64, 29,-33 +1050,6, 0,0, 4 +Clsn2: 3 + Clsn2[0] = 10,-27,-11,-95 + Clsn2[1] = 6,-104, 16,-92 + Clsn2[2] = 27,-27, 10,-63 +1050,7, 0,0, -1 + +;----------------------------------- +; Light Kung Fu Knee - land +[Begin Action 1052] +Clsn2: 3 + Clsn2[0] = 26, 0,-11,-47 + Clsn2[1] = 16,-47, -9,-77 + Clsn2[2] = 16,-76, 5,-88 +1052,0, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 27, 0,-10,-37 + Clsn2[1] = -5,-65, 19,-36 + Clsn2[2] = 18,-63, 8,-74 +1052,1, 0,0, 4 +Clsn2: 3 + Clsn2[0] = 15, 0,-12,-40 + Clsn2[1] = -11,-40, 9,-70 + Clsn2[2] = 1,-79, 11,-67 +1052,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -16,-85, 14, 0 + Clsn2[1] = -1,-95, 9,-84 +1052,3, 0,0, 3 + +;----------------------------------- +; Light Kung Fu Knee - kick +[Begin Action 1055] +Clsn2: 2 + Clsn2[0] = -16,-87, 19,-48 + Clsn2[1] = -7,-99, 3,-86 +1055,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 19,-48,-16,-87 + Clsn2[1] = -6,-99, 5,-86 +1055,1, 0,0, 2 +Clsn2: 2 + Clsn2[0] = -16,-87, 19,-48 + Clsn2[1] = -6,-101, 3,-87 +1055,2, 0,0, 1 +Clsn2: 3 + Clsn2[0] = -16,-93, 14,-41 + Clsn2[1] = -9,-104, 3,-90 + Clsn2[2] = 31,-100, 13,-78 +1055,3, 0,0, 1 +Clsn1: 2 + Clsn1[0] = 14,-96, 32,-44 + Clsn1[1] = 45,-111, 30,-77 +Clsn2: 4 + Clsn2[0] = -16,-93, 14,-41 + Clsn2[1] = -9,-104, 3,-90 + Clsn2[2] = 14,-96, 32,-44 + Clsn2[3] = 45,-111, 30,-77 +1055,4, 0,0, 3 +Clsn2: 3 + Clsn2[0] = -16,-93, 14,-41 + Clsn2[1] = -9,-104, 3,-90 + Clsn2[2] = 31,-94, 14,-72 +1055,5, 0,0, 7 +Clsn2: 3 + Clsn2[0] = -16,-41, 14,-93 + Clsn2[1] = -9,-104, 3,-90 + Clsn2[2] = 14,-77, 31,-65 +1055,6, 0,0, 3 +Clsn2: 3 + Clsn2[0] = -16,-93, 14,-41 + Clsn2[1] = -9,-104, 3,-90 + Clsn2[2] = 14,-73, 28,-51 +1055,7, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 14,-33,-11,-92 + Clsn2[1] = -3,-103, 9,-89 +41,6, 0,-5, 3 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +;----------------------------------- +; Light Kung Fu Knee - kick land +[Begin Action 1056] +Clsn2: 2 + Clsn2[0] = -15,-65, 15, 0 + Clsn2[1] = -6,-80, 5,-64 +11,1, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 13, 0,-15,-53 + Clsn2[1] = -6,-68, 5,-53 +11,0, 0,0, 3 + +;----------------------------------- +; Strong Kung Fu Knee - move forwards +[Begin Action 1060] +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 38, 0, -3,-41 + Clsn2[1] = -3, 0,-26,-21 + Clsn2[2] = 31,-41, 6,-71 + Clsn2[3] = 18,-81, 31,-68 +1050,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 24, 0, -9,-79 + Clsn2[1] = 7,-91, 19,-78 +1050,1, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 5,-67, 24,-36 +Clsn2: 2 + Clsn2[0] = -12,-105, 10, 0 + Clsn2[1] = 5,-67, 24,-31 +1050,2, 0,0, 2 + +;----------------------------------- +; Strong Kung Fu Knee - jump +[Begin Action 1061] +Clsn1: 1 + Clsn1[0] = 34,-90, 9,-49 +Clsn2Default: 4 + Clsn2[0] = -13,-101, 13,-60 + Clsn2[1] = -6,-34, 9,-60 + Clsn2[2] = 30,-80, 9,-49 + Clsn2[3] = 6,-110, 18,-95 +1050,3, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,4, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,3, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,4, 0,0, 4 +Clsn2: 3 + Clsn2[0] = -8,-97, 12,-35 + Clsn2[1] = 16,-92, 5,-105 + Clsn2[2] = 10,-71, 25,-40 +1050,5, 0,0, 5 +Clsn2: 3 + Clsn2[0] = -8,-95, 12,-33 + Clsn2[1] = 6,-104, 16,-92 + Clsn2[2] = 10,-64, 29,-33 +1050,6, 0,0, 5 +Clsn2: 3 + Clsn2[0] = 10,-27,-11,-95 + Clsn2[1] = 6,-104, 16,-92 + Clsn2[2] = 27,-27, 10,-63 +1050,7, 0,0, -1 + +;----------------------------------- +; Fast Kung Fu Knee - move forwards +[Begin Action 1070] +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 38, 0, -3,-41 + Clsn2[1] = -3, 0,-26,-21 + Clsn2[2] = 31,-41, 6,-71 + Clsn2[3] = 18,-81, 31,-68 +1050,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 24, 0, -9,-79 + Clsn2[1] = 7,-91, 19,-78 +1050,1, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 5,-67, 26,-36 +Clsn2: 2 + Clsn2[0] = -12,-105, 10, 0 + Clsn2[1] = 5,-67, 26,-31 +1050,2, 0,0, 1 + +;----------------------------------- +; Fast Kung Fu Knee - jump +[Begin Action 1071] +Clsn1: 1 + Clsn1[0] = 34,-90, 9,-49 +Clsn2Default: 4 + Clsn2[0] = -13,-101, 13,-60 + Clsn2[1] = -6,-34, 9,-60 + Clsn2[2] = 30,-80, 9,-49 + Clsn2[3] = 6,-110, 18,-95 +1050,3, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,4, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,3, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,4, 0,0, 4 +Clsn2: 3 + Clsn2[0] = -8,-97, 12,-35 + Clsn2[1] = 16,-92, 5,-105 + Clsn2[2] = 10,-71, 25,-40 +1050,5, 0,0, 5 +Clsn2: 3 + Clsn2[0] = -8,-95, 12,-33 + Clsn2[1] = 6,-104, 16,-92 + Clsn2[2] = 10,-64, 29,-33 +1050,6, 0,0, 5 +Clsn2: 3 + Clsn2[0] = 10,-27,-11,-95 + Clsn2[1] = 6,-104, 16,-92 + Clsn2[2] = 27,-27, 10,-63 +1050,7, 0,0, -1 + +;----------------------------------- +; Light Kung Fu Upper +[Begin Action 1100] +Clsn2Default: 1 + Clsn2[0] = -12, 0, 16,-94 +1100,0, 0,0, 2 +1100,1, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 22,-58, 43,-38 +Clsn2: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 22,-58, 43,-38 +1100,2, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 23,-92, 34,-76 +1100,3, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 31, 0, -3,-85 + Clsn2[1] = 14,-96, 27,-80 +1100,4, 0,0, 1 +Clsn2: 1 + Clsn2[0] = 32, 0, 1,-96 +1100,5, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-60, 55,-131 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 30,-131, 44,-93 +1100,6, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-93, 44,-131 +1100,6, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 27,-110, 38,-93 +1100,7, 0,0, 4 +1100,6, 0,0, 4 +1100,8, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 32,-80, 43,-97 +1100,9, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,1, 0,0, 2 +200,0, 0,0, 2 + +;----------------------------------- +; Strong Kung Fu Upper +[Begin Action 1110] +Clsn2Default: 1 + Clsn2[0] = -12, 0, 16,-94 +1100,0, 0,0, 2 +1100,1, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 22,-58, 43,-38 +Clsn2: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 22,-58, 43,-38 +1100,2, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 23,-92, 34,-76 +1100,3, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 31, 0, -3,-85 + Clsn2[1] = 14,-96, 27,-80 +1100,4, 0,0, 1 +Clsn2: 1 + Clsn2[0] = 32, 0, 1,-96 +1100,5, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-60, 55,-131 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 30,-131, 44,-93 +1100,6, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-93, 44,-131 +1100,6, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 27,-110, 38,-93 +1100,7, 0,0, 4 +1100,6, 0,0, 4 +1100,7, 0,0, 4 +1100,8, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 32,-80, 43,-97 +1100,9, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,1, 0,0, 2 +200,0, 0,0, 2 + +;----------------------------------- +; Fast Kung Fu Upper +[Begin Action 1120] +Clsn2Default: 1 + Clsn2[0] = -12, 0, 16,-94 +1100,0, 0,0, 1 +1100,1, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 22,-58, 43,-38 +Clsn2: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 22,-58, 43,-38 +1100,2, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 25,-62, 46,-42 +Clsn2: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 25,-62, 46,-42 +1100,3, 0,0, 1 +Clsn2: 2 + Clsn2[0] = 31, 0, -3,-85 + Clsn2[1] = 14,-96, 27,-80 +1100,4, 0,0, 1 +Clsn2: 1 + Clsn2[0] = 32, 0, 1,-96 +1100,5, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-60, 55,-131 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 30,-131, 44,-93 +1100,6, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-93, 44,-131 +1100,6, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 27,-110, 38,-93 +1100,7, 0,0, 4 +1100,6, 0,0, 4 +1100,7, 0,0, 4 +1100,6, 0,0, 4 +1100,8, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 32,-80, 43,-97 +1100,9, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,1, 0,0, 2 +200,0, 0,0, 2 + +;----------------------------------- +; Light Kung Fu Blow +[Begin Action 1200] +Clsn2Default: 2 + Clsn2[0] = -14,-84, 17, 0 + Clsn2[1] = -5,-96, 6,-81 +1210,0, 0,0, 3 +1210,1, 0,0, 6 +1210,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +1210,2, 0,0, 1 +Clsn2: 2 + Clsn2[0] = -7,-80, 34, 0 + Clsn2[1] = 11,-93, 24,-79 +1210,3, 0,0, 1 +Clsn1: 2 + Clsn1[0] = -14,-72, 17,-55 + Clsn1[1] = 44,-72, 91,-45 +Clsn2: 4 + Clsn2[0] = 17,-71, 51, 0 + Clsn2[1] = 37,-82, 50,-69 + Clsn2[2] = -9,-22, 17, 0 + Clsn2[3] = -14,-72, 91,-55 +1210,4, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 52, 0, 14,-70 + Clsn2[1] = 33,-82, 45,-69 + Clsn2[2] = -9, 0, 18,-19 + Clsn2[3] = 1,-71, 73,-56 +1210,5, 0,0, 6 +Clsn2: 3 + Clsn2[0] = 53, 0, -8,-40 + Clsn2[1] = 6,-73, 46,-32 + Clsn2[2] = 37,-68, 23,-84 +1210,6, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -7,-80, 34, 0 + Clsn2[1] = 11,-93, 24,-79 +1210,3, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +200, 0, 0,0, 3 + +;----------------------------------- +; Strong Kung Fu Blow +[Begin Action 1210] +Clsn2Default: 2 + Clsn2[0] = -14,-84, 17, 0 + Clsn2[1] = -5,-96, 6,-81 +1210,0, 0,0, 4 +1210,1, 0,0, 8 +1210,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +1210,2, 0,0, 1 +Clsn2: 2 + Clsn2[0] = -7,-80, 34, 0 + Clsn2[1] = 11,-93, 24,-79 +1210,3, 0,0, 1 +Clsn1: 2 + Clsn1[0] = -14,-72, 17,-55 + Clsn1[1] = 44,-72, 91,-45 +Clsn2: 4 + Clsn2[0] = 17,-71, 51, 0 + Clsn2[1] = 37,-82, 50,-69 + Clsn2[2] = -9,-22, 17, 0 + Clsn2[3] = -14,-72, 91,-55 +1210,4, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 52, 0, 14,-70 + Clsn2[1] = 33,-82, 45,-69 + Clsn2[2] = -9, 0, 18,-19 + Clsn2[3] = 1,-71, 73,-56 +1210,5, 0,0, 8 +Clsn2: 3 + Clsn2[0] = 53, 0, -8,-40 + Clsn2[1] = 6,-73, 46,-32 + Clsn2[2] = 37,-68, 23,-84 +1210,6, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -7,-80, 34, 0 + Clsn2[1] = 11,-93, 24,-79 +1210,3, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +200, 0, 0,0, 2 + +;----------------------------------- +; Fast Kung Fu Blow +[Begin Action 1220] +Clsn2Default: 2 + Clsn2[0] = -14,-84, 17, 0 + Clsn2[1] = -5,-96, 6,-81 +1210,0, 0,0, 2 +1210,1, 0,0, 3 +1210,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +1210,2, 0,0, 1 +Clsn2: 2 + Clsn2[0] = -7,-80, 34, 0 + Clsn2[1] = 11,-93, 24,-79 +1210,3, 0,0, 1 +Clsn1: 2 + Clsn1[0] = -14,-72, 17,-55 + Clsn1[1] = 44,-72, 91,-45 +Clsn2: 4 + Clsn2[0] = 17,-71, 51, 0 + Clsn2[1] = 37,-82, 50,-69 + Clsn2[2] = -9,-22, 17, 0 + Clsn2[3] = -14,-72, 91,-55 +1210,4, 0,0, 3 +Clsn2: 4 + Clsn2[0] = 52, 0, 14,-70 + Clsn2[1] = 33,-82, 45,-69 + Clsn2[2] = -9, 0, 18,-19 + Clsn2[3] = 1,-71, 73,-56 +1210,5, 0,0, 12 +Clsn2: 3 + Clsn2[0] = 53, 0, -8,-40 + Clsn2[1] = 6,-73, 46,-32 + Clsn2[2] = 37,-68, 23,-84 +1210,6, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -7,-80, 34, 0 + Clsn2[1] = 11,-93, 24,-79 +1210,3, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +200, 0, 0,0, 3 + +;----------------------------------- +; Kung Fu Blocking High (attempt) +[Begin Action 1300] +Clsn1: 2 + Clsn2[0] = 0, 1, 34,-84 + Clsn2[1] = 13,-97, 47,-65 +Clsn2: 2 + Clsn2[0] = 0, 1, 34,-84 + Clsn2[1] = 13,-97, 47,-65 +1300,0, 0,0, 2 +Clsn1: 2 + Clsn2[0] = -4,-83, 31, 0 + Clsn2[1] = 10,-96, 39,-67 +Clsn2: 2 + Clsn2[0] = -4,-83, 31, 0 + Clsn2[1] = 10,-96, 39,-67 +1300,1, 0,0, 7 +Clsn2: 2 + Clsn2[0] = -8,-83, 25, 0 + Clsn2[1] = 4,-94, 16,-82 +1300,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +200, 0, 0,0, 2 + +; Kung Fu Blocking High (successful block) +[Begin Action 1310] +Clsn2Default: 2 + Clsn2[0] = -4,-83, 31, 0 + Clsn2[1] = 10,-96, 39,-67 +1300,1, 0,0, 3 +1300,2, 0,0, 6 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +200, 0, 0,0, 4 + +;----------------------------------- +; Kung Fu Blocking Low (attempt) +[Begin Action 1320] +Clsn1: 2 + Clsn1[0] = -11, 0, 24,-49 + Clsn1[1] = 1,-60, 35,-32 +Clsn2Default: 2 + Clsn2[0] = -11,-49, 24, 0 + Clsn2[1] = 1,-60, 35,-32 +1320,0, 0,0, 2 +Clsn1: 2 + Clsn1[0] = -11, 0, 24,-49 + Clsn1[1] = 1,-60, 35,-32 +1320,1, 0,0, 7 +Clsn2: 2 + Clsn2[0] = 20, 0,-14,-50 + Clsn2[1] = -2,-60, 10,-47 +1320,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 19, 0,-15,-48 + Clsn2[1] = -6,-62, 6,-48 +11,2, 0,0, 2 + +; Kung Fu Blocking Low (successful block) +[Begin Action 1330] +Clsn2Default: 2 + Clsn2[0] = 20, 0,-11,-49 + Clsn2[1] = 1,-60, 31,-32 +1320,1, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 20, 0,-14,-50 + Clsn2[1] = -2,-60, 10,-47 +1320,2, 0,0, 6 +Clsn2: 2 + Clsn2[0] = 19, 0,-15,-48 + Clsn2[1] = -6,-62, 6,-48 +11,2, 0,0, 4 + +;----------------------------------- +; Kung Fu Blocking Air (attempt) +[Begin Action 1340] +Clsn1: 2 + Clsn1[0] = 17,-80,-12,-38 + Clsn1[1] = -2,-89, 20,-59 +Clsn2Default: 2 + Clsn2[0] = -12,-80, 17,-38 + Clsn2[1] = -2,-89, 20,-59 +1340,0, 0,0, 2 +Clsn1: 2 + Clsn1[0] = 17,-80,-12,-38 + Clsn1[1] = -2,-89, 20,-59 +1340,1, 0,0, 7 +1340,0, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-33, 14,-77 + Clsn2[1] = -2,-93, 11,-76 +41,5, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -11,-84, 14,-27 + Clsn2[1] = -3,-99, 9,-84 +41,6, 0,0, 5 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +; Kung Fu Blocking Air (successful block) +[Begin Action 1350] +Clsn2Default: 2 + Clsn2[0] = -12,-80, 17,-38 + Clsn2[1] = -2,-89, 20,-59 +1340,1, 0,0, 3 +1340,0, 0,0, 6 +Clsn2: 2 + Clsn2[0] = -11,-33, 14,-77 + Clsn2[1] = -2,-93, 11,-76 +41,5, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -11,-84, 14,-27 + Clsn2[1] = -3,-99, 9,-84 +41,6, 0,0, 5 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +;----------------------------------- +; Light Kung Fu Zankou +[Begin Action 1400] +Clsn2Default: 2 + Clsn2[0] = 29, 0,-11,-55 + Clsn2[1] = 14,-69, 28,-53 +1400,0, 0,0, 3 +1400,1, -10,0, 2 +Clsn2: 3 + Clsn2[0] = 36, 0, 0,-55 + Clsn2[1] = 14,-69, 28,-53 + Clsn2[2] = 45,-30,-25, 0 +1400,2, 0,0, 3 +Clsn1: 1 + Clsn1[0] = 34,-76, 4,-22 +Clsn2: 2 + Clsn2[0] = 34,-76,-12, 0 + Clsn2[1] = 9,-85, 23,-70 +1400,3, 0,0, 4 +Clsn2Default: 2 + Clsn2[0] = 28,-76,-14, 0 + Clsn2[1] = 7,-85, 21,-70 +1400,4, 0,0, 5 +1400,5, 0,0, 5 +1400,6, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +1400,7, 0,0, 4 + +; Strong Kung Fu Zankou +[Begin Action 1410] +Clsn2Default: 2 + Clsn2[0] = 29, 0,-11,-55 + Clsn2[1] = 14,-69, 28,-53 +1400,0, 0,0, 3 +1400,1, -10,0, 3 +Clsn2: 3 + Clsn2[0] = 36, 0, 0,-55 + Clsn2[1] = 14,-69, 28,-53 + Clsn2[2] = 45,-30,-25, 0 +1400,2, 0,0, 3 +Clsn1: 1 + Clsn1[0] = 34,-76, 4,-22 +Clsn2: 2 + Clsn2[0] = 34,-76,-12, 0 + Clsn2[1] = 9,-85, 23,-70 +1400,3, 0,0, 4 +Clsn2Default: 2 + Clsn2[0] = 28,-76,-14, 0 + Clsn2[1] = 7,-85, 21,-70 +1400,4, 0,0, 5 +1400,5, 0,0, 4 +1400,4, 0,0, 4 +1400,6, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +1400,7, 0,0, 4 + +; Far Kung Fu Zankou +[Begin Action 1420] +Clsn2Default: 2 + Clsn2[0] = 29, 0,-11,-55 + Clsn2[1] = 14,-69, 28,-53 +1400,0, 0,0, 5 +1400,1, -10,0, 3 +Clsn1: 1 + Clsn1[0] = 36,-55, 19,-18 +Clsn2: 3 + Clsn2[0] = 36, 0, 0,-55 + Clsn2[1] = 14,-69, 28,-53 + Clsn2[2] = 45,-30,-25, 0 +1400,2, 0,0, 7 +Clsn1: 1 + Clsn1[0] = 34,-76, 4,-22 +Clsn2: 2 + Clsn2[0] = 34,-76,-12, 0 + Clsn2[1] = 9,-85, 23,-70 +1400,3, 0,0, 4 +Clsn2Default: 2 + Clsn2[0] = 28,-76,-14, 0 + Clsn2[1] = 7,-85, 21,-70 +1400,4, 0,0, 4 +1400,5, 0,0, 4 +1400,4, 0,0, 4 +1400,5, 0,0, 4 +1400,6, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +1400,7, 0,0, 4 + +;----------------------------------- +; Triple Kung Fu Palm +[Begin Action 3000] +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 2 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,1, 0,0, 3 +1000,2, 0,0, 4 +1000,3, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 68,-71, 9,-40 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-71, 68,-40 +1000,4, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 68,-46 +1000,5, 0,0, 2 +1000,7, 0,0, 2 +1000,2, 0,0, 2 +1000,1, 0,0, 1 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,2, 0,0, 2 +1000,3, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 68,-71, 9,-40 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-71, 68,-40 +1000,4, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 68,-46 +1000,5, 0,0, 2 +1000,7, 0,0, 2 +1000,2, 0,0, 2 +1000,1, 0,0, 1 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,2, 0,0, 2 +1000,3, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 68,-71, 9,-40 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-71, 68,-40 +1000,4, 0,0, 3 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 68,-46 +1000,5, 0,0, 5 +1000,6, 0,0, 5 +1000,5, 0,0, 5 +1000,6, 0,0, 5 +1000,5, 0,0, 5 +1000,6, 0,0, 4 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,7, 0,0, 4 +1000,1, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -15, 0, 15,-80 + Clsn2[1] = -6,-94, 7,-80 +200,0, -5,0, 3 + +;----------------------------------- +; Smash Kung Fu Upper +[Begin Action 3050] +Clsn2Default: 1 + Clsn2[0] = -12, 0, 16,-94 +1100,0, 0,0, 1 +1100,0, 0,0, 1 +1100,1, 0,0, 1 +Clsn2Default: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 23,-92, 34,-76 +1100,2, 0,0, 1 +1100,3, 0,0, 1 +Clsn2: 2 + Clsn2[0] = 31, 0, -3,-85 + Clsn2[1] = 14,-96, 27,-80 +1100,4, 0,0, 1 +Clsn2: 1 + Clsn2[0] = 32, 0, 1,-96 +1100,5, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-40, 55,-131 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 30,-131, 44,-93 +1100,6, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 30,-93, 44,-131 +1100,6, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 27,-110, 38,-93 +1100,7, 0,0, 5 +1100,6, 0,0, 5 +1100,7, 0,0, 5 +1100,6, 0,0, 5 +1100,8, 0,0, 5 +Clsn2: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 32,-80, 43,-97 +1100,9, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,1, 0,0, 2 +200,0, 0,0, 2 + +; Smash Kung Fu Upper (success) +[Begin Action 3051] +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 27,-110, 38,-93 +1100,6, 0,0, 5 +1100,7, 0,0, 5 +1100,6, 0,0, 5 +1100,7, 0,0, 5 +1100,6, 0,0, 5 +1100,7, 0,0, 5 +1100,6, 0,0, 5 +1100,8, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 32,-80, 43,-97 +1100,9, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,1, 0,0, 2 +200,0, 0,0, 2 + +;-------------------- +; GUARDSTART (stand) +[Begin Action 120] +Clsn2Default: 4 + Clsn2[0] = 14, 0,-13,-43 + Clsn2[1] = -11,-43, 12,-86 + Clsn2[2] = -1,-86,-11,-94 + Clsn2[3] = -20,-78, 13,-58 +120,0, 0,0, 1 + +; GUARDSTART (crouch) +[Begin Action 121] +Clsn2: 2 + Clsn2[0] = -17, 0, 16,-56 + Clsn2[1] = 3,-56, -9,-64 +121,0, 0,0, 1 + +; GUARDSTART (air) +[Begin Action 122] +Clsn2: 2 + Clsn2[0] = 22,-38, 0,-88 + Clsn2[1] = 9,-31, -9,-76 +122,0, 0,0, 1 + +; GUARD (stand) +[Begin Action 130] +Clsn2Default: 4 + Clsn2[0] = 14, 0,-13,-43 + Clsn2[1] = -11,-43, 12,-86 + Clsn2[2] = -1,-86,-11,-94 + Clsn2[3] = -20,-78, 13,-58 +120,0, 0,0, -1 + +; GUARD (crouch) +[Begin Action 131] +Clsn2: 2 + Clsn2[0] = -17, 0, 16,-56 + Clsn2[1] = 3,-56, -9,-64 +121,0, 0,0, -1 + +; GUARD (air) +[Begin Action 132] +Clsn2: 2 + Clsn2[0] = 22,-38, 0,-88 + Clsn2[1] = 9,-31, -9,-76 +122,0, 0,0, -1 + +; GUARDEND (stand) +[Begin Action 140] +Clsn2Default: 4 + Clsn2[0] = 14, 0,-13,-43 + Clsn2[1] = -11,-43, 12,-86 + Clsn2[2] = -1,-86,-11,-94 + Clsn2[3] = -20,-78, 13,-58 +120,0, 0,0, 5 + +; GUARDEND (crouch) +[Begin Action 141] +Clsn2: 2 + Clsn2[0] = -17, 0, 16,-56 + Clsn2[1] = 3,-56, -9,-64 +121,0, 0,0, 1 + +; GUARDEND (air) +[Begin Action 142] +Clsn2: 2 + Clsn2[0] = 22,-38, 0,-88 + Clsn2[1] = 9,-31, -9,-76 +122,0, 0,0, 1 + +; Hit back while guarding (stand) +[Begin Action 150] +Clsn2Default: 4 + Clsn2[0] = 14, 0,-13,-43 + Clsn2[1] = -11,-43, 12,-86 + Clsn2[2] = -1,-86,-11,-94 + Clsn2[3] = -20,-78, 13,-58 +120,1, 0,0, 4 +120,2, 0,0, 8 +120,1, 0,0, 4 +120,0, 0,0, -1 + +; Hit back while guarding (crouch) +[Begin Action 151] +Clsn2: 2 + Clsn2[0] = -17, 0, 16,-56 + Clsn2[1] = 3,-56, -9,-64 +121,0, 0,0, -1 + +; Hit back while guarding (air) +[Begin Action 152] +Clsn2: 2 + Clsn2[0] = 22,-38, 0,-88 + Clsn2[1] = 9,-31, -9,-76 +122,0, 0,0, -1 + +;--------------------------- +; Stand/Air Hit high (light) +[Begin Action 5000] +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -17,-94, -4,-79 +5000, 0, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -12,-77,-25,-94 +5000,10, 0,0, 4 + +;Stand/Air Hit high (medium) +[Begin Action 5001] +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -12,-77,-25,-94 +5000,10, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -32,-89,-15,-60 +5000,11, 0,0, 5 + +;Stand/Air Hit high (hard) +[Begin Action 5002] +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -32,-89,-15,-60 +5000,11, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -14,-55,-37,-87 +5000,20, 0,0, 5 + +;--------------------------- +;Stand Recover high (light) +[Begin Action 5005] +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -32,-89,-15,-60 +5000,11, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -12,-77,-25,-94 +5000,10, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -17,-94, -4,-79 +5000, 0, 0,0, -1 + +;Stand Recover high (medium) +[Begin Action 5006] +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -14,-55,-37,-87 +5000,20, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -32,-89,-15,-60 +5000,11, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -12,-77,-25,-94 +5000,10, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -17,-94, -4,-79 +5000, 0, 0,0, -1 + +;Stand Recover high (hard) +[Begin Action 5007] +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -14,-55,-37,-87 +5000,21, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -32,-89,-15,-60 +5000,11, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -12,-77,-25,-94 +5000,10, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -17,-94, -4,-79 +5000, 0, 0,0, -1 + +;--------------------------- +;Stand/Air Hit low (light) +[Begin Action 5010] +Clsn2: 2 + Clsn2[0] = 16, 0,-24,-76 + Clsn2[1] = -12,-72, 1,-88 +5010, 0, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -27,-76, 16, 0 + Clsn2[1] = -12,-66, 1,-81 +5010,10, 0,0, 5 + +;Stand/Air Hit low (medium) +[Begin Action 5011] +Clsn2: 2 + Clsn2[0] = -27,-76, 16, 0 + Clsn2[1] = -12,-66, 1,-81 +5010,10, 0,0, 5 +Clsn2: 1 + Clsn2[0] = -27,-76, 16, 0 +5010,20, 0,0, 5 +Clsn2: 1 + Clsn2[0] = -27,-76, 16, 0 +5010,21, 0,0, 5 + +;Stand/Air Hit low (hard) +[Begin Action 5012] +Clsn2Default: 1 + Clsn2[0] = -27,-76, 16, 0 +5010,20, 0,0, 1 +5010,21, 0,0, 5 +5010,20, 0,0, 5 +5010,21, 0,0, 5 + +;--------------------------- +;Stand Recover low (light) +[Begin Action 5015] +Clsn2: 2 + Clsn2[0] = -27,-76, 16, 0 + Clsn2[1] = -12,-66, 1,-81 +5010,10, 0,0, 1 +Clsn2: 2 + Clsn2[0] = 16, 0,-24,-76 + Clsn2[1] = -12,-72, 1,-88 +5010, 0, 0,0, -1 + +;Stand Recover low (medium) +[Begin Action 5016] +Clsn2: 1 + Clsn2[0] = -27,-76, 16, 0 +5010,20, 0,0, 1 +Clsn2: 2 + Clsn2[0] = -27,-76, 16, 0 + Clsn2[1] = -12,-66, 1,-81 +5010,10, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 16, 0,-24,-76 + Clsn2[1] = -12,-72, 1,-88 +5010, 0, 0,0, -1 + +;Stand Recover low (hard) +[Begin Action 5017] +Clsn2: 1 + Clsn2[0] = -27,-76, 16, 0 +5010,20, 0,0, 1 +Clsn2: 2 + Clsn2[0] = -27,-76, 16, 0 + Clsn2[1] = -12,-66, 1,-81 +5010,10, 0,0, -1 + +;--------------------------- +;Crouch Hit (light) +[Begin Action 5020] +Clsn2Default: 3 + Clsn2[0] = 18, 0,-15,-27 + Clsn2[1] = 11,-27,-15,-50 + Clsn2[2] = -2,-49,-14,-62 +5020, 0, 0,0, 5 +5020,10, 0,0, 5 + +;Crouch Hit (medium) +[Begin Action 5021] +Clsn2Default: 3 + Clsn2[0] = 18, 0,-15,-27 + Clsn2[1] = 11,-27,-15,-50 + Clsn2[2] = -2,-49,-14,-62 +5020,10, 0,0, 5 +5020,20, 0,0, 5 + +;Crouch Hit (hard) +[Begin Action 5022] +Clsn2Default: 3 + Clsn2[0] = 18, 0,-15,-27 + Clsn2[1] = 11,-27,-15,-50 + Clsn2[2] = -2,-49,-14,-62 +5020,20, 0,0, 5 +5020,20, 0,0, 5 + +;--------------------------- +;Crouch Recover (light) +[Begin Action 5025] +Clsn2Default: 3 + Clsn2[0] = 18, 0,-15,-27 + Clsn2[1] = 11,-27,-15,-50 + Clsn2[2] = -2,-49,-14,-62 +5020,10, 0,0, 1 +5020, 0, 0,0, -1 + +;Crouch Recover (medium) +[Begin Action 5026] +Clsn2Default: 3 + Clsn2[0] = 18, 0,-15,-27 + Clsn2[1] = 11,-27,-15,-50 + Clsn2[2] = -2,-49,-14,-62 +5020,20, 0,0, 3 +5020,10, 0,0, 5 +5020, 0, 0,0, -1 + +;Crouch Recover (hard) +[Begin Action 5027] +Clsn2Default: 3 + Clsn2[0] = 18, 0,-15,-27 + Clsn2[1] = 11,-27,-15,-50 + Clsn2[2] = -2,-49,-14,-62 +5020,20, 0,0, 4 +5020,10, 0,0, 4 +5020, 0, 0,0, -1 + +;--------------------------- +;Stand/Air Hit back +[Begin Action 5030] +Clsn2: 2 + Clsn2[0] = -21,-88, 5,-61 + Clsn2[1] = -8,-66, 16,-38 +5030, 0, 0,0, 5 + +;Stand/Air Hit transition +[Begin Action 5035] +Clsn2: 2 + Clsn2[0] = -21,-88, 5,-61 + Clsn2[1] = -8,-66, 16,-38 +5030, 0, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 19,-39, -5,-66 + Clsn2[1] = 2,-57,-26,-83 +5030,10, 0,0, 7 + +;--------------------------- +;Air Recover +[Begin Action 5040] +Clsn2: 1 + Clsn2[0] = -18,-77, 18,-42 +42,5, 0,0, 3 +Clsn2: 1 + Clsn2[0] = -18,-77, 18,-42 +42,4, 0,0, 3 +Clsn2: 1 + Clsn2[0] = -18,-77, 18,-42 +42,3, 0,0, 3 +Clsn2: 1 + Clsn2[0] = 14,-30,-17,-75 +41,4, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -11,-33, 14,-77 + Clsn2[1] = -2,-93, 11,-76 +41,5, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-84, 14,-27 + Clsn2[1] = -3,-99, 9,-84 +41,6, 0,0, 4 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +;--------------------------- +;Air Fall (going up) +[Begin Action 5050] +Clsn2Default: 2 + Clsn2[0] = 24,-44, -2,-76 + Clsn2[1] = -2,-44,-33,-67 +5030,30, 0,0, 5 +5030,31, 0,0, 5 + +;--------------------------- +;Air Fall (up-type, going up) +[Begin Action 5051] +Clsn2: 1 + Clsn2[0] = -19,-105, 14,-25 +5060, 0, 0,0, 3 +Clsn2: 1 + Clsn2[0] = -19,-105, 14,-25 +5060, 1, 0,0, 3 + +;--------------------------- +;Air Fall (up-type, coming down) +[Begin Action 5061] +Clsn2: 2 + Clsn2[0] = 5,-61,-24,-98 + Clsn2[1] = -8,-65, 20,-30 +5030, 0, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -31,-85, 0,-55 + Clsn2[1] = 26,-32, -4,-65 +5030,10, 0,0, 5 +Clsn2: 1 + Clsn2[0] = -33,-69, 24,-44 +5030,30, 0,0, 5 +Clsn2: 2 + Clsn2[0] = 2,-71,-25,-42 + Clsn2[1] = 0,-58, 22,-86 +5030,40, 0,0, 5 +Clsn2: 2 + Clsn2[0] = 5,-72,-19,-34 + Clsn2[1] = 18,-96, -4,-63 +5030,50, 0,0, 5 +Clsn2: 1 + Clsn2[0] = -20,-84, 9,-20 +5060,10, 0,0, -1 + +;--------------------------- +;Tripped +[Begin Action 5070] +Clsn2: 2 + Clsn2[0] = 16, 0,-11,-76 + Clsn2[1] = 0,-91, 11,-76 +5010,10, 8, 0, 5 +Clsn2: 2 + Clsn2[0] = -13,-57, 10,-30 + Clsn2[1] = -2,-57,-27,-88 +5030, 0,-8, 0, 5 +Clsn2: 2 + Clsn2[0] = 12,-39,-13,-66 + Clsn2[1] = -6,-57,-34,-83 +5030,10,-8, 0, -1 + +;--------------------------- +;LieDown Hit (stay down) +[Begin Action 5080] +Clsn2Default: 1 + Clsn2[0] = 22, 0,-26,-21 +5040,20, 0,0, 4 +5040, 0, 0,0, 4 +5040,10, 0,0, -1 + +;--------------------------- +;LieDown Hit (hit up into air) +[Begin Action 5090] +Clsn2: 2 + Clsn2[0] = 19,-39, -5,-66 + Clsn2[1] = 2,-57,-26,-83 +5030,10, 0,0, 7 + +;--------------------------- +; Hit ground from fall +[Begin Action 5100] +Clsn2Default: 1 + Clsn2[0] = 22, 0,-26,-21 +5040, 0, 0,0, 3 + +; Bounce into air +[Begin Action 5160] +Clsn2: 1 + Clsn2[0] = -30,-47, 23,-23 +5030,30, 0,20, -1 + +; Hit ground from bounce +[Begin Action 5170] +Clsn2: 1 + Clsn2[0] = 22, 0,-26,-21 +5040, 0, 0,0, 3 + +;--------------------------- +; Hit ground from fall (up-type) +[Begin Action 5101] +Clsn2Default: 1 + Clsn2[0] = 22, 0,-26,-21 +5040,1, 0,0, 4 +5040,0, 0,0, 2 + +;--------------------------- +; LieDown +[Begin Action 5110] +Clsn2: 1 + Clsn2[0] = 22, 0,-26,-21 +5040,10, 0,0, 1 + +; Get up from LieDown +[Begin Action 5120] +Clsn2Default: 1 + Clsn2[0] = 17, 0,-13,-53 +5040,11, 0,0, 5 +11,2, 0,0, 3 +11,1, 0,0, 3 +11,0, 0,0, 3 + +;LieDead animation +[Begin Action 5150] +Clsn2: 1 + Clsn2[0] = 22, 0,-26,-21 +5040,10, 0,0, 1 + +;--------------------------- +; Fall-recovery near ground +[Begin Action 5200] +Clsn2: 1 + Clsn2[0] = 16,-46,-14,-75 +41,4, 0,-120, 3, VH +Clsn2: 1 + Clsn2[0] = -18,-75, 18,-44 +42,3, 0,0, 4 +Clsn2: 1 + Clsn2[0] = 14,-45,-17,-73 +41,4, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -8,-28, 10,-81 + Clsn2[1] = 6,-81, -5,-94 +41,1, 0,0, -1 + +;Fall-recovery in mid-air +[Begin Action 5210] +Clsn2: 1 + Clsn2[0] = -18,-75, 18,-44 +42,5, 0,0, 3 +Clsn2: 1 + Clsn2[0] = -18,-75, 18,-44 +42,4, 0,0, 3 +Clsn2: 1 + Clsn2[0] = -18,-75, 18,-44 +42,3, 0,0, 3 +Clsn2: 1 + Clsn2[0] = 14,-45,-17,-73 +41,4, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -11,-33, 14,-77 + Clsn2[1] = -2,-93, 11,-76 +41,5, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-84, 14,-27 + Clsn2[1] = -3,-99, 9,-84 +41,6, 0,0, 4 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +;--------------------------- +; Dizzy +[Begin Action 5300] +Clsn2Default: 1 + Clsn2[0] = 22, 0,-20,-87 +5300,0, 0,0, 8 +5300,1, 0,0, 8 +5300,2, 0,0, 8 +5300,3, 0,0, 8 +5300,2, 0,0, 8 +5300,1, 0,0, 8 diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/kfm.cmd b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/kfm.cmd new file mode 100644 index 00000000..ede02c8a --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/kfm.cmd @@ -0,0 +1,775 @@ +; The CMD file. +; +; Two parts: 1. Command definition and 2. State entry +; (state entry is after the commands def section) +; +; 1. Command definition +; --------------------- +; Note: The commands are CASE-SENSITIVE, and so are the command names. +; The eight directions are: +; B, DB, D, DF, F, UF, U, UB (all CAPS) +; corresponding to back, down-back, down, downforward, etc. +; The six buttons are: +; a, b, c, x, y, z (all lower case) +; In default key config, abc are are the bottom, and xyz are on the +; top row. For 2 button characters, we recommend you use a and b. +; For 6 button characters, use abc for kicks and xyz for punches. +; +; Each [Command] section defines a command that you can use for +; state entry, as well as in the CNS file. +; The command section should look like: +; +; [Command] +; name = some_name +; command = the_command +; time = time (optional) +; buffer.time = time (optional) +; +; - some_name +; A name to give that command. You'll use this name to refer to +; that command in the state entry, as well as the CNS. It is case- +; sensitive (QCB_a is NOT the same as Qcb_a or QCB_A). +; +; - command +; list of buttons or directions, separated by commas. Each of these +; buttons or directions is referred to as a "symbol". +; Directions and buttons can be preceded by special characters: +; slash (/) - means the key must be held down +; egs. command = /D ;hold the down direction +; command = /DB, a ;hold down-back while you press a +; tilde (~) - to detect key releases +; egs. command = ~a ;release the a button +; command = ~D, F, a ;release down, press fwd, then a +; If you want to detect "charge moves", you can specify +; the time the key must be held down for (in game-ticks) +; egs. command = ~30a ;hold a for at least 30 ticks, then release +; dollar ($) - Direction-only: detect as 4-way +; egs. command = $D ;will detect if D, DB or DF is held +; command = $B ;will detect if B, DB or UB is held +; plus (+) - Buttons only: simultaneous press +; egs. command = a+b ;press a and b at the same time +; command = x+y+z ;press x, y and z at the same time +; greater-than (>) - means there must be no other keys pressed or released +; between the previous and the current symbol. +; egs. command = a, >~a ;press a and release it without having hit +; ;or released any other keys in between +; You can combine the symbols: +; eg. command = ~30$D, a+b ;hold D, DB or DF for 30 ticks, release, +; ;then press a and b together +; +; Note: Successive direction symbols are always expanded in a manner similar +; to this example: +; command = F, F +; is expanded when MUGEN reads it, to become equivalent to: +; command = F, >~F, >F +; +; It is recommended that for most "motion" commads, eg. quarter-circle-fwd, +; you start off with a "release direction". This makes the command easier +; to do. +; +; - time (optional) +; Time allowed to do the command, given in game-ticks. The default +; value for this is set in the [Defaults] section below. A typical +; value is 15. +; +; - buffer.time (optional) +; Time that the command will be buffered for. If the command is done +; successfully, then it will be valid for this time. The simplest +; case is to set this to 1. That means that the command is valid +; only in the same tick it is performed. With a higher value, such +; as 3 or 4, you can get a "looser" feel to the command. The result +; is that combos can become easier to do because you can perform +; the command early. Attacks just as you regain control (eg. from +; getting up) also become easier to do. The side effect of this is +; that the command is continuously asserted, so it will seem as if +; you had performed the move rapidly in succession during the valid +; time. To understand this, try setting buffer.time to 30 and hit +; a fast attack, such as KFM's light punch. +; The default value for this is set in the [Defaults] section below. +; This parameter does not affect hold-only commands (eg. /F). It +; will be assumed to be 1 for those commands. +; +; If you have two or more commands with the same name, all of them will +; work. You can use it to allow multiple motions for the same move. +; +; Some common commands examples are given below. +; +; [Command] ;Quarter circle forward + x +; name = "QCF_x" +; command = ~D, DF, F, x +; +; [Command] ;Half circle back + a +; name = "HCB_a" +; command = ~F, DF, D, DB, B, a +; +; [Command] ;Two quarter circles forward + y +; name = "2QCF_y" +; command = ~D, DF, F, D, DF, F, y +; +; [Command] ;Tap b rapidly +; name = "5b" +; command = b, b, b, b, b +; time = 30 +; +; [Command] ;Charge back, then forward + z +; name = "charge_B_F_z" +; command = ~60$B, F, z +; time = 10 +; +; [Command] ;Charge down, then up + c +; name = "charge_D_U_c" +; command = ~60$D, U, c +; time = 10 + + +;-| Button Remapping |----------------------------------------------------- +; This section lets you remap the player's buttons (to easily change the +; button configuration). The format is: +; old_button = new_button +; If new_button is left blank, the button cannot be pressed. +[Remap] +x = x +y = y +z = z +a = a +b = b +c = c +s = s + +;-| Default Values |------------------------------------------------------- +[Defaults] +; Default value for the "time" parameter of a Command. Minimum 1. +command.time = 15 + +; Default value for the "buffer.time" parameter of a Command. Minimum 1, +; maximum 30. +command.buffer.time = 1 + + +;-| Super Motions |-------------------------------------------------------- +;The following two have the same name, but different motion. +;Either one will be detected by a "command = TripleKFPalm" trigger. +;Time is set to 20 (instead of default of 15) to make the move +;easier to do. +; +[Command] +name = "TripleKFPalm" +command = ~D, DF, F, D, DF, F, x +time = 20 + +[Command] +name = "TripleKFPalm" ;Same name as above +command = ~D, DF, F, D, DF, F, y +time = 20 + +[Command] +name = "SmashKFUpper" +command = ~D, DB, B, D, DB, B, x;~F, D, DF, F, D, DF, x +time = 20 + +[Command] +name = "SmashKFUpper" ;Same name as above +command = ~D, DB, B, D, DB, B, y;~F, D, DF, F, D, DF, y +time = 20 + +;-| Special Motions |------------------------------------------------------ +[Command] +name = "blocking" +command = $F,x +time = 3 + +[Command] +name = "blocking" ;Same name as above (buttons in opposite order) +command = x,$F +time = 3 + +[Command] +name = "upper_x" +command = ~F, D, DF, x + +[Command] +name = "upper_y" +command = ~F, D, DF, y + +[Command] +name = "upper_xy" +command = ~F, D, DF, x+y + +[Command] +name = "QCF_x" +command = ~D, DF, F, x + +[Command] +name = "QCF_y" +command = ~D, DF, F, y + +[Command] +name = "QCF_xy" +command = ~D, DF, F, x+y + +[Command] +name = "QCB_x" +command = ~D, DB, B, x + +[Command] +name = "QCB_y" +command = ~D, DB, B, y + +[Command] +name = "QCB_xy" +command = ~D, DB, B, x+y + +[Command] +name = "QCF_a" +command = ~D, DF, F, a + +[Command] +name = "QCF_b" +command = ~D, DF, F, b + +[Command] +name = "QCF_ab" +command = ~D, DF, F, a+b + +[Command] +name = "FF_ab" +command = F, F, a+b + +[Command] +name = "FF_a" +command = F, F, a + +[Command] +name = "FF_b" +command = F, F, b + +;-| Double Tap |----------------------------------------------------------- +[Command] +name = "FF" ;Required (do not remove) +command = F, F +time = 10 + +[Command] +name = "BB" ;Required (do not remove) +command = B, B +time = 10 + +;-| 2/3 Button Combination |----------------------------------------------- +[Command] +name = "recovery";Required (do not remove) +command = x+y +time = 1 + +;-| Dir + Button |--------------------------------------------------------- +[Command] +name = "down_a" +command = /$D,a +time = 1 + +[Command] +name = "down_b" +command = /$D,b +time = 1 + +;-| Single Button |--------------------------------------------------------- +[Command] +name = "a" +command = a +time = 1 + +[Command] +name = "b" +command = b +time = 1 + +[Command] +name = "c" +command = c +time = 1 + +[Command] +name = "x" +command = x +time = 1 + +[Command] +name = "y" +command = y +time = 1 + +[Command] +name = "z" +command = z +time = 1 + +[Command] +name = "start" +command = s +time = 1 + +;-| Hold Dir |-------------------------------------------------------------- +[Command] +name = "holdfwd";Required (do not remove) +command = /$F +time = 1 + +[Command] +name = "holdback";Required (do not remove) +command = /$B +time = 1 + +[Command] +name = "holdup" ;Required (do not remove) +command = /$U +time = 1 + +[Command] +name = "holddown";Required (do not remove) +command = /$D +time = 1 + +;--------------------------------------------------------------------------- +; 2. State entry +; -------------- +; This is where you define what commands bring you to what states. +; +; Each state entry block looks like: +; [State -1, Label] ;Change Label to any name you want to use to +; ;identify the state with. +; type = ChangeState ;Don't change this +; value = new_state_number +; trigger1 = command = command_name +; . . . (any additional triggers) +; +; - new_state_number is the number of the state to change to +; - command_name is the name of the command (from the section above) +; - Useful triggers to know: +; - statetype +; S, C or A : current state-type of player (stand, crouch, air) +; - ctrl +; 0 or 1 : 1 if player has control. Unless "interrupting" another +; move, you'll want ctrl = 1 +; - stateno +; number of state player is in - useful for "move interrupts" +; - movecontact +; 0 or 1 : 1 if player's last attack touched the opponent +; useful for "move interrupts" +; +; Note: The order of state entry is important. +; State entry with a certain command must come before another state +; entry with a command that is the subset of the first. +; For example, command "fwd_a" must be listed before "a", and +; "fwd_ab" should come before both of the others. +; +; For reference on triggers, see CNS documentation. +; +; Just for your information (skip if you're not interested): +; This part is an extension of the CNS. "State -1" is a special state +; that is executed once every game-tick, regardless of what other state +; you are in. + + +; Don't remove the following line. It's required by the CMD standard. +[Statedef -1] + +;=========================================================================== +;--------------------------------------------------------------------------- +;Smash Kung Fu Upper (uses one super bar) +[State -1, Smash Kung Fu Upper] +type = ChangeState +value = 3050 +triggerall = command = "SmashKFUpper" +triggerall = power >= 1000 +triggerall = statetype != A +trigger1 = ctrl +trigger2 = hitdefattr = SC, NA, SA, HA +trigger2 = stateno != [3050,3100) +trigger2 = movecontact +trigger3 = stateno = 1310 || stateno = 1330 ;From blocking + +;--------------------------------------------------------------------------- +;Triple Kung Fu Palm (uses one super bar) +[State -1, Triple Kung Fu Palm] +type = ChangeState +value = 3000 +triggerall = command = "TripleKFPalm" +triggerall = power >= 1000 +trigger1 = statetype = S +trigger1 = ctrl +trigger2 = statetype != A +trigger2 = hitdefattr = SC, NA, SA, HA +trigger2 = stateno != [3000,3050) +trigger2 = movecontact +trigger3 = stateno = 1310 || stateno = 1330 ;From blocking + + +;=========================================================================== +;This is not a move, but it sets up var(1) to be 1 if conditions are right +;for a combo into a special move (used below). +;Since a lot of special moves rely on the same conditions, this reduces +;redundant logic. +[State -1, Combo condition Reset] +type = VarSet +trigger1 = 1 +var(1) = 0 + +[State -1, Combo condition Check] +type = VarSet +trigger1 = statetype != A +trigger1 = ctrl +trigger2 = (stateno = [200,299]) || (stateno = [400,499]) +trigger2 = stateno != 440 ;Except for sweep kick +trigger2 = movecontact +trigger3 = stateno = 1310 || stateno = 1330 ;From blocking +var(1) = 1 + +;--------------------------------------------------------------------------- +;Fast Kung Fu Knee (1/3 super bar) +[State -1, Fast Kung Fu Knee] +type = ChangeState +value = 1070 +triggerall = command = "FF_ab" +triggerall = power >= 330 +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Light Kung Fu Knee +[State -1, Light Kung Fu Knee] +type = ChangeState +value = 1050 +triggerall = command = "FF_a" +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Strong Kung Fu Knee +[State -1, Strong Kung Fu Knee] +type = ChangeState +value = 1060 +triggerall = command = "FF_b" +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Fast Kung Fu Palm (1/3 super bar) +[State -1, Fast Kung Fu Palm] +type = ChangeState +value = 1020 +triggerall = command = "QCF_xy" +triggerall = power >= 330 +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Light Kung Fu Palm +[State -1, Light Kung Fu Palm] +type = ChangeState +value = 1000 +triggerall = command = "QCF_x" +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Strong Kung Fu Palm +[State -1, Strong Kung Fu Palm] +type = ChangeState +value = 1010 +triggerall = command = "QCF_y" +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Fast Kung Fu Upper (1/3 super bar) +[State -1, Fast Kung Fu Upper] +type = ChangeState +value = 1120 +triggerall = command = "upper_xy" +triggerall = power >= 330 +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Light Kung Fu Upper +[State -1, Light Kung Fu Upper] +type = ChangeState +value = 1100 +triggerall = command = "upper_x" +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Strong Kung Fu Upper +[State -1, Strong Kung Fu Upper] +type = ChangeState +value = 1110 +triggerall = command = "upper_y" +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Fast Kung Fu Blow (1/3 super bar) +[State -1, Fast Kung Fu Blow] +type = ChangeState +value = 1220 +triggerall = command = "QCB_xy" +triggerall = power >= 330 +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Light Kung Fu Blow +[State -1, Light Kung Fu Blow] +type = ChangeState +value = 1200 +triggerall = command = "QCB_x" +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Strong Kung Fu Blow +[State -1, Strong Kung Fu Blow] +type = ChangeState +value = 1210 +triggerall = command = "QCB_y" +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;High Kung Fu Blocking (High) +[State -1, High Kung Fu Blocking High] +type = ChangeState +value = 1300 +triggerall = command = "blocking" +triggerall = command != "holddown" +trigger1 = ctrl +trigger1 = statetype != A +trigger2 = stateno = 1310 || stateno = 1330 +trigger2 = time > 0 + +;--------------------------------------------------------------------------- +;High Kung Fu Blocking (Low) +[State -1, High Kung Fu Blocking Low] +type = ChangeState +value = 1320 +triggerall = command = "blocking" +triggerall = command = "holddown" +trigger1 = ctrl +trigger1 = statetype != A +trigger2 = stateno = 1310 || stateno = 1330 +trigger2 = time > 0 + +;--------------------------------------------------------------------------- +;High Kung Fu Blocking (Air) +[State -1, High Kung Fu Blocking Low] +type = ChangeState +value = 1340 +triggerall = command = "blocking" +triggerall = command != "holdup" +triggerall = command != "holddown" +trigger1 = ctrl +trigger1 = statetype = A +trigger2 = stateno = 1350 +trigger2 = time > 0 + +;--------------------------------------------------------------------------- +;Far Kung Fu Zankou +[State -1, Far Kung Fu Zankou] +type = ChangeState +value = 1420 +triggerall = command = "QCF_ab" +triggerall = power >= 330 +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Light Kung Fu Zankou +[State -1, Light Kung Fu Zankou] +type = ChangeState +value = 1400 +triggerall = command = "QCF_a" +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Strong Kung Fu Zankou +[State -1, Strong Kung Fu Zankou] +type = ChangeState +value = 1410 +triggerall = command = "QCF_b" +trigger1 = var(1) ;Use combo condition (above) + +;=========================================================================== +;--------------------------------------------------------------------------- +;Run Fwd +[State -1, Run Fwd] +type = ChangeState +value = 100 +trigger1 = command = "FF" +trigger1 = statetype = S +trigger1 = ctrl + +;--------------------------------------------------------------------------- +;Run Back +[State -1, Run Back] +type = ChangeState +value = 105 +trigger1 = command = "BB" +trigger1 = statetype = S +trigger1 = ctrl + +;--------------------------------------------------------------------------- +;Kung Fu Throw +[State -1, Kung Fu Throw] +type = ChangeState +value = 800 +triggerall = command = "y" +triggerall = statetype = S +triggerall = ctrl +triggerall = stateno != 100 +trigger1 = command = "holdfwd" +trigger1 = p2bodydist X < 3 +trigger1 = (p2statetype = S) || (p2statetype = C) +trigger1 = p2movetype != H +trigger2 = command = "holdback" +trigger2 = p2bodydist X < 5 +trigger2 = (p2statetype = S) || (p2statetype = C) +trigger2 = p2movetype != H + + + +;=========================================================================== +;--------------------------------------------------------------------------- +;Stand Light Punch +[State -1, Stand Light Punch] +type = ChangeState +value = 200 +triggerall = command = "x" +triggerall = command != "holddown" +trigger1 = statetype = S +trigger1 = ctrl +trigger2 = stateno = 200 +trigger2 = time > 6 + +;--------------------------------------------------------------------------- +;Stand Strong Punch +[State -1, Stand Strong Punch] +type = ChangeState +value = 210 +triggerall = command = "y" +triggerall = command != "holddown" +trigger1 = statetype = S +trigger1 = ctrl +trigger2 = (stateno = 200) && time > 5 +trigger3 = (stateno = 230) && time > 6 + +;--------------------------------------------------------------------------- +;Stand Light Kick +[State -1, Stand Light Kick] +type = ChangeState +value = 230 +triggerall = command = "a" +triggerall = command != "holddown" +trigger1 = statetype = S +trigger1 = ctrl +trigger2 = (stateno = 200) && time > 7 +trigger3 = (stateno = 230) && time > 9 + +;--------------------------------------------------------------------------- +;Standing Strong Kick +[State -1, Standing Strong Kick] +type = ChangeState +value = 240 +triggerall = command = "b" +triggerall = command != "holddown" +trigger1 = statetype = S +trigger1 = ctrl +trigger2 = (stateno = 200) && time > 5 +trigger3 = (stateno = 230) && time > 6 + +;--------------------------------------------------------------------------- +;Taunt +[State -1, Taunt] +type = ChangeState +value = 195 +triggerall = command = "start" +trigger1 = statetype != A +trigger1 = ctrl + +;--------------------------------------------------------------------------- +;Crouching Light Punch +[State -1, Crouching Light Punch] +type = ChangeState +value = 400 +triggerall = command = "x" +triggerall = command = "holddown" +trigger1 = statetype = C +trigger1 = ctrl + +;--------------------------------------------------------------------------- +;Crouching Strong Punch +[State -1, Crouching Strong Punch] +type = ChangeState +value = 410 +triggerall = command = "y" +triggerall = command = "holddown" +trigger1 = statetype = C +trigger1 = ctrl +trigger2 = (stateno = 400) || (stateno = 430) +trigger2 = (time > 9) || (movecontact && time > 5) + +;--------------------------------------------------------------------------- +;Crouching Light Kick +[State -1, Crouching Light Kick] +type = ChangeState +value = 430 +triggerall = command = "a" +triggerall = command = "holddown" +trigger1 = statetype = C +trigger1 = ctrl +trigger2 = (stateno = 400) || (stateno = 430) +trigger2 = (time > 9) || (movecontact && time > 5) + +;--------------------------------------------------------------------------- +;Crouching Strong Kick +[State -1, Crouching Strong Kick] +type = ChangeState +value = 440 +triggerall = command = "b" +triggerall = command = "holddown" +trigger1 = statetype = C +trigger1 = ctrl +trigger2 = (stateno = 400) || (stateno = 430) +trigger2 = (time > 9) || (movecontact && time > 5) + +;--------------------------------------------------------------------------- +;Jump Light Punch +[State -1, Jump Light Punch] +type = ChangeState +value = 600 +triggerall = command = "x" +trigger1 = statetype = A +trigger1 = ctrl +trigger2 = stateno = 600 +trigger2 = statetime >= 7 +trigger3 = stateno = 1350 ;Air blocking + +;--------------------------------------------------------------------------- +;Jump Strong Punch +[State -1, Jump Strong Punch] +type = ChangeState +value = 610 +triggerall = command = "y" +trigger1 = statetype = A +trigger1 = ctrl +trigger2 = stateno = 600 || stateno = 630 ;jump_x or jump_a +trigger2 = movecontact +trigger3 = stateno = 1350 ;Air blocking + +;--------------------------------------------------------------------------- +;Jump Light Kick +[State -1, Jump Light Kick] +type = ChangeState +value = 630 +triggerall = command = "a" +trigger1 = statetype = A +trigger1 = ctrl +trigger2 = stateno = 1350 ;Air blocking + +;--------------------------------------------------------------------------- +;Jump Strong Kick +[State -1, Jump Strong Kick] +type = ChangeState +value = 640 +triggerall = command = "b" +trigger1 = statetype = A +trigger1 = ctrl +trigger2 = stateno = 600 || stateno = 630 ;jump_x or jump_a +trigger2 = movecontact +trigger3 = stateno = 1350 ;Air blocking diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/kfm.cns b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/kfm.cns new file mode 100644 index 00000000..a49fefd5 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/kfm.cns @@ -0,0 +1,3470 @@ +; KFM's constants and state file. +; There are comments scattered through this file, so you may like to +; take a look if would like to learn more about the cns. + +[Data] +;Amount of life to start with +life = 1000 +;attack power (more is stronger) +attack = 100 +;defensive power (more is stronger) +defence = 100 +;Percentage to increase defense everytime player is knocked down +fall.defence_up = 50 +;Time which player lies down for, before getting up +liedown.time = 60 +;Number of points for juggling +airjuggle = 15 +;Default hit spark number for HitDefs +sparkno = 2 +;Default guard spark number +guard.sparkno = 40 +;1 to enable echo on KO +KO.echo = 0 +;Volume offset (negative for softer) +volume = 0 +;Variables with this index and above will not have their values +;reset to 0 between rounds or matches. There are 60 int variables, +;indexed from 0 to 59, and 40 float variables, indexed from 0 to 39. +;If omitted, then it defaults to 60 and 40 for integer and float +;variables repectively, meaning that none are persistent, i.e. all +;are reset. If you want your variables to persist between matches, +;you need to override state 5900 from common1.cns. +IntPersistIndex = 60 +FloatPersistIndex = 40 + +[Size] +xscale = 1 ;Horizontal scaling factor. +yscale = 1 ;Vertical scaling factor. +ground.back = 15 ;Player width (back, ground) +ground.front = 16 ;Player width (front, ground) +air.back = 12 ;Player width (back, air) +air.front = 12 ;Player width (front, air) +height = 60 ;Height of player (for opponent to jump over) +attack.dist = 160 ;Default attack distance +proj.attack.dist = 90 ;Default attack distance for projectiles +proj.doscale = 0 ;Set to 1 to scale projectiles too +head.pos = -5, -90 ;Approximate position of head +mid.pos = -5, -60 ;Approximate position of midsection +shadowoffset = 0 ;Number of pixels to vertically offset the shadow +draw.offset = 0,0 ;Player drawing offset in pixels (x, y). Recommended 0,0 + +[Velocity] +walk.fwd = 2.4 ;Walk forward +walk.back = -2.2 ;Walk backward +run.fwd = 4.6, 0 ;Run forward (x, y) +run.back = -4.5,-3.8 ;Hop backward (x, y) +jump.neu = 0,-8.4 ;Neutral jumping velocity (x, y) +jump.back = -2.55 ;Jump back Speed (x, y) +jump.fwd = 2.5 ;Jump forward Speed (x, y) +runjump.back = -2.55,-8.1 ;Running jump speeds (opt) +runjump.fwd = 4,-8.1 ;. +airjump.neu = 0,-8.1 ;. +airjump.back = -2.55 ;Air jump speeds (opt) +airjump.fwd = 2.5 ;. +air.gethit.groundrecover = -.15,-3.5 ;Velocity for ground recovery state (x, y) **MUGEN 1.0** +air.gethit.airrecover.mul = .5,.2 ;Multiplier for air recovery velocity (x, y) **MUGEN 1.0** +air.gethit.airrecover.add = 0,-4.5 ;Velocity offset for air recovery (x, y) **MUGEN 1.0** +air.gethit.airrecover.back = -1 ;Extra x-velocity for holding back during air recovery **MUGEN 1.0** +air.gethit.airrecover.fwd = 0 ;Extra x-velocity for holding forward during air recovery **MUGEN 1.0** +air.gethit.airrecover.up = -2 ;Extra y-velocity for holding up during air recovery **MUGEN 1.0** +air.gethit.airrecover.down = 1.5 ;Extra y-velocity for holding down during air recovery **MUGEN 1.0** + +[Movement] +airjump.num = 1 ;Number of air jumps allowed (opt) +airjump.height = 35 ;Minimum distance from ground before you can air jump (opt) +yaccel = .44 ;Vertical acceleration +stand.friction = .85 ;Friction coefficient when standing +crouch.friction = .82 ;Friction coefficient when crouching +stand.friction.threshold = 2 ;If player's speed drops below this threshold while standing, stop his movement **MUGEN 1.0** +crouch.friction.threshold = .05 ;If player's speed drops below this threshold while crouching, stop his movement **MUGEN 1.0** +air.gethit.groundlevel = 25 ;Y-position at which a falling player is considered to hit the ground **MUGEN 1.0** +air.gethit.groundrecover.ground.threshold = -20 ;Y-position below which falling player can use the recovery command **MUGEN 1.0** +air.gethit.groundrecover.groundlevel = 10 ;Y-position at which player in the ground recovery state touches the ground **MUGEN 1.0** +air.gethit.airrecover.threshold = -1 ;Y-velocity above which player may use the air recovery command **MUGEN 1.0** +air.gethit.airrecover.yaccel = .35 ;Vertical acceleration for player in the air recovery state **MUGEN 1.0** +air.gethit.trip.groundlevel = 15 ;Y-position at which player in the tripped state touches the ground **MUGEN 1.0** +down.bounce.offset = 0, 20 ;Offset for player bouncing off the ground (x, y) **MUGEN 1.0** +down.bounce.yaccel = .4 ;Vertical acceleration for player bouncing off the ground **MUGEN 1.0** +down.bounce.groundlevel = 12 ;Y-position at which player bouncing off the ground touches the ground again **MUGEN 1.0** +down.friction.threshold = .05 ;If the player's speed drops below this threshold while lying down, stop his movement **MUGEN 1.0** + +;Default language victory quotes (optional). **MUGEN 1.0** +;If this section is included, the default language victory quotes must be in English. +[Quotes] +; Up to 100 victory quotes can be specified per language (victory0 - victory99) +victory1 = "You must defeat Tu Shou to stand a chance." +victory2 = "You need a lot of training. Come back in ten years." +victory3 = "You look familiar. Did I see you on TV?" +victory4 = "Your moves are too predictable. You want to learn Kung Fu Palm? It's not for novices." +victory5 = "That was a good workout." +victory6 = "I want to challenge more skilled fighters." +victory7 = "What do you mean my girlfriend is in another temple?" + +;Alternate language victory quotes (optional). +;0 or more alternate language sections may be added, preceded by the +;ISO 639-1 code followed by a ".", e.g. "[ja.Quotes]". +;See language setting in mugen.cfg. +[ja.Quotes] +victory1 = "カンフーçª�ã��手を破らã�¬é™�りã€�ã�Šå‰�ã�«å‹�ã�¡ç›®ã�¯ã�ªã�„ï¼�" +victory2 = "å��å¹´æ—©ã�„ã‚“ã� ã�ž" +victory3 = "ã�Šå‰�ã�¯è¦‹è¦šã�ˆã�Œã�‚ã‚‹ã�ªã€‚テレビã�«ã�§ã‚‚…?" +victory4 = "ã�Šå‰�ã�®å‹•ã��ã�¯è¦‹ç ´ã‚Šã‚„ã�™ã�™ã�Žã‚‹ã€‚ ã�ªã�«ã€�カンフーçª�ã��手ã�Œè¦šã�ˆã�Ÿã�„ã‚“ã� ã�¨ï¼Ÿã€€ç´ äººã�«ã�¯ç„¡ç�†ã� ã�ž" +victory5 = "ã�µãƒ¼ã€‚ ã�„ã�„æ±—ã� ã�£ã�Ÿ" +victory6 = "ã‚‚ã�£ã�¨å¼·ã�„相手ã�«æŒ‘戦ã�—ã�Ÿã�„" +victory7 = "ã�ªã‚“ã� ã�¨ï¼�彼女ã�¯ã�“ã�“ã�«ã‚‚ã�„ã�ªã�„ã�¨ï¼Ÿ" + +;--------------------------------------------------------------------------- +; Variable usage: +; This is a record of the variables that KFM uses. Keeping a record of your +; variable usage helps you avoid careless mistakes later. +; var(1) - Used in kfm.cmd for combo condition (updated every tick) +; var(2) - Used in Kung Fu Throw (state 800) to remember if fwd was being +; held (remembered from state 800 through state 810). + + +;--------------------------------------------------------------------------- +; Lose by Time Over +; CNS difficulty: basic +[Statedef 170] +type = S +ctrl = 0 +anim = 170 +velset = 0,0 + +[State 170, 1] +type = NotHitBy +trigger1 = 1 +value = SCA +time = 1 + +;--------------------------------------------------------------------------- +; Win state decider +; CNS difficulty: basic +[Statedef 180] +type = S + +[State 180, 1] +type = ChangeState +trigger1 = Time = 0 +value = 181 + +;--------------------------------------------------------------------------- +; Win pose 1 - Bow +; CNS difficulty: basic +[Statedef 181] +type = S +ctrl = 0 +anim = 181 +velset = 0,0 + +[State 181, 1] +type = NotHitBy +trigger1 = 1 +value = SCA +time = 1 + +;--------------------------------------------------------------------------- +; Introduction +; CNS difficulty: basic +[Statedef 191] +type = S +ctrl = 0 +anim = 190 +velset = 0,0 + +[State 191, 1] ;Freeze animation until PreIntro is over +type = ChangeAnim +trigger1 = RoundState = 0 +value = 190 + +[State 191, 2] ;Assert this until you want "round 1, fight" to begin +type = AssertSpecial +trigger1 = 1 +flag = Intro + +[State 191, 3] ;Change to stand state when done +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 + +; You can delete the following two controllers if you're building your own +; character using KFM. These are the wood pieces that KFM kicks. +[State 191, Wood 1] +type = Explod +trigger1 = RoundState != 0 +persistent = 0 +anim = 191 +postype = p1 +pos = 260, -90 +velocity = -4.2, -7 +accel = 0, .32 +removetime = 48 + +[State 191, Wood 2] +type = Explod +trigger1 = AnimElemTime(7) = 1 +anim = 192 +postype = p1 +pos = 60, -70 +velocity = 2, -4 +accel = 0, .32 +removetime = 35 + +; You can delete the following two controllers if you're building your own +; character using KFM. These play back the sounds of the wood block being +; broken. +[State 191, Snd 1] +type = PlaySnd +trigger1 = AnimElem = 7 +value = F5,2 +volume = -40 + +[State 191, Snd 2] +type = PlaySnd +trigger1 = AnimElemTime(7) = 3 +value = F5,3 +volume = -80 + +;--------------------------------------------------------------------------- +; Taunt +; CNS difficulty: easy +[Statedef 195] +type = S +ctrl = 0 +anim = 195 +velset = 0,0 +movetype = I +physics = S +sprpriority = 2 + +[State 195, 1] +type = CtrlSet +trigger1 = Time = 40 +value = 1 + +[State 195, 2] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + + +;--------------------------------------------------------------------------- +; Stand Light Punch +; CNS difficulty: easy +[Statedef 200] +type = S ;State-type: S-stand, C-crouch, A-air, L-liedown +movetype= A ;Move-type: A-attack, I-idle, H-gethit +physics = S ;Physics: S-stand, C-crouch, A-air +juggle = 1 ;Number of air juggle points move takes +;Commonly-used controllers: +velset = 0,0 ;Set velocity (x,y) (Def: no change) +ctrl = 0 ;Set ctrl (Def: no change) +anim = 200 ;Change animation (Def: no change) +poweradd = 10 ;Power to add (Def: 0) +sprpriority = 2 ;Set p1's sprite layering priority to 2 (in front) + +[State 200, 1] +type = HitDef +trigger1 = AnimElem = 3 +attr = S, NA ;Attribute: Standing, Normal Attack +damage = 23, 0 ;Damage that move inflicts, guard damage +animtype = Light ;Animation type: Light, Medium, Heavy, Back (def: Light) +guardflag = MA ;Flags on how move is to be guarded against +hitflag = MAF ;Flags of conditions that move can hit +priority = 3, Hit ;Attack priority: 0 (least) to 7 (most), 4 default +;Hit/Miss/Dodge type (Def: Hit) +pausetime = 8, 8 ;Time attacker pauses, time opponent shakes +sparkno = 0 ;Spark anim no (Def: set above) +sparkxy = -10, -76 ;X-offset for the "hit spark" rel. to p2, +;Y-offset for the spark rel. to p1 +hitsound = 5, 0 ;Sound to play on hit +guardsound = 6, 0 ;Sound to play on guard +ground.type = High ;Type: High, Low, Trip (def: Normal) +ground.slidetime = 5 ;Time that the opponent slides back +ground.hittime = 11 ;Time opponent is in hit state +ground.velocity = -4 ;Velocity at which opponent is pushed +airguard.velocity = -1.9,-.8 ;Guard velocity in air (def: (air.xvel*1.5, air.yvel/2)) +air.type = High ;Type: High, Low, Trip (def: same as ground.type) +air.velocity = -1.4,-3 ;X-velocity at which opponent is pushed, +;Y-velocity at which opponent is pushed +air.hittime = 15 ;Time before opponent regains control in air + +[State 200, 2] +type = PlaySnd +trigger1 = Time = 1 +value = 0, 0 + +[State 200, 3] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Standing strong punch +; CNS difficulty: easy +; Note the width controller. It makes KFM's push box larger, so he doesn't +; stand so close to the opponent. Hit Ctrl-C and look at the red bar at his +; feet. +; The sprpriority for this state is at -1, instead of the usual 2 for +; attacks. This makes KFM appear behind the opponent initially. +; The SprPriority controller in [State 210, 4] brings KFM to the front when +; his arm has swung over. +; To stop KFM from pausing in his swing frame, there is a ChangeAnim in +; [State 210, 3] that detects if the hit has come in contact with the +; opponent during that frame, and switches to the next animation element +; (notice the elem=6 parameter). If you don't see what I mean, try commenting +; out that controller, then hit someone with this attack. +[Statedef 210] +type = S +movetype= A +physics = S +juggle = 4 +poweradd= 30 +ctrl = 0 +velset = 0,0 +anim = 210 +sprpriority = -1 + +[State 210, Width] +type = Width +trigger1 = (AnimElemTime (2) >= 0) && (AnimElemTime (7) < 0) +value = 15,0 + +[State 210, 1] +type = PlaySnd +trigger1 = Time = 2 +value = 0, 4 + +[State 210, 2] +type = HitDef +trigger1 = AnimElem = 3 +attr = S, NA +animtype = Medium +damage = 57 +guardflag = MA +pausetime = 12,12 +sparkno = 1 +sparkxy = -10,-70 +hitsound = 5,2 +guardsound = 6,0 +ground.type = High +ground.slidetime = 12 +ground.hittime = 16 +ground.velocity = -5.5 +air.velocity = -2.5,-4 +forcenofall = 1 + +[State 210, 3] +type = ChangeAnim +trigger1 = AnimElemTime(5) > 0 && AnimElemTime(6) <= 0 +trigger1 = movecontact +ignorehitpause = 1 +persistent = 0 +value = 210 +elem = 6 + +[State 210, 4] +type = SprPriority +trigger1 = AnimElem = 5 +value = 2 + +[State 210, 5] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Standing light kick +; CNS difficulty: easy +[Statedef 230] +type = S +movetype= A +physics = S +juggle = 4 +poweradd= 11 +ctrl = 0 +velset = 0,0 +anim = 230 +sprpriority = 2 + +[State 230, 1] +type = PlaySnd +trigger1 = Time = 2 +value = 0, 1 + +[State 230, 2] +type = HitDef +trigger1 = Time = 0 +attr = S, NA +animtype = Medium +damage = 26 +guardflag = MA +pausetime = 12,12 +sparkno = 0 +sparkxy = -10,-37 +hitsound = 5,1 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 10 +ground.hittime = 14 +ground.velocity = -5 +air.velocity = -2.5,-3.5 + +[State 230, 3] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Standing strong kick +; CNS difficulty: easy +[Statedef 240] +type = S +movetype= A +physics = S +juggle = 5 +poweradd= 30 +ctrl = 0 +velset = 0,0 +anim = 240 +sprpriority = 2 + +[State 240, 1] +type = PlaySnd +trigger1 = Time = 2 +value = 0, 1 + +[State 240, 2] +type = HitDef +trigger1 = Time = 0 +attr = S, NA +animtype = Medium +damage = 63 +guardflag = MA +pausetime = 12,12 +sparkno = 1 +sparkxy = -10,-60 +hitsound = 5,2 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 12 +ground.hittime = 17 +ground.velocity = -6 +air.velocity = -2.2,-3.2 + +[State 240, 3] +type = PosAdd +trigger1 = AnimElem = 7 +x = 12 + +[State 240, 4] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +;Crouching light punch +; CNS difficulty: easy +; Description: Simple crouching attack. The HitDef's guardflag parameter +; is set to "L", meaning that the move can only be guarded low +; (crouching), and not by standing or jumping opponents. +; Like for all light attacks, it's a good idea to keep the slidetime +; and hittime parameters at a smaller number, so the opponent isn't +; stunned for too long. For all crouching attacks you have to +; remember to set the attr parameter to indicate that it is crouching +; attack. In this case, "C, NA" stands for "crouching, normal attack". +; The HitDef's priority is set at 3, instead of the default of 4, +; so this attack has a lower priority than most others, meaning +; KFM will get hit instead of trading hits with his opponent if +; their attack collision boxes (Clsn1) intersect each other's Clsn2 +; boxes at the same time. +[Statedef 400] +type = C +movetype= A +physics = C +juggle = 5 +poweradd= 8 +ctrl = 0 +anim = 400 +sprpriority = 2 + +[State 400, 1] +type = PlaySnd +trigger1 = Time = 1 +value = 0, 0 + +[State 400, 2] +type = HitDef +trigger1 = Time = 0 +attr = C, NA +damage = 23 +priority = 3 +animtype = Light +hitflag = MAF +guardflag = L +pausetime = 10,11 +sparkno = 0 +sparkxy = -10,-42 +hitsound = 5,0 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 4 +ground.hittime = 9 +ground.velocity = -4 +air.velocity = -1.5,-3 + +[State 400, 3] +type = CtrlSet +trigger1 = Time = 6 +value = 1 + +[State 400, 4] +type = ChangeState +trigger1 = AnimTime = 0 +value = 11 + +;--------------------------------------------------------------------------- +;Crouching strong punch +; CNS difficulty: easy +; Description: This is a 2-hit move. It is done by having two HitDefs +; triggered, one for each frame of animation that hits. +; Notice how the first hit cannot be guarded by an opponent in the +; air, because of the "M" in the guardflag, meaning it can only +; be guarded "middle". The second hit has an "MA" guardflag, so +; it can be guarded both on the ground and in the air. +[Statedef 410] +type = C +movetype= A +physics = C +juggle = 6 +poweradd= 25 +ctrl = 0 +anim = 410 +sprpriority = 2 + +[State 410, 1] +type = PlaySnd +trigger1 = Time = 1 +value = 0, 0 + +;This is the first hit, triggered on the 3rd element of animation. +[State 410, 2] +type = HitDef +trigger1 = AnimElem = 3 +attr = C, NA +damage = 37 +animtype = Medium +hitflag = MAF +guardflag = M +pausetime = 12,12 +sparkno = 1 +sparkxy = -10,-55 +hitsound = 5,2 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 12 +ground.hittime = 17 +ground.velocity = -4 +air.velocity = -3,-4 + +;This is the second hit, triggered on the 4th element of animation. +[State 410, 3] +type = HitDef +trigger1 = AnimElem = 4 +attr = C, NA +damage = 36 +animtype = Medium +hitflag = MAF +guardflag = MA +pausetime = 12,12 +sparkxy = -10,-83 +hitsound = 5,2 +guardsound = 6,0 +ground.type = High +ground.slidetime = 12 +ground.hittime = 17 +ground.velocity = -7 +air.velocity = -3,-4 + +[State 410, 4] +type = ChangeState +trigger1 = AnimTime = 0 +value = 11 +ctrl = 1 + +;--------------------------------------------------------------------------- +;Crouching light kick +; CNS difficulty: easy +[Statedef 430] +type = C +movetype= A +physics = C +juggle = 5 +poweradd= 11 +ctrl = 0 +anim = 430 +sprpriority = 2 + +[State 430, 1] +type = PlaySnd +trigger1 = Time = 1 +value = 0, 0 + +[State 430, 2] +type = HitDef +trigger1 = Time = 0 +attr = C, NA +damage = 28 +animtype = Light +hitflag = MAFD +guardflag = L +pausetime = 12,12 +sparkno = 0 +sparkxy = -10,-8 +hitsound = 5,1 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 6 +ground.hittime = 10 +ground.velocity = -5 +air.velocity = -2,-3 +down.velocity = -5,0 +down.hittime = 22 + +[State 430, 3] +type = ChangeState +trigger1 = AnimTime = 0 +value = 11 +ctrl = 1 + +;--------------------------------------------------------------------------- +;Crouch Strong Kick +; CNS difficulty: easy +; Description: This move uses "Trip" for the "ground.type" parameter in +; its HitDef. It's a special type that puts the opponent in a tripped +; animation as he falls. Also, the hitflag parameter in the HitDef +; is set to "MAFD". The "D" indicates that a downed opponent can be +; hit by the attack. +[Statedef 440] +type = C +movetype= A +physics = C +juggle = 7 +poweradd= 35 +ctrl = 0 +anim = 440 +sprpriority = 2 + +[State 440, 2] +type = PlaySnd +trigger1 = Time = 2 +value = 0, 2 + +[State 440, 3] +type = HitDef +trigger1 = Time = 0 +attr = C, NA +damage = 72 +hitflag = MAFD +guardflag = L +pausetime = 12,12 +sparkno = 1 +sparkxy = -5,-10 +hitsound = 5,2 +guardsound = 6,0 +ground.type = Trip +ground.slidetime = 10 +ground.hittime = 17 +ground.velocity = -1.5,-2 +air.velocity = -1.2,-3 +guard.velocity = -5 +fall = 1 + +[State 440, 4] +type = ChangeState +trigger1 = AnimTime = 0 +value = 11 +ctrl = 1 + +;--------------------------------------------------------------------------- +;Jump Light Punch +; CNS difficulty: easy +[Statedef 600] +type = A +movetype= A +physics = A +juggle = 2 +poweradd= 5 +ctrl = 0 +anim = 600 +sprpriority = 2 + +[State 600, 1] +type = PlaySnd +trigger1 = Time = 1 +value = 0, 0 + +[State 600, 2] +type = HitDef +trigger1 = Time = 0 +attr = A, NA +damage = 20 +guardflag = HA +priority = 3 +pausetime = 7,8 +sparkno = 0 +sparkxy = -10,-58 +hitsound = 5,0 +guardsound = 6,0 +ground.type = High +ground.slidetime = 5 +ground.hittime = 8 +ground.velocity = -4 +air.velocity = -1.3,-3 +air.hittime = 14 + +[State 600, 3] +type = CtrlSet +trigger1 = Time = 17 +value = 1 + +;--------------------------------------------------------------------------- +;Jump Strong Punch +; CNS difficulty: easy +[Statedef 610] +type = A +movetype= A +physics = A +juggle = 4 +poweradd= 30 +ctrl = 0 +anim = 610 +sprpriority = 2 + +[State 610, 2] +type = PlaySnd +trigger1 = Time = 2 +value = 0, 1 + +[State 610, 3] +type = HitDef +trigger1 = Time = 0 +attr = A, NA +damage = 72 +guardflag = HA +priority = 4 +pausetime = 12,12 +sparkno = 1 +sparkxy = -10,-55 +hitsound = 5,3 +guardsound = 6,0 +animtype = Med +ground.type = High +ground.slidetime = 12 +ground.hittime = 14 +ground.velocity = -6 +air.velocity = -3,-4 + +;--------------------------------------------------------------------------- +;Jump Light Kick +; CNS difficulty: easy +[Statedef 630] +type = A +movetype= A +physics = A +juggle = 3 +poweradd= 10 +ctrl = 0 +anim = 630 +sprpriority = 2 + +[State 630, 1] +type = PlaySnd +trigger1 = Time = 1 +value = 0, 0 + +[State 630, 2] +type = HitDef +trigger1 = Time = 0 +attr = A, NA +damage = 26 +guardflag = HA +priority = 3 +pausetime = 8,8 +sparkno = 1 +sparkxy = -5,-35 +hitsound = 5,0 +guardsound = 6,0 +ground.type = High +ground.slidetime = 6 +ground.hittime = 10 +ground.velocity = -4 +air.velocity = -2,-3 +air.hittime = 14 + +;--------------------------------------------------------------------------- +;Jump Strong Kick +; CNS difficulty: easy +[Statedef 640] +type = A +movetype= A +physics = A +juggle = 4 +poweradd= 30 +ctrl = 0 +anim = 640 +sprpriority = 2 + +[State 640, 2] +type = PlaySnd +trigger1 = Time = 2 +value = 0, 1 + +[State 640, 3] +type = HitDef +trigger1 = Time = 0 +attr = A, NA +damage = 70 +guardflag = HA +priority = 4 +pausetime = 12,12 +sparkno = 1 +sparkxy = -10,-40 +hitsound = 5,3 +guardsound = 6,0 +animtype = Med +ground.type = High +ground.slidetime = 12 +ground.hittime = 15 +ground.velocity = -7 +air.velocity = -3,-4 + +;--------------------------------------------------------------------------- +;Kung Fu Throw - Attempt +; CNS difficulty: medium-advanced +; Description: Throws are not difficult to make, although then can be +; tedious at times. Throw attempt states have a HitDef of a +; special format. The key parameters in a throw are p1stateno +; and p2stateno. If the HitDef successfully connects, then +; the attacker will change to the state number specified by +; p1stateno, and the opponent will be change to the state +; number assigned to p2stateno. The special thing about p2stateno +; is that the opponent will be temporarily brought into the +; attacker's state file. In this case, no matter who the +; opponent is, he will be taken to state 820 of this file (kfm.cns) +; and remain here until the end of the throw (look at his debug +; information when he is being thrown; the text changes to yellow +; to mean that he is in another player's state file). +[Statedef 800] +type = S +movetype= A +physics = S +juggle = 0 +velset = 0,0 +ctrl = 0 +anim = 800 +sprpriority = 2 + +; Notes: The '-' symbol in the hitflag field means that it only affects +; players who are not in a hit state. This prevents KFM from combo-ing +; into the throw. The priority should be set to a low number, such as +; 1 or 2, so that the throw does not take precedence over normal attacks. +; The type of priority must always be set to "Miss" or "Dodge" for throws, +; otherwise strange behavior can result. +[State 800, 1] +type = HitDef +Trigger1 = Time = 0 +attr = S, NT ;Attributes: Standing, Normal Throw +hitflag = M- ;Affect only ground people who are not being hit +priority = 1, Miss ;Throw has low priority, must be miss or dodge type. +sparkno = -1 ;No spark +p1sprpriority = 1 ;Draw p1's sprite in front of p2 + ;p2's sprite priority is set to 0 by default +p1facing = 1 +p2facing = 1 ;Force p2 to face KFM +p1stateno = 810 ;On success, KFM changes to state 810 +p2stateno = 820 ;If hit, p2 changes to state 820 in KFM's cns +guard.dist = 0 ;This prevents p2 from going into a guard state if close +fall = 1 ;Force p2 into falling down + +[State 800, 2] +type = ChangeState +Trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +;Kung Fu Throw - Throwing the opponent +; Description: In this state, KFM throws the opponent by binding him to +; various offsets based on his current frame of animation. For +; example, [State 810, Bind 1] binds the opponent to an offset of +; 28 pixels in front of KFM. That puts him around where KFM's hand +; is at. Is is important to keep the opponent bound using a +; TargetBind controller at all times, until you let him go. This +; is especially important if your player has a Clsn2 box that +; allows him to get hit while throwing someone. Each time a player +; gets hit, all his bound targets will be set to a fall state. If +; the opponent is not bound, then he may get stuck in his thrown +; state when his attacker is knocked out of the throw halfway. +; Notes: There is a TargetLifeAdd controller to decrease the opponent's +; life, and a TargetState controller to change his state to a +; falling state when KFM lets go of him. +[Statedef 810] +type = S +movetype= A +physics = N +anim = 810 +poweradd = 0 + +; Here a variable, var(2), is used to remember whether or not the +; player was holding forward at the start of the state. This variable +; is checked later on to turn KFM around if necessary. +[State 810, Holding fwd?] +type = VarSet +trigger1 = Time = 0 +var(2) = command = "holdfwd" + +[State 810, Grab Sound] +type = PlaySnd +trigger1 = AnimElem = 2 +value = 1, 1 + +[State 810, Throw Sound] +type = PlaySnd +trigger1 = AnimElem = 7 +value = 800, 0 + +[State 810, Bind 1] +type = TargetBind +trigger1 = AnimElemTime(2) < 0 +pos = 28, 0 + +[State 810, Width 2-11] +type = Width +trigger1 = AnimElemTime(2) >= 0 && AnimElemTime(12) < 0 +edge = 60,0 + +[State 810, Bind 2-4] +type = TargetBind +trigger1 = AnimElemTime(2) >= 0 && AnimElemTime(5) < 0 +pos = 58, 0 + +[State 810, Bind 5] +type = TargetBind +trigger1 = AnimElemTime(5) >= 0 && AnimElemTime(6) < 0 +pos = 47, 0 + +[State 810, holdfwd - Turn 6] ;If was holding fwd before, turn now +type = Turn +trigger1 = var(2) +trigger1 = AnimElem = 6 + +[State 810, holdfwd - Pos 6] ;If was holding fwd before, move a little +type = PosAdd +trigger1 = var(2) +trigger1 = AnimElem = 6 +x = -37 + +[State 810, holdfwd - Turn Target 6] ;If was holding fwd before, turn target too +type = TargetFacing +trigger1 = var(2) +trigger1 = AnimElem = 6 +value = -1 + +[State 810, Bind 6] +type = TargetBind +trigger1 = AnimElemTime(6) >= 0 && AnimElemTime(7) < 0 +pos = 41, -60 + +[State 810, Bind 7] +type = TargetBind +trigger1 = AnimElemTime(7) >= 0 && AnimElemTime(8) < 0 +pos = 25, -75 + +[State 810, Bind 8] +type = TargetBind +trigger1 = AnimElemTime(8) >= 0 && AnimElemTime(9) < 0 +pos = 15, -90 + +[State 810, Bind 9] +type = TargetBind +trigger1 = AnimElemTime(9) >= 0 && AnimElemTime(10) < 0 +pos = -5, -96 + +[State 810, Bind 10] +type = TargetBind +trigger1 = AnimElemTime(10) >= 0 && AnimElemTime(11) < 0 +pos = -14, -90 + +[State 810, Bind 11] +type = TargetBind +trigger1 = AnimElem = 11 +pos = -50, -50 + +[State 810, Hurt 11] +type = TargetLifeAdd +trigger1 = AnimElem = 11 +value = -78 + +[State 810, Throw 11] +type = TargetState +trigger1 = AnimElem = 11 +value = 821 + +[State 810, Turn 12] +type = Turn +trigger1 = AnimElem = 12 + +[State 810, Pos 15] +type = PosAdd +trigger1 = AnimElem = 15 +x = -10 + +[State 810, State End] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +;Thrown by Kung Fu Throw +; (a custom gethit state) +; Description: This is the state that the opponent changes to after being +; hit by KFM's throw HitDef. The important thing here is to use a +; ChangeAnim2 controller. The difference between ChangeAnim2 and +; ChangeAnim is that ChangeAnim2 changes the player's animation to +; an action in the AIR file of the attacker (in this case, kfm.air), +; whereas ChangeAnim always changes the player to an action in his +; own AIR file. Look at Action 820 in kfm.air for some extra +; comments. +[Statedef 820] +type = A +movetype= H +physics = N +velset = 0,0 + +[State 820, 1] +type = ChangeAnim2 +Trigger1 = Time = 0 +value = 820 + +;In case attacker loses binding on player for any reason, this controller +;guarantees that the player will never get stuck in this thrown state. +[State 820, 2] +type = SelfState +trigger1 = !gethitvar(isbound) +value = 5050 + +;--------------------------------------------------------------------------- +;Thrown by Kung Fu Throw - thrown into the air +; (a custom gethit state) +; Description: This state has the opponent flying through the air and +; falling down onto the ground. The SelfState controller sets the +; opponent back using to his own state file when he his the ground. +; Controllers 821,2 and 821,3 allow the opponent to recover by +; hitting his recovery command when he is falling. +[Statedef 821] +type = A +movetype= H +physics = N +velset = 2.8,-7 +poweradd = 40 + +[State 821, 1] ;Gravity +type = VelAdd +Trigger1 = 1 +y = .4 + +[State 821, 2] ; Recover near ground (use ChangeState) +type = ChangeState +triggerall = Vel Y > 0 +triggerall = Pos Y >= -20 +triggerall = alive +triggerall = CanRecover +trigger1 = Command = "recovery" +value = 5200 ;HITFALL_RECOVER + +[State 821, 3] ; Recover in mid air (use SelfState) +type = SelfState +triggerall = Vel Y > 0 +triggerall = alive +triggerall = CanRecover +trigger1 = Command = "recovery" +value = 5210 ;HITFALL_AIRRECOVER + +[State 821, 4] ;Hit ground +type = SelfState +trigger1 = Vel Y > 0 +trigger1 = Pos Y >= 0 +value = 5100 ;Hit ground + + +;--------------------------------------------------------------------------- +; Kung Fu Palm +; CNS difficulty: medium +; Description: This is like a standard attack, but with some differences. +; There are two HitDefs in this attack. One is triggered when the +; opponent is near (using a p2bodydist trigger), and the other +; when the opponent is farther away. The main differences between +; the near and far versions of the HitDefs is that the near version +; has a "fall" parameter set to 1, causing the opponent to be knocked +; down. Other minor differences are the damage, and the velocity to +; give the opponent. +; The line "attr = S, SA" line means this is a Standing, Special Attack. +; It is important you have the attr parameter set correctly for all +; you HitDefs. +[Statedef 1000] +type = S +movetype= A +physics = S +juggle = 4 +poweradd= 55 +velset = 0,0 +anim = 1000 +ctrl = 0 +sprpriority = 2 + +[State 1000, 1] +type = PlaySnd +trigger1 = Time = 8 +value = 0, 3 + +[State 1000, 2] +type = PosAdd +trigger1 = AnimElem = 2 +x = 20 + +[State 1000, 3] +type = PosAdd +trigger1 = AnimElem = 3 +trigger2 = AnimElem = 13 +x = 10 + +[State 1000, 4] +type = PosAdd +trigger1 = AnimElem = 5 +x = 5 + +[State 1000, 5] ;Opponent near +type = HitDef +trigger1 = AnimElem = 5 +trigger1 = p2bodydist X < 40 +attr = S, SA +animtype = Hard +damage = 90, 4 +priority = 5 +guardflag = MA +pausetime = 15,15 +sparkxy = -10,-60 +hitsound = 5,4 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 12 +ground.hittime = 17 +ground.velocity = -4,-3.5 +air.velocity = -4,-3 +fall = 1 + +[State 1000, 6] ;Opponent not near +type = HitDef +trigger1 = AnimElem = 5 +trigger1 = p2bodydist X >= 40 +attr = S, SA +animtype = Hard +damage = 85, 4 +priority = 4 +guardflag = MA +pausetime = 15,15 +sparkxy = -10,-60 +hitsound = 5,4 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 12 +ground.hittime = 17 +ground.velocity = -7 +air.velocity = -4,-2.5 + +[State 1000, 6] +type = PosAdd +trigger1 = AnimElem = 9 +x = -5 + +[State 1000, 7] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Strong Kung Fu Palm +; CNS difficulty: medium +[Statedef 1010] +type = S +movetype= A +physics = S +juggle = 4 +poweradd= 60 +velset = 0,0 +anim = 1010 +ctrl = 0 +sprpriority = 2 + +[State 1010, 1] +type = PlaySnd +trigger1 = Time = 9 +value = 0, 3 + +[State 1010, 2] +type = PosAdd +trigger1 = AnimElem = 2 +x = 20 + +[State 1010, 3] +type = PosAdd +trigger1 = AnimElem = 3 +trigger2 = AnimElem = 13 +x = 10 + +[State 1010, 4] +type = PosAdd +trigger1 = AnimElem = 5 +x = 5 + +[State 1010, 5] +type = VelSet +trigger1 = AnimElem = 5 +x = 4 + +[State 1010, 6] ;Opponent near +type = HitDef +trigger1 = AnimElem = 5 +trigger1 = p2bodydist X < 40 +attr = S, SA +animtype = Hard +damage = 90, 4 +priority = 5 +guardflag = MA +pausetime = 15,15 +sparkxy = -10,-60 +hitsound = 5,4 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 12 +ground.hittime = 17 +ground.velocity = -4,-3.5 +air.velocity = -4,-3 +fall = 1 + +[State 1010, 7] ;Opponent not near +type = HitDef +trigger1 = AnimElem = 5 +trigger1 = p2bodydist X >= 40 +attr = S, SA +animtype = Hard +damage = 85, 4 +priority = 4 +guardflag = MA +pausetime = 15,15 +sparkxy = -10,-60 +hitsound = 5,4 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 12 +ground.hittime = 17 +ground.velocity = -7 +air.velocity = -4,-2.5 + +[State 1010, 8] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Fast Kung Fu Palm +; CNS difficulty: advanced +; Description: This is a complicated attack move. If you're a beginner, +; you should skip looking at this for now and check it later when +; you are more comfortable with the cns. +; This move puts the other player in a custom get-hit state. +; The line "p2stateno = 1025" in the HitDef does this. KFM has some +; palette effects as well as after-image effects. +[Statedef 1020] +type = S +movetype= A +physics = N +juggle = 6 +poweradd= -330 +velset = 0,0 +anim = 1020 +ctrl = 0 +sprpriority = 2 + +[State 1020, Friction] +type = VelMul +trigger1 = 1 +x = .85 * ifelse (AnimElemTime(6) < 0, 1, .8) + +[State 1020, Afterimage] +type = AfterImage +trigger1 = Time = 0 +length = 13 +PalBright = 30, 30, 0 +PalContrast = 70, 70, 20 +PalAdd = -10,-10,-10 +PalMul = .85,.85,.50 +TimeGap = 1 +FrameGap = 2 +Trans = Add +time = 2 + +[State 1020, Afterimage] +type = AfterImageTime +trigger1 = AnimElemTime(8) < 0 +time = 2 + +[State 1020, Blink Yellow] +type = PalFX +trigger1 = Time = 0 +time = 20 +add = 32,16,0 +sinadd = 64,32,5,3 + +[State 1020, 1] +type = PlaySnd +trigger1 = Time = 2 +value = 0, 3 + +[State 1020, 2] +type = PosAdd +trigger1 = AnimElem = 2 +x = 20 + +[State 1020, 3] +type = PosAdd +trigger1 = AnimElem = 3 +trigger2 = AnimElem = 12 +x = 10 + +[State 1020, 4] +type = PosAdd +trigger1 = AnimElem = 4 +x = 5 + +[State 1020, 5] +type = VelSet +trigger1 = AnimElem = 4 +x = 13 + +[State 1020, 6] +type = HitDef +trigger1 = AnimElem = 4 +attr = S, SA +animtype = Hard +damage = 95, 5 +getpower = 0 +priority = 4 +guardflag = MA +pausetime = 8,7 +sparkxy = -10,-60 +hitsound = 5,4 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 20 +ground.hittime = 22 +ground.velocity = -8,-7 +guard.velocity = -7 +air.velocity = -8,-7 +airguard.velocity = -5, -4 +fall = 1 +p2stateno = 1025 ;Make p2 go to state 1025 on hit +p2facing = 1 ;Force to face p1 + +[State 1020, 7] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;------------------ +; Hit by Fast Kung Fu Palm - shaking from the hit +; (a custom gethit state) +; See State 1020 for details +[Statedef 1025] +type = A +movetype= H +physics = N +velset = 0,0 + +[State 1025, Anim] ;Custom animation +type = ChangeAnim2 +trigger1 = 1 +value = 1025 + +[State 1025, State] +type = ChangeState +trigger1 = HitShakeOver = 1 +value = 1026 + +;------------------ +; Hit by Fast Kung Fu Palm - flying through the air +; (a custom gethit state) +[Statedef 1026] +type = A +movetype= H +physics = N + +[State 1026, Velocity] +type = HitVelSet +trigger1 = Time = 0 +x = 1 +y = 1 + +[State 1026, Gravity] +type = VelAdd +trigger1 = 1 +y = .45 + +[State 1026, No scroll] +type = ScreenBound +triggerall = Pos y < -15 +trigger1 = BackEdgeBodyDist < 65 +trigger2 = FrontEdgeBodyDist < 65 +value = 1 +movecamera = 0,1 + +[State 1026, Hit wall] +type = ChangeState +triggerall = Pos y < -15 +trigger1 = BackEdgeBodyDist <= 20 +trigger2 = FrontEdgeBodyDist <= 20 +value = 1027 + +[State 1026, Hit ground] +type = SelfState +trigger1 = (Vel y > 0) && (Pos y >= 0) +value = 5100 + +;------------------ +; Hit by Fast Kung Fu Palm - hit wall +; (a custom gethit state) +[Statedef 1027] +type = A +movetype= H +physics = N + +[State 1027, Turn] +type = Turn +trigger1 = (Time = 0) && (FrontEdgeBodyDist <= 30) + +[State 1027, Pos] +type = PosAdd +trigger1 = Time = 0 +x = 15 - BackEdgeBodyDist + +[State 1027, Stop moving] +type = PosFreeze +trigger1 = 1 +x = 1 +y = 1 + +[State 1027, No scroll] +type = ScreenBound +trigger1 = 1 +value = 1 +movecamera = 0,1 + +[State 1027, Spark] +type = Explod +trigger1 = Time = 0 +anim = F72 +pos = 0, floor (screenpos y) - 50 +postype = back +sprpriority = 3 + +[State 1027, Anim] +type = ChangeAnim2 +trigger1 = Time = 0 +value = 1027 + +[State 1027, Sound] +type = PlaySnd +trigger1 = Time = 0 +value = F7,0 + +[State 1027, State] +type = ChangeState +trigger1 = AnimTime = 0 +value = 1028 + +;------------------ +; Hit by Fast Kung Fu Palm - bounce off wall +; (a custom gethit state) +[Statedef 1028] +type = A +movetype= H +physics = N + +[State 1028, 1] +type = NotHitBy +trigger1 = 1 +value = , NA, NP + +[State 1028, Vel Y] +type = VelSet +trigger1 = Time = 0 +y = -6 + +[State 1028, Vel X] +type = VelSet +trigger1 = Time = 0 +x = 1.6 + +[State 1028, Turn] +type = Turn +trigger1 = (Time = 0) && (BackEdgeDist < 30) + +[State 1028, Gravity] +type = VelAdd +trigger1 = 1 +y = .35 + +[State 1028, Anim 5050] ;Self falling animation +type = ChangeAnim +trigger1 = Time = 0 +trigger1 = !SelfAnimExist(5052) +value = 5050 + +[State 1028, Anim 5052] ;Self falling animation (diagup type) +type = ChangeAnim +trigger1 = Time = 0 +trigger1 = SelfAnimExist(5052) +value = 5052 + +[State 1028, Anim 5060] ;Coming down - normal +type = ChangeAnim +trigger1 = Vel Y > -2 +trigger1 = Anim = 5050 +trigger1 = SelfAnimExist(5060) +persistent = 0 +value = 5060 + +[State 1028, Anim 5062] ;Coming down - diagup type +type = ChangeAnim +trigger1 = Vel Y > -2 +trigger1 = Anim = 5052 +trigger1 = SelfAnimExist(5062) +persistent = 0 +value = 5062 + +[State 1028, Hit ground] +type = SelfState +trigger1 = (Vel y > 0) && (Pos y >= 0) +value = 5100 + +;--------------------------------------------------------------------------- +; Kung Fu Knee +; CNS difficulty: medium +; Description: Like the Kung Fu Palm, this is a special attack. This attack +; begins on the ground, launches KFM into the air, then ends when KFM +; lands on the ground. To achieve this, we use three states. The first +; has KFM starting on the ground (note that type = S in the Statedef). +; The ChangeState controller brings KFM into the second state (state +; 1051) when his ground animation ends. The second state controls KFM's +; movement into the air and back towards the ground. The last state +; (state 1052) stops KFM from moving when he touches the ground, and +; brings him back to his stand state (state 0) when the animation is +; over. More details are given in comments before each of the following +; states. +[Statedef 1050] +type = S +movetype= A +physics = S +juggle = 4 +poweradd= 55 +velset = 0,0 +anim = 1050 +ctrl = 0 +sprpriority = 2 + +[State 1050, 1] +type = PlaySnd +trigger1 = Time = 1 +value = 0, 2 + +[State 1050, 2] +type = null;PosAdd +trigger1 = AnimElem = 2 +x = 15 + +[State 1050, 3] +type = PosAdd +trigger1 = AnimElem = 4 +x = 20 + +[State 1050, 4] +type = HitDef +trigger1 = Time = 0 +attr = A, SA +animtype = Medium +damage = 80, 4 +priority = 5 +guardflag = MA +pausetime = 12,12 +sparkxy = -10,-70 +hitsound = 5,3 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 20 +ground.hittime = 22 +ground.velocity = -3.5,-7 +guard.velocity = -7 +air.velocity = -3.5,-7 +fall = 1 + +[State 1050, 5] +type = ChangeState +trigger1 = AnimTime = 0 +value = 1051 + +;------------------ +; Light Kung Fu Knee - jump +; Description: This state uses a velset parameter in the Statedef to make +; KFM move upwards. A value of 2,-6 means 2 pixels/tick forwards, and +; 6 pixels/tick upwards. Since this is an aerial state, the type is set +; to A in the Statedef. +; Notice that physics = N (N for None) here. This means we are not using +; the built-in aerial physics model (physics = A), so we have complete +; control over what KFM does in this state. Since we do not have +; physics = A to take care of gravity for us, we need to put in our own +; controller for that. Controller 1051,1 does the work of pulling KFM +; down towards the ground. Controller 1051,2 checks if KFM has reached +; the ground, and changes to state 1052 if so. +; In this state's Statedef, we will use the hitdefpersist parameter to +; retain the HitDef information from the last state. If we did not have +; hitdefpersist, the HitDef will be turned off between state changes. +[Statedef 1051] +type = A +movetype= A +physics = N +velset = 2,-6 +anim = 1051 +hitdefpersist = 1 ;Keep the HitDef from previous state active + +[State 1051, 1] ;Gravity +type = VelAdd +trigger1 = 1 +y = .45 + +[State 1051, 2] +type = ChangeState +trigger1 = Command = "a" || Command = "b" +trigger1 = Vel y < -1 +value = 1055 + +[State 1051, 3] ;Change state when KFM is close to ground +type = ChangeState +trigger1 = Vel Y > 0 && Pos Y >= -10 +value = 1052 + +;------------------ +; Light Kung Fu Knee - land +; Description: This is KFM's landing state. There is a velset in the +; Statedef to stop KFM from moving. Since KFM's y-position can be any +; number greater than -10 upon entering this state (see the ChangeState +; controller in State 1051), we need to reset it to 0, the ground +; level. That is what controller 1052,1 is for. +[Statedef 1052] +type = S +movetype= I +physics = S +anim = 1052 +sprpriority = 1 +velset = 0,0 + +[State 1052, 1] ;Reset y-position to ground level +type = PosSet +trigger1 = Time = 0 +y = 0 + +[State 1052, 2] ;Play a sound for landing +type = PlaySnd +trigger1 = Time = 0 +value = 40, 0 + +[State 1052, 3] ;Give KFM back control early +type = CtrlSet +trigger1 = AnimElem = 3, -1 +value = 1 + +[State 1052, 4] ;Move KFM back a little +type = PosAdd +trigger1 = AnimElem = 4 +x = -15 + +[State 1052, 5] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;------------------ +; Kung Fu Knee - kick +[Statedef 1055] +type = A +movetype= A +physics = N +anim = 1055 + +[State 1055, 1] +type = PlaySnd +trigger1 = Time = 0 +value = 100,0 +channel = 0 + +[State 1055, 2] +type = PlaySnd +trigger1 = Time = 0 +value = 0, 1 + +[State 1055, 3] +type = PosAdd +trigger1 = Time = 0 +x = 10 +y = -10 + +[State 1055, 4] ;Gravity +type = VelAdd +trigger1 = 1 +y = .45 + +[State 1055, 5] +type = HitDef +trigger1 = Time = 0 +attr = A, SA +animtype = Med +damage = 35 + (prevstateno = 1061)*5, 2 +priority = 4 +guardflag = MA +pausetime = 12,12 +sparkxy = 0,-90 +hitsound = 5,2 +guardsound = 6,0 +ground.type = High +ground.slidetime = 15 +ground.hittime = 18 +ground.velocity = -6 +guard.velocity = -8 +guard.ctrltime = 12 +air.velocity = -4,-5 +airguard.velocity = -4,-4.5 +air.fall = 1 + +[State 1055, 6] ;Change state when KFM is close to ground +type = ChangeState +trigger1 = Vel Y > 0 && Pos Y >= -5 +value = 1056 + +;------------------ +; Kung Fu Knee - land from kick +[Statedef 1056] +type = S +movetype= I +physics = S +anim = 1056 +sprpriority = 1 +velset = 0,0 + +[State 1056, 1] ;Reset y-position to ground level +type = PosSet +trigger1 = Time = 0 +y = 0 + +[State 1056, 2] ;Play a sound for landing +type = PlaySnd +trigger1 = Time = 0 +value = 40, 0 + +[State 1056, 3] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Strong Kung Fu Knee +[Statedef 1060] +type = S +movetype= A +physics = S +juggle = 4 +poweradd= 60 +velset = 0,0 +anim = 1060 +ctrl = 0 +sprpriority = 2 + +[State 1060, 1] +type = PlaySnd +trigger1 = Time = 1 +value = 0, 2 + +[State 1060, 2] +type = PosAdd +trigger1 = AnimElem = 2 +x = 6 + +[State 1060, 3] +type = PosAdd +trigger1 = AnimElem = 4 +x = 21 + +[State 1060, 4] +type = HitDef +trigger1 = Time = 0 +attr = A, SA +animtype = Medium +damage = 90, 4 +priority = 5 +guardflag = MA +pausetime = 12,12 +sparkxy = -10,-70 +hitsound = 5,3 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 20 +ground.hittime = 22 +ground.velocity = -3.5,-7.5 +guard.velocity = -7 +air.velocity = -3.5,-7.5 +fall = 1 + +[State 1060, 5] +type = ChangeState +trigger1 = AnimTime = 0 +value = 1061 + +;------------------ +; Strong Kung Fu Knee - jump +[Statedef 1061] +type = A +movetype= A +physics = N +velset = 2.5,-7.5 +anim = 1061 +hitdefpersist = 1 ;Keep the HitDef from previous state active + +[State 1061, 1] +type = VelAdd +trigger1 = 1 +y = .45 + +[State 1061, 2] +type = ChangeState +trigger1 = Command = "a" || Command = "b" +trigger1 = Vel y < -1 +value = 1055 + +[State 1061, 3] +type = ChangeState +trigger1 = Vel Y > 0 && Pos Y >= -10 +value = 1052 + +;--------------------------------------------------------------------------- +; Fast Kung Fu Knee +; Description: This version of the Kung Fu Knee hits up to 3 times (including +; the kick). +[Statedef 1070] +type = S +movetype= A +physics = S +juggle = 6 +poweradd= -330 +velset = 0,0 +anim = 1070 +ctrl = 0 +sprpriority = 2 + +[State 1070, Afterimage] +type = AfterImage +trigger1 = Time = 0 +length = 13 +PalBright = 30, 30, 0 +PalContrast = 70, 70, 20 +PalAdd = -10,-10,-10 +PalMul = .85,.85,.50 +TimeGap = 1 +FrameGap = 2 +Trans = Add +time = 2 + +[State 1070, Afterimage] +type = AfterImageTime +trigger1 = 1 +time = 2 + +[State 1070, Blink Yellow] +type = PalFX +trigger1 = Time = 0 +time = 20 +add = 32,16,0 +sinadd = 64,32,5,3 + +[State 1070, 1] +type = PlaySnd +trigger1 = Time = 1 +value = 0, 2 + +[State 1070, 2] +type = PosAdd +trigger1 = AnimElem = 2 +x = 6 + +[State 1070, 3] +type = PosAdd +trigger1 = AnimElem = 4 +x = 21 + +[State 1070, 4] +type = HitDef +trigger1 = Time = 0 +attr = S, SA +animtype = Medium +getpower = 0 +damage = 35, 3 +priority = 5 +hitflag = MA +guardflag = MA +pausetime = 8,7 +sparkxy = -10,-70 +hitsound = 5,2 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 18 +ground.hittime = 20 +ground.velocity = -2,-6 +guard.velocity = -7 +air.velocity = -2,-6 +fall = 1 +fall.animtype = Med +fall.recovertime = 30 + +[State 1070, 5] +type = ChangeState +trigger1 = AnimTime = 0 +value = 1071 + +;------------------ +; Fast Kung Fu Knee - jump +[Statedef 1071] +type = A +movetype= A +physics = N +velset = 2.5,-9 +anim = 1071 + +[State 1071, Blink Yellow] +type = PalFX +trigger1 = Time = 0 +time = 18 +add = 32,16,0 +sinadd = 64,32,5,3 + +[State 1071, Afterimage] +type = AfterImageTime +trigger1 = Vel Y < 0 +time = 2 + +[State 1071, 1] +type = VelAdd +trigger1 = 1 +y = .5 + +[State 1071, 2] +type = VelAdd +trigger1 = Vel Y >= -1 +y = .2 + +[State 1071, 3] +type = HitDef +trigger1 = Time = 0 +attr = A, SA +animtype = Medium +getpower = 0 +damage = 68, 4 +priority = 5 +guardflag = MA +pausetime = 12,12 +sparkxy = -10,-70 +hitsound = 5,3 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 18 +ground.hittime = 20 +ground.velocity = -3,-9.5 +guard.velocity = -7 +air.velocity = -3,-9.5 +fall = 1 +fall.recovertime = 30 + +[State 1071, 4] +type = ChangeState +trigger1 = Command = "a" || Command = "b" +trigger1 = Vel y < -1 +trigger1 = Time > 0 +value = 1075 + +[State 1071, 5] +type = ChangeState +trigger1 = Vel Y > 0 && Pos Y >= -10 +value = 1052 + +;------------------ +; Fast Kung Fu Knee - kick +[Statedef 1075] +type = A +movetype= A +physics = N +anim = 1055 + +[State 1075, Afterimage] +type = AfterImageTime +trigger1 = 1 +time = 2 + +[State 1075, Blink Yellow] +type = PalFX +trigger1 = Time = 0 +time = 20 +add = 32,16,0 +sinadd = 64,32,5,3 + +[State 1075, 1] +type = PlaySnd +trigger1 = Time = 0 +value = 100,0 +channel = 0 + +[State 1075, 2] +type = PlaySnd +trigger1 = Time = 0 +value = 0, 1 + +[State 1075, 3] +type = PosAdd +trigger1 = Time = 0 +x = 10 +y = -10 + +[State 1075, 4] ;Gravity +type = VelAdd +trigger1 = 1 +y = .45 + +[State 1075, 5] +type = VelAdd +trigger1 = Vel Y >= -1 +y = .2 + +[State 1075, 6] +type = HitDef +trigger1 = Time = 0 +attr = A, SA +animtype = Med +damage = 42, 2 +getpower = 0 +priority = 4 +guardflag = MA +pausetime = 12,12 +sparkxy = 0,-90 +hitsound = 5,2 +guardsound = 6,0 +ground.type = High +ground.slidetime = 15 +ground.hittime = 20 +ground.velocity = -6 +guard.velocity = -6 +air.velocity = -4,-6 +airguard.velocity = -4,-4.5 +air.fall = 1 + +[State 1075, 7] ;Change state when KFM is close to ground +type = ChangeState +trigger1 = Vel Y > 0 && Pos Y >= -5 +value = 1056 + + +;--------------------------------------------------------------------------- +; Light Kung Fu Upper +; CNS difficulty: easy +; Description: This is a simple special attack that can hit twice. Notice +; the use of the Width controller to keep opponents from getting too +; close to KFM during his uppercut (press Ctrl-C, and look at the +; yellow bar at KFM's feet during the move). +; The second HitDef has some interesting parameters. fall.recovertime +; is used to prevent the opponent (p2) from recovering immediately +; after being hit (eg. press x+y with KFM to recover). This gives the +; attacking KFM a chance to follow up with an extra attack, such as +; a Kung Fu Knee. The yaccel parameter, set at 0.4, makes p2 fall at a +; greater value of acceleration than the default, which is 0.35. +[Statedef 1100] +type = S +movetype= A +physics = S +juggle = 4 +poweradd= 55 +velset = 0,0 +anim = 1100 +ctrl = 0 +sprpriority = 2 + +[State 1100, Width] +type = Width +trigger1 = AnimElemTime(4) >= 0 && AnimElemTime(13) < 0 +value = 5,0 + +[State 1100, 1] +type = PlaySnd +trigger1 = AnimElem = 4 +value = 0, 2 + +[State 1100, 2] +type = HitDef +trigger1 = Time = 0 +attr = S, SA +animtype = Med +damage = 52, 4 +priority = 5 +guardflag = MA +pausetime = 4,8 +sparkxy = 0,-48 +hitsound = 5,2 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 15 +ground.hittime = 20 +ground.velocity = -3 +guard.velocity = -6 +air.velocity = -2,-2 +airguard.velocity = -4,-4.5 +p2facing = 1 +forcestand = 1 ;Force p2 into a standing state if hit + +[State 1100, 3] +type = HitDef +trigger1 = AnimElem = 7 +attr = S, SA +animtype = Up +damage = 55, 4 +priority = 5 +guardflag = MA +pausetime = 12,12 +sparkxy = 0,-110 +hitsound = 5,2 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 15 +ground.hittime = 20 +ground.velocity = -1,-9.5 +guard.velocity = -6 +air.velocity = -1,-7.5 +airguard.velocity = -4,-4.5 +p2facing = 1 +fall = 1 ;Make p2 fall down +fall.recovertime = 40 ;40 ticks before p2 can recover from fall +yaccel = .4 ;p2 will accelerate down at .4 pixels/sec^2 when falling + +[State 1100, 5] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Strong Kung Fu Upper +[Statedef 1110] +type = S +movetype= A +physics = S +juggle = 4 +poweradd= 60 +velset = 0,0 +anim = 1110 +ctrl = 0 +sprpriority = 2 + +[State 1110, Width] +type = Width +trigger1 = AnimElemTime(4) >= 0 && AnimElemTime(14) < 0 +value = 5,0 + +[State 1110, 1] +type = PlaySnd +trigger1 = AnimElem = 4 +value = 0, 2 + +[State 1110, 2] +type = HitDef +trigger1 = Time = 0 +attr = S, SA +animtype = Med +damage = 57, 4 +priority = 5 +guardflag = MA +pausetime = 4,8 +sparkxy = 0,-48 +hitsound = 5,2 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 15 +ground.hittime = 20 +ground.velocity = -3 +guard.velocity = -6 +air.velocity = -2,-2 +airguard.velocity = -4,-4.5 +p2facing = 1 +forcestand = 1 + +[State 1110, 3] +type = HitDef +trigger1 = AnimElem = 7 +attr = S, SA +animtype = Up +damage = 60, 4 +priority = 5 +guardflag = MA +pausetime = 12,12 +sparkxy = 0,-110 +hitsound = 5,2 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 15 +ground.hittime = 20 +ground.velocity = -1,-10.5 +guard.velocity = -6 +air.velocity = -1,-8.5 +airguard.velocity = -4,-4.5 +p2facing = 1 +fall = 1 +fall.recovertime = 50 +yaccel = .4 + +[State 1110, 5] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Fast Kung Fu Upper +[Statedef 1120] +type = S +movetype= A +physics = S +juggle = 6 +poweradd= -330 +velset = 0,0 +anim = 1120 +ctrl = 0 +sprpriority = 2 + +[State 1120, Width] +type = Width +trigger1 = AnimElemTime(4) >= 0 && AnimElemTime(14) < 0 +value = 5,0 + +[State 1120, Afterimage] +type = AfterImage +trigger1 = Time = 0 +length = 13 +PalBright = 30, 30, 0 +PalContrast = 70, 70, 20 +PalAdd = -10,-10,-10 +PalMul = .85,.85,.50 +TimeGap = 1 +FrameGap = 2 +Trans = Add +time = 2 + +[State 1120, Afterimage] +type = AfterImageTime +trigger1 = AnimTime < -2 +time = 2 + +[State 1120, Blink Yellow] +type = PalFX +trigger1 = Time = 0 +time = 20 +add = 32,16,0 +sinadd = 64,32,5,3 + +[State 1120, 1] +type = PlaySnd +trigger1 = AnimElem = 4 +value = 0, 2 + +[State 1120, 2] +type = HitDef +trigger1 = Time = 0 +trigger2 = AnimElem = 4 +attr = S, SA +animtype = Med +damage = 30, 4 +getpower = 0 +priority = 5 +guardflag = MA +pausetime = 6,10 +sparkxy = 0, ifelse(Time = 0, -48, -55) +hitsound = 5,2 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 18 +ground.hittime = 23 +ground.velocity = -3 +guard.velocity = -6 +air.velocity = -2,-2 +airguard.velocity = -4,-4.5 +p2facing = 1 +forcestand = 1 + +[State 1120, 3] +type = HitDef +trigger1 = AnimElem = 7 +attr = S, SA +animtype = Up +damage = 68, 4 +getpower = 0 +priority = 5 +guardflag = MA +pausetime = 12,12 +sparkxy = 0,-110 +hitsound = 5,2 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 18 +ground.hittime = 23 +ground.velocity = -1.2,-11 +guard.velocity = -6 +air.velocity = -1.2,-9 +airguard.velocity = -4,-4.5 +p2facing = 1 +fall = 1 +fall.recovertime = 60 +yaccel = .4 + +[State 1120, 5] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Light Kung Fu Blow +; CNS difficulty: easy +; Notes: This uses the EnvShake controller to shake the screen. It makes the +; move look stronger. +[Statedef 1200] +type = S +movetype= A +physics = S +juggle = 4 +poweradd= 50 +velset = 0,0 +anim = 1200 +ctrl = 0 +sprpriority = 2 + +[State 1200, 1] +type = PlaySnd +trigger1 = AnimElem = 4 +value = 0, 3 + +[State 1200, Width 1] +type = Width +trigger1 = AnimElemTime(5) >= 0 && AnimElemTime(6) < 0 +value = 10,0 + +[State 1200, Width 2] +type = Width +trigger1 = AnimElemTime(6) >= 0 && AnimElemTime(9) < 0 +value = 20,0 + +[State 1200, Shake Screen] +type = EnvShake +trigger1 = AnimElem = 6 +time = 4 ;Time to shake screen +ampl = 2 ;Amount to shake +freq = 180 ;A frequency of 180 shakes the screen rapidly + +[State 1200, 2] +type = HitDef +trigger1 = Time = 0 +attr = S, SA +animtype = Hard +damage = 100, 6 +priority = 5 +guardflag = MA +pausetime = 12,12 +sparkxy = 0,-65 +hitsound = 5,3 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 16 +ground.hittime = 20 +ground.velocity = -10 +ground.cornerpush.veloff = -12 ;To push far away when p2 is in corner +guard.velocity = -7 +air.velocity = -3.5,-4.5 +airguard.velocity = -3.5,-4.5 + +[State 1200, 3] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Strong Kung Fu Blow +; CNS difficulty: easy +[Statedef 1210] +type = S +movetype= A +physics = S +juggle = 4 +poweradd= 60 +velset = 0,0 +anim = 1210 +ctrl = 0 +sprpriority = 2 + +[State 1210, 1] +type = PlaySnd +trigger1 = AnimElem = 4 +value = 0, 3 + +[State 1210, Width 1] +type = Width +trigger1 = AnimElemTime(5) >= 0 && AnimElemTime(6) < 0 +value = 10,0 + +[State 1210, Width 2] +type = Width +trigger1 = AnimElemTime(6) >= 0 && AnimElemTime(9) < 0 +value = 20,0 + +[State 1210, Shake Screen] +type = EnvShake +trigger1 = AnimElem = 6 +time = 8 +ampl = 2 +freq = 170 ;A frequency of less than 180 causes a dampening effect + +[State 1210, 2] +type = HitDef +trigger1 = Time = 0 +attr = S, SA +animtype = Hard +damage = 125, 9 +priority = 5 +guardflag = MA +pausetime = 12,12 +sparkxy = 0,-65 +hitsound = 5,3 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 18 +ground.hittime = 22 +ground.velocity = -10 +ground.cornerpush.veloff = -15 ;To push far away when p2 is in corner +guard.velocity = -8 +air.velocity = -4,-4.5 +airguard.velocity = -4,-4.5 + +[State 1210, 3] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Fast Kung Fu Blow +; CNS difficulty: easy +[Statedef 1220] +type = S +movetype= A +physics = S +juggle = 6 +poweradd= -330 +velset = 0,0 +anim = 1220 +ctrl = 0 +sprpriority = 2 + +[State 1220, Afterimage] +type = AfterImage +trigger1 = Time = 0 +length = 13 +PalBright = 30, 30, 0 +PalContrast = 70, 70, 20 +PalAdd = -10,-10,-10 +PalMul = .85,.85,.50 +TimeGap = 1 +FrameGap = 2 +Trans = Add +time = 2 + +[State 1220, Afterimage] +type = AfterImageTime +trigger1 = AnimTime < -2 +time = 2 + +[State 1220, Blink Yellow] +type = PalFX +trigger1 = Time = 0 +time = 20 +add = 32,16,0 +sinadd = 64,32,5,3 + +[State 1220, 1] +type = PlaySnd +trigger1 = AnimElem = 4 +value = 0, 3 + +[State 1220, Width 1] +type = Width +trigger1 = AnimElemTime(5) >= 0 && AnimElemTime(6) < 0 +value = 10,0 + +[State 1220, Width 2] +type = Width +trigger1 = AnimElemTime(6) >= 0 && AnimElemTime(9) < 0 +value = 20,0 + +[State 1220, Shake Screen] +type = EnvShake +trigger1 = AnimElem = 6 +time = 8 +ampl = 3 +freq = 170 + +[State 1220, 2] +type = HitDef +trigger1 = Time = 0 +attr = S, SA +animtype = Hard +damage = 125, 9 +getpower = 0 +priority = 5 +guardflag = MA +pausetime = 15,15 +sparkxy = 0,-65 +hitsound = 5,4 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 20 +ground.hittime = 32 +ground.velocity = -15 +ground.cornerpush.veloff = -20 ;To push far away when p2 is in corner +guard.velocity = -9 +air.velocity = -5,-5 +airguard.velocity = -5,-5 +air.fall = 1 +fall.animtype = Hard ;Show "hard" animtype when hit for a fall +yaccel = .4 ;Fall faster + +[State 1220, 3] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + + +;--------------------------------------------------------------------------- +; Kung Fu Blocking High +; CNS difficulty: medium +; Notes: This move uses a ReversalDef controller to counter attacks. Any +; attacks not caught by the ReversalDef are handled by the HitOverride. +; The movetype is Idle because this is not an attack. +[Statedef 1300] +type = S +movetype= I +physics = S +velset = 0,0 +anim = 1300 +ctrl = 0 +sprpriority = 1 + +[State 1300, Width] +type = Width +trigger1 = AnimElemTime(3) < 0 +value = 15,0 + +[State 1300, 1] +type = PlaySnd +trigger1 = Time = 0 +value = 0, 1 + +[State 1300, 2] +type = ReversalDef +trigger1 = Time = 0 +reversal.attr = SA, AA +pausetime = 0,0 +sparkno = 40 +sparkxy = 40,0 +hitsound = 6,0 +p1stateno = 1310 +p1sprpriority = 2 ;Set P1's sprite in front of P2's +p2sprpriority = 1 + +[State 1300, 3] ;Stop ReversalDef +type = ReversalDef +trigger1 = Time = 4 +trigger1 = Time = command = "holdfwd" +trigger2 = Time = 8 +reversal.attr = + +[State 1300, 4] +type = HitOverride +trigger1 = Time = 0 +attr = SA, AP +stateno = 1310 +time = 8 + +[State 1300, 5] +type = HitOverride +trigger1 = Time = 4 +trigger1 = Time = command = "holdfwd" +attr = +time = 0 + +[State 1300, 6] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Kung Fu Blocking High (blocked) +; Notes: This state uses a Pause controller to freeze the action dramatically. +[Statedef 1310] +type = S +movetype= I +physics = S +velset = 0,0 +anim = 1310 +ctrl = 0 +sprpriority = 2 + +[State 1310, 1] +type = Pause +trigger1 = Time = 0 +time = 20 +endcmdbuftime = 20 ;Buffer commands input during the pause +pausebg = 0 ;Don't pause backgrounds + +[State 1310, 2] ;Go to guarding +type = ChangeState +trigger1 = Time = 1 +trigger1 = command = "holdback" +value = 130 +ctrl = 1 + +[State 1310, 3] +type = NotHitBy +trigger1 = Time = 0 +value = SCA +time = 1 + +[State 1310, 4] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Kung Fu Blocking Low +[Statedef 1320] +type = C +movetype= I +physics = C +velset = 0,0 +anim = 1320 +ctrl = 0 +sprpriority = 1 + +[State 1320, Width] +type = Width +trigger1 = AnimElemTime(3) < 0 +value = 10,0 + +[State 1320, 1] +type = PlaySnd +trigger1 = Time = 0 +value = 0, 1 + +[State 1320, 2] +type = ReversalDef +trigger1 = Time = 0 +reversal.attr = C, AA +pausetime = 0,0 +sparkno = 40 +sparkxy = 40,0 +hitsound = 6,0 +p1stateno = 1330 +p1sprpriority = 2 +p2sprpriority = 1 + +[State 1320, 3] ;Stop +type = ReversalDef +trigger1 = Time = 5 +reversal.attr = + +[State 1320, 4] +type = HitOverride +trigger1 = Time < 5 +attr = C, AP +stateno = 1330 + +[State 1320, 5] +type = ChangeState +trigger1 = AnimTime = 0 +value = 11 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Kung Fu Blocking Low (blocked) +[Statedef 1330] +type = C +movetype= I +physics = C +velset = 0,0 +anim = 1330 +ctrl = 0 +sprpriority = 2 + +[State 1330, 1] +type = Pause +trigger1 = Time = 0 +time = 20 +endcmdbuftime = 20 ;Buffer commands input during the pause +pausebg = 0 ;Don't pause backgrounds + +[State 1330, 2] +type = ChangeState +trigger1 = Time = 1 +trigger1 = command = "holdback" +value = 131 +ctrl = 1 + +[State 1330, 3] +type = NotHitBy +trigger1 = Time = 0 +value = SCA +time = 1 + +[State 1330, 4] +type = ChangeState +trigger1 = AnimTime = 0 +value = 11 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Kung Fu Blocking Air +[Statedef 1340] +type = A +movetype= I +physics = N +anim = 1340 +ctrl = 0 +sprpriority = 1 + +[State 1340, Width] +type = Width +trigger1 = AnimElemTime(3) < 0 +value = 10,0 + +[State 1340, 1] +type = PlaySnd +trigger1 = Time = 0 +value = 0, 1 + +[State 1340, 2] +type = ReversalDef +trigger1 = Time = 0 +reversal.attr = A, AA +pausetime = 0,0 +sparkno = 40 +sparkxy = 40,0 +hitsound = 6,0 +p1stateno = 1350 +p1sprpriority = 2 +p2sprpriority = 1 + +[State 1340, 3] ;Stop +type = ReversalDef +trigger1 = Time = 5 +reversal.attr = + +[State 1340, 4] +type = HitOverride +trigger1 = Time < 5 +attr = SA, AP +stateno = 1350 + +[State 1340, 5] +type = CtrlSet +trigger1 = AnimElem = 4 +value = 1 + +[State 1340, 6] ;Gravity +type = VelAdd +trigger1 = 1 +y = Const(movement.yaccel) + +[State 1340, 6] ;Land from jump +type = ChangeState +trigger1 = (Pos Y >= 0) && (Vel Y > 0) +value = 1351 + +;--------------------------------------------------------------------------- +; Kung Fu Blocking Air (blocked) +[Statedef 1350] +type = A +movetype= I +physics = N +anim = 1350 +ctrl = 0 +sprpriority = 2 + +[State 1350, 1] +type = Pause +trigger1 = Time = 0 +time = 20 +endcmdbuftime = 20 ;Buffer commands input during the pause +pausebg = 0 ;Don't pause backgrounds + +[State 1350, 2] +type = ChangeState +trigger1 = Time = 1 +trigger1 = command = "holdback" +value = 132 +ctrl = 1 + +[State 1350, 3] +type = NotHitBy +trigger1 = Time = 0 +value = SCA +time = 1 + +[State 1350, 4] ;Stop KFM in the air +type = PosFreeze +trigger1 = AnimElemTime(3) < 0 + +[State 1350, 5] +type = CtrlSet +trigger1 = AnimElem = 3 +value = 1 + +[State 1350, 6] ;Gravity +type = VelAdd +trigger1 = AnimElemTime(3) > 0 +y = Const(movement.yaccel) + +[State 1350, 7] ;Land from jump +type = ChangeState +trigger1 = (Pos Y >= 0) && (Vel Y > 0) +value = 1351 + +;--------------------------------------------------------------------------- +; Kung Fu Blocking Air (land) +[Statedef 1351] +type = S +physics = S +ctrl = 0 +anim = 47 + +[State 1351, 1] +type = VelSet +trigger1 = Time = 0 +y = 0 + +[State 1351, 2] +type = PosSet +trigger1 = Time = 0 +y = 0 + +[State 1351, 3] +type = CtrlSet +trigger1 = Time = 3 +value = 1 + +[State 1351, 4] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +[State 1351, 5] ;Go to high block +type = ChangeState +trigger1 = command = "blocking" +trigger1 = command != "holddown" +value = 1300 + +[State 1351, 6] ;Go to low block +type = ChangeState +trigger1 = command = "blocking" +value = 1320 + +;--------------------------------------------------------------------------- +; Light Kung Fu Zankou +; CNS difficulty: easy +[Statedef 1400] +type = S +movetype= A +physics = N +juggle = 4 +poweradd= 50 +velset = 0,0 +anim = 1400 +ctrl = 0 +sprpriority = 2 + +[State 1400, 1] +type = PlaySnd +trigger1 = AnimElem = 3 +value = 0, 3 + +[State 1400, Friction] +type = VelMul +trigger1 = 1 +x = 0.5 + +[State 1400, 2] +type = HitDef +trigger1 = Time = 0 +attr = S, SA +animtype = Hard +damage = 100, 6 +priority = 4 +guardflag = MA +pausetime = 12,12 +sparkxy = 0,-65 +hitsound = 5,3 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 12 +ground.hittime = 17 +ground.velocity = -9 +ground.cornerpush.veloff = -15 ;To push far away when p2 is in corner +guard.velocity = -9 +air.velocity = -2,-5 +airguard.velocity = -3.5,-4.5 +air.fall = 1 + +[State 1400, 3] +type = PosAdd +trigger1 = AnimElem = 2 +trigger2 = AnimElem = 3 +trigger3 = AnimElem = 4 +x = 10 + +[State 1400, 4] +type = VelSet +trigger1 = AnimElem = 4 +x = 2 + +[State 1400, 5] +type = PosAdd +trigger1 = AnimElem = 8 +x = 10 + +[State 1400, 6] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Strong Kung Fu Zankou +; CNS difficulty: easy +[Statedef 1410] +type = S +movetype= A +physics = N +juggle = 4 +poweradd= 50 +velset = 0,0 +anim = 1410 +ctrl = 0 +sprpriority = 2 + +[State 1410, 1] +type = PlaySnd +trigger1 = AnimElem = 3 +value = 0, 3 + +[State 1410, Friction] +type = VelMul +trigger1 = 1 +x = 0.65 + +[State 1410, 2] +type = HitDef +trigger1 = Time = 0 +attr = S, SA +animtype = Hard +damage = 100, 6 +priority = 4 +guardflag = MA +pausetime = 12,12 +sparkxy = 0,-65 +hitsound = 5,3 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 12 +ground.hittime = 17 +ground.velocity = -9 +ground.cornerpush.veloff = -15 ;To push far away when p2 is in corner +guard.velocity = -9 +air.velocity = -2,-5 +airguard.velocity = -3.5,-4.5 +air.fall = 1 + +[State 1410, 3] +type = PosAdd +trigger1 = AnimElem = 2 +trigger2 = AnimElem = 3 +trigger3 = AnimElem = 4 +x = 10 + +[State 1410, 4] +type = VelSet +trigger1 = AnimElem = 3 +x = 8 + +[State 1410, 5] +type = PosAdd +trigger1 = AnimElem = 9 +x = 10 + +[State 1410, 6] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Far Kung Fu Zankou +; CNS difficulty: easy +[Statedef 1420] +type = S +movetype= A +physics = N +juggle = 6 +poweradd= -330 +velset = 0,0 +anim = 1420 +ctrl = 0 +sprpriority = 2 + +[State 1420, Afterimage] +type = AfterImage +trigger1 = Time = 0 +length = 13 +PalBright = 30, 30, 0 +PalContrast = 70, 70, 20 +PalAdd = -10,-10,-10 +PalMul = .85,.85,.50 +TimeGap = 1 +FrameGap = 2 +Trans = Add +time = 2 + +[State 1420, Afterimage] +type = AfterImageTime +trigger1 = AnimElemTime(8) < 0 +time = 2 + +[State 1420, Blink Yellow] +type = PalFX +trigger1 = Time = 0 +time = 20 +add = 32,16,0 +sinadd = 64,32,5,3 + +[State 1420, 1] +type = PlaySnd +trigger1 = AnimElem = 3 +value = 0, 3 + +[State 1420, Friction] +type = VelMul +trigger1 = 1 +x = 0.7 + +[State 1420, 2] +type = HitDef +trigger1 = AnimElemTime(4) = -2 +attr = S, SA +animtype = Hard +damage = 25, 2 +getpower = 0 +priority = 4 +guardflag = MA +pausetime = 9,9 +sparkxy = -15,-45 +hitsound = 5,2 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 22 +ground.hittime = 24 +ground.velocity = -7 +ground.cornerpush.veloff = -8 ;To push far away when p2 is in corner +guard.velocity = -9 +air.velocity = -5,-4 +airguard.velocity = -3.5,-4.5 + +[State 1420, 2] +type = HitDef +trigger1 = AnimElem = 4 +attr = S, SA +animtype = Hard +damage = 100, 8 +getpower = 0 +priority = 5 +guardflag = MA +pausetime = 12,12 +sparkxy = 0,-65 +hitsound = 5,3 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 22 +ground.hittime = 24 +ground.velocity = -5,-4 +ground.cornerpush.veloff = -15 ;To push far away when p2 is in corner +guard.velocity = -9 +air.velocity = -5,-4 +airguard.velocity = -3.5,-4.5 +fall = 1 + +[State 1420, 3] +type = PosAdd +trigger1 = AnimElem = 2 +trigger2 = AnimElem = 3 +trigger3 = AnimElem = 4 +x = 10 + +[State 1420, 4] +type = VelSet +trigger1 = AnimElemTime(3) = [1,2] +x = 20 + +[State 1420, 5] +type = PosAdd +trigger1 = AnimElem = 10 +x = 10 + +[State 1420, 6] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Triple Kung Fu Palm (hyper) +; CNS difficulty: medium +; Notes: Notice that the HitDefs in supers have "getpower = 0". This makes +; sure KFM doesn't recharge his super guage as he hits. +; Also, the attributes for the HitDefs is "HA" for "hyper attack", +; ie. "attr = S, HA". +; Notice how the first HitDef is reused twice by allowing it to +; trigger on two animation elements. +[Statedef 3000] +type = S +movetype= A +physics = S +juggle = 4 +velset = 0,0 +anim = 3000 +ctrl = 0 +sprpriority = 2 + +[State 3000, Width] +type = Width +trigger1 = AnimElem = 2, >= 0 +value = 15,0 + +[State 3000, Super A] +type = SuperPause +trigger1 = AnimElem = 2, 1 +pos = 25, -57 +anim = 100 +sound = 20, 0 +poweradd = -1000 + +[State 3000, Super B] +type = AfterImage +trigger1 = AnimElem = 2, 1 +time = 2 + +[State 3000, Super C] +type = AfterImageTime +trigger1 = AnimElemTime(2) >= 1 && Time < 60 +time = 2 + +[State 3000, Super D] +type = NotHitBy +trigger1 = AnimElem = 2 +value = , NA, SA, AT +time = 11 + +[State 3000, Super E] +type = NotHitBy +trigger1 = AnimElemTime(2) >= 0 && AnimElemTime(14) < 0 +value2 = C, NA +time = 1 + +[State 3000, 1] +type = PlaySnd +trigger1 = AnimElem = 4 +trigger2 = AnimElem = 12 +trigger3 = AnimElem = 20 +value = 0, 3 + +[State 3000, 2] +type = PosAdd +trigger1 = AnimElem = 2 +x = 20 + +[State 3000, 3] +type = PosAdd +trigger1 = AnimElem = 3 +trigger2 = AnimElem = 11 +trigger3 = AnimElem = 13 +trigger4 = AnimElem = 19 +trigger5 = AnimElem = 21 +trigger4 = AnimElem = 31 +x = 10 + +[State 3000, 4] +type = VelSet +trigger1 = AnimElem = 5 +trigger2 = AnimElem = 13 +trigger3 = AnimElem = 21 +x = 6 + +[State 3000, 4] +type = PosAdd +trigger1 = AnimElem = 5 +x = 5 + +[State 3000, 5] +type = HitDef +trigger1 = AnimElem = 5 +trigger2 = AnimElem = 13 +attr = S, HA +animtype = Hard +damage = 72,4 +getpower = 0 +priority = 6 +guardflag = MA +pausetime = 15,15 +sparkxy = -10,-60 +hitsound = 5,4 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 30 +ground.hittime = 32 +ground.velocity = -6 +air.velocity = -3,-2.8 +air.fall = 1 +fall.animtype = Hard +fall.recover = 0 + +[State 3000, 6] +type = HitDef +trigger1 = AnimElem = 21 +attr = S, HA +animtype = Hard +damage = 75,4 +getpower = 0 +priority = 5 +guardflag = MA +pausetime = 15,15 +sparkxy = -10,-60 +hitsound = 5,4 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 30 +ground.hittime = 32 +ground.velocity = -5, -4 +guard.velocity = -12 +air.velocity = -5,-4 +airguard.velocity = -3,-3 +fall.animtype = Hard +fall = 1 +fall.recover = 0 + +[State 3000, 7] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Smash Kung Fu Upper (hyper) +; CNS difficulty: medium +; Description: This is very similar to KFM's Strong and Light Kung Fu Uppers. +; There is just one HitDef, for a screen-shaking hit. The envshake +; parameters are used to make this effect. You can find out more about +; each parameter in the CNS documentation. +; The fall.recover parameter is set at 0, meaning that p2 cannot recover +; from the fall by entering his recovery command (for KFM, that is x+y). +; This gives the attacking KFM a chance to follow up with another attack, +; such as the Fast Kung Fu Palm. +; Note that there is a ChangeState controller used to make KFM change to +; a success state if he hits. The success state has KFM hold his arm +; up longer for a dramatic effect. +[Statedef 3050] +type = S +movetype= A +physics = S +juggle = 4 +velset = 0,0 +anim = 3050 +ctrl = 0 +sprpriority = 2 + +[State 3050, Width] +type = Width +trigger1 = AnimElemTime(4) >= 0 && AnimElemTime(16) < 0 +value = 5,0 + +[State 3050, Super A] +type = SuperPause +trigger1 = AnimElem = 2 +pos = -5, -55 +anim = 100 +sound = 20, 0 +poweradd = -1000 + +[State 3050, Super B] +type = AfterImage +trigger1 = AnimElem = 2 +time = 2 + +[State 3050, Super C] +type = AfterImageTime +trigger1 = AnimElemTime(2) >= 0 +time = 2 + +[State 3050, Super D] +type = NotHitBy +trigger1 = AnimElem = 2 +value = , NA, SA, AT +time = 6 + +[State 3050, 1] +type = PlaySnd +trigger1 = AnimElem = 4 +value = 0, 2 + +[State 3050, 2] +type = HitDef +trigger1 = Time = 0 +attr = S, HA +animtype = Up ;Make p2 use "Up" type animation on hit +damage = 155, 12 +getpower = 0 +priority = 5 +guardflag = MA +pausetime = 30,30 +sparkno = 3 +sparkxy = 0,-110 +hitsound = 5,4 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 26 +ground.hittime = 28 +ground.velocity = -1.3,-25 +guard.velocity = -11 +air.velocity = -1.3,-25 +airguard.velocity = -4.5,-5 +envshake.time = 25 ;Parameters for shaking the screen on hit +envshake.ampl = 7 +envshake.freq = 176 +p2facing = 1 ;Force p2 to face p1 on hit +fall = 1 +fall.recover = 0 ;Prevent p2 from recovering +fall.damage = 70 ;p2 will take 70 damage on hitting the ground +fall.envshake.ampl = 6 ;Parameters for shaking the screen on fall +fall.envshake.freq = 178 +fall.envshake.time = 15 +mindist = 50,-100 ;Keep p2 a minimum of 50 pixels away from p1, and no higher than 100 pixels up +maxdist = 100,-10 ;Keep p2 a maximum of 100 pixels away from p1, and no lower than 10 pixels below +yaccel = .8 ;Accelerate p2 downwards rapidly + +;This controller below makes Kung Fu man change to a success state if he +;successfully hits the Smash Kung Fu Upper. +[State 3050, 4] +type = ChangeState +trigger1 = MoveHit +value = 3051 + +[State 3050, 5] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;------------------ +; Smash Kung Fu Upper (success) +; Description: This is the state that KFM changes to if he successfully hits +; with Smash Kung Fu Upper. KFM holds his arm high for a short while +; longer, then changes back to his idle stand state. +[Statedef 3051] +type = S +movetype= A +physics = S +anim = 3051 + +[State 3051, 1] +type = AfterImageTime +trigger1 = AnimTime < -2 +time = 2 + +[State 3051, 2] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + + +;--------------------------------------------------------------------------- +; Override common states (use same number to override) : +;--------------------------------------------------------------------------- + +;--------------------------------------------------------------------------- +; States that are always executed (use statedef -2) +;--------------------------------------------------------------------------- + +;--------------------------------------------------------------------------- +; States that are executed when in self's state file (use statedef -3) +;--------------------------------------------------------------------------- + +[Statedef -3] + +;This controller plays a sound everytime KFM lands from a jump, or +;from his back-dash. +[State -3, Landing Sound] +type = PlaySnd +triggerall = Time = 1 +trigger1 = stateno = 52 ;Jump land +trigger2 = stateno = 106 ;Run-back land +value = 40, 0 diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/kfm.def b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/kfm.def new file mode 100644 index 00000000..e69df641 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/kfm.def @@ -0,0 +1,45 @@ +; Definition file for Kung Fu Man +; Contains all the filenames needed for the character + +; Player information +[Info] +name = "Kung Fu Man" ;Name of character +displayname = "Kung Fu Man" ;Name of character to display +versiondate = 09,30,2009 ;Version date of character (MM-DD-YYYY or X.XX) +mugenversion = 1.0 ;Version of M.U.G.E.N character works on (X.XX) +author = "Elecbyte" ;Character author name +pal.defaults = 1,2,3,4 ;Default palettes in order of preference (up to 4) + ;Numbering starts from 1 +localcoord = 320,240 ;Local coordinate space width and height + +; Files for the player +[Files] +cmd = kfm.cmd ;Command set +cns = kfm.cns ;Constants +st = kfm.cns ;States +stcommon = common1.cns ;Common states (from data/ or motif) +sprite = kfm.sff ;Sprite +anim = kfm.air ;Animation +sound = kfm.snd ;Sound +ai = kfm.ai ;AI hints data (not used) +movelist = movelist.dat ;Ikemen feature: Movelist + +; Maps character selection buttons to palette numbers. +[Palette Keymap] +x = 1 ;Press button X to select palette 1, etc. +y = 2 +z = 3 +a = 4 +b = 5 +c = 6 +x2 = 7 ;Hold Start and press button X for palette 7, etc. +y2 = 8 +z2 = 9 +a2 = 10 +b2 = 11 +c2 = 12 + +; Arcade mode +[Arcade] +intro.storyboard = intro.def +ending.storyboard = ending.def diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/kfm.sff b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/kfm.sff new file mode 100644 index 00000000..d75b94e3 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/kfm.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/kfm.snd b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/kfm.snd new file mode 100644 index 00000000..d84829ce Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/kfm.snd differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/movelist.dat b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/movelist.dat new file mode 100644 index 00000000..5d756166 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/movelist.dat @@ -0,0 +1,19 @@ +<#f0f000>:Unique Attacks: +High Kung Fu Blocking _F_+^X +Low Kung Fu Blocking _DF_+^X +Air Kung Fu Blocking _AIR_F_+^X + +<#f0f000>:Throws: +Kung Fu Throw [_B/_F]_+^Y + +<#f0f000>:Special Moves: +Kung Fu Palm_EX _QDF^P +Kung Fu Upper_EX _DSF^P +Kung Fu Blow_EX _QDB^P +Kung Fu Zankou_EX _QDF^K +Kung Fu Knee_EX _F_F^K +_!Extra kick ^K + +<#f0f000>:Super Moves: +Triple Kung Fu Palm <#bebebe>(1000) _QDF_QDF^P +Smash Kung Fu Upper <#bebebe>(1000) _QDB_QDB^P \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/readme.txt b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/readme.txt new file mode 100644 index 00000000..667addc9 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm/readme.txt @@ -0,0 +1,154 @@ +=========================== + Kung Fu Man (classic ver) +=========================== + +For M.U.G.E.N 1.0 +(c) 2009 Elecbyte + +This version updated: 15 Sep 2009 + +Kung Fu Man is a sample character that works with M.U.G.E.N. + +KFM's work files are available in the work/kfm720/ directory. + +KFM is licensed under the Creative Commons Noncommercial +License. Attribution is optional. This means you may freely +build upon or use parts of KFM for non-commercial puposes. + + +Controls +======== + +Basic Controls +-------------- + +Kung Fu Man is a 4-button character. Button X is his weak +punch, button Y his strong punch, A for weak kick, and +B for his strong kick. We will use W. to mean weak, and S. +for strong. + +We will use the notation: +D - down +F - forward +U - up +B - back +x - button X (weak punch) +y - button Y (strong punch) +a - button A (weak kick) +b - button B (strong kick) + +DF means diagonally down-forwards, UB diagonally up-back, +etc. If you see ab it means press button A and button B +simultaneously. x/y means hit either x or y, and so on. + +Use the direction keys to move KFM. Press down to crouch, +and up to jump. While in the air, you can press up again to +air-jump. Hold the direction facing away from the opponent +to guard. KFM can guard attacks while jumping. + +When falling in the air, hit buttons X and Y at the same +time to recover. Hold a directional key when recovering to +move a little bit in that direction. If you are near the +ground when you hit xy, you will do a ground-based recovery +instead. + +KFM has a taunt. To do it, press the start button. + + +Standard Movement +----------------- + +U - Jump +UF - Jump forwards +F - Walk forwards +DF - Crouch +D - Crouch +DB - Crouch or low guard +B - Walk backwards or high guard +UB - Jump back +F, F - Forward dash +B, B - Back dash +xy - Recovery (when falling) + +Basic Standing Attacks +---------------------- + +x - W. Punch +y - S. Punch +a - W. Kick +b - S. Kick + +Basic Crouching Attacks +----------------------- + +x - Low W. Punch +y - Low S. Punch +a - Low W. Kick +b - Sweep Kick + +Basic Air Attacks +----------------- + +x - Air W. Punch +y - Air S. Punch +a - Air W. Kick +b - Flying Kick + +Throws +------ + +F/B + y (when close) - Kung Fu Throw + +Special Attacks +--------------- + +D, DF, F, x - W. Kung Fu Palm +D, DF, F, y - S. Kung Fu Palm +D, DF, F, x+y - Fast Kung Fu Palm (uses 1/3 power bar) + +F, D, DF, x - W. Kung Fu Upper +F, D, DF, y - S. Kung Fu Upper +F, D, DF, x+y - Fast Kung Fu Upper (uses 1/3 power bar) + +D, DB, B, x - W. Kung Fu Blow +D, DB, B, y - S. Kung Fu Blow +D, DB, B, x+y - Fast Kung Fu Blow (uses 1/3 power bar) + +D, DF, F, a - W. Kung Fu Zankou +D, DF, F, b - S. Kung Fu Zankou +D, DF, F, a+b - Fast Kung Fu Zankou (uses 1/3 power bar) + +F, F, a - W. Kung Fu Knee +F, F, b - S. Kung Fu Knee +F, F, a+b - Fast Kung Fu Knee (uses 1/3 power bar) +Press button A or B during Kung Fu Knee to add a kick. + +Hyper Attacks (each uses 1 power bar) +------------- + +D, DF, F, D, DF, F, x/y - Triple Kung Fu Palm +D, DB, B, D, DB, B, x/y - Smash Kung Fu Upper + + +Combo notes +=========== + +KFM's strengths lie in his ability to chain moves into each +other. Here are his basic combo rules: + +1. You can combo from weaker basic attacks into stronger ones + eg. light kick -> strong kick + +2. You can combo into special attacks from most basic attacks + eg. stand strong punch -> Kung Fu Palm + +3. You can combo into hyper attacks from all basic and special + attacks + eg. Kung Fu Palm -> Triple Kung Fu Palm + +4. You can combo from hyper attacks into other hyper attacks, + as long as you do not do the same hyper twice in a row + eg. Triple Kung Fu Palm -> Smash Kung Fu Upper + +These rules make it possible for you to do some damaging combos. +Experiment, and perfect your own Kung Fu Combos! diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/ending.def b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/ending.def new file mode 100644 index 00000000..c0186be8 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/ending.def @@ -0,0 +1,93 @@ +; Ending cutscene for KFM's story. + +; Like the intro, this storyboard has multiple scenes. +; Each scene uses two overlay anims, one for the picture, and +; another for the text. +; The fadein and fadeout parameters are used to fade one screen +; to the next. + +[SceneDef] +spr = ending.sff +startscene = 0 ;Starting scene number (for debugging) + +;------------------------------------ +[Scene 0] +; Fade +fadein.time = 60 ;Time to take for fading in +fadein.col = 0,0,0 ;Use 255,255,255 for white-fade +fadeout.time = 15 +fadeout.col = 255,255,255 +; Screen color +clearcolor = 255,255,255 +; Overlay Anims (from 0 to 9) +layerall.pos = 160,0 ;Default position for all layers +layer0.anim = 0 ;Anim action number +layer0.offset = 0,32 ;Position offset +layer0.starttime = 0 ;Time to start display +layer1.anim = 1 +layer1.offset = 0,176 +; Music +bgm = ending.mp3 ;Name of music file to play +bgm.loop = 0 +; Total time +end.time = 460 + +;------------------------------------ +[Scene 1] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 15 +fadeout.col = 255,255,255 +; Screen color +; The previous clearcolor value is carried over by default +; Overlay Anims (from 0 to 9) +; The previous layerall.pos value is carried over by default +layer0.anim = 10 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 11 +layer1.offset = 0,176 +; Total time +end.time = 300 + +;------------------------------------ +[Scene 2] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 90 +fadeout.col = 0,0,0 +; Overlay Anims (from 0 to 9) +layer0.anim = 20 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 21 +layer1.offset = 0,176 +; Total time +end.time = 400 + +;Background image +[Begin Action 0] +0,0, 0,0, -1 + +;Text +[Begin Action 1] +1,0, 0,0, 200 +1,1, 0,0, -1 + +;Background image +[Begin Action 10] +10,0, 0,0, -1 + +;Text +[Begin Action 11] +11,0, 0,0, -1 + +;Background image +[Begin Action 20] +20,0, 0,0, -1 + +;Text +[Begin Action 21] +21,0, 0,0, -1 \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/ending.sff b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/ending.sff new file mode 100644 index 00000000..c00229bb Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/ending.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/intro.def b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/intro.def new file mode 100644 index 00000000..4f879f81 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/intro.def @@ -0,0 +1,148 @@ +; Introduction cutscene for KFM's story. + +; This storyboard has multiple scenes. +; Each scene uses two overlay anims, one for the picture, and +; another for the text. +; The fadein and fadeout parameters are used to fade one screen +; to the next. + +[SceneDef] +spr = intro.sff +startscene = 0 ;Starting scene number (for debugging) + +;------------------------------------ +[Scene 0] +; Fade +fadein.time = 60 ;Time to take for fading in +fadein.col = 0,0,0 ;Use 255,255,255 for white-fade +fadeout.time = 15 +fadeout.col = 255,255,255 +; Screen color +clearcolor = 255,255,255 +; Overlay Anims (from 0 to 9) +layerall.pos = 160,0 ;Default position for all layers +layer0.anim = 0 ;Anim action number +layer0.offset = 0,32 ;Position offset +layer0.starttime = 0 ;Time to start display +layer1.anim = 1 +layer1.offset = 0,176 +; Music +bgm = intro.mp3 ;Name of music file to play +bgm.loop = 0 +; Total time +end.time = 300 + +;------------------------------------ +[Scene 1] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 15 +fadeout.col = 255,255,255 +; Screen color +; The previous clearcolor value is carried over by default +; Overlay Anims (from 0 to 9) +; The previous layerall.pos value is carried over by default +layer0.anim = 10 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 11 +layer1.offset = 0,176 +; Total time +end.time = 300 + +;------------------------------------ +[Scene 2] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 15 +fadeout.col = 255,255,255 +; Overlay Anims (from 0 to 9) +layer0.anim = 20 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 21 +layer1.offset = 0,176 +; Total time +end.time = 300 + +;------------------------------------ +[Scene 3] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 15 +fadeout.col = 255,255,255 +; Overlay Anims (from 0 to 9) +layer0.anim = 30 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 31 +layer1.offset = 0,176 +; Total time +end.time = 300 + +;------------------------------------ +[Scene 4] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 90 +fadeout.col = 0,0,0 +; Overlay Anims (from 0 to 9) +layer0.anim = 40 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 41 +layer1.offset = 53,85 +layer2.anim = 42 +layer2.offset = 0,176 +; Total time +end.time = 600 + +;Background image +[Begin Action 0] +0,0, 0,0, -1 + +;Text +[Begin Action 1] +1,0, 0,0, -1 + +;Background image +[Begin Action 10] +10,0, 0,0, -1 + +;Text +[Begin Action 11] +11,0, 0,0, -1 + +;Background image +[Begin Action 20] +20,0, 0,0, -1 + +;Text +[Begin Action 21] +21,0, 0,0, -1 + +;Background image +[Begin Action 30] +30,0, 0,0, -1 + +;Text +[Begin Action 31] +31,0, 0,0, -1 + +;Background image +[Begin Action 40] +40,0, 0,0, -1 + +;Blinking arrow +[Begin Action 41] +41,0, 0,0, 40 +-1,0, 0,0, 20 + +;Text (two lines) +[Begin Action 42] +42,0, 0,0, 200 +42,1, 0,0, -1 diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/intro.sff b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/intro.sff new file mode 100644 index 00000000..89fb4111 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/intro.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/kfm.snd b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/kfm.snd new file mode 100644 index 00000000..d84829ce Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/kfm.snd differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/kfm720.air b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/kfm720.air new file mode 100644 index 00000000..c143193e --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/kfm720.air @@ -0,0 +1,2508 @@ +; KFM's animation data +; see docs/air.txt for more information + +;--------------------------------------------------------------------------- +; Standing Animation +[Begin Action 0] +Clsn2Default: 2 + Clsn2[0] = -52,0,64,-316 + Clsn2[1] = 20,-316,-28,-372 +0,0,0,0, 10 +0,1,0,0, 7 +0,2,0,0, 7 +0,3,0,0, 7 +0,4,0,0, 7 +0,5,0,0, 45 +0,4,0,0, 7 +0,3,0,0, 7 +0,2,0,0, 7 +0,1,0,0, 7 +0,0,0,0, 40 + +; Turning +[Begin Action 5] +Clsn2Default: 2 + Clsn2[0] = -40,0,40,-316 + Clsn2[1] = -16,-368,24,-316 +5,0,0,0, 4, H +5,0,0,0, 4 + +; Crouch Turning +[Begin Action 6] +Clsn2Default: 3 + Clsn2[0] = 40,0,-40,-188 + Clsn2[1] = 20,-188,-20,-240 + Clsn2[2] = 40,-156,60,0 +6,0,0,0, 4, H +6,0,0,0, 4 + +; Stand to crouch +[Begin Action 10] +Clsn2: 2 + Clsn2[0] = -48,0,68,-260 + Clsn2[1] = -28,-324,24,-260 +11,0,0,0, 2 +Clsn2: 2 + Clsn2[0] = -48,-208,68,0 + Clsn2[1] = -28,-268,24,-208 +11,1,0,0, 2 + +; Crouching animation +[Begin Action 11] +Clsn2: 2 + Clsn2[0] = 76,0,-60,-192 + Clsn2[1] = -24,-248,24,-192 +11,2,0,0, 1 + +; Crouch to Stand +[Begin Action 12] +Clsn2: 2 + Clsn2[0] = -48,-208,68,0 + Clsn2[1] = -28,-268,24,-208 +11,1,0,0, 2 +Clsn2: 2 + Clsn2[0] = -48,0,68,-260 + Clsn2[1] = -28,-324,24,-260 +11,0,0,0, 2 + +; Walking Forward +[Begin Action 20] +Clsn2Default: 2 + Clsn2[0] = -56,0,64,-324 + Clsn2[1] = 24,-324,-28,-384 +20,0,0,0, 3 +20,1,0,0, 3 +20,2,0,0, 3 +20,3,0,0, 3 +20,4,0,0, 3 +20,5,0,0, 3 +20,6,0,0, 3 +20,7,0,0, 3 +20,8,0,0, 3 +20,9,0,0, 3 +20,10,0,0, 3 +20,11,0,0, 3 +20,12,0,0, 3 +20,13,0,0, 3 +20,14,0,0, 3 +20,15,0,0, 3 + +; Walking Back +[Begin Action 21] +Clsn2Default: 2 + Clsn2[0] = -56,0,64,-324 + Clsn2[1] = 24,-324,-28,-384 +21,11,0,0, 3 +21,10,0,0, 3 +21,9,0,0, 3 +21,8,0,0, 3 +21,7,0,0, 3 +21,6,0,0, 3 +21,5,0,0, 3 +21,4,0,0, 3 +21,3,0,0, 3 +21,2,0,0, 3 +21,1,0,0, 3 +21,0,0,0, 3 +21,15,0,0, 3 +21,14,0,0, 3 +21,13,0,0, 3 +21,12,0,0, 3 + +; Jump start frame +[Begin Action 40] +Clsn2: 2 + Clsn2[0] = -60,0,64,-268 + Clsn2[1] = -24,-332,24,-268 +11,0,0,0, 3 + +; Starting Jumping up +[Begin Action 41] +Clsn2: 2 + Clsn2[0] = 48,-44,-44,-376 + Clsn2[1] = -24,-436,24,-376 +41,0,0,0, 7 +Clsn2: 2 + Clsn2[0] = -44,-344,48,-112 + Clsn2[1] = -24,-404,32,-344 +41,1,0,0, 4 +Clsn2: 2 + Clsn2[0] = -44,-308,56,-132 + Clsn2[1] = 0,-364,44,-308 +41,2,0,0, 4 +Clsn2: 2 + Clsn2[0] = -44,-292,56,-140 + Clsn2[1] = 12,-344,60,-276 +41,3,0,0, 4 +Clsn2: 2 + Clsn2[0] = -44,-292,56,-140 + Clsn2[1] = 12,-344,60,-276 +41,4,0,0, 4 +Clsn2: 2 + Clsn2[0] = -44,-132,56,-308 + Clsn2[1] = -8,-372,44,-304 +41,5,0,0, 4 +Clsn2: 2 + Clsn2[0] = -44,-336,56,-108 + Clsn2[1] = -12,-396,36,-336 +41,6,0,0, 4 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 56,-92,-44,-360 + Clsn2[1] = -16,-420,36,-356 +41,7,0,0, 4 +41,8,0,0, 4 + +; Starting Jumping forwards +[Begin Action 42] +Clsn2: 2 + Clsn2[0] = 48,-44,-44,-376 + Clsn2[1] = -24,-436,24,-376 +42,0,0,0, 5 +Clsn2: 2 + Clsn2[0] = -44,-344,56,-112 + Clsn2[1] = 20,-384,68,-340 +42,1,0,0, 5 +Clsn2: 2 + Clsn2[0] = -44,-308,56,-132 + Clsn2[1] = 0,-364,44,-308 +41,2,0,0, 3 +Clsn2: 2 + Clsn2[0] = -44,-292,56,-140 + Clsn2[1] = 12,-344,60,-276 +41,3,0,0, 4 +Clsn2: 1 + Clsn2[0] = -72,-300,72,-176 +42,3,0,0, 3 +Clsn2: 1 + Clsn2[0] = -72,-300,72,-176 +42,4,0,0, 3 +Clsn2: 1 + Clsn2[0] = -72,-300,72,-176 +42,5,0,0, 3 +Clsn2: 2 + Clsn2[0] = -44,-132,56,-308 + Clsn2[1] = -8,-372,44,-304 +41,5,0,0, 3 +Clsn2: 2 + Clsn2[0] = -44,-336,56,-108 + Clsn2[1] = -12,-396,36,-336 +41,6,0,0, 5 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 56,-92,-44,-360 + Clsn2[1] = -16,-420,36,-356 +41,7,0,0, 4 +41,8,0,0, 4 + +; Starting Jumping backwards +[Begin Action 43] +Clsn2: 2 + Clsn2[0] = 48,-44,-44,-376 + Clsn2[1] = -24,-436,24,-376 +43,0,0,0, 6 +Clsn2: 2 + Clsn2[0] = -44,-344,48,-112 + Clsn2[1] = -24,-404,32,-344 +43,1,0,0, 5 +Clsn2: 2 + Clsn2[0] = -44,-308,56,-132 + Clsn2[1] = 0,-364,44,-308 +41,2,0,0, 4 +Clsn2: 2 + Clsn2[0] = -44,-292,56,-140 + Clsn2[1] = 12,-344,60,-276 +41,3,0,0, 4 +Clsn2: 2 + Clsn2[0] = -44,-292,56,-140 + Clsn2[1] = 12,-344,60,-276 +41,4,0,0, 4 +Clsn2: 2 + Clsn2[0] = -44,-132,56,-308 + Clsn2[1] = -8,-372,44,-304 +41,5,0,0, 4 +Clsn2: 2 + Clsn2[0] = -44,-336,56,-108 + Clsn2[1] = -12,-396,36,-336 +41,6,0,0, 5 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 56,-92,-44,-360 + Clsn2[1] = -16,-420,36,-356 +41,7,0,0, 4 +41,8,0,0, 4 + +; Peak and coming down from Jumping up +;[Begin Action 44] + +; Peak and coming down from Jumping forwards +;[Begin Action 45] + +; Peak and coming down from Jumping backwards +;[Begin Action 46] + +; Jump land animation +[Begin Action 47] +Clsn2: 2 + Clsn2[0] = 60,0,-64,-272 + Clsn2[1] = -20,-316,24,-272 +11,0,0,0, 3 + +; Run forwards +[Begin Action 100] +Clsn2Default: 2 + Clsn2[0] = 56,0,-60,-316 + Clsn2[1] = 56,-316,4,-364 +100,0,0,0, 5 +100,1,0,0, 5 +100,2,0,0, 5 +100,3,0,0, 5 +100,4,0,0, 5 +100,5,0,0, 5 + +; Hop backwards +[Begin Action 105] +Clsn2: 3 + Clsn2[0] = -36,-376,56,-224 + Clsn2[1] = 8,-244,100,-136 + Clsn2[2] = 24,-360,-24,-416 +43,0,0,0, 8 +Clsn2: 2 + Clsn2[0] = -32,-112,40,-324 + Clsn2[1] = 24,-324,-20,-376 +43,1,0,0, 4 +Clsn2Default: 2 + Clsn2[0] = -32,-132,52,-308 + Clsn2[1] = 0,-360,40,-308 +41,6,0,0, 4 +41,2,0,0, 4 +Clsn2: 2 + Clsn2[0] = -32,-112,40,-324 + Clsn2[1] = 24,-324,-20,-376 +41,1,0,0, -1 + +;--------------------------- +; Lose +[Begin Action 170] +5000, 0,-20,0, 5 +5000,10,-20,0, 6 +5000,11,-20,0, 9 +5000,10,-20,0, 5 +5000, 0,-20,0, 3 +5010, 0,20,0, 3 +5300, 3,20,0, 4 +5300, 2,20,0, 2 +5300, 1,20,0, -1 + +;--------------------------- +; Win +[Begin Action 181] +Clsn2Default: 1 + Clsn2[0] = 68,0,-48,-332 +200,0,0,0, 4 +181,0,0,0, 5 +181,1,0,0, 5 +181,2,0,0, 5 +181,3,0,0, 5 +181,4,0,0, 5 +181,5,0,0, 5 +181,6,0,0, 30 +181,5,0,0, 7 +181,4,0,0, 6 +181,3,0,0, 5 +181,2,0,0, -1 + +;----------------------------------- +; INTRO +[Begin Action 190] +Clsn2Default: 1 + Clsn2[0] = 68,0,-48,-332 +0,3,0,0, 7 +0,2,0,0, 7 +0,1,0,0, 7 +0,0,0,0, 20 +240,0,-32,0, 4 +240,1,-32,0, 3 +240,2,-32,0, 6 +240,3,-32,0, 5 +240,4,-32,0, 4 +200,0,0,0, 4 + +; INTRO -- WOOD (projectile) +[Begin Action 191] +191,3,0,0, 8 +191,2,0,0, 8 +191,1,0,0, 8 +191,0,0,0, 8 + +; INTRO -- WOODBREAK (projectile) +; Note: Putting -1,0 for the sprite means it does not draw anything +[Begin Action 192] +192,0,0,0, 5 +192,1,0,0, 8 + -1,0,0,0, 1 +192,1,0,0, 3 + -1,0,0,0, 1 +192,1,0,0, 3 + -1,0,0,0, 2 +192,1,0,0, 3 + -1,0,0,0, 2 +Loopstart +192,1,0,0, 1 + -1,0,0,0, 3 + +;--------------------------- +; Taunt +[Begin Action 195] +Clsn2Default: 2 + Clsn2[0] = 72,0,-40,-316 + Clsn2[1] = -4,-376,48,-312 +200,0,0,0, 2 +Clsn2: 2 + Clsn2[0] = 52,0,-52,-336 + Clsn2[1] = -28,-396,24,-340 +181,0,0,0, 4 +Clsn2: 2 + Clsn2[0] = -52,-352,52,0 + Clsn2[1] = -32,-420,16,-348 +181,2,0,0, 4 +Clsn2: 2 + Clsn2[0] = -52,-352,52,0 + Clsn2[1] = 20,-336,68,-416 +181,3,0,0, 4 +Clsn2: 2 + Clsn2[0] = -52,-352,52,0 + Clsn2[1] = 56,-304,108,-380 +181,4,0,0, 4 +Clsn2: 2 + Clsn2[0] = 52,0,-52,-312 + Clsn2[1] = 144,-324,36,-256 +181,5,0,0, 4 +Clsn2: 2 + Clsn2[0] = 52,0,-52,-312 + Clsn2[1] = 36,-316,152,-248 +181,6,0,0, 12 +Clsn2: 2 + Clsn2[0] = 52,0,-52,-312 + Clsn2[1] = 144,-324,36,-256 +181,5,0,0, 3 +Clsn2: 2 + Clsn2[0] = -52,-352,52,0 + Clsn2[1] = 56,-304,108,-380 +181,4,0,0, 3 +Clsn2: 2 + Clsn2[0] = -52,-352,52,0 + Clsn2[1] = 20,-336,68,-416 +181,3,0,0, 3 +Clsn2: 2 + Clsn2[0] = -52,-352,52,0 + Clsn2[1] = -32,-420,16,-348 +181,2,0,0, 3 +Clsn2: 2 + Clsn2[0] = 52,0,-52,-336 + Clsn2[1] = -28,-396,24,-340 +181,0,0,0, 3 +200,0,0,0, 2 + +;----------------------------------- +; Stand Light Punch +[Begin Action 200] +Clsn2Default: 2 + Clsn2[0] = -40,0,76,-320 + Clsn2[1] = 0,-376,48,-320 +200,0,0,0, 2 +200,1,0,0, 1 +Clsn1: 1 + Clsn1[0] = 64,-320,244,-284 +Clsn2: 3 + Clsn2[0] = 76,0,-40,-320 + Clsn2[1] = 24,-376,72,-312 + Clsn2[2] = 76,-320,244,-284 +200,2,0,0, 4 +200,1,0,0, 3 +200,0,0,0, 2 + +;----------------------------------- +; Stand Strong Punch +[Begin Action 210] +Clsn2: 2 + Clsn2[0] = 76,0,-40,-324 + Clsn2[1] = 0,-384,48,-320 +200,0,0,0, 2 +Clsn2: 3 + Clsn2[0] = -44,0,172,-128 + Clsn2[1] = 164,-128,48,-300 + Clsn2[2] = 84,-364,136,-300 +210,0,0,0, 2 +Clsn2: 3 + Clsn2[0] = 180,0,-28,-128 + Clsn2[1] = 76,-292,192,-96 + Clsn2[2] = 140,-356,192,-288 +210,1,0,0, 2 +Clsn2: 3 + Clsn2[0] = 188,-124,-24,0 + Clsn2[1] = 68,-124,188,-312 + Clsn2[2] = 124,-376,168,-304 +210,2,0,0, 2 +Clsn1: 2 + Clsn1[0] = 108,-344,256,-240 + Clsn1[1] = 256,-252,316,-328 +Clsn2: 5 + Clsn2[0] = 160,0,-44,-128 + Clsn2[1] = 136,-128,20,-344 + Clsn2[2] = 52,-388,104,-308 + Clsn2[3] = 136,-240,256,-344 + Clsn2[4] = 256,-252,316,-328 +210,3,0,0, 2 +Clsn2: 3 + Clsn2[0] = 160,0,-44,-128 + Clsn2[1] = 136,-128,20,-344 + Clsn2[2] = 52,-388,104,-308 +210,4,0,0, 4 +Clsn2: 3 + Clsn2[0] = -44,0,128,-156 + Clsn2[1] = 96,-156,-4,-324 + Clsn2[2] = 80,-316,32,-380 +210,5,0,0, 6 +Clsn2: 2 + Clsn2[0] = -40,0,76,-324 + Clsn2[1] = 0,-384,48,-320 +200,0,0,0, 3 + +; Standing Light Kick +[Begin Action 230] +Clsn2: 2 + Clsn2[0] = 76,0,-40,-324 + Clsn2[1] = 0,-384,48,-320 +200,0,0,0, 2 +Clsn2: 2 + Clsn2[0] = -40,-336,76,0 + Clsn2[1] = 8,-396,60,-332 +230,0,0,0, 2 +Clsn1: 3 + Clsn1[0] = 152,-212,56,-144 + Clsn1[1] = 140,-168,224,-116 + Clsn1[2] = 276,-136,212,-92 +Clsn2: 5 + Clsn2[0] = -24,-336,72,0 + Clsn2[1] = 24,-392,76,-332 + Clsn2[2] = 72,-212,152,-144 + Clsn2[3] = 224,-116,140,-168 + Clsn2[4] = 212,-92,276,-136 +230,1,0,0, 3 +Clsn2: 5 + Clsn2[0] = -24,-336,72,0 + Clsn2[1] = 24,-392,76,-332 + Clsn2[2] = 128,-148,72,-216 + Clsn2[3] = 128,-168,180,-116 + Clsn2[4] = 208,-88,176,-136 +230,2,0,0, 3 +Clsn2: 2 + Clsn2[0] = -40,-336,76,0 + Clsn2[1] = 8,-396,60,-332 +230,0,0,0, 3 +200,0,0,0, 2 + +; Standing Strong Kick +[Begin Action 240] +Clsn2Default: 3 + Clsn2[0] = -52,-328,24,0 + Clsn2[1] = -48,-380,0,-324 + Clsn2[2] = 96,-112,8,-264 +240,0,0,0, 4 +240,1,0,0, 3 +Clsn1: 1 + Clsn1[0] = 16,-260,268,-200 +Clsn2: 4 + Clsn2[0] = 24,0,-36,-248 + Clsn2[1] = -80,-320,16,-228 + Clsn2[2] = -76,-376,-28,-316 + Clsn2[3] = 268,-200,12,-260 +240,2,0,0, 4 +Clsn1: 1 + Clsn1[0] = 280,-260,32,-200 +Clsn2: 4 + Clsn2[0] = 36,0,-28,-248 + Clsn2[1] = -72,-320,24,-228 + Clsn2[2] = -64,-376,-16,-320 + Clsn2[3] = 12,-260,280,-200 +240,3,0,0, 4 +Clsn2: 4 + Clsn2[0] = -24,-4,36,-240 + Clsn2[1] = -48,-324,52,-220 + Clsn2[2] = -36,-368,8,-324 + Clsn2[3] = 36,-228,148,-156 +240,4,0,0, 4 +Clsn2: 3 + Clsn2[0] = -8,0,120,-232 + Clsn2[1] = -8,-316,88,-232 + Clsn2[2] = 4,-376,48,-316 +240,5,0,0, 3 +Clsn2: 2 + Clsn2[0] = -36,0,68,-320 + Clsn2[1] = 0,-376,48,-324 +200,0,0,0, 3 + +; Crouching light punch +[Begin Action 400] +Clsn2: 2 + Clsn2[0] = 72,0,-60,-192 + Clsn2[1] = -16,-252,36,-192 +400,0,0,0, 3 +Clsn1: 1 + Clsn1[0] = 216,-160,68,-192 +Clsn2: 3 + Clsn2[0] = -56,0,76,-192 + Clsn2[1] = 0,-252,48,-192 + Clsn2[2] = 72,-192,216,-160 +400,1,0,0, 6 +Clsn2: 2 + Clsn2[0] = 72,0,-60,-192 + Clsn2[1] = -16,-252,36,-192 +400,0,0,0, 3 + +; Crouching strong punch +[Begin Action 410] +Clsn2Default: 2 + Clsn2[0] = -40,0,120,-232 + Clsn2[1] = 8,-304,56,-232 +410,0,0,0, 2 +410,1,0,0, 2 +Clsn1: 1 + Clsn1[0] = 180,-148,80,-248 +Clsn2: 3 + Clsn2[0] = -8,0,128,-220 + Clsn2[1] = 36,-300,84,-216 + Clsn2[2] = 180,-148,80,-248 +410,2,0,0, 3 +Clsn1: 2 + Clsn1[0] = 204,-316,116,-228 + Clsn1[1] = 176,-376,228,-296 +Clsn2: 4 + Clsn2[0] = -4,0,156,-168 + Clsn2[1] = 56,-172,136,-332 + Clsn2[2] = 204,-316,136,-248 + Clsn2[3] = 176,-376,228,-296 +410,3,0,0, 7 +Clsn2: 3 + Clsn2[0] = 148,0,-20,-148 + Clsn2[1] = 24,-148,144,-256 + Clsn2[2] = 52,-312,100,-256 +410,4,0,0, 5 +410,0,0,0, 3 + +; Crouching Light Kick +[Begin Action 430] +Clsn2: 3 + Clsn2[0] = 112,0,-60,-112 + Clsn2[1] = -76,-196,56,-112 + Clsn2[2] = -4,-188,-52,-240 +430,0,0,0, 2 +Clsn2: 3 + Clsn2[0] = 116,0,-84,-124 + Clsn2[1] = 44,-92,-76,-180 + Clsn2[2] = -28,-168,-72,-216 +430,1,0,0, 2 +Clsn1: 3 + Clsn1[0] = 96,-96,32,-52 + Clsn1[1] = 92,-76,180,-40 + Clsn1[2] = 180,-44,252,0 +Clsn2: 5 + Clsn2[0] = 44,0,-80,-164 + Clsn2[1] = -84,-200,-40,-152 + Clsn2[2] = 96,-96,32,-52 + Clsn2[3] = 92,-76,180,-40 + Clsn2[4] = 180,-44,252,0 +430,2,0,0, 3 +Clsn2: 5 + Clsn2[0] = -80,-164,44,0 + Clsn2[1] = -84,-200,-40,-156 + Clsn2[2] = 44,-100,96,-52 + Clsn2[3] = 92,-76,172,-40 + Clsn2[4] = 172,-44,240,0 +430,3,0,0, 4 +Clsn2: 3 + Clsn2[0] = 116,0,-84,-124 + Clsn2[1] = 44,-92,-76,-180 + Clsn2[2] = -28,-168,-72,-216 +430,1,0,0, 3 +Clsn2: 3 + Clsn2[0] = 112,0,-60,-112 + Clsn2[1] = -76,-196,56,-112 + Clsn2[2] = -4,-188,-52,-240 +430,0,0,0, 3 + +; Crouching Strong Kick +[Begin Action 440] +Clsn2: 3 + Clsn2[0] = -60,0,112,-112 + Clsn2[1] = -28,-112,100,-200 + Clsn2[2] = 28,-260,76,-192 +440,0,0,0, 4 +Clsn2Default: 3 + Clsn2[0] = 104,0,-68,-96 + Clsn2[1] = -28,-96,108,-192 + Clsn2[2] = 28,-232,80,-184 +440,1,0,0, 3 +440,2,0,0, 2 +Clsn1: 3 + Clsn1[0] = 160,-40,72,-100 + Clsn1[1] = 160,-68,232,-16 + Clsn1[2] = 304,4,232,-40 +Clsn2: 5 + Clsn2[0] = 68,-208,-28,0 + Clsn2[1] = 160,-40,48,-100 + Clsn2[2] = 160,-68,232,-16 + Clsn2[3] = 304,4,232,-40 + Clsn2[4] = 32,-236,80,-184 +440,3,0,0, 4 +Clsn2Default: 4 + Clsn2[0] = 68,0,-28,-208 + Clsn2[1] = 32,-236,80,-184 + Clsn2[2] = 68,-108,132,-44 + Clsn2[3] = 132,-68,208,-16 +440,4,0,0, 5 +440,5,0,0, 3 +Clsn2: 3 + Clsn2[0] = 104,0,-68,-96 + Clsn2[1] = -28,-96,108,-192 + Clsn2[2] = 28,-232,80,-184 +440,6,0,0, 5 +Clsn2: 3 + Clsn2[0] = -60,0,112,-112 + Clsn2[1] = -28,-112,100,-200 + Clsn2[2] = 28,-260,76,-192 +440,0,0,0, 4 + +; Jump light punch +[Begin Action 600] +Clsn2Default: 2 + Clsn2[0] = -44,-288,64,-108 + Clsn2[1] = -20,-348,32,-288 +600,0,0,0, 3 +Clsn1: 2 + Clsn1[0] = 60,-280,124,-240 + Clsn1[1] = 196,-216,116,-260 +Clsn2: 4 + Clsn2[0] = -52,-288,68,-108 + Clsn2[1] = 0,-348,48,-284 + Clsn2[2] = 60,-280,124,-240 + Clsn2[3] = 196,-216,116,-260 +600,1,0,0, 11 +Clsn2: 4 + Clsn2[0] = -52,-288,68,-108 + Clsn2[1] = 0,-348,48,-284 + Clsn2[2] = 60,-280,124,-240 + Clsn2[3] = 196,-216,116,-260 +600,1,0,0, 4 +600,0,0,0, -1 + +; Jump strong punch +[Begin Action 610] +Clsn2: 2 + Clsn2[0] = -52,-304,72,-96 + Clsn2[1] = -8,-352,44,-292 +610,0,0,0, 3 +Clsn2: 2 + Clsn2[0] = 80,-92,-40,-304 + Clsn2[1] = 28,-364,108,-272 +610,1,0,0, 3 +Clsn1: 1 + Clsn1[0] = 92,-180,228,-308 +Clsn2: 3 + Clsn2[0] = 80,-92,-40,-304 + Clsn2[1] = 72,-340,120,-280 + Clsn2[2] = 228,-180,80,-308 +610,2,0,0, 5 +Clsn2: 2 + Clsn2[0] = -40,-308,80,-92 + Clsn2[1] = 40,-368,92,-284 +610,3,0,0, 12 +Clsn2: 2 + Clsn2[0] = -40,-308,80,-92 + Clsn2[1] = 24,-368,120,-284 +610,1,0,0, -1 + +; Jump light kick +[Begin Action 630] +Clsn2: 2 + Clsn2[0] = -60,-288,68,-96 + Clsn2[1] = -32,-364,16,-288 +640,0,0,0, 3 +Clsn1: 1 + Clsn1[0] = 44,-216,140,-148 +Clsn2: 3 + Clsn2[0] = -88,-288,60,-132 + Clsn2[1] = -44,-360,0,-284 + Clsn2[2] = 44,-216,140,-148 +630,1,0,0, 3 +Clsn1: 2 + Clsn1[0] = 136,-120,52,-192 + Clsn1[1] = 84,-152,28,-208 +Clsn2: 3 + Clsn2[0] = -28,-356,20,-292 + Clsn2[1] = 76,-136,-72,-296 + Clsn2[2] = 52,-192,136,-120 +630,2,0,0, 12 +Clsn2: 2 + Clsn2[0] = -88,-288,60,-132 + Clsn2[1] = -44,-360,0,-284 +630,1,0,0, -1 + +; Jump strong kick +[Begin Action 640] +Clsn2: 2 + Clsn2[0] = -60,-288,68,-96 + Clsn2[1] = -32,-364,16,-288 +640,0,0,0, 6 +Clsn1: 2 + Clsn1[0] = 172,-192,52,-132 + Clsn1[1] = 172,-168,276,-112 +Clsn2: 4 + Clsn2[0] = -84,-292,60,-116 + Clsn2[1] = -16,-292,-60,-360 + Clsn2[2] = 60,-192,172,-132 + Clsn2[3] = 172,-168,276,-112 +640,1,0,0, 5 +Clsn2: 3 + Clsn2[0] = -76,-292,56,-128 + Clsn2[1] = 56,-192,140,-140 + Clsn2[2] = -48,-356,-8,-292 +640,2,0,0, 8 +Clsn2: 2 + Clsn2[0] = -60,-288,68,-96 + Clsn2[1] = -32,-364,16,-288 +640,0,0,0, -1 + +;----------------------------------- +; Kung Fu Throw Attempt +[Begin Action 800] +Clsn1: 1 + Clsn1[0] = 104,-324,32,0 +Clsn2Default: 2 + Clsn2[0] = -32,0,84,-324 + Clsn2[1] = 40,-376,80,-320 +800,0,0,0, 1 +800,0,0,0, 1 +800,1,0,0, 3 +800,2,0,0, 10 +800,4,0,0, 4 +800,0,0,0, 3 + +;----------------------------------- +;Kung Fu Throw +[Begin Action 810] +800, 0,0,0, 2 +800, 1,0,0, 3 +800, 2,0,0, 10 +800, 3,0,0, 5 +800, 4,0,0, 3 +800, 5,0,0, 4 +800, 6,0,0, 4 +800, 7,0,0, 3 +800, 8,0,0, 3 +800, 9,0,0, 3 +800,10,0,0, 5 +800,11,0,0, 4, H +800,11,0,0, 4, H +800,12,0,0, 12, H +200, 0,0,0, 5 + +;----------------------------------- +;Thrown by Kung Fu Throw (animation for opponent) +; Note: Use ONLY the required frames documented in spr.txt and spr.gif. +; It is important to be restricted to the required frames so that +; the throw animation will look correct for any given character. +; Notice that the animation timings are synchronized to KFM's +; throw animation (action 810). +[Begin Action 820] +5000, 0,0,0, 2 +5010, 0,0,0, 3 +5010,10,0,0, 10 +5010,10,0,0, 5 +5010, 0,0,0, 3 +5061, 0,0,0, 4 +5071, 0,0,0, 4 +5071,10,0,0, 3 +5071,20,0,0, 3 +5031, 0,0,0, 3, HV +5011, 0,0,-160, 5, HV +Clsn2: 2 + Clsn2[0] = -104,-152,24,-276 + Clsn2[1] = 72,-324,-48,-220 +5030,40,0,0, 5 +Clsn2: 1 + Clsn2[0] = -104,-128,80,-264 +5030,30,0,0,-1 + +;----------------------------------- +; Light Kung Fu Palm +[Begin Action 1000] +Clsn2: 2 + Clsn2[0] = -56,0,60,-320 + Clsn2[1] = -24,-376,28,-320 +200,0,-20,0, 1 +Clsn2: 3 + Clsn2[0] = 128,-156,-100,0 + Clsn2[1] = 64,-156,-40,-292 + Clsn2[2] = 8,-344,52,-288 +1000,0,0,0, 2 +Clsn2Default: 3 + Clsn2[0] = 124,0,-136,-132 + Clsn2[1] = -32,-268,80,-132 + Clsn2[2] = 20,-324,72,-268 +1000,1,0,0, 2 +1000,2,0,0, 2 +1000,3,0,0, 1 +Clsn1: 1 + Clsn1[0] = 272,-264,36,-176 +Clsn2: 4 + Clsn2[0] = 116,0,-148,-128 + Clsn2[1] = 84,-128,-32,-260 + Clsn2[2] = 20,-296,68,-244 + Clsn2[3] = 84,-264,272,-184 +1000,4,0,0, 3 +Clsn2: 4 + Clsn2[0] = 116,0,-148,-128 + Clsn2[1] = 84,-128,-32,-260 + Clsn2[2] = 20,-296,68,-244 + Clsn2[3] = 84,-256,272,-184 +1000,5,0,0, 7 +1000,7,0,0, 4 +1000,2,0,0, 3 +1000,1,0,0, 3 +Clsn2: 3 + Clsn2[0] = 128,-156,-100,0 + Clsn2[1] = 64,-156,-40,-292 + Clsn2[2] = 8,-344,52,-288 +1000,0,0,0, 3 +Clsn2: 2 + Clsn2[0] = -56,0,60,-320 + Clsn2[1] = -24,-376,28,-320 +200,0,-20,0, 2 + +;----------------------------------- +; Strong Kung Fu Palm +[Begin Action 1010] +Clsn2: 2 + Clsn2[0] = -40,0,76,-320 + Clsn2[1] = 0,-376,48,-320 +200,0,0,0, 2 +Clsn2: 3 + Clsn2[0] = 128,-156,-100,0 + Clsn2[1] = 64,-156,-40,-292 + Clsn2[2] = 8,-344,52,-288 +1000,0,0,0, 2 +Clsn2Default: 3 + Clsn2[0] = 124,0,-136,-132 + Clsn2[1] = -32,-268,80,-132 + Clsn2[2] = 20,-324,72,-268 +1000,1,0,0, 2 +1000,2,0,0, 2 +1000,3,0,0, 1 +Clsn1: 1 + Clsn1[0] = 272,-264,36,-176 +Clsn2: 4 + Clsn2[0] = 116,0,-148,-128 + Clsn2[1] = 84,-128,-32,-260 + Clsn2[2] = 20,-296,68,-244 + Clsn2[3] = 84,-264,272,-184 +1000,4,0,0, 3 +Clsn2: 4 + Clsn2[0] = 116,0,-148,-128 + Clsn2[1] = 84,-128,-32,-260 + Clsn2[2] = 20,-296,68,-244 + Clsn2[3] = 84,-256,272,-184 +1000,5,0,0, 5 +Clsn2: 4 + Clsn2[0] = 116,0,-148,-128 + Clsn2[1] = 84,-128,-32,-260 + Clsn2[2] = 20,-296,68,-244 + Clsn2[3] = 84,-256,272,-184 +1000,6,0,0, 5 +1000,7,0,0, 4 +1000,2,0,0, 3 +1000,1,0,0, 3 +Clsn2: 3 + Clsn2[0] = 128,-156,-100,0 + Clsn2[1] = 64,-156,-40,-292 + Clsn2[2] = 8,-344,52,-288 +1000,0,0,0, 3 +Clsn2: 2 + Clsn2[0] = -60,0,60,-320 + Clsn2[1] = -20,-376,28,-316 +200,0,-20,0, 3 + +;----------------------------------- +; Fast Kung Fu Palm +[Begin Action 1020] +Clsn2: 2 + Clsn2[0] = -40,0,76,-320 + Clsn2[1] = 0,-376,48,-320 +200,0,0,0, 2 +Clsn2: 3 + Clsn2[0] = 128,-156,-100,0 + Clsn2[1] = 64,-156,-40,-292 + Clsn2[2] = 8,-344,52,-288 +1000,0,0,0, 3 +Clsn2Default: 3 + Clsn2[0] = 124,0,-136,-132 + Clsn2[1] = -32,-268,80,-132 + Clsn2[2] = 20,-324,72,-268 +1000,1,0,0, 3 +1000,3,0,0, 2 +Clsn1: 1 + Clsn1[0] = 264,-264,36,-176 +Clsn2Default: 4 + Clsn2[0] = 116,0,-148,-128 + Clsn2[1] = 84,-128,-32,-260 + Clsn2[2] = 20,-296,68,-244 + Clsn2[3] = 84,-264,264,-184 +1000,4,0,0, 5 +Clsn1: 1 + Clsn2[0] = 264,-264,36,-176 +1000,5,0,0, 4 +Clsn2Default: 4 + Clsn2[0] = 116,0,-148,-128 + Clsn2[1] = 84,-128,-32,-260 + Clsn2[2] = 20,-296,68,-244 + Clsn2[3] = 84,-256,264,-184 +1000,6,0,0, 4 +1000,5,0,0, 4 +1000,6,0,0, 3 +1000,7,0,0, 3 +1000,1,0,0, 3 +Clsn2: 3 + Clsn2[0] = 128,-156,-100,0 + Clsn2[1] = 64,-156,-40,-292 + Clsn2[2] = 8,-344,52,-288 +1000,0,0,0, 3 +Clsn2: 2 + Clsn2[0] = -60,0,60,-320 + Clsn2[1] = -24,-376,28,-320 +200,0,-20,0, 2 + +; Hit by Fast Kung Fu Palm +[Begin Action 1025] +Clsn2: 1 + Clsn2[0] = -116,-292,32,-108 +5010,10,0,0, 4 +Clsn2: 1 + Clsn2[0] = -116,-292,32,-108 +5010,20,0,0, 4 +Clsn2Default: 1 + Clsn2[0] = -116,-328,48,-192 +5030, 0,0,0, 4 +5030,10,0,0, -1 + +; Hit by Fast Kung Fu Palm - hit wall +[Begin Action 1027] +Clsn2Default: 1 + Clsn2[0] = -132,-272,4,-92 +5010,20,0,0, 3 +5010,10,0,0, 3 +5010, 0,0,0, 2 + +;----------------------------------- +; Light Kung Fu Knee - move forwards +[Begin Action 1050] +Clsn2: 2 + Clsn2[0] = -40,0,76,-320 + Clsn2[1] = 0,-376,48,-320 +200,0,0,0, 2 +Clsn2: 4 + Clsn2[0] = 100,0,-64,-164 + Clsn2[1] = -64,0,-156,-84 + Clsn2[2] = 72,-164,-28,-284 + Clsn2[3] = 20,-324,60,-272 +1050,0,0,0, 3 +Clsn2: 2 + Clsn2[0] = 96,0,-36,-316 + Clsn2[1] = 28,-364,76,-312 +1050,1,0,0, 2 +Clsn1: 1 + Clsn1[0] = 20,-268,96,-144 +Clsn2: 2 + Clsn2[0] = -48,-420,40,0 + Clsn2[1] = 20,-268,96,-124 +1050,2,0,0, 2 + +;----------------------------------- +; Light Kung Fu Knee - jump +[Begin Action 1051] +Clsn1: 1 + Clsn1[0] = 136,-360,36,-196 +Clsn2Default: 4 + Clsn2[0] = -52,-404,52,-240 + Clsn2[1] = -24,-136,36,-240 + Clsn2[2] = 120,-320,36,-196 + Clsn2[3] = 24,-440,72,-380 +1050,3,0,0, 4 +Clsn1: 1 + Clsn1[0] = 120,-320,36,-196 +1050,4,0,0, 4 +Clsn1: 1 + Clsn1[0] = 120,-320,36,-196 +1050,3,0,0, 4 +Clsn2: 3 + Clsn2[0] = -32,-388,48,-140 + Clsn2[1] = 64,-368,20,-420 + Clsn2[2] = 40,-284,100,-160 +1050,5,0,0, 4 +Clsn2: 3 + Clsn2[0] = -32,-380,48,-132 + Clsn2[1] = 24,-416,64,-368 + Clsn2[2] = 40,-256,116,-132 +1050,6,0,0, 4 +Clsn2: 3 + Clsn2[0] = 40,-108,-44,-380 + Clsn2[1] = 24,-416,64,-368 + Clsn2[2] = 108,-108,40,-252 +1050,7,0,0, -1 + +;----------------------------------- +; Light Kung Fu Knee - land +[Begin Action 1052] +Clsn2: 3 + Clsn2[0] = 104,0,-44,-188 + Clsn2[1] = 64,-188,-36,-308 + Clsn2[2] = 64,-304,20,-352 +1052,0,0,0, 2 +Clsn2: 3 + Clsn2[0] = 108,0,-40,-148 + Clsn2[1] = -20,-260,76,-144 + Clsn2[2] = 72,-252,32,-296 +1052,1,0,0, 4 +Clsn2: 3 + Clsn2[0] = 60,0,-48,-160 + Clsn2[1] = -44,-160,36,-280 + Clsn2[2] = 4,-316,44,-268 +1052,2,0,0, 4 +Clsn2: 2 + Clsn2[0] = -64,-340,56,0 + Clsn2[1] = -4,-380,36,-336 +1052,3,0,0, 3 + +;----------------------------------- +; Light Kung Fu Knee - kick +[Begin Action 1055] +Clsn2: 2 + Clsn2[0] = -64,-348,76,-192 + Clsn2[1] = -28,-396,12,-344 +1055,0,0,0, 2 +Clsn2: 2 + Clsn2[0] = 76,-192,-64,-348 + Clsn2[1] = -24,-396,20,-344 +1055,1,0,0, 2 +Clsn2: 2 + Clsn2[0] = -64,-348,76,-192 + Clsn2[1] = -24,-404,12,-348 +1055,2,0,0, 1 +Clsn2: 3 + Clsn2[0] = -64,-372,56,-164 + Clsn2[1] = -36,-416,12,-360 + Clsn2[2] = 124,-400,52,-312 +1055,3,0,0, 1 +Clsn1: 2 + Clsn1[0] = 56,-384,128,-176 + Clsn1[1] = 180,-444,120,-308 +Clsn2: 4 + Clsn2[0] = -64,-372,56,-164 + Clsn2[1] = -36,-416,12,-360 + Clsn2[2] = 56,-384,128,-176 + Clsn2[3] = 180,-444,120,-308 +1055,4,0,0, 3 +Clsn2: 3 + Clsn2[0] = -64,-372,56,-164 + Clsn2[1] = -36,-416,12,-360 + Clsn2[2] = 124,-376,56,-288 +1055,5,0,0, 7 +Clsn2: 3 + Clsn2[0] = -64,-164,56,-372 + Clsn2[1] = -36,-416,12,-360 + Clsn2[2] = 56,-308,124,-260 +1055,6,0,0, 3 +Clsn2: 3 + Clsn2[0] = -64,-372,56,-164 + Clsn2[1] = -36,-416,12,-360 + Clsn2[2] = 56,-292,112,-204 +1055,7,0,0, 3 +Clsn2: 2 + Clsn2[0] = 56,-132,-44,-368 + Clsn2[1] = -12,-412,36,-356 +41,6,0,-20, 3 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 56,-92,-44,-360 + Clsn2[1] = -16,-420,36,-356 +41,7,0,0, 4 +41,8,0,0, 4 + +;----------------------------------- +; Light Kung Fu Knee - kick land +[Begin Action 1056] +Clsn2: 2 + Clsn2[0] = -60,-260,60,0 + Clsn2[1] = -24,-320,20,-256 +11,1,0,0, 4 +Clsn2: 2 + Clsn2[0] = 52,0,-60,-212 + Clsn2[1] = -24,-272,20,-212 +11,0,0,0, 3 + +;----------------------------------- +; Strong Kung Fu Knee - move forwards +[Begin Action 1060] +Clsn2Default: 2 + Clsn2[0] = -40,0,76,-320 + Clsn2[1] = 0,-376,48,-320 +200,0,0,0, 2 +Clsn2: 4 + Clsn2[0] = 152,0,-12,-164 + Clsn2[1] = -12,0,-104,-84 + Clsn2[2] = 124,-164,24,-284 + Clsn2[3] = 72,-324,124,-272 +1050,0,0,0, 3 +Clsn2: 2 + Clsn2[0] = 96,0,-36,-316 + Clsn2[1] = 28,-364,76,-312 +1050,1,0,0, 2 +Clsn1: 1 + Clsn1[0] = 20,-268,96,-144 +Clsn2: 2 + Clsn2[0] = -48,-420,40,0 + Clsn2[1] = 20,-268,96,-124 +1050,2,0,0, 2 + +;----------------------------------- +; Strong Kung Fu Knee - jump +[Begin Action 1061] +Clsn1: 1 + Clsn1[0] = 136,-360,36,-196 +Clsn2Default: 4 + Clsn2[0] = -52,-404,52,-240 + Clsn2[1] = -24,-136,36,-240 + Clsn2[2] = 120,-320,36,-196 + Clsn2[3] = 24,-440,72,-380 +1050,3,0,0, 4 +Clsn1: 1 + Clsn1[0] = 120,-320,36,-196 +1050,4,0,0, 4 +Clsn1: 1 + Clsn1[0] = 120,-320,36,-196 +1050,3,0,0, 4 +Clsn1: 1 + Clsn1[0] = 120,-320,36,-196 +1050,4,0,0, 4 +Clsn2: 3 + Clsn2[0] = -32,-388,48,-140 + Clsn2[1] = 64,-368,20,-420 + Clsn2[2] = 40,-284,100,-160 +1050,5,0,0, 5 +Clsn2: 3 + Clsn2[0] = -32,-380,48,-132 + Clsn2[1] = 24,-416,64,-368 + Clsn2[2] = 40,-256,116,-132 +1050,6,0,0, 5 +Clsn2: 3 + Clsn2[0] = 40,-108,-44,-380 + Clsn2[1] = 24,-416,64,-368 + Clsn2[2] = 108,-108,40,-252 +1050,7,0,0, -1 + +;----------------------------------- +; Fast Kung Fu Knee - move forwards +[Begin Action 1070] +Clsn2Default: 2 + Clsn2[0] = -40,0,76,-320 + Clsn2[1] = 0,-376,48,-320 +200,0,0,0, 2 +Clsn2: 4 + Clsn2[0] = 152,0,-12,-164 + Clsn2[1] = -12,0,-104,-84 + Clsn2[2] = 124,-164,24,-284 + Clsn2[3] = 72,-324,124,-272 +1050,0,0,0, 2 +Clsn2: 2 + Clsn2[0] = 96,0,-36,-316 + Clsn2[1] = 28,-364,76,-312 +1050,1,0,0, 2 +Clsn1: 1 + Clsn1[0] = 20,-268,104,-144 +Clsn2: 2 + Clsn2[0] = -48,-420,40,0 + Clsn2[1] = 20,-268,104,-124 +1050,2,0,0, 1 + +;----------------------------------- +; Fast Kung Fu Knee - jump +[Begin Action 1071] +Clsn1: 1 + Clsn1[0] = 136,-360,36,-196 +Clsn2Default: 4 + Clsn2[0] = -52,-404,52,-240 + Clsn2[1] = -24,-136,36,-240 + Clsn2[2] = 120,-320,36,-196 + Clsn2[3] = 24,-440,72,-380 +1050,3,0,0, 4 +Clsn1: 1 + Clsn1[0] = 120,-320,36,-196 +1050,4,0,0, 4 +Clsn1: 1 + Clsn1[0] = 120,-320,36,-196 +1050,3,0,0, 4 +Clsn1: 1 + Clsn1[0] = 120,-320,36,-196 +1050,4,0,0, 4 +Clsn2: 3 + Clsn2[0] = -32,-388,48,-140 + Clsn2[1] = 64,-368,20,-420 + Clsn2[2] = 40,-284,100,-160 +1050,5,0,0, 5 +Clsn2: 3 + Clsn2[0] = -32,-380,48,-132 + Clsn2[1] = 24,-416,64,-368 + Clsn2[2] = 40,-256,116,-132 +1050,6,0,0, 5 +Clsn2: 3 + Clsn2[0] = 40,-108,-44,-380 + Clsn2[1] = 24,-416,64,-368 + Clsn2[2] = 108,-108,40,-252 +1050,7,0,0, -1 + +;----------------------------------- +; Light Kung Fu Upper +[Begin Action 1100] +Clsn2Default: 1 + Clsn2[0] = -48,0,64,-376 +1100,0,0,0, 2 +1100,1,0,0, 1 +Clsn1: 1 + Clsn1[0] = 88,-232,172,-152 +Clsn2: 2 + Clsn2[0] = 112,0,-12,-340 + Clsn2[1] = 88,-232,172,-152 +1100,2,0,0, 2 +Clsn2: 2 + Clsn2[0] = 112,0,-12,-340 + Clsn2[1] = 92,-368,136,-304 +1100,3,0,0, 2 +Clsn2: 2 + Clsn2[0] = 124,0,-12,-340 + Clsn2[1] = 56,-384,108,-320 +1100,4,0,0, 1 +Clsn2: 1 + Clsn2[0] = 128,0,4,-384 +1100,5,0,0, 1 +Clsn1: 1 + Clsn1[0] = 120,-240,220,-524 +Clsn2Default: 2 + Clsn2[0] = 128,0,4,-384 + Clsn2[1] = 120,-524,176,-372 +1100,6,0,0, 1 +Clsn1: 1 + Clsn1[0] = 120,-372,176,-524 +1100,6,0,0, 3 +Clsn2Default: 2 + Clsn2[0] = 128,0,4,-384 + Clsn2[1] = 108,-440,152,-372 +1100,7,0,0, 4 +1100,6,0,0, 4 +1100,8,0,0, 3 +Clsn2: 2 + Clsn2[0] = 128,0,4,-384 + Clsn2[1] = 128,-320,172,-388 +1100,9,0,0, 3 +Clsn2Default: 2 + Clsn2[0] = -40,0,76,-320 + Clsn2[1] = 0,-376,48,-320 +200,1,0,0, 2 +200,0,0,0, 2 + +;----------------------------------- +; Strong Kung Fu Upper +[Begin Action 1110] +Clsn2Default: 1 + Clsn2[0] = -48,0,64,-376 +1100,0,0,0, 2 +1100,1,0,0, 2 +Clsn1: 1 + Clsn1[0] = 88,-232,172,-152 +Clsn2: 2 + Clsn2[0] = 112,0,-12,-340 + Clsn2[1] = 88,-232,172,-152 +1100,2,0,0, 3 +Clsn2: 2 + Clsn2[0] = 112,0,-12,-340 + Clsn2[1] = 92,-368,136,-304 +1100,3,0,0, 2 +Clsn2: 2 + Clsn2[0] = 124,0,-12,-340 + Clsn2[1] = 56,-384,108,-320 +1100,4,0,0, 1 +Clsn2: 1 + Clsn2[0] = 128,0,4,-384 +1100,5,0,0, 1 +Clsn1: 1 + Clsn1[0] = 120,-240,220,-524 +Clsn2Default: 2 + Clsn2[0] = 128,0,4,-384 + Clsn2[1] = 120,-524,176,-372 +1100,6,0,0, 1 +Clsn1: 1 + Clsn1[0] = 120,-372,176,-524 +1100,6,0,0, 3 +Clsn2Default: 2 + Clsn2[0] = 128,0,4,-384 + Clsn2[1] = 108,-440,152,-372 +1100,7,0,0, 4 +1100,6,0,0, 4 +1100,7,0,0, 4 +1100,8,0,0, 4 +Clsn2: 2 + Clsn2[0] = 128,0,4,-384 + Clsn2[1] = 128,-320,172,-388 +1100,9,0,0, 3 +Clsn2Default: 2 + Clsn2[0] = -40,0,76,-320 + Clsn2[1] = 0,-376,48,-320 +200,1,0,0, 2 +200,0,0,0, 2 + +;----------------------------------- +; Fast Kung Fu Upper +[Begin Action 1120] +Clsn2Default: 1 + Clsn2[0] = -48,0,64,-376 +1100,0,0,0, 1 +1100,1,0,0, 1 +Clsn1: 1 + Clsn1[0] = 88,-232,172,-152 +Clsn2: 2 + Clsn2[0] = 112,0,-12,-340 + Clsn2[1] = 88,-232,172,-152 +1100,2,0,0, 1 +Clsn1: 1 + Clsn1[0] = 100,-248,184,-168 +Clsn2: 2 + Clsn2[0] = 112,0,-12,-340 + Clsn2[1] = 100,-248,184,-168 +1100,3,0,0, 1 +Clsn2: 2 + Clsn2[0] = 124,0,-12,-340 + Clsn2[1] = 56,-384,108,-320 +1100,4,0,0, 1 +Clsn2: 1 + Clsn2[0] = 128,0,4,-384 +1100,5,0,0, 1 +Clsn1: 1 + Clsn1[0] = 120,-240,220,-524 +Clsn2Default: 2 + Clsn2[0] = 128,0,4,-384 + Clsn2[1] = 120,-524,176,-372 +1100,6,0,0, 1 +Clsn1: 1 + Clsn1[0] = 120,-372,176,-524 +1100,6,0,0, 3 +Clsn2Default: 2 + Clsn2[0] = 128,0,4,-384 + Clsn2[1] = 108,-440,152,-372 +1100,7,0,0, 4 +1100,6,0,0, 4 +1100,7,0,0, 4 +1100,6,0,0, 4 +1100,8,0,0, 4 +Clsn2: 2 + Clsn2[0] = 128,0,4,-384 + Clsn2[1] = 128,-320,172,-388 +1100,9,0,0, 3 +Clsn2Default: 2 + Clsn2[0] = -40,0,76,-320 + Clsn2[1] = 0,-376,48,-320 +200,1,0,0, 2 +200,0,0,0, 2 + +;----------------------------------- +; Light Kung Fu Blow +[Begin Action 1200] +Clsn2Default: 2 + Clsn2[0] = -56,-336,68,0 + Clsn2[1] = -20,-384,24,-324 +1210,0,0,0, 3 +1210,1,0,0, 6 +1210,0,0,0, 2 +Clsn2: 2 + Clsn2[0] = 76,4,-52,-328 + Clsn2[1] = 4,-320,48,-384 +1210,2,0,0, 1 +Clsn2: 2 + Clsn2[0] = -28,-320,136,0 + Clsn2[1] = 44,-372,96,-316 +1210,3,0,0, 1 +Clsn1: 2 + Clsn1[0] = -56,-288,68,-220 + Clsn1[1] = 176,-288,364,-180 +Clsn2: 4 + Clsn2[0] = 68,-284,204,0 + Clsn2[1] = 148,-328,200,-276 + Clsn2[2] = -36,-88,68,0 + Clsn2[3] = -56,-288,364,-220 +1210,4,0,0, 2 +Clsn2: 4 + Clsn2[0] = 208,0,56,-280 + Clsn2[1] = 132,-328,180,-276 + Clsn2[2] = -36,0,72,-76 + Clsn2[3] = 4,-284,292,-224 +1210,5,0,0, 6 +Clsn2: 3 + Clsn2[0] = 212,0,-32,-160 + Clsn2[1] = 24,-292,184,-128 + Clsn2[2] = 148,-272,92,-336 +1210,6,0,0, 4 +Clsn2: 2 + Clsn2[0] = -28,-320,136,0 + Clsn2[1] = 44,-372,96,-316 +1210,3,0,0, 3 +Clsn2: 2 + Clsn2[0] = 76,4,-52,-328 + Clsn2[1] = 4,-320,48,-384 +200, 0,0,0, 3 + +;----------------------------------- +; Strong Kung Fu Blow +[Begin Action 1210] +Clsn2Default: 2 + Clsn2[0] = -56,-336,68,0 + Clsn2[1] = -20,-384,24,-324 +1210,0,0,0, 4 +1210,1,0,0, 8 +1210,0,0,0, 3 +Clsn2: 2 + Clsn2[0] = 76,4,-52,-328 + Clsn2[1] = 4,-320,48,-384 +1210,2,0,0, 1 +Clsn2: 2 + Clsn2[0] = -28,-320,136,0 + Clsn2[1] = 44,-372,96,-316 +1210,3,0,0, 1 +Clsn1: 2 + Clsn1[0] = -56,-288,68,-220 + Clsn1[1] = 176,-288,364,-180 +Clsn2: 4 + Clsn2[0] = 68,-284,204,0 + Clsn2[1] = 148,-328,200,-276 + Clsn2[2] = -36,-88,68,0 + Clsn2[3] = -56,-288,364,-220 +1210,4,0,0, 2 +Clsn2: 4 + Clsn2[0] = 208,0,56,-280 + Clsn2[1] = 132,-328,180,-276 + Clsn2[2] = -36,0,72,-76 + Clsn2[3] = 4,-284,292,-224 +1210,5,0,0, 8 +Clsn2: 3 + Clsn2[0] = 212,0,-32,-160 + Clsn2[1] = 24,-292,184,-128 + Clsn2[2] = 148,-272,92,-336 +1210,6,0,0, 4 +Clsn2: 2 + Clsn2[0] = -28,-320,136,0 + Clsn2[1] = 44,-372,96,-316 +1210,3,0,0, 3 +Clsn2: 2 + Clsn2[0] = 76,4,-52,-328 + Clsn2[1] = 4,-320,48,-384 +200, 0,0,0, 2 + +;----------------------------------- +; Fast Kung Fu Blow +[Begin Action 1220] +Clsn2Default: 2 + Clsn2[0] = -56,-336,68,0 + Clsn2[1] = -20,-384,24,-324 +1210,0,0,0, 2 +1210,1,0,0, 3 +1210,0,0,0, 2 +Clsn2: 2 + Clsn2[0] = 76,4,-52,-328 + Clsn2[1] = 4,-320,48,-384 +1210,2,0,0, 1 +Clsn2: 2 + Clsn2[0] = -28,-320,136,0 + Clsn2[1] = 44,-372,96,-316 +1210,3,0,0, 1 +Clsn1: 2 + Clsn1[0] = -56,-288,68,-220 + Clsn1[1] = 176,-288,364,-180 +Clsn2: 4 + Clsn2[0] = 68,-284,204,0 + Clsn2[1] = 148,-328,200,-276 + Clsn2[2] = -36,-88,68,0 + Clsn2[3] = -56,-288,364,-220 +1210,4,0,0, 3 +Clsn2: 4 + Clsn2[0] = 208,0,56,-280 + Clsn2[1] = 132,-328,180,-276 + Clsn2[2] = -36,0,72,-76 + Clsn2[3] = 4,-284,292,-224 +1210,5,0,0, 12 +Clsn2: 3 + Clsn2[0] = 212,0,-32,-160 + Clsn2[1] = 24,-292,184,-128 + Clsn2[2] = 148,-272,92,-336 +1210,6,0,0, 4 +Clsn2: 2 + Clsn2[0] = -28,-320,136,0 + Clsn2[1] = 44,-372,96,-316 +1210,3,0,0, 4 +Clsn2: 2 + Clsn2[0] = 76,4,-52,-328 + Clsn2[1] = 4,-320,48,-384 +200, 0,0,0, 3 + +;----------------------------------- +; Kung Fu Blocking High (attempt) +[Begin Action 1300] +Clsn1: 2 + Clsn2[0] = 0,4,136,-336 + Clsn2[1] = 52,-388,188,-260 +Clsn2: 2 + Clsn2[0] = 0,4,136,-336 + Clsn2[1] = 52,-388,188,-260 +1300,0,0,0, 2 +Clsn1: 2 + Clsn2[0] = -16,-332,124,0 + Clsn2[1] = 40,-384,156,-268 +Clsn2: 2 + Clsn2[0] = -16,-332,124,0 + Clsn2[1] = 40,-384,156,-268 +1300,1,0,0, 7 +Clsn2: 2 + Clsn2[0] = -32,-332,100,0 + Clsn2[1] = 16,-376,64,-328 +1300,2,0,0, 4 +Clsn2: 2 + Clsn2[0] = 76,4,-52,-328 + Clsn2[1] = 4,-320,48,-384 +200, 0,0,0, 2 + +; Kung Fu Blocking High (successful block) +[Begin Action 1310] +Clsn2Default: 2 + Clsn2[0] = -16,-332,124,0 + Clsn2[1] = 40,-384,156,-268 +1300,1,0,0, 3 +1300,2,0,0, 6 +Clsn2: 2 + Clsn2[0] = 76,4,-52,-328 + Clsn2[1] = 4,-320,48,-384 +200, 0,0,0, 4 + +;----------------------------------- +; Kung Fu Blocking Low (attempt) +[Begin Action 1320] +Clsn1: 2 + Clsn1[0] = -44,0,96,-196 + Clsn1[1] = 4,-240,140,-128 +Clsn2Default: 2 + Clsn2[0] = -44,-196,96,0 + Clsn2[1] = 4,-240,140,-128 +1320,0,0,0, 2 +Clsn1: 2 + Clsn1[0] = -44,0,96,-196 + Clsn1[1] = 4,-240,140,-128 +1320,1,0,0, 7 +Clsn2: 2 + Clsn2[0] = 80,0,-56,-200 + Clsn2[1] = -8,-240,40,-188 +1320,2,0,0, 4 +Clsn2: 2 + Clsn2[0] = 76,0,-60,-192 + Clsn2[1] = -24,-248,24,-192 +11,2,0,0, 2 + +; Kung Fu Blocking Low (successful block) +[Begin Action 1330] +Clsn2Default: 2 + Clsn2[0] = 80,0,-44,-196 + Clsn2[1] = 4,-240,124,-128 +1320,1,0,0, 3 +Clsn2: 2 + Clsn2[0] = 80,0,-56,-200 + Clsn2[1] = -8,-240,40,-188 +1320,2,0,0, 6 +Clsn2: 2 + Clsn2[0] = 76,0,-60,-192 + Clsn2[1] = -24,-248,24,-192 +11,2,0,0, 4 + +;----------------------------------- +; Kung Fu Blocking Air (attempt) +[Begin Action 1340] +Clsn1: 2 + Clsn1[0] = 68,-320,-48,-152 + Clsn1[1] = -8,-356,80,-236 +Clsn2Default: 2 + Clsn2[0] = -48,-320,68,-152 + Clsn2[1] = -8,-356,80,-236 +1340,0,0,0, 2 +Clsn1: 2 + Clsn1[0] = 68,-320,-48,-152 + Clsn1[1] = -8,-356,80,-236 +1340,1,0,0, 7 +1340,0,0,0, 4 +Clsn2: 2 + Clsn2[0] = -44,-132,56,-308 + Clsn2[1] = -8,-372,44,-304 +41,5,0,0, 5 +Clsn2: 2 + Clsn2[0] = -44,-336,56,-108 + Clsn2[1] = -12,-396,36,-336 +41,6,0,0, 5 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 56,-92,-44,-360 + Clsn2[1] = -16,-420,36,-356 +41,7,0,0, 4 +41,8,0,0, 4 + +; Kung Fu Blocking Air (successful block) +[Begin Action 1350] +Clsn2Default: 2 + Clsn2[0] = -48,-320,68,-152 + Clsn2[1] = -8,-356,80,-236 +1340,1,0,0, 3 +1340,0,0,0, 6 +Clsn2: 2 + Clsn2[0] = -44,-132,56,-308 + Clsn2[1] = -8,-372,44,-304 +41,5,0,0, 5 +Clsn2: 2 + Clsn2[0] = -44,-336,56,-108 + Clsn2[1] = -12,-396,36,-336 +41,6,0,0, 5 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 56,-92,-44,-360 + Clsn2[1] = -16,-420,36,-356 +41,7,0,0, 4 +41,8,0,0, 4 + +;----------------------------------- +; Light Kung Fu Zankou +[Begin Action 1400] +Clsn2Default: 2 + Clsn2[0] = 116,0,-44,-220 + Clsn2[1] = 56,-276,112,-212 +1400,0,0,0, 3 +1400,1,-40,0, 2 +Clsn2: 3 + Clsn2[0] = 144,0,0,-220 + Clsn2[1] = 56,-276,112,-212 + Clsn2[2] = 180,-120,-100,0 +1400,2,0,0, 3 +Clsn1: 1 + Clsn1[0] = 136,-304,16,-88 +Clsn2: 2 + Clsn2[0] = 136,-304,-48,0 + Clsn2[1] = 36,-340,92,-280 +1400,3,0,0, 4 +Clsn2Default: 2 + Clsn2[0] = 112,-304,-56,0 + Clsn2[1] = 28,-340,84,-280 +1400,4,0,0, 5 +1400,5,0,0, 5 +1400,6,0,0, 4 +Clsn2: 2 + Clsn2[0] = -40,0,76,-320 + Clsn2[1] = 0,-376,48,-320 +1400,7,0,0, 4 + +; Strong Kung Fu Zankou +[Begin Action 1410] +Clsn2Default: 2 + Clsn2[0] = 116,0,-44,-220 + Clsn2[1] = 56,-276,112,-212 +1400,0,0,0, 3 +1400,1,-40,0, 3 +Clsn2: 3 + Clsn2[0] = 144,0,0,-220 + Clsn2[1] = 56,-276,112,-212 + Clsn2[2] = 180,-120,-100,0 +1400,2,0,0, 3 +Clsn1: 1 + Clsn1[0] = 136,-304,16,-88 +Clsn2: 2 + Clsn2[0] = 136,-304,-48,0 + Clsn2[1] = 36,-340,92,-280 +1400,3,0,0, 4 +Clsn2Default: 2 + Clsn2[0] = 112,-304,-56,0 + Clsn2[1] = 28,-340,84,-280 +1400,4,0,0, 5 +1400,5,0,0, 4 +1400,4,0,0, 4 +1400,6,0,0, 4 +Clsn2: 2 + Clsn2[0] = -40,0,76,-320 + Clsn2[1] = 0,-376,48,-320 +1400,7,0,0, 4 + +; Far Kung Fu Zankou +[Begin Action 1420] +Clsn2Default: 2 + Clsn2[0] = 116,0,-44,-220 + Clsn2[1] = 56,-276,112,-212 +1400,0,0,0, 5 +1400,1,-40,0, 3 +Clsn1: 1 + Clsn1[0] = 144,-220,76,-72 +Clsn2: 3 + Clsn2[0] = 144,0,0,-220 + Clsn2[1] = 56,-276,112,-212 + Clsn2[2] = 180,-120,-100,0 +1400,2,0,0, 7 +Clsn1: 1 + Clsn1[0] = 136,-304,16,-88 +Clsn2: 2 + Clsn2[0] = 136,-304,-48,0 + Clsn2[1] = 36,-340,92,-280 +1400,3,0,0, 4 +Clsn2Default: 2 + Clsn2[0] = 112,-304,-56,0 + Clsn2[1] = 28,-340,84,-280 +1400,4,0,0, 4 +1400,5,0,0, 4 +1400,4,0,0, 4 +1400,5,0,0, 4 +1400,6,0,0, 4 +Clsn2: 2 + Clsn2[0] = -40,0,76,-320 + Clsn2[1] = 0,-376,48,-320 +1400,7,0,0, 4 + +;----------------------------------- +; Triple Kung Fu Palm +[Begin Action 3000] +Clsn2: 2 + Clsn2[0] = -40,0,76,-320 + Clsn2[1] = 0,-376,48,-320 +200,0,0,0, 3 +Clsn2: 3 + Clsn2[0] = 128,-156,-100,0 + Clsn2[1] = 64,-156,-40,-292 + Clsn2[2] = 8,-344,52,-288 +1000,0,0,0, 2 +Clsn2Default: 3 + Clsn2[0] = 124,0,-136,-132 + Clsn2[1] = -32,-268,80,-132 + Clsn2[2] = 20,-324,72,-268 +1000,1,0,0, 3 +1000,2,0,0, 4 +1000,3,0,0, 1 +Clsn1: 1 + Clsn1[0] = 272,-284,36,-160 +Clsn2: 4 + Clsn2[0] = 116,0,-148,-128 + Clsn2[1] = 84,-128,-32,-260 + Clsn2[2] = 20,-296,68,-244 + Clsn2[3] = 84,-284,272,-160 +1000,4,0,0, 2 +Clsn2: 4 + Clsn2[0] = 116,0,-148,-128 + Clsn2[1] = 84,-128,-32,-260 + Clsn2[2] = 20,-296,68,-244 + Clsn2[3] = 84,-256,272,-184 +1000,5,0,0, 2 +1000,7,0,0, 2 +1000,2,0,0, 2 +1000,1,0,0, 1 +Clsn2: 3 + Clsn2[0] = 128,-156,-100,0 + Clsn2[1] = 64,-156,-40,-292 + Clsn2[2] = 8,-344,52,-288 +1000,0,0,0, 3 +Clsn2Default: 3 + Clsn2[0] = 124,0,-136,-132 + Clsn2[1] = -32,-268,80,-132 + Clsn2[2] = 20,-324,72,-268 +1000,2,0,0, 2 +1000,3,0,0, 1 +Clsn1: 1 + Clsn1[0] = 272,-284,36,-160 +Clsn2: 4 + Clsn2[0] = 116,0,-148,-128 + Clsn2[1] = 84,-128,-32,-260 + Clsn2[2] = 20,-296,68,-244 + Clsn2[3] = 84,-284,272,-160 +1000,4,0,0, 2 +Clsn2: 4 + Clsn2[0] = 116,0,-148,-128 + Clsn2[1] = 84,-128,-32,-260 + Clsn2[2] = 20,-296,68,-244 + Clsn2[3] = 84,-256,272,-184 +1000,5,0,0, 2 +1000,7,0,0, 2 +1000,2,0,0, 2 +1000,1,0,0, 1 +Clsn2: 3 + Clsn2[0] = 128,-156,-100,0 + Clsn2[1] = 64,-156,-40,-292 + Clsn2[2] = 8,-344,52,-288 +1000,0,0,0, 3 +Clsn2Default: 3 + Clsn2[0] = 124,0,-136,-132 + Clsn2[1] = -32,-268,80,-132 + Clsn2[2] = 20,-324,72,-268 +1000,2,0,0, 2 +1000,3,0,0, 1 +Clsn1: 1 + Clsn1[0] = 272,-284,36,-160 +Clsn2: 4 + Clsn2[0] = 116,0,-148,-128 + Clsn2[1] = 84,-128,-32,-260 + Clsn2[2] = 20,-296,68,-244 + Clsn2[3] = 84,-284,272,-160 +1000,4,0,0, 3 +Clsn2: 4 + Clsn2[0] = 116,0,-148,-128 + Clsn2[1] = 84,-128,-32,-260 + Clsn2[2] = 20,-296,68,-244 + Clsn2[3] = 84,-256,272,-184 +1000,5,0,0, 5 +1000,6,0,0, 5 +1000,5,0,0, 5 +1000,6,0,0, 5 +1000,5,0,0, 5 +1000,6,0,0, 4 +Clsn2Default: 3 + Clsn2[0] = 124,0,-136,-132 + Clsn2[1] = -32,-268,80,-132 + Clsn2[2] = 20,-324,72,-268 +1000,7,0,0, 4 +1000,1,0,0, 3 +Clsn2: 3 + Clsn2[0] = 128,-156,-100,0 + Clsn2[1] = 64,-156,-40,-292 + Clsn2[2] = 8,-344,52,-288 +1000,0,0,0, 3 +Clsn2: 2 + Clsn2[0] = -60,0,60,-320 + Clsn2[1] = -24,-376,28,-320 +200,0,-20,0, 3 + +;----------------------------------- +; Smash Kung Fu Upper +[Begin Action 3050] +Clsn2Default: 1 + Clsn2[0] = -48,0,64,-376 +1100,0,0,0, 1 +1100,0,0,0, 1 +1100,1,0,0, 1 +Clsn2Default: 2 + Clsn2[0] = 112,0,-12,-340 + Clsn2[1] = 92,-368,136,-304 +1100,2,0,0, 1 +1100,3,0,0, 1 +Clsn2: 2 + Clsn2[0] = 124,0,-12,-340 + Clsn2[1] = 56,-384,108,-320 +1100,4,0,0, 1 +Clsn2: 1 + Clsn2[0] = 128,0,4,-384 +1100,5,0,0, 1 +Clsn1: 1 + Clsn1[0] = 120,-160,220,-524 +Clsn2Default: 2 + Clsn2[0] = 128,0,4,-384 + Clsn2[1] = 120,-524,176,-372 +1100,6,0,0, 2 +Clsn1: 1 + Clsn1[0] = 120,-372,176,-524 +1100,6,0,0, 3 +Clsn2Default: 2 + Clsn2[0] = 128,0,4,-384 + Clsn2[1] = 108,-440,152,-372 +1100,7,0,0, 5 +1100,6,0,0, 5 +1100,7,0,0, 5 +1100,6,0,0, 5 +1100,8,0,0, 5 +Clsn2: 2 + Clsn2[0] = 128,0,4,-384 + Clsn2[1] = 128,-320,172,-388 +1100,9,0,0, 3 +Clsn2Default: 2 + Clsn2[0] = -40,0,76,-320 + Clsn2[1] = 0,-376,48,-320 +200,1,0,0, 2 +200,0,0,0, 2 + +; Smash Kung Fu Upper (success) +[Begin Action 3051] +Clsn2Default: 2 + Clsn2[0] = 128,0,4,-384 + Clsn2[1] = 108,-440,152,-372 +1100,6,0,0, 5 +1100,7,0,0, 5 +1100,6,0,0, 5 +1100,7,0,0, 5 +1100,6,0,0, 5 +1100,7,0,0, 5 +1100,6,0,0, 5 +1100,8,0,0, 4 +Clsn2: 2 + Clsn2[0] = 128,0,4,-384 + Clsn2[1] = 128,-320,172,-388 +1100,9,0,0, 3 +Clsn2Default: 2 + Clsn2[0] = -40,0,76,-320 + Clsn2[1] = 0,-376,48,-320 +200,1,0,0, 2 +200,0,0,0, 2 + +;-------------------- +; GUARDSTART (stand) +[Begin Action 120] +Clsn2Default: 4 + Clsn2[0] = 56,0,-52,-172 + Clsn2[1] = -44,-172,48,-344 + Clsn2[2] = -4,-344,-44,-376 + Clsn2[3] = -80,-312,52,-232 +120,0,0,0, 1 + +; GUARDSTART (crouch) +[Begin Action 121] +Clsn2: 2 + Clsn2[0] = -68,0,64,-224 + Clsn2[1] = 12,-224,-36,-256 +121,0,0,0, 1 + +; GUARDSTART (air) +[Begin Action 122] +Clsn2: 2 + Clsn2[0] = 88,-152,0,-352 + Clsn2[1] = 36,-124,-36,-304 +122,0,0,0, 1 + +; GUARD (stand) +[Begin Action 130] +Clsn2Default: 4 + Clsn2[0] = 56,0,-52,-172 + Clsn2[1] = -44,-172,48,-344 + Clsn2[2] = -4,-344,-44,-376 + Clsn2[3] = -80,-312,52,-232 +120,0,0,0, -1 + +; GUARD (crouch) +[Begin Action 131] +Clsn2: 2 + Clsn2[0] = -68,0,64,-224 + Clsn2[1] = 12,-224,-36,-256 +121,0,0,0, -1 + +; GUARD (air) +[Begin Action 132] +Clsn2: 2 + Clsn2[0] = 88,-152,0,-352 + Clsn2[1] = 36,-124,-36,-304 +122,0,0,0, -1 + +; GUARDEND (stand) +[Begin Action 140] +Clsn2Default: 4 + Clsn2[0] = 56,0,-52,-172 + Clsn2[1] = -44,-172,48,-344 + Clsn2[2] = -4,-344,-44,-376 + Clsn2[3] = -80,-312,52,-232 +120,0,0,0, 5 + +; GUARDEND (crouch) +[Begin Action 141] +Clsn2: 2 + Clsn2[0] = -68,0,64,-224 + Clsn2[1] = 12,-224,-36,-256 +121,0,0,0, 1 + +; GUARDEND (air) +[Begin Action 142] +Clsn2: 2 + Clsn2[0] = 88,-152,0,-352 + Clsn2[1] = 36,-124,-36,-304 +122,0,0,0, 1 + +; Hit back while guarding (stand) +[Begin Action 150] +Clsn2Default: 4 + Clsn2[0] = 56,0,-52,-172 + Clsn2[1] = -44,-172,48,-344 + Clsn2[2] = -4,-344,-44,-376 + Clsn2[3] = -80,-312,52,-232 +120,1,0,0, 4 +120,2,0,0, 8 +120,1,0,0, 4 +120,0,0,0, -1 + +; Hit back while guarding (crouch) +[Begin Action 151] +Clsn2: 2 + Clsn2[0] = -68,0,64,-224 + Clsn2[1] = 12,-224,-36,-256 +121,0,0,0, -1 + +; Hit back while guarding (air) +[Begin Action 152] +Clsn2: 2 + Clsn2[0] = 88,-152,0,-352 + Clsn2[1] = 36,-124,-36,-304 +122,0,0,0, -1 + +;--------------------------- +; Stand/Air Hit high (light) +[Begin Action 5000] +Clsn2: 2 + Clsn2[0] = -72,-316,64,0 + Clsn2[1] = -68,-376,-16,-316 +5000, 0,0,0, 4 +Clsn2: 2 + Clsn2[0] = -72,-316,64,0 + Clsn2[1] = -48,-308,-100,-376 +5000,10,0,0, 4 + +;Stand/Air Hit high (medium) +[Begin Action 5001] +Clsn2: 2 + Clsn2[0] = -72,-316,64,0 + Clsn2[1] = -48,-308,-100,-376 +5000,10,0,0, 5 +Clsn2: 2 + Clsn2[0] = -72,-316,64,0 + Clsn2[1] = -128,-356,-60,-240 +5000,11,0,0, 5 + +;Stand/Air Hit high (hard) +[Begin Action 5002] +Clsn2: 2 + Clsn2[0] = -72,-316,64,0 + Clsn2[1] = -128,-356,-60,-240 +5000,11,0,0, 5 +Clsn2: 2 + Clsn2[0] = -72,-316,64,0 + Clsn2[1] = -56,-220,-148,-348 +5000,20,0,0, 5 + +;--------------------------- +;Stand Recover high (light) +[Begin Action 5005] +Clsn2: 2 + Clsn2[0] = -72,-316,64,0 + Clsn2[1] = -128,-356,-60,-240 +5000,11,0,0, 3 +Clsn2: 2 + Clsn2[0] = -72,-316,64,0 + Clsn2[1] = -48,-308,-100,-376 +5000,10,0,0, 3 +Clsn2: 2 + Clsn2[0] = -72,-316,64,0 + Clsn2[1] = -68,-376,-16,-316 +5000, 0,0,0, -1 + +;Stand Recover high (medium) +[Begin Action 5006] +Clsn2: 2 + Clsn2[0] = -72,-316,64,0 + Clsn2[1] = -56,-220,-148,-348 +5000,20,0,0, 3 +Clsn2: 2 + Clsn2[0] = -72,-316,64,0 + Clsn2[1] = -128,-356,-60,-240 +5000,11,0,0, 4 +Clsn2: 2 + Clsn2[0] = -72,-316,64,0 + Clsn2[1] = -48,-308,-100,-376 +5000,10,0,0, 4 +Clsn2: 2 + Clsn2[0] = -72,-316,64,0 + Clsn2[1] = -68,-376,-16,-316 +5000, 0,0,0, -1 + +;Stand Recover high (hard) +[Begin Action 5007] +Clsn2: 2 + Clsn2[0] = -72,-316,64,0 + Clsn2[1] = -56,-220,-148,-348 +5000,21,0,0, 5 +Clsn2: 2 + Clsn2[0] = -72,-316,64,0 + Clsn2[1] = -128,-356,-60,-240 +5000,11,0,0, 4 +Clsn2: 2 + Clsn2[0] = -72,-316,64,0 + Clsn2[1] = -48,-308,-100,-376 +5000,10,0,0, 4 +Clsn2: 2 + Clsn2[0] = -72,-316,64,0 + Clsn2[1] = -68,-376,-16,-316 +5000, 0,0,0, -1 + +;--------------------------- +;Stand/Air Hit low (light) +[Begin Action 5010] +Clsn2: 2 + Clsn2[0] = 64,0,-96,-304 + Clsn2[1] = -48,-288,4,-352 +5010, 0,0,0, 5 +Clsn2: 2 + Clsn2[0] = -108,-304,64,0 + Clsn2[1] = -48,-264,4,-324 +5010,10,0,0, 5 + +;Stand/Air Hit low (medium) +[Begin Action 5011] +Clsn2: 2 + Clsn2[0] = -108,-304,64,0 + Clsn2[1] = -48,-264,4,-324 +5010,10,0,0, 5 +Clsn2: 1 + Clsn2[0] = -108,-304,64,0 +5010,20,0,0, 5 +Clsn2: 1 + Clsn2[0] = -108,-304,64,0 +5010,21,0,0, 5 + +;Stand/Air Hit low (hard) +[Begin Action 5012] +Clsn2Default: 1 + Clsn2[0] = -108,-304,64,0 +5010,20,0,0, 1 +5010,21,0,0, 5 +5010,20,0,0, 5 +5010,21,0,0, 5 + +;--------------------------- +;Stand Recover low (light) +[Begin Action 5015] +Clsn2: 2 + Clsn2[0] = -108,-304,64,0 + Clsn2[1] = -48,-264,4,-324 +5010,10,0,0, 1 +Clsn2: 2 + Clsn2[0] = 64,0,-96,-304 + Clsn2[1] = -48,-288,4,-352 +5010, 0,0,0, -1 + +;Stand Recover low (medium) +[Begin Action 5016] +Clsn2: 1 + Clsn2[0] = -108,-304,64,0 +5010,20,0,0, 1 +Clsn2: 2 + Clsn2[0] = -108,-304,64,0 + Clsn2[1] = -48,-264,4,-324 +5010,10,0,0, 4 +Clsn2: 2 + Clsn2[0] = 64,0,-96,-304 + Clsn2[1] = -48,-288,4,-352 +5010, 0,0,0, -1 + +;Stand Recover low (hard) +[Begin Action 5017] +Clsn2: 1 + Clsn2[0] = -108,-304,64,0 +5010,20,0,0, 1 +Clsn2: 2 + Clsn2[0] = -108,-304,64,0 + Clsn2[1] = -48,-264,4,-324 +5010,10,0,0, -1 + +;--------------------------- +;Crouch Hit (light) +[Begin Action 5020] +Clsn2Default: 3 + Clsn2[0] = 72,0,-60,-108 + Clsn2[1] = 44,-108,-60,-200 + Clsn2[2] = -8,-196,-56,-248 +5020, 0,0,0, 5 +5020,10,0,0, 5 + +;Crouch Hit (medium) +[Begin Action 5021] +Clsn2Default: 3 + Clsn2[0] = 72,0,-60,-108 + Clsn2[1] = 44,-108,-60,-200 + Clsn2[2] = -8,-196,-56,-248 +5020,10,0,0, 5 +5020,20,0,0, 5 + +;Crouch Hit (hard) +[Begin Action 5022] +Clsn2Default: 3 + Clsn2[0] = 72,0,-60,-108 + Clsn2[1] = 44,-108,-60,-200 + Clsn2[2] = -8,-196,-56,-248 +5020,20,0,0, 5 +5020,20,0,0, 5 + +;--------------------------- +;Crouch Recover (light) +[Begin Action 5025] +Clsn2Default: 3 + Clsn2[0] = 72,0,-60,-108 + Clsn2[1] = 44,-108,-60,-200 + Clsn2[2] = -8,-196,-56,-248 +5020,10,0,0, 1 +5020, 0,0,0, -1 + +;Crouch Recover (medium) +[Begin Action 5026] +Clsn2Default: 3 + Clsn2[0] = 72,0,-60,-108 + Clsn2[1] = 44,-108,-60,-200 + Clsn2[2] = -8,-196,-56,-248 +5020,20,0,0, 3 +5020,10,0,0, 5 +5020, 0,0,0, -1 + +;Crouch Recover (hard) +[Begin Action 5027] +Clsn2Default: 3 + Clsn2[0] = 72,0,-60,-108 + Clsn2[1] = 44,-108,-60,-200 + Clsn2[2] = -8,-196,-56,-248 +5020,20,0,0, 4 +5020,10,0,0, 4 +5020, 0,0,0, -1 + +;--------------------------- +;Stand/Air Hit back +[Begin Action 5030] +Clsn2: 2 + Clsn2[0] = -84,-352,20,-244 + Clsn2[1] = -32,-264,64,-152 +5030, 0,0,0, 5 + +;Stand/Air Hit transition +[Begin Action 5035] +Clsn2: 2 + Clsn2[0] = -84,-352,20,-244 + Clsn2[1] = -32,-264,64,-152 +5030, 0,0,0, 4 +Clsn2: 2 + Clsn2[0] = 76,-156,-20,-264 + Clsn2[1] = 8,-228,-104,-332 +5030,10,0,0, 7 + +;--------------------------- +;Air Recover +[Begin Action 5040] +Clsn2: 1 + Clsn2[0] = -72,-308,72,-168 +42,5,0,0, 3 +Clsn2: 1 + Clsn2[0] = -72,-308,72,-168 +42,4,0,0, 3 +Clsn2: 1 + Clsn2[0] = -72,-308,72,-168 +42,3,0,0, 3 +Clsn2: 1 + Clsn2[0] = 56,-120,-68,-300 +41,4,0,0, 3 +Clsn2: 2 + Clsn2[0] = -44,-132,56,-308 + Clsn2[1] = -8,-372,44,-304 +41,5,0,0, 4 +Clsn2: 2 + Clsn2[0] = -44,-336,56,-108 + Clsn2[1] = -12,-396,36,-336 +41,6,0,0, 4 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 56,-92,-44,-360 + Clsn2[1] = -16,-420,36,-356 +41,7,0,0, 4 +41,8,0,0, 4 + +;--------------------------- +;Air Fall (going up) +[Begin Action 5050] +Clsn2Default: 2 + Clsn2[0] = 96,-176,-8,-304 + Clsn2[1] = -8,-176,-132,-268 +5030,30,0,0, 5 +5030,31,0,0, 5 + +;--------------------------- +;Air Fall (up-type, going up) +[Begin Action 5051] +Clsn2: 1 + Clsn2[0] = -76,-420,56,-100 +5060, 0,0,0, 3 +Clsn2: 1 + Clsn2[0] = -76,-420,56,-100 +5060, 1,0,0, 3 + +;--------------------------- +;Air Fall (up-type, coming down) +[Begin Action 5061] +Clsn2: 2 + Clsn2[0] = 20,-244,-96,-392 + Clsn2[1] = -32,-260,80,-120 +5030, 0,0,0, 5 +Clsn2: 2 + Clsn2[0] = -124,-340,0,-220 + Clsn2[1] = 104,-128,-16,-260 +5030,10,0,0, 5 +Clsn2: 1 + Clsn2[0] = -132,-276,96,-176 +5030,30,0,0, 5 +Clsn2: 2 + Clsn2[0] = 8,-284,-100,-168 + Clsn2[1] = 0,-232,88,-344 +5030,40,0,0, 5 +Clsn2: 2 + Clsn2[0] = 20,-288,-76,-136 + Clsn2[1] = 72,-384,-16,-252 +5030,50,0,0, 5 +Clsn2: 1 + Clsn2[0] = -80,-336,36,-80 +5060,10,0,0, -1 + +;--------------------------- +;Tripped +[Begin Action 5070] +Clsn2: 2 + Clsn2[0] = 64,0,-44,-304 + Clsn2[1] = 0,-364,44,-304 +5010,10,32,0, 5 +Clsn2: 2 + Clsn2[0] = -52,-228,40,-120 + Clsn2[1] = -8,-228,-108,-352 +5030, 0,-32,0, 5 +Clsn2: 2 + Clsn2[0] = 48,-156,-52,-264 + Clsn2[1] = -24,-228,-136,-332 +5030,10,-32,0, -1 + +;--------------------------- +;LieDown Hit (stay down) +[Begin Action 5080] +Clsn2Default: 1 + Clsn2[0] = 88,0,-104,-84 +5040,20,0,0, 4 +5040, 0,0,0, 4 +5040,10,0,0, -1 + +;--------------------------- +;LieDown Hit (hit up into air) +[Begin Action 5090] +Clsn2: 2 + Clsn2[0] = 76,-156,-20,-264 + Clsn2[1] = 8,-228,-104,-332 +5030,10,0,0, 7 + +;--------------------------- +; Hit ground from fall +[Begin Action 5100] +Clsn2Default: 1 + Clsn2[0] = 88,0,-104,-84 +5040, 0,0,0, 3 + +; Bounce into air +[Begin Action 5160] +Clsn2: 1 + Clsn2[0] = -120,-188,92,-92 +5030,30,0,80, -1 + +; Hit ground from bounce +[Begin Action 5170] +Clsn2: 1 + Clsn2[0] = 88,0,-104,-84 +5040, 0,0,0, 3 + +;--------------------------- +; Hit ground from fall (up-type) +[Begin Action 5101] +Clsn2Default: 1 + Clsn2[0] = 88,0,-104,-84 +5040,1,0,0, 4 +5040,0,0,0, 2 + +;--------------------------- +; LieDown +[Begin Action 5110] +Clsn2: 1 + Clsn2[0] = 88,0,-104,-84 +5040,10,0,0, 1 + +; Get up from LieDown +[Begin Action 5120] +Clsn2Default: 1 + Clsn2[0] = 68,0,-52,-212 +5040,11,0,0, 5 +11,2,0,0, 3 +11,1,0,0, 3 +11,0,0,0, 3 + +;LieDead animation +[Begin Action 5150] +Clsn2: 1 + Clsn2[0] = 88,0,-104,-84 +5040,10,0,0, 1 + +;--------------------------- +; Fall-recovery near ground +[Begin Action 5200] +Clsn2: 1 + Clsn2[0] = 64,-184,-56,-300 +41,4,0,-480, 3, VH +Clsn2: 1 + Clsn2[0] = -72,-300,72,-176 +42,3,0,0, 4 +Clsn2: 1 + Clsn2[0] = 56,-180,-68,-292 +41,4,0,0, 4 +Clsn2: 2 + Clsn2[0] = -32,-112,40,-324 + Clsn2[1] = 24,-324,-20,-376 +41,1,0,0, -1 + +;Fall-recovery in mid-air +[Begin Action 5210] +Clsn2: 1 + Clsn2[0] = -72,-300,72,-176 +42,5,0,0, 3 +Clsn2: 1 + Clsn2[0] = -72,-300,72,-176 +42,4,0,0, 3 +Clsn2: 1 + Clsn2[0] = -72,-300,72,-176 +42,3,0,0, 3 +Clsn2: 1 + Clsn2[0] = 56,-180,-68,-292 +41,4,0,0, 3 +Clsn2: 2 + Clsn2[0] = -44,-132,56,-308 + Clsn2[1] = -8,-372,44,-304 +41,5,0,0, 4 +Clsn2: 2 + Clsn2[0] = -44,-336,56,-108 + Clsn2[1] = -12,-396,36,-336 +41,6,0,0, 4 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 56,-92,-44,-360 + Clsn2[1] = -16,-420,36,-356 +41,7,0,0, 4 +41,8,0,0, 4 + +;--------------------------- +; Dizzy +[Begin Action 5300] +Clsn2Default: 1 + Clsn2[0] = 88,0,-80,-348 +5300,0,0,0, 8 +5300,1,0,0, 8 +5300,2,0,0, 8 +5300,3,0,0, 8 +5300,2,0,0, 8 +5300,1,0,0, 8 diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/kfm720.cmd b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/kfm720.cmd new file mode 100644 index 00000000..38096e81 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/kfm720.cmd @@ -0,0 +1,774 @@ +; The CMD file. +; +; Two parts: 1. Command definition and 2. State entry +; (state entry is after the commands def section) +; +; 1. Command definition +; --------------------- +; Note: The commands are CASE-SENSITIVE, and so are the command names. +; The eight directions are: +; B, DB, D, DF, F, UF, U, UB (all CAPS) +; corresponding to back, down-back, down, downforward, etc. +; The six buttons are: +; a, b, c, x, y, z (all lower case) +; In default key config, abc are are the bottom, and xyz are on the +; top row. For 2 button characters, we recommend you use a and b. +; For 6 button characters, use abc for kicks and xyz for punches. +; +; Each [Command] section defines a command that you can use for +; state entry, as well as in the CNS file. +; The command section should look like: +; +; [Command] +; name = some_name +; command = the_command +; time = time (optional) +; buffer.time = time (optional) +; +; - some_name +; A name to give that command. You'll use this name to refer to +; that command in the state entry, as well as the CNS. It is case- +; sensitive (QCB_a is NOT the same as Qcb_a or QCB_A). +; +; - command +; list of buttons or directions, separated by commas. Each of these +; buttons or directions is referred to as a "symbol". +; Directions and buttons can be preceded by special characters: +; slash (/) - means the key must be held down +; egs. command = /D ;hold the down direction +; command = /DB, a ;hold down-back while you press a +; tilde (~) - to detect key releases +; egs. command = ~a ;release the a button +; command = ~D, F, a ;release down, press fwd, then a +; If you want to detect "charge moves", you can specify +; the time the key must be held down for (in game-ticks) +; egs. command = ~30a ;hold a for at least 30 ticks, then release +; dollar ($) - Direction-only: detect as 4-way +; egs. command = $D ;will detect if D, DB or DF is held +; command = $B ;will detect if B, DB or UB is held +; plus (+) - Buttons only: simultaneous press +; egs. command = a+b ;press a and b at the same time +; command = x+y+z ;press x, y and z at the same time +; greater-than (>) - means there must be no other keys pressed or released +; between the previous and the current symbol. +; egs. command = a, >~a ;press a and release it without having hit +; ;or released any other keys in between +; You can combine the symbols: +; eg. command = ~30$D, a+b ;hold D, DB or DF for 30 ticks, release, +; ;then press a and b together +; +; Note: Successive direction symbols are always expanded in a manner similar +; to this example: +; command = F, F +; is expanded when MUGEN reads it, to become equivalent to: +; command = F, >~F, >F +; +; It is recommended that for most "motion" commads, eg. quarter-circle-fwd, +; you start off with a "release direction". This makes the command easier +; to do. +; +; - time (optional) +; Time allowed to do the command, given in game-ticks. The default +; value for this is set in the [Defaults] section below. A typical +; value is 15. +; +; - buffer.time (optional) +; Time that the command will be buffered for. If the command is done +; successfully, then it will be valid for this time. The simplest +; case is to set this to 1. That means that the command is valid +; only in the same tick it is performed. With a higher value, such +; as 3 or 4, you can get a "looser" feel to the command. The result +; is that combos can become easier to do because you can perform +; the command early. Attacks just as you regain control (eg. from +; getting up) also become easier to do. The side effect of this is +; that the command is continuously asserted, so it will seem as if +; you had performed the move rapidly in succession during the valid +; time. To understand this, try setting buffer.time to 30 and hit +; a fast attack, such as KFM's light punch. +; The default value for this is set in the [Defaults] section below. +; This parameter does not affect hold-only commands (eg. /F). It +; will be assumed to be 1 for those commands. +; +; If you have two or more commands with the same name, all of them will +; work. You can use it to allow multiple motions for the same move. +; +; Some common commands examples are given below. +; +; [Command] ;Quarter circle forward + x +; name = "QCF_x" +; command = ~D, DF, F, x +; +; [Command] ;Half circle back + a +; name = "HCB_a" +; command = ~F, DF, D, DB, B, a +; +; [Command] ;Two quarter circles forward + y +; name = "2QCF_y" +; command = ~D, DF, F, D, DF, F, y +; +; [Command] ;Tap b rapidly +; name = "5b" +; command = b, b, b, b, b +; time = 30 +; +; [Command] ;Charge back, then forward + z +; name = "charge_B_F_z" +; command = ~60$B, F, z +; time = 10 +; +; [Command] ;Charge down, then up + c +; name = "charge_D_U_c" +; command = ~60$D, U, c +; time = 10 + + +;-| Button Remapping |----------------------------------------------------- +; This section lets you remap the player's buttons (to easily change the +; button configuration). The format is: +; old_button = new_button +; If new_button is left blank, the button cannot be pressed. +[Remap] +x = x +y = y +z = z +a = a +b = b +c = c +s = s + +;-| Default Values |------------------------------------------------------- +[Defaults] +; Default value for the "time" parameter of a Command. Minimum 1. +command.time = 15 + +; Default value for the "buffer.time" parameter of a Command. Minimum 1, +; maximum 30. +command.buffer.time = 1 + + +;-| Super Motions |-------------------------------------------------------- +;The following two have the same name, but different motion. +;Either one will be detected by a "command = TripleKFPalm" trigger. +;Time is set to 20 (instead of default of 15) to make the move +;easier to do. +; +[Command] +name = "TripleKFPalm" +command = ~D, DF, F, D, DF, F, x +time = 20 + +[Command] +name = "TripleKFPalm" ;Same name as above +command = ~D, DF, F, D, DF, F, y +time = 20 + +[Command] +name = "SmashKFUpper" +command = ~D, DB, B, D, DB, B, x;~F, D, DF, F, D, DF, x +time = 20 + +[Command] +name = "SmashKFUpper" ;Same name as above +command = ~D, DB, B, D, DB, B, y;~F, D, DF, F, D, DF, y +time = 20 + +;-| Special Motions |------------------------------------------------------ +[Command] +name = "blocking" +command = $F,x +time = 3 + +[Command] +name = "blocking" ;Same name as above (buttons in opposite order) +command = x,$F +time = 3 + +[Command] +name = "upper_x" +command = ~F, D, DF, x + +[Command] +name = "upper_y" +command = ~F, D, DF, y + +[Command] +name = "upper_xy" +command = ~F, D, DF, x+y + +[Command] +name = "QCF_x" +command = ~D, DF, F, x + +[Command] +name = "QCF_y" +command = ~D, DF, F, y + +[Command] +name = "QCF_xy" +command = ~D, DF, F, x+y + +[Command] +name = "QCB_x" +command = ~D, DB, B, x + +[Command] +name = "QCB_y" +command = ~D, DB, B, y + +[Command] +name = "QCB_xy" +command = ~D, DB, B, x+y + +[Command] +name = "QCF_a" +command = ~D, DF, F, a + +[Command] +name = "QCF_b" +command = ~D, DF, F, b + +[Command] +name = "QCF_ab" +command = ~D, DF, F, a+b + +[Command] +name = "FF_ab" +command = F, F, a+b + +[Command] +name = "FF_a" +command = F, F, a + +[Command] +name = "FF_b" +command = F, F, b + +;-| Double Tap |----------------------------------------------------------- +[Command] +name = "FF" ;Required (do not remove) +command = F, F +time = 10 + +[Command] +name = "BB" ;Required (do not remove) +command = B, B +time = 10 + +;-| 2/3 Button Combination |----------------------------------------------- +[Command] +name = "recovery";Required (do not remove) +command = x+y +time = 1 + +;-| Dir + Button |--------------------------------------------------------- +[Command] +name = "down_a" +command = /$D,a +time = 1 + +[Command] +name = "down_b" +command = /$D,b +time = 1 + +;-| Single Button |--------------------------------------------------------- +[Command] +name = "a" +command = a +time = 1 + +[Command] +name = "b" +command = b +time = 1 + +[Command] +name = "c" +command = c +time = 1 + +[Command] +name = "x" +command = x +time = 1 + +[Command] +name = "y" +command = y +time = 1 + +[Command] +name = "z" +command = z +time = 1 + +[Command] +name = "start" +command = s +time = 1 + +;-| Hold Dir |-------------------------------------------------------------- +[Command] +name = "holdfwd";Required (do not remove) +command = /$F +time = 1 + +[Command] +name = "holdback";Required (do not remove) +command = /$B +time = 1 + +[Command] +name = "holdup" ;Required (do not remove) +command = /$U +time = 1 + +[Command] +name = "holddown";Required (do not remove) +command = /$D +time = 1 + +;--------------------------------------------------------------------------- +; 2. State entry +; -------------- +; This is where you define what commands bring you to what states. +; +; Each state entry block looks like: +; [State -1, Label] ;Change Label to any name you want to use to +; ;identify the state with. +; type = ChangeState ;Don't change this +; value = new_state_number +; trigger1 = command = command_name +; . . . (any additional triggers) +; +; - new_state_number is the number of the state to change to +; - command_name is the name of the command (from the section above) +; - Useful triggers to know: +; - statetype +; S, C or A : current state-type of player (stand, crouch, air) +; - ctrl +; 0 or 1 : 1 if player has control. Unless "interrupting" another +; move, you'll want ctrl = 1 +; - stateno +; number of state player is in - useful for "move interrupts" +; - movecontact +; 0 or 1 : 1 if player's last attack touched the opponent +; useful for "move interrupts" +; +; Note: The order of state entry is important. +; State entry with a certain command must come before another state +; entry with a command that is the subset of the first. +; For example, command "fwd_a" must be listed before "a", and +; "fwd_ab" should come before both of the others. +; +; For reference on triggers, see CNS documentation. +; +; Just for your information (skip if you're not interested): +; This part is an extension of the CNS. "State -1" is a special state +; that is executed once every game-tick, regardless of what other state +; you are in. + + +; Don't remove the following line. It's required by the CMD standard. +[Statedef -1] + +;=========================================================================== +;--------------------------------------------------------------------------- +;Smash Kung Fu Upper (uses one super bar) +[State -1, Smash Kung Fu Upper] +type = ChangeState +value = 3050 +triggerall = command = "SmashKFUpper" +triggerall = power >= 1000 +triggerall = statetype != A +trigger1 = ctrl +trigger2 = hitdefattr = SC, NA, SA, HA +trigger2 = stateno != [3050,3100) +trigger2 = movecontact +trigger3 = stateno = 1310 || stateno = 1330 ;From blocking + +;--------------------------------------------------------------------------- +;Triple Kung Fu Palm (uses one super bar) +[State -1, Triple Kung Fu Palm] +type = ChangeState +value = 3000 +triggerall = command = "TripleKFPalm" +triggerall = power >= 1000 +trigger1 = statetype = S +trigger1 = ctrl +trigger2 = statetype != A +trigger2 = hitdefattr = SC, NA, SA, HA +trigger2 = stateno != [3000,3050) +trigger2 = movecontact +trigger3 = stateno = 1310 || stateno = 1330 ;From blocking + +;=========================================================================== +;This is not a move, but it sets up var(1) to be 1 if conditions are right +;for a combo into a special move (used below). +;Since a lot of special moves rely on the same conditions, this reduces +;redundant logic. +[State -1, Combo condition Reset] +type = VarSet +trigger1 = 1 +var(1) = 0 + +[State -1, Combo condition Check] +type = VarSet +trigger1 = statetype != A +trigger1 = ctrl +trigger2 = (stateno = [200,299]) || (stateno = [400,499]) +trigger2 = stateno != 440 ;Except for sweep kick +trigger2 = movecontact +trigger3 = stateno = 1310 || stateno = 1330 ;From blocking +var(1) = 1 + +;--------------------------------------------------------------------------- +;Fast Kung Fu Knee (1/3 super bar) +[State -1, Fast Kung Fu Knee] +type = ChangeState +value = 1070 +triggerall = command = "FF_ab" +triggerall = power >= 330 +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Light Kung Fu Knee +[State -1, Light Kung Fu Knee] +type = ChangeState +value = 1050 +triggerall = command = "FF_a" +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Strong Kung Fu Knee +[State -1, Strong Kung Fu Knee] +type = ChangeState +value = 1060 +triggerall = command = "FF_b" +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Fast Kung Fu Palm (1/3 super bar) +[State -1, Fast Kung Fu Palm] +type = ChangeState +value = 1020 +triggerall = command = "QCF_xy" +triggerall = power >= 330 +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Light Kung Fu Palm +[State -1, Light Kung Fu Palm] +type = ChangeState +value = 1000 +triggerall = command = "QCF_x" +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Strong Kung Fu Palm +[State -1, Strong Kung Fu Palm] +type = ChangeState +value = 1010 +triggerall = command = "QCF_y" +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Fast Kung Fu Upper (1/3 super bar) +[State -1, Fast Kung Fu Upper] +type = ChangeState +value = 1120 +triggerall = command = "upper_xy" +triggerall = power >= 330 +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Light Kung Fu Upper +[State -1, Light Kung Fu Upper] +type = ChangeState +value = 1100 +triggerall = command = "upper_x" +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Strong Kung Fu Upper +[State -1, Strong Kung Fu Upper] +type = ChangeState +value = 1110 +triggerall = command = "upper_y" +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Fast Kung Fu Blow (1/3 super bar) +[State -1, Fast Kung Fu Blow] +type = ChangeState +value = 1220 +triggerall = command = "QCB_xy" +triggerall = power >= 330 +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Light Kung Fu Blow +[State -1, Light Kung Fu Blow] +type = ChangeState +value = 1200 +triggerall = command = "QCB_x" +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Strong Kung Fu Blow +[State -1, Strong Kung Fu Blow] +type = ChangeState +value = 1210 +triggerall = command = "QCB_y" +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;High Kung Fu Blocking (High) +[State -1, High Kung Fu Blocking High] +type = ChangeState +value = 1300 +triggerall = command = "blocking" +triggerall = command != "holddown" +trigger1 = ctrl +trigger1 = statetype != A +trigger2 = stateno = 1310 || stateno = 1330 +trigger2 = time > 0 + +;--------------------------------------------------------------------------- +;High Kung Fu Blocking (Low) +[State -1, High Kung Fu Blocking Low] +type = ChangeState +value = 1320 +triggerall = command = "blocking" +triggerall = command = "holddown" +trigger1 = ctrl +trigger1 = statetype != A +trigger2 = stateno = 1310 || stateno = 1330 +trigger2 = time > 0 + +;--------------------------------------------------------------------------- +;High Kung Fu Blocking (Air) +[State -1, High Kung Fu Blocking Low] +type = ChangeState +value = 1340 +triggerall = command = "blocking" +triggerall = command != "holdup" +triggerall = command != "holddown" +trigger1 = ctrl +trigger1 = statetype = A +trigger2 = stateno = 1350 +trigger2 = time > 0 + +;--------------------------------------------------------------------------- +;Far Kung Fu Zankou +[State -1, Far Kung Fu Zankou] +type = ChangeState +value = 1420 +triggerall = command = "QCF_ab" +triggerall = power >= 330 +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Light Kung Fu Zankou +[State -1, Light Kung Fu Zankou] +type = ChangeState +value = 1400 +triggerall = command = "QCF_a" +trigger1 = var(1) ;Use combo condition (above) + +;--------------------------------------------------------------------------- +;Strong Kung Fu Zankou +[State -1, Strong Kung Fu Zankou] +type = ChangeState +value = 1410 +triggerall = command = "QCF_b" +trigger1 = var(1) ;Use combo condition (above) + +;=========================================================================== +;--------------------------------------------------------------------------- +;Run Fwd +[State -1, Run Fwd] +type = ChangeState +value = 100 +trigger1 = command = "FF" +trigger1 = statetype = S +trigger1 = ctrl + +;--------------------------------------------------------------------------- +;Run Back +[State -1, Run Back] +type = ChangeState +value = 105 +trigger1 = command = "BB" +trigger1 = statetype = S +trigger1 = ctrl + +;--------------------------------------------------------------------------- +;Kung Fu Throw +[State -1, Kung Fu Throw] +type = ChangeState +value = 800 +triggerall = command = "y" +triggerall = statetype = S +triggerall = ctrl +triggerall = stateno != 100 +trigger1 = command = "holdfwd" +trigger1 = p2bodydist X < 12 +trigger1 = (p2statetype = S) || (p2statetype = C) +trigger1 = p2movetype != H +trigger2 = command = "holdback" +trigger2 = p2bodydist X < 20 +trigger2 = (p2statetype = S) || (p2statetype = C) +trigger2 = p2movetype != H + + + +;=========================================================================== +;--------------------------------------------------------------------------- +;Stand Light Punch +[State -1, Stand Light Punch] +type = ChangeState +value = 200 +triggerall = command = "x" +triggerall = command != "holddown" +trigger1 = statetype = S +trigger1 = ctrl +trigger2 = stateno = 200 +trigger2 = time > 6 + +;--------------------------------------------------------------------------- +;Stand Strong Punch +[State -1, Stand Strong Punch] +type = ChangeState +value = 210 +triggerall = command = "y" +triggerall = command != "holddown" +trigger1 = statetype = S +trigger1 = ctrl +trigger2 = (stateno = 200) && time > 5 +trigger3 = (stateno = 230) && time > 6 + +;--------------------------------------------------------------------------- +;Stand Light Kick +[State -1, Stand Light Kick] +type = ChangeState +value = 230 +triggerall = command = "a" +triggerall = command != "holddown" +trigger1 = statetype = S +trigger1 = ctrl +trigger2 = (stateno = 200) && time > 7 +trigger3 = (stateno = 230) && time > 9 + +;--------------------------------------------------------------------------- +;Standing Strong Kick +[State -1, Standing Strong Kick] +type = ChangeState +value = 240 +triggerall = command = "b" +triggerall = command != "holddown" +trigger1 = statetype = S +trigger1 = ctrl +trigger2 = (stateno = 200) && time > 5 +trigger3 = (stateno = 230) && time > 6 + +;--------------------------------------------------------------------------- +;Taunt +[State -1, Taunt] +type = ChangeState +value = 195 +triggerall = command = "start" +trigger1 = statetype != A +trigger1 = ctrl + +;--------------------------------------------------------------------------- +;Crouching Light Punch +[State -1, Crouching Light Punch] +type = ChangeState +value = 400 +triggerall = command = "x" +triggerall = command = "holddown" +trigger1 = statetype = C +trigger1 = ctrl + +;--------------------------------------------------------------------------- +;Crouching Strong Punch +[State -1, Crouching Strong Punch] +type = ChangeState +value = 410 +triggerall = command = "y" +triggerall = command = "holddown" +trigger1 = statetype = C +trigger1 = ctrl +trigger2 = (stateno = 400) || (stateno = 430) +trigger2 = (time > 9) || (movecontact && time > 5) + +;--------------------------------------------------------------------------- +;Crouching Light Kick +[State -1, Crouching Light Kick] +type = ChangeState +value = 430 +triggerall = command = "a" +triggerall = command = "holddown" +trigger1 = statetype = C +trigger1 = ctrl +trigger2 = (stateno = 400) || (stateno = 430) +trigger2 = (time > 9) || (movecontact && time > 5) + +;--------------------------------------------------------------------------- +;Crouching Strong Kick +[State -1, Crouching Strong Kick] +type = ChangeState +value = 440 +triggerall = command = "b" +triggerall = command = "holddown" +trigger1 = statetype = C +trigger1 = ctrl +trigger2 = (stateno = 400) || (stateno = 430) +trigger2 = (time > 9) || (movecontact && time > 5) + +;--------------------------------------------------------------------------- +;Jump Light Punch +[State -1, Jump Light Punch] +type = ChangeState +value = 600 +triggerall = command = "x" +trigger1 = statetype = A +trigger1 = ctrl +trigger2 = stateno = 600 +trigger2 = statetime >= 7 +trigger3 = stateno = 1350 ;Air blocking + +;--------------------------------------------------------------------------- +;Jump Strong Punch +[State -1, Jump Strong Punch] +type = ChangeState +value = 610 +triggerall = command = "y" +trigger1 = statetype = A +trigger1 = ctrl +trigger2 = stateno = 600 || stateno = 630 ;jump_x or jump_a +trigger2 = movecontact +trigger3 = stateno = 1350 ;Air blocking + +;--------------------------------------------------------------------------- +;Jump Light Kick +[State -1, Jump Light Kick] +type = ChangeState +value = 630 +triggerall = command = "a" +trigger1 = statetype = A +trigger1 = ctrl +trigger2 = stateno = 1350 ;Air blocking + +;--------------------------------------------------------------------------- +;Jump Strong Kick +[State -1, Jump Strong Kick] +type = ChangeState +value = 640 +triggerall = command = "b" +trigger1 = statetype = A +trigger1 = ctrl +trigger2 = stateno = 600 || stateno = 630 ;jump_x or jump_a +trigger2 = movecontact +trigger3 = stateno = 1350 ;Air blocking diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/kfm720.cns b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/kfm720.cns new file mode 100644 index 00000000..80220157 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/kfm720.cns @@ -0,0 +1,3465 @@ +; KFM's constants and state file. +; There are comments scattered through this file, so you may like to +; take a look if would like to learn more about the cns. + +[Data] +;Amount of life to start with +life = 1000 +;attack power (more is stronger) +attack = 100 +;defensive power (more is stronger) +defence = 100 +;Percentage to increase defense everytime player is knocked down +fall.defence_up = 50 +;Time which player lies down for, before getting up +liedown.time = 60 +;Number of points for juggling +airjuggle = 15 +;Default hit spark number for HitDefs +sparkno = 2 +;Default guard spark number +guard.sparkno = 40 +;1 to enable echo on KO +KO.echo = 0 +;Volume offset (negative for softer) +volume = 0 +;Variables with this index and above will not have their values +;reset to 0 between rounds or matches. There are 60 int variables, +;indexed from 0 to 59, and 40 float variables, indexed from 0 to 39. +;If omitted, then it defaults to 60 and 40 for integer and float +;variables repectively, meaning that none are persistent, i.e. all +;are reset. If you want your variables to persist between matches, +;you need to override state 5900 from common1.cns. +IntPersistIndex = 60 +FloatPersistIndex = 40 + +[Size] +xscale = 1 ;Horizontal scaling factor. +yscale = 1 ;Vertical scaling factor. +ground.back = 60 ;Player width (back, ground) +ground.front = 64 ;Player width (front, ground) +air.back = 48 ;Player width (back, air) +air.front = 48 ;Player width (front, air) +height = 240 ;Height of player (for opponent to jump over) +attack.dist = 640 ;Default attack distance +proj.attack.dist = 360 ;Default attack distance for projectiles +proj.doscale = 0 ;Set to 1 to scale projectiles too +head.pos = -20, -360 ;Approximate position of head +mid.pos = -20, -240 ;Approximate position of midsection +shadowoffset = 0 ;Number of pixels to vertically offset the shadow +draw.offset = 0,0 ;Player drawing offset in pixels (x, y). Recommended 0,0 + +[Velocity] +walk.fwd = 9.6 ;Walk forward +walk.back = -8.8 ;Walk backward +run.fwd = 18.4, 0 ;Run forward (x, y) +run.back = -18,-15.2 ;Hop backward (x, y) +jump.neu = 0,-33.6 ;Neutral jumping velocity (x, y) +jump.back = -10.2,-33.6 ;Jump back Speed (x, y) +jump.fwd = 10,-33.6 ;Jump forward Speed (x, y) +runjump.back = -10.2,-32.4 ;Running jump speeds (opt) +runjump.fwd = 16,-32.4 ;. +airjump.neu = 0,-32.4 ;. +airjump.back = -10.2 ;Air jump speeds (opt) +airjump.fwd = 10 ;. +air.gethit.groundrecover = -.6,-14 ;Velocity for ground recovery state (x, y) **MUGEN 1.0** +air.gethit.airrecover.mul = .5,.2 ;Multiplier for air recovery velocity (x, y) **MUGEN 1.0** +air.gethit.airrecover.add = 0,-18 ;Velocity offset for air recovery (x, y) **MUGEN 1.0** +air.gethit.airrecover.back = -4 ;Extra x-velocity for holding back during air recovery **MUGEN 1.0** +air.gethit.airrecover.fwd = 0 ;Extra x-velocity for holding forward during air recovery **MUGEN 1.0** +air.gethit.airrecover.up = -8 ;Extra y-velocity for holding up during air recovery **MUGEN 1.0** +air.gethit.airrecover.down = 6 ;Extra y-velocity for holding down during air recovery **MUGEN 1.0** + +[Movement] +airjump.num = 1 ;Number of air jumps allowed (opt) +airjump.height = 140 ;Minimum distance from ground before you can air jump (opt) +yaccel = 1.76 ;Vertical acceleration +stand.friction = .85 ;Friction coefficient when standing +crouch.friction = .82 ;Friction coefficient when crouching +stand.friction.threshold = 8 ;If player's speed drops below this threshold while standing, stop his movement **MUGEN 1.0** +crouch.friction.threshold = .2 ;If player's speed drops below this threshold while crouching, stop his movement **MUGEN 1.0** +air.gethit.groundlevel = 100 ;Y-position at which a falling player is considered to hit the ground **MUGEN 1.0** +air.gethit.groundrecover.ground.threshold = -80 ;Y-position below which falling player can use the recovery command **MUGEN 1.0** +air.gethit.groundrecover.groundlevel = 40 ;Y-position at which player in the ground recovery state touches the ground **MUGEN 1.0** +air.gethit.airrecover.threshold = -4 ;Y-velocity above which player may use the air recovery command **MUGEN 1.0** +air.gethit.airrecover.yaccel = 1.4 ;Vertical acceleration for player in the air recovery state **MUGEN 1.0** +air.gethit.trip.groundlevel = 60 ;Y-position at which player in the tripped state touches the ground **MUGEN 1.0** +down.bounce.offset = 0, 80 ;Offset for player bouncing off the ground (x, y) **MUGEN 1.0** +down.bounce.yaccel = 1.6 ;Vertical acceleration for player bouncing off the ground **MUGEN 1.0** +down.bounce.groundlevel = 48 ;Y-position at which player bouncing off the ground touches the ground again **MUGEN 1.0** +down.friction.threshold = .2 ;If the player's speed drops below this threshold while lying down, stop his movement **MUGEN 1.0** + +;Default language victory quotes **MUGEN 1.0** +;The default language victory quotes must be implemented in English. +[Quotes] +; Up to 100 victory quotes can be specified per language (victory0 - victory99) +victory1 = "You must defeat Tu Shou to stand a chance." +victory2 = "You need a lot of training. Come back in ten years." +victory3 = "You look familiar. Did I see you on TV?" +victory4 = "Your moves are too predictable. You want to learn Kung Fu Palm? It's not for novices." +victory5 = "That was a good workout." +victory6 = "I want to challenge more skilled fighters." +victory7 = "What do you mean my girlfriend is in another temple?" + +;Alternate language victory quotes (optional). +;0 or more alternate language sections may be added, preceded by the +;ISO 639-1 code followed by a ".", e.g. "[ja.Quotes]". +;See language setting in mugen.cfg. +[ja.Quotes] +victory1 = "カンフーçª�ã��手を破らã�¬é™�りã€�ã�Šå‰�ã�«å‹�ã�¡ç›®ã�¯ã�ªã�„ï¼�" +victory2 = "å��å¹´æ—©ã�„ã‚“ã� ã�ž" +victory3 = "ã�Šå‰�ã�¯è¦‹è¦šã�ˆã�Œã�‚ã‚‹ã�ªã€‚テレビã�«ã�§ã‚‚…?" +victory4 = "ã�Šå‰�ã�®å‹•ã��ã�¯è¦‹ç ´ã‚Šã‚„ã�™ã�™ã�Žã‚‹ã€‚ ã�ªã�«ã€�カンフーçª�ã��手ã�Œè¦šã�ˆã�Ÿã�„ã‚“ã� ã�¨ï¼Ÿã€€ç´ äººã�«ã�¯ç„¡ç�†ã� ã�ž" +victory5 = "ã�µãƒ¼ã€‚ ã�„ã�„æ±—ã� ã�£ã�Ÿ" +victory6 = "ã‚‚ã�£ã�¨å¼·ã�„相手ã�«æŒ‘戦ã�—ã�Ÿã�„" +victory7 = "ã�ªã‚“ã� ã�¨ï¼�彼女ã�¯ã�“ã�“ã�«ã‚‚ã�„ã�ªã�„ã�¨ï¼Ÿ" + +;--------------------------------------------------------------------------- +; Variable usage: +; This is a record of the variables that KFM uses. Keeping a record of your +; variable usage helps you avoid careless mistakes later. +; var(1) - Used in kfm.cmd for combo condition (updated every tick) +; var(2) - Used in Kung Fu Throw (state 800) to remember if fwd was being +; held (remembered from state 800 through state 810). + + +;--------------------------------------------------------------------------- +; Lose by Time Over +; CNS difficulty: basic +[Statedef 170] +type = S +ctrl = 0 +anim = 170 +velset = 0,0 + +[State 170, 1] +type = NotHitBy +trigger1 = 1 +value = SCA +time = 1 + +;--------------------------------------------------------------------------- +; Win state decider +; CNS difficulty: basic +[Statedef 180] +type = S + +[State 180, 1] +type = ChangeState +trigger1 = Time = 0 +value = 181 + +;--------------------------------------------------------------------------- +; Win pose 1 - Bow +; CNS difficulty: basic +[Statedef 181] +type = S +ctrl = 0 +anim = 181 +velset = 0,0 + +[State 181, 1] +type = NotHitBy +trigger1 = 1 +value = SCA +time = 1 + +;--------------------------------------------------------------------------- +; Introduction +; CNS difficulty: basic +[Statedef 191] +type = S +ctrl = 0 +anim = 190 +velset = 0,0 + +[State 191, 1] ;Freeze animation until PreIntro is over +type = ChangeAnim +trigger1 = RoundState = 0 +value = 190 + +[State 191, 2] ;Assert this until you want "round 1, fight" to begin +type = AssertSpecial +trigger1 = 1 +flag = Intro + +[State 191, 3] ;Change to stand state when done +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 + +; You can delete the following two controllers if you're building your own +; character using KFM. These are the wood pieces that KFM kicks. +[State 191, Wood 1] +type = Explod +trigger1 = RoundState != 0 +persistent = 0 +anim = 191 +postype = p1 +pos = 1040, -360 +velocity = -16.8, -28 +accel = 0, 1.28 +removetime = 48 + +[State 191, Wood 2] +type = Explod +trigger1 = AnimElemTime(7) = 1 +anim = 192 +postype = p1 +pos = 240, -280 +velocity = 2, -4 +accel = 0, 1.28 +removetime = 35 + +; You can delete the following two controllers if you're building your own +; character using KFM. These play back the sounds of the wood block being +; broken. +[State 191, Snd 1] +type = PlaySnd +trigger1 = AnimElem = 7 +value = F5,2 +volume = -40 + +[State 191, Snd 2] +type = PlaySnd +trigger1 = AnimElemTime(7) = 3 +value = F5,3 +volume = -80 + +;--------------------------------------------------------------------------- +; Taunt +; CNS difficulty: easy +[Statedef 195] +type = S +ctrl = 0 +anim = 195 +velset = 0,0 +movetype = I +physics = S +sprpriority = 2 + +[State 195, 1] +type = CtrlSet +trigger1 = Time = 40 +value = 1 + +[State 195, 2] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + + +;--------------------------------------------------------------------------- +; Stand Light Punch +; CNS difficulty: easy +[Statedef 200] +type = S ;State-type: S-stand, C-crouch, A-air, L-liedown +movetype= A ;Move-type: A-attack, I-idle, H-gethit +physics = S ;Physics: S-stand, C-crouch, A-air +juggle = 1 ;Number of air juggle points move takes +;Commonly-used controllers: +velset = 0,0 ;Set velocity (x,y) (Def: no change) +ctrl = 0 ;Set ctrl (Def: no change) +anim = 200 ;Change animation (Def: no change) +poweradd = 10 ;Power to add (Def: 0) +sprpriority = 2 ;Set p1's sprite layering priority to 2 (in front) + +[State 200, 1] +type = HitDef +trigger1 = AnimElem = 3 +attr = S, NA ;Attribute: Standing, Normal Attack +damage = 23, 0 ;Damage that move inflicts, guard damage +animtype = Light ;Animation type: Light, Medium, Heavy, Back (def: Light) +guardflag = MA ;Flags on how move is to be guarded against +hitflag = MAF ;Flags of conditions that move can hit +priority = 3, Hit ;Attack priority: 0 (least) to 7 (most), 4 default +;Hit/Miss/Dodge type (Def: Hit) +pausetime = 8, 8 ;Time attacker pauses, time opponent shakes +sparkno = 0 ;Spark anim no (Def: set above) +sparkxy = -40, -304 ;X-offset for the "hit spark" rel. to p2, +;Y-offset for the spark rel. to p1 +hitsound = 5, 0 ;Sound to play on hit +guardsound = 6, 0 ;Sound to play on guard +ground.type = High ;Type: High, Low, Trip (def: Normal) +ground.slidetime = 5 ;Time that the opponent slides back +ground.hittime = 10 ;Time opponent is in hit state +ground.velocity = -16 ;Velocity at which opponent is pushed +airguard.velocity = -7.6,-3.2 ;Guard velocity in air (def: (air.xvel*1.5, air.yvel/2)) +air.type = High ;Type: High, Low, Trip (def: same as ground.type) +air.velocity = -5.6,-12 ;X-velocity at which opponent is pushed, +;Y-velocity at which opponent is pushed +air.hittime = 15 ;Time before opponent regains control in air + +[State 200, 2] +type = PlaySnd +trigger1 = Time = 1 +value = 0, 0 + +[State 200, 3] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Standing strong punch +; CNS difficulty: easy +; Note the width controller. It makes KFM's push box larger, so he doesn't +; stand so close to the opponent. Hit Ctrl-C and look at the red bar at his +; feet. +; The sprpriority for this state is at -1, instead of the usual 2 for +; attacks. This makes KFM appear behind the opponent initially. +; The SprPriority controller in [State 210, 4] brings KFM to the front when +; his arm has swung over. +; To stop KFM from pausing in his swing frame, there is a ChangeAnim in +; [State 210, 3] that detects if the hit has come in contact with the +; opponent during that frame, and switches to the next animation element +; (notice the elem=6 parameter). If you don't see what I mean, try commenting +; out that controller, then hit someone with this attack. +[Statedef 210] +type = S +movetype= A +physics = S +juggle = 4 +poweradd= 30 +ctrl = 0 +velset = 0,0 +anim = 210 +sprpriority = -1 + +[State 210, Width] +type = Width +trigger1 = (AnimElemTime (2) >= 0) && (AnimElemTime (7) < 0) +value = 15,0 + +[State 210, 1] +type = PlaySnd +trigger1 = Time = 2 +value = 0, 4 + +[State 210, 2] +type = HitDef +trigger1 = AnimElem = 3 +attr = S, NA +animtype = Medium +damage = 57 +guardflag = MA +pausetime = 12,12 +sparkno = 1 +sparkxy = -40,-280 +hitsound = 5,2 +guardsound = 6,0 +ground.type = High +ground.slidetime = 14 +ground.hittime = 16 +ground.velocity = -22 +air.velocity = -10,-16 +forcenofall = 1 + +[State 210, 3] +type = ChangeAnim +trigger1 = AnimElemTime(5) > 0 && AnimElemTime(6) <= 0 +trigger1 = movecontact +ignorehitpause = 1 +persistent = 0 +value = 210 +elem = 6 + +[State 210, 4] +type = SprPriority +trigger1 = AnimElem = 5 +value = 2 + +[State 210, 5] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Standing light kick +; CNS difficulty: easy +[Statedef 230] +type = S +movetype= A +physics = S +juggle = 4 +poweradd= 11 +ctrl = 0 +velset = 0,0 +anim = 230 +sprpriority = 2 + +[State 230, 1] +type = PlaySnd +trigger1 = Time = 2 +value = 0, 1 + +[State 230, 2] +type = HitDef +trigger1 = Time = 0 +attr = S, NA +animtype = Medium +damage = 26 +guardflag = MA +pausetime = 12,12 +sparkno = 0 +sparkxy = -40,-148 +hitsound = 5,1 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 12 +ground.hittime = 14 +ground.velocity = -20 +air.velocity = -10,-14 + +[State 230, 3] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Standing strong kick +; CNS difficulty: easy +[Statedef 240] +type = S +movetype= A +physics = S +juggle = 5 +poweradd= 30 +ctrl = 0 +velset = 0,0 +anim = 240 +sprpriority = 2 + +[State 240, 1] +type = PlaySnd +trigger1 = Time = 2 +value = 0, 1 + +[State 240, 2] +type = HitDef +trigger1 = Time = 0 +attr = S, NA +animtype = Medium +damage = 63 +guardflag = MA +pausetime = 12,12 +sparkno = 1 +sparkxy = -40,-240 +hitsound = 5,2 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 14 +ground.hittime = 17 +ground.velocity = -24 +air.velocity = -8.8,-12.8 + +[State 240, 3] +type = PosAdd +trigger1 = AnimElem = 7 +x = 48 + +[State 240, 4] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +;Crouching light punch +; CNS difficulty: easy +; Description: Simple crouching attack. The HitDef's guardflag parameter +; is set to "L", meaning that the move can only be guarded low +; (crouching), and not by standing or jumping opponents. +; Like for all light attacks, it's a good idea to keep the slidetime +; and hittime parameters at a smaller number, so the opponent isn't +; stunned for too long. For all crouching attacks you have to +; remember to set the attr parameter to indicate that it is crouching +; attack. In this case, "C, NA" stands for "crouching, normal attack". +; The HitDef's priority is set at 3, instead of the default of 4, +; so this attack has a lower priority than most others, meaning +; KFM will get hit instead of trading hits with his opponent if +; their attack collision boxes (Clsn1) intersect each other's Clsn2 +; boxes at the same time. +[Statedef 400] +type = C +movetype= A +physics = C +juggle = 5 +poweradd= 8 +ctrl = 0 +anim = 400 +sprpriority = 2 + +[State 400, 1] +type = PlaySnd +trigger1 = Time = 1 +value = 0, 0 + +[State 400, 2] +type = HitDef +trigger1 = Time = 0 +attr = C, NA +damage = 23 +priority = 3 +animtype = Light +hitflag = MAF +guardflag = L +pausetime = 10,11 +sparkno = 0 +sparkxy = -40,-168 +hitsound = 5,0 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 6 +ground.hittime = 9 +ground.velocity = -16 +air.velocity = -6,-12 + +[State 400, 3] +type = CtrlSet +trigger1 = Time = 6 +value = 1 + +[State 400, 4] +type = ChangeState +trigger1 = AnimTime = 0 +value = 11 + +;--------------------------------------------------------------------------- +;Crouching strong punch +; CNS difficulty: easy +; Description: This is a 2-hit move. It is done by having two HitDefs +; triggered, one for each frame of animation that hits. +; Notice how the first hit cannot be guarded by an opponent in the +; air, because of the "M" in the guardflag, meaning it can only +; be guarded "middle". The second hit has an "MA" guardflag, so +; it can be guarded both on the ground and in the air. +[Statedef 410] +type = C +movetype= A +physics = C +juggle = 6 +poweradd= 25 +ctrl = 0 +anim = 410 +sprpriority = 2 + +[State 410, 1] +type = PlaySnd +trigger1 = Time = 1 +value = 0, 0 + +;This is the first hit, triggered on the 3rd element of animation. +[State 410, 2] +type = HitDef +trigger1 = AnimElem = 3 +attr = C, NA +damage = 37 +animtype = Medium +hitflag = MAF +guardflag = M +pausetime = 12,12 +sparkno = 1 +sparkxy = -40,-220 +hitsound = 5,2 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 14 +ground.hittime = 17 +ground.velocity = -16 +air.velocity = -12,-16 + +;This is the second hit, triggered on the 4th element of animation. +[State 410, 3] +type = HitDef +trigger1 = AnimElem = 4 +attr = C, NA +damage = 36 +animtype = Medium +hitflag = MAF +guardflag = MA +pausetime = 12,12 +sparkxy = -40,-332 +hitsound = 5,2 +guardsound = 6,0 +ground.type = High +ground.slidetime = 14 +ground.hittime = 17 +ground.velocity = -28 +air.velocity = -12,-16 + +[State 410, 4] +type = ChangeState +trigger1 = AnimTime = 0 +value = 11 +ctrl = 1 + +;--------------------------------------------------------------------------- +;Crouching light kick +; CNS difficulty: easy +[Statedef 430] +type = C +movetype= A +physics = C +juggle = 5 +poweradd= 11 +ctrl = 0 +anim = 430 +sprpriority = 2 + +[State 430, 1] +type = PlaySnd +trigger1 = Time = 1 +value = 0, 0 + +[State 430, 2] +type = HitDef +trigger1 = Time = 0 +attr = C, NA +damage = 28 +animtype = Light +hitflag = MAFD +guardflag = L +pausetime = 12,12 +sparkno = 0 +sparkxy = -40,-32 +hitsound = 5,1 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 8 +ground.hittime = 10 +ground.velocity = -20 +air.velocity = -8,-12 +down.velocity = -20,0 +down.hittime = 22 + +[State 430, 3] +type = ChangeState +trigger1 = AnimTime = 0 +value = 11 +ctrl = 1 + +;--------------------------------------------------------------------------- +;Crouch Strong Kick +; CNS difficulty: easy +; Description: This move uses "Trip" for the "ground.type" parameter in +; its HitDef. It's a special type that puts the opponent in a tripped +; animation as he falls. Also, the hitflag parameter in the HitDef +; is set to "MAFD". The "D" indicates that a downed opponent can be +; hit by the attack. +[Statedef 440] +type = C +movetype= A +physics = C +juggle = 7 +poweradd= 35 +ctrl = 0 +anim = 440 +sprpriority = 2 + +[State 440, 2] +type = PlaySnd +trigger1 = Time = 2 +value = 0, 2 + +[State 440, 3] +type = HitDef +trigger1 = Time = 0 +attr = C, NA +damage = 72 +hitflag = MAFD +guardflag = L +pausetime = 12,12 +sparkno = 1 +sparkxy = -20,-40 +hitsound = 5,2 +guardsound = 6,0 +ground.type = Trip +ground.slidetime = 12 +ground.hittime = 17 +ground.velocity = -6,-8 +air.velocity = -4.8,-12 +guard.velocity = -20 +fall = 1 + +[State 440, 4] +type = ChangeState +trigger1 = AnimTime = 0 +value = 11 +ctrl = 1 + +;--------------------------------------------------------------------------- +;Jump Light Punch +; CNS difficulty: easy +[Statedef 600] +type = A +movetype= A +physics = A +juggle = 2 +poweradd= 5 +ctrl = 0 +anim = 600 +sprpriority = 2 + +[State 600, 1] +type = PlaySnd +trigger1 = Time = 1 +value = 0, 0 + +[State 600, 2] +type = HitDef +trigger1 = Time = 0 +attr = A, NA +damage = 20 +guardflag = HA +priority = 3 +pausetime = 7,8 +sparkno = 0 +sparkxy = -40,-232 +hitsound = 5,0 +guardsound = 6,0 +ground.type = High +ground.slidetime = 7 +ground.hittime = 8 +ground.velocity = -16 +air.velocity = -5.2,-12 +air.hittime = 14 + +[State 600, 3] +type = CtrlSet +trigger1 = Time = 17 +value = 1 + +;--------------------------------------------------------------------------- +;Jump Strong Punch +; CNS difficulty: easy +[Statedef 610] +type = A +movetype= A +physics = A +juggle = 4 +poweradd= 30 +ctrl = 0 +anim = 610 +sprpriority = 2 + +[State 610, 2] +type = PlaySnd +trigger1 = Time = 2 +value = 0, 1 + +[State 610, 3] +type = HitDef +trigger1 = Time = 0 +attr = A, NA +damage = 72 +guardflag = HA +priority = 4 +pausetime = 12,12 +sparkno = 1 +sparkxy = -40,-220 +hitsound = 5,3 +guardsound = 6,0 +animtype = Med +ground.type = High +ground.slidetime = 14 +ground.hittime = 14 +ground.velocity = -24 +air.velocity = -12,-16 + +;--------------------------------------------------------------------------- +;Jump Light Kick +; CNS difficulty: easy +[Statedef 630] +type = A +movetype= A +physics = A +juggle = 3 +poweradd= 10 +ctrl = 0 +anim = 630 +sprpriority = 2 + +[State 630, 1] +type = PlaySnd +trigger1 = Time = 1 +value = 0, 0 + +[State 630, 2] +type = HitDef +trigger1 = Time = 0 +attr = A, NA +damage = 26 +guardflag = HA +priority = 3 +pausetime = 8,8 +sparkno = 1 +sparkxy = -20,-140 +hitsound = 5,0 +guardsound = 6,0 +ground.type = High +ground.slidetime = 8 +ground.hittime = 10 +ground.velocity = -16 +air.velocity = -8,-12 +air.hittime = 14 + +;--------------------------------------------------------------------------- +;Jump Strong Kick +; CNS difficulty: easy +[Statedef 640] +type = A +movetype= A +physics = A +juggle = 4 +poweradd= 30 +ctrl = 0 +anim = 640 +sprpriority = 2 + +[State 640, 2] +type = PlaySnd +trigger1 = Time = 2 +value = 0, 1 + +[State 640, 3] +type = HitDef +trigger1 = Time = 0 +attr = A, NA +damage = 70 +guardflag = HA +priority = 4 +pausetime = 12,12 +sparkno = 1 +sparkxy = -40,-160 +hitsound = 5,3 +guardsound = 6,0 +animtype = Med +ground.type = High +ground.slidetime = 14 +ground.hittime = 15 +ground.velocity = -28 +air.velocity = -12,-16 + +;--------------------------------------------------------------------------- +;Kung Fu Throw - Attempt +; CNS difficulty: medium-advanced +; Description: Throws are not difficult to make, although then can be +; tedious at times. Throw attempt states have a HitDef of a +; special format. The key parameters in a throw are p1stateno +; and p2stateno. If the HitDef successfully connects, then +; the attacker will change to the state number specified by +; p1stateno, and the opponent will be change to the state +; number assigned to p2stateno. The special thing about p2stateno +; is that the opponent will be temporarily brought into the +; attacker's state file. In this case, no matter who the +; opponent is, he will be taken to state 820 of this file (kfm.cns) +; and remain here until the end of the throw (look at his debug +; information when he is being thrown; the text changes to yellow +; to mean that he is in another player's state file). +[Statedef 800] +type = S +movetype= A +physics = S +juggle = 0 +velset = 0,0 +ctrl = 0 +anim = 800 +sprpriority = 2 + +; Notes: The '-' symbol in the hitflag field means that it only affects +; players who are not in a hit state. This prevents KFM from combo-ing +; into the throw. The priority should be set to a low number, such as +; 1 or 2, so that the throw does not take precedence over normal attacks. +; The type of priority must always be set to "Miss" or "Dodge" for throws, +; otherwise strange behavior can result. +[State 800, 1] +type = HitDef +Trigger1 = Time = 0 +attr = S, NT ;Attributes: Standing, Normal Throw +hitflag = M- ;Affect only ground people who are not being hit +priority = 1, Miss ;Throw has low priority, must be miss or dodge type. +sparkno = -1 ;No spark +p1sprpriority = 1 ;Draw p1's sprite in front of p2 + ;p2's sprite priority is set to 0 by default +p1facing = 1 +p2facing = 1 ;Force p2 to face KFM +p1stateno = 810 ;On success, KFM changes to state 810 +p2stateno = 820 ;If hit, p2 changes to state 820 in KFM's cns +guard.dist = 0 ;This prevents p2 from going into a guard state if close +fall = 1 ;Force p2 into falling down + +[State 800, 2] +type = ChangeState +Trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +;Kung Fu Throw - Throwing the opponent +; Description: In this state, KFM throws the opponent by binding him to +; various offsets based on his current frame of animation. For +; example, [State 810, Bind 1] binds the opponent to an offset of +; 28 pixels in front of KFM. That puts him around where KFM's hand +; is at. Is is important to keep the opponent bound using a +; TargetBind controller at all times, until you let him go. This +; is especially important if your player has a Clsn2 box that +; allows him to get hit while throwing someone. Each time a player +; gets hit, all his bound targets will be set to a fall state. If +; the opponent is not bound, then he may get stuck in his thrown +; state when his attacker is knocked out of the throw halfway. +; Notes: There is a TargetLifeAdd controller to decrease the opponent's +; life, and a TargetState controller to change his state to a +; falling state when KFM lets go of him. +[Statedef 810] +type = S +movetype= A +physics = N +anim = 810 +poweradd = 0 + +; Here a variable, var(2), is used to remember whether or not the +; player was holding forward at the start of the state. This variable +; is checked later on to turn KFM around if necessary. +[State 810, Holding fwd?] +type = VarSet +trigger1 = Time = 0 +var(2) = command = "holdfwd" + +[State 810, Grab Sound] +type = PlaySnd +trigger1 = AnimElem = 2 +value = 1, 1 + +[State 810, Throw Sound] +type = PlaySnd +trigger1 = AnimElem = 7 +value = 800, 0 + +[State 810, Bind 1] +type = TargetBind +trigger1 = AnimElemTime(2) < 0 +pos = 112, 0 + +[State 810, Width 2-11] +type = Width +trigger1 = AnimElemTime(2) >= 0 && AnimElemTime(12) < 0 +edge = 240,0 + +[State 810, Bind 2-4] +type = TargetBind +trigger1 = AnimElemTime(2) >= 0 && AnimElemTime(5) < 0 +pos = 232, 0 + +[State 810, Bind 5] +type = TargetBind +trigger1 = AnimElemTime(5) >= 0 && AnimElemTime(6) < 0 +pos = 188, 0 + +[State 810, holdfwd - Turn 6] ;If was holding fwd before, turn now +type = Turn +trigger1 = var(2) +trigger1 = AnimElem = 6 + +[State 810, holdfwd - Pos 6] ;If was holding fwd before, move a little +type = PosAdd +trigger1 = var(2) +trigger1 = AnimElem = 6 +x = -148 + +[State 810, holdfwd - Turn Target 6] ;If was holding fwd before, turn target too +type = TargetFacing +trigger1 = var(2) +trigger1 = AnimElem = 6 +value = -1 + +[State 810, Bind 6] +type = TargetBind +trigger1 = AnimElemTime(6) >= 0 && AnimElemTime(7) < 0 +pos = 164, -240 + +[State 810, Bind 7] +type = TargetBind +trigger1 = AnimElemTime(7) >= 0 && AnimElemTime(8) < 0 +pos = 100, -300 + +[State 810, Bind 8] +type = TargetBind +trigger1 = AnimElemTime(8) >= 0 && AnimElemTime(9) < 0 +pos = 60, -360 + +[State 810, Bind 9] +type = TargetBind +trigger1 = AnimElemTime(9) >= 0 && AnimElemTime(10) < 0 +pos = -20, -384 + +[State 810, Bind 10] +type = TargetBind +trigger1 = AnimElemTime(10) >= 0 && AnimElemTime(11) < 0 +pos = -56, -360 + +[State 810, Bind 11] +type = TargetBind +trigger1 = AnimElem = 11 +pos = -200, -200 + +[State 810, Hurt 11] +type = TargetLifeAdd +trigger1 = AnimElem = 11 +value = -78 + +[State 810, Throw 11] +type = TargetState +trigger1 = AnimElem = 11 +value = 821 + +[State 810, Turn 12] +type = Turn +trigger1 = AnimElem = 12 + +[State 810, Pos 15] +type = PosAdd +trigger1 = AnimElem = 15 +x = -40 + +[State 810, State End] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +;Thrown by Kung Fu Throw +; (a custom gethit state) +; Description: This is the state that the opponent changes to after being +; hit by KFM's throw HitDef. The important thing here is to use a +; ChangeAnim2 controller. The difference between ChangeAnim2 and +; ChangeAnim is that ChangeAnim2 changes the player's animation to +; an action in the AIR file of the attacker (in this case, kfm.air), +; whereas ChangeAnim always changes the player to an action in his +; own AIR file. Look at Action 820 in kfm.air for some extra +; comments. +[Statedef 820] +type = A +movetype= H +physics = N +velset = 0,0 + +[State 820, 1] +type = ChangeAnim2 +Trigger1 = Time = 0 +value = 820 + +;In case attacker loses binding on player for any reason, this controller +;guarantees that the player will never get stuck in this thrown state. +[State 820, 2] +type = SelfState +trigger1 = !gethitvar(isbound) +value = 5050 + +;--------------------------------------------------------------------------- +;Thrown by Kung Fu Throw - thrown into the air +; (a custom gethit state) +; Description: This state has the opponent flying through the air and +; falling down onto the ground. The SelfState controller sets the +; opponent back using to his own state file when he his the ground. +; Controllers 821,2 and 821,3 allow the opponent to recover by +; hitting his recovery command when he is falling. +[Statedef 821] +type = A +movetype= H +physics = N +velset = 11.2,-28 +poweradd = 40 + +[State 821, 1] ;Gravity +type = VelAdd +Trigger1 = 1 +y = 1.6 + +[State 821, 2] ; Recover near ground (use ChangeState) +type = ChangeState +triggerall = Vel Y > 0 +triggerall = Pos Y >= -80 +triggerall = alive +triggerall = CanRecover +trigger1 = Command = "recovery" +value = 5200 ;HITFALL_RECOVER + +[State 821, 3] ; Recover in mid air (use SelfState) +type = SelfState +triggerall = Vel Y > 0 +triggerall = alive +triggerall = CanRecover +trigger1 = Command = "recovery" +value = 5210 ;HITFALL_AIRRECOVER + +[State 821, 4] ;Hit ground +type = SelfState +trigger1 = Vel Y > 0 +trigger1 = Pos Y >= 0 +value = 5100 ;Hit ground + + +;--------------------------------------------------------------------------- +; Kung Fu Palm +; CNS difficulty: medium +; Description: This is like a standard attack, but with some differences. +; There are two HitDefs in this attack. One is triggered when the +; opponent is near (using a p2bodydist trigger), and the other +; when the opponent is farther away. The main differences between +; the near and far versions of the HitDefs is that the near version +; has a "fall" parameter set to 1, causing the opponent to be knocked +; down. Other minor differences are the damage, and the velocity to +; give the opponent. +; The line "attr = S, SA" line means this is a Standing, Special Attack. +; It is important you have the attr parameter set correctly for all +; you HitDefs. +[Statedef 1000] +type = S +movetype= A +physics = S +juggle = 4 +poweradd= 55 +velset = 0,0 +anim = 1000 +ctrl = 0 +sprpriority = 2 + +[State 1000, 1] +type = PlaySnd +trigger1 = Time = 8 +value = 0, 3 + +[State 1000, 2] +type = PosAdd +trigger1 = AnimElem = 2 +x = 80 + +[State 1000, 3] +type = PosAdd +trigger1 = AnimElem = 3 +trigger2 = AnimElem = 13 +x = 40 + +[State 1000, 4] +type = PosAdd +trigger1 = AnimElem = 5 +x = 20 + +[State 1000, 5] ;Opponent near +type = HitDef +trigger1 = AnimElem = 5 +trigger1 = p2bodydist X < 160 +attr = S, SA +animtype = Hard +damage = 90, 4 +priority = 5 +guardflag = MA +pausetime = 15,15 +sparkxy = -40,-240 +hitsound = 5,4 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 14 +ground.hittime = 17 +ground.velocity = -16,-14 +air.velocity = -16,-12 +fall = 1 + +[State 1000, 6] ;Opponent not near +type = HitDef +trigger1 = AnimElem = 5 +trigger1 = p2bodydist X >= 160 +attr = S, SA +animtype = Hard +damage = 85, 4 +priority = 4 +guardflag = MA +pausetime = 15,15 +sparkxy = -40,-240 +hitsound = 5,4 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 14 +ground.hittime = 17 +ground.velocity = -28 +air.velocity = -16,-10 + +[State 1000, 6] +type = PosAdd +trigger1 = AnimElem = 9 +x = -20 + +[State 1000, 7] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Strong Kung Fu Palm +; CNS difficulty: medium +[Statedef 1010] +type = S +movetype= A +physics = S +juggle = 4 +poweradd= 60 +velset = 0,0 +anim = 1010 +ctrl = 0 +sprpriority = 2 + +[State 1010, 1] +type = PlaySnd +trigger1 = Time = 9 +value = 0, 3 + +[State 1010, 2] +type = PosAdd +trigger1 = AnimElem = 2 +x = 80 + +[State 1010, 3] +type = PosAdd +trigger1 = AnimElem = 3 +trigger2 = AnimElem = 13 +x = 40 + +[State 1010, 4] +type = PosAdd +trigger1 = AnimElem = 5 +x = 20 + +[State 1010, 5] +type = VelSet +trigger1 = AnimElem = 5 +x = 16 + +[State 1010, 6] ;Opponent near +type = HitDef +trigger1 = AnimElem = 5 +trigger1 = p2bodydist X < 160 +attr = S, SA +animtype = Hard +damage = 90, 4 +priority = 5 +guardflag = MA +pausetime = 15,15 +sparkxy = -40,-240 +hitsound = 5,4 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 14 +ground.hittime = 17 +ground.velocity = -16,-14 +air.velocity = -16,-12 +fall = 1 + +[State 1010, 7] ;Opponent not near +type = HitDef +trigger1 = AnimElem = 5 +trigger1 = p2bodydist X >= 160 +attr = S, SA +animtype = Hard +damage = 85, 4 +priority = 4 +guardflag = MA +pausetime = 15,15 +sparkxy = -40,-240 +hitsound = 5,4 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 14 +ground.hittime = 17 +ground.velocity = -28 +air.velocity = -16,-10 + +[State 1010, 8] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Fast Kung Fu Palm +; CNS difficulty: advanced +; Description: This is a complicated attack move. If you're a beginner, +; you should skip looking at this for now and check it later when +; you are more comfortable with the cns. +; This move puts the other player in a custom get-hit state. +; The line "p2stateno = 1025" in the HitDef does this. KFM has some +; palette effects as well as after-image effects. +[Statedef 1020] +type = S +movetype= A +physics = N +juggle = 6 +poweradd= -330 +velset = 0,0 +anim = 1020 +ctrl = 0 +sprpriority = 2 + +[State 1020, Friction] +type = VelMul +trigger1 = 1 +x = .85 * ifelse (AnimElemTime(6) < 0, 1, .8) + +[State 1020, Afterimage] +type = AfterImage +trigger1 = Time = 0 +length = 13 +PalBright = 30, 30, 0 +PalContrast = 70, 70, 20 +PalAdd = -10,-10,-10 +PalMul = .85,.85,.50 +TimeGap = 1 +FrameGap = 2 +Trans = Add +time = 2 + +[State 1020, Afterimage] +type = AfterImageTime +trigger1 = AnimElemTime(8) < 0 +time = 2 + +[State 1020, Blink Yellow] +type = PalFX +trigger1 = Time = 0 +time = 20 +add = 32,16,0 +sinadd = 64,32,5,3 + +[State 1020, 1] +type = PlaySnd +trigger1 = Time = 2 +value = 0, 3 + +[State 1020, 2] +type = PosAdd +trigger1 = AnimElem = 2 +x = 80 + +[State 1020, 3] +type = PosAdd +trigger1 = AnimElem = 3 +trigger2 = AnimElem = 12 +x = 40 + +[State 1020, 4] +type = PosAdd +trigger1 = AnimElem = 4 +x = 20 + +[State 1020, 5] +type = VelSet +trigger1 = AnimElem = 4 +x = 52 + +[State 1020, 6] +type = HitDef +trigger1 = AnimElem = 4 +attr = S, SA +animtype = Hard +damage = 95, 5 +getpower = 0 +priority = 4 +guardflag = MA +pausetime = 8,7 +sparkxy = -40,-240 +hitsound = 5,4 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 22 +ground.hittime = 22 +ground.velocity = -32,-28 +guard.velocity = -28 +air.velocity = -32,-28 +airguard.velocity = -20, -16 +fall = 1 +p2stateno = 1025 ;Make p2 go to state 1025 on hit +p2facing = 1 ;Force to face p1 + +[State 1020, 7] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;------------------ +; Hit by Fast Kung Fu Palm - shaking from the hit +; (a custom gethit state) +; See State 1020 for details +[Statedef 1025] +type = A +movetype= H +physics = N +velset = 0,0 + +[State 1025, Anim] ;Custom animation +type = ChangeAnim2 +trigger1 = 1 +value = 1025 + +[State 1025, State] +type = ChangeState +trigger1 = HitShakeOver = 1 +value = 1026 + +;------------------ +; Hit by Fast Kung Fu Palm - flying through the air +; (a custom gethit state) +[Statedef 1026] +type = A +movetype= H +physics = N + +[State 1026, Velocity] +type = HitVelSet +trigger1 = Time = 0 +x = 1 +y = 1 + +[State 1026, Gravity] +type = VelAdd +trigger1 = 1 +y = 1.8 + +[State 1026, No scroll] +type = ScreenBound +triggerall = Pos y < -60 +trigger1 = BackEdgeBodyDist < 260 +trigger2 = FrontEdgeBodyDist < 260 +value = 1 +movecamera = 0,1 + +[State 1026, Hit wall] +type = ChangeState +triggerall = Pos y < -60 +trigger1 = BackEdgeBodyDist <= 80 +trigger2 = FrontEdgeBodyDist <= 80 +value = 1027 + +[State 1026, Hit ground] +type = SelfState +trigger1 = (Vel y > 0) && (Pos y >= 0) +value = 5100 + +;------------------ +; Hit by Fast Kung Fu Palm - hit wall +; (a custom gethit state) +[Statedef 1027] +type = A +movetype= H +physics = N + +[State 1027, Turn] +type = Turn +trigger1 = (Time = 0) && (FrontEdgeBodyDist <= 120) + +[State 1027, Pos] +type = PosAdd +trigger1 = Time = 0 +x = 60 - BackEdgeBodyDist + +[State 1027, Stop moving] +type = PosFreeze +trigger1 = 1 +x = 1 +y = 1 + +[State 1027, No scroll] +type = ScreenBound +trigger1 = 1 +value = 1 +movecamera = 0,1 + +[State 1027, Spark] +type = Explod +trigger1 = Time = 0 +anim = F72 +pos = 0, floor (screenpos y) - 200 +postype = back +sprpriority = 3 + +[State 1027, Anim] +type = ChangeAnim2 +trigger1 = Time = 0 +value = 1027 + +[State 1027, Sound] +type = PlaySnd +trigger1 = Time = 0 +value = F7,0 + +[State 1027, State] +type = ChangeState +trigger1 = AnimTime = 0 +value = 1028 + +;------------------ +; Hit by Fast Kung Fu Palm - bounce off wall +; (a custom gethit state) +[Statedef 1028] +type = A +movetype= H +physics = N + +[State 1028, 1] +type = NotHitBy +trigger1 = 1 +value = , NA, NP + +[State 1028, Vel Y] +type = VelSet +trigger1 = Time = 0 +y = -24 + +[State 1028, Vel X] +type = VelSet +trigger1 = Time = 0 +x = 6.4 + +[State 1028, Turn] +type = Turn +trigger1 = (Time = 0) && (BackEdgeDist < 120) + +[State 1028, Gravity] +type = VelAdd +trigger1 = 1 +y = 1.4 + +[State 1028, Anim 5050] ;Self falling animation +type = ChangeAnim +trigger1 = Time = 0 +trigger1 = !SelfAnimExist(5052) +value = 5050 + +[State 1028, Anim 5052] ;Self falling animation (diagup type) +type = ChangeAnim +trigger1 = Time = 0 +trigger1 = SelfAnimExist(5052) +value = 5052 + +[State 1028, Anim 5060] ;Coming down - normal +type = ChangeAnim +trigger1 = Vel Y > -8 +trigger1 = Anim = 5050 +trigger1 = SelfAnimExist(5060) +persistent = 0 +value = 5060 + +[State 1028, Anim 5062] ;Coming down - diagup type +type = ChangeAnim +trigger1 = Vel Y > -8 +trigger1 = Anim = 5052 +trigger1 = SelfAnimExist(5062) +persistent = 0 +value = 5062 + +[State 1028, Hit ground] +type = SelfState +trigger1 = (Vel y > 0) && (Pos y >= 0) +value = 5100 + +;--------------------------------------------------------------------------- +; Kung Fu Knee +; CNS difficulty: medium +; Description: Like the Kung Fu Palm, this is a special attack. This attack +; begins on the ground, launches KFM into the air, then ends when KFM +; lands on the ground. To achieve this, we use three states. The first +; has KFM starting on the ground (note that type = S in the Statedef). +; The ChangeState controller brings KFM into the second state (state +; 1051) when his ground animation ends. The second state controls KFM's +; movement into the air and back towards the ground. The last state +; (state 1052) stops KFM from moving when he touches the ground, and +; brings him back to his stand state (state 0) when the animation is +; over. More details are given in comments before each of the following +; states. +[Statedef 1050] +type = S +movetype= A +physics = S +juggle = 4 +poweradd= 55 +velset = 0,0 +anim = 1050 +ctrl = 0 +sprpriority = 2 + +[State 1050, 1] +type = PlaySnd +trigger1 = Time = 1 +value = 0, 2 + +[State 1050, 3] +type = PosAdd +trigger1 = AnimElem = 4 +x = 80 + +[State 1050, 4] +type = HitDef +trigger1 = Time = 0 +attr = A, SA +animtype = Medium +damage = 80, 4 +priority = 5 +guardflag = MA +pausetime = 12,12 +sparkxy = -40,-280 +hitsound = 5,3 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 22 +ground.hittime = 22 +ground.velocity = -14,-28 +guard.velocity = -28 +air.velocity = -24,-28 +fall = 1 + +[State 1050, 5] +type = ChangeState +trigger1 = AnimTime = 0 +value = 1051 + +;------------------ +; Light Kung Fu Knee - jump +; Description: This state uses a velset parameter in the Statedef to make +; KFM move upwards. A value of 2,-6 means 2 pixels/tick forwards, and +; 6 pixels/tick upwards. Since this is an aerial state, the type is set +; to A in the Statedef. +; Notice that physics = N (N for None) here. This means we are not using +; the built-in aerial physics model (physics = A), so we have complete +; control over what KFM does in this state. Since we do not have +; physics = A to take care of gravity for us, we need to put in our own +; controller for that. Controller 1051,1 does the work of pulling KFM +; down towards the ground. Controller 1051,2 checks if KFM has reached +; the ground, and changes to state 1052 if so. +; In this state's Statedef, we will use the hitdefpersist parameter to +; retain the HitDef information from the last state. If we did not have +; hitdefpersist, the HitDef will be turned off between state changes. +[Statedef 1051] +type = A +movetype= A +physics = N +velset = 8,-24 +anim = 1051 +hitdefpersist = 1 ;Keep the HitDef from previous state active + +[State 1051, 1] ;Gravity +type = VelAdd +trigger1 = 1 +y = 1.8 + +[State 1051, 2] +type = ChangeState +trigger1 = Command = "a" || Command = "b" +trigger1 = Vel y < -4 +value = 1055 + +[State 1051, 3] ;Change state when KFM is close to ground +type = ChangeState +trigger1 = Vel Y > 0 && Pos Y >= -40 +value = 1052 + +;------------------ +; Light Kung Fu Knee - land +; Description: This is KFM's landing state. There is a velset in the +; Statedef to stop KFM from moving. Since KFM's y-position can be any +; number greater than -10 upon entering this state (see the ChangeState +; controller in State 1051), we need to reset it to 0, the ground +; level. That is what controller 1052,1 is for. +[Statedef 1052] +type = S +movetype= I +physics = S +anim = 1052 +sprpriority = 1 +velset = 0,0 + +[State 1052, 1] ;Reset y-position to ground level +type = PosSet +trigger1 = Time = 0 +y = 0 + +[State 1052, 2] ;Play a sound for landing +type = PlaySnd +trigger1 = Time = 0 +value = 40, 0 + +[State 1052, 3] ;Give KFM back control early +type = CtrlSet +trigger1 = AnimElem = 3, -1 +value = 1 + +[State 1052, 4] ;Move KFM back a little +type = PosAdd +trigger1 = AnimElem = 4 +x = -60 + +[State 1052, 5] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;------------------ +; Kung Fu Knee - kick +[Statedef 1055] +type = A +movetype= A +physics = N +anim = 1055 + +[State 1055, 1] +type = PlaySnd +trigger1 = Time = 0 +value = 100,0 +channel = 0 + +[State 1055, 2] +type = PlaySnd +trigger1 = Time = 0 +value = 0, 1 + +[State 1055, 3] +type = PosAdd +trigger1 = Time = 0 +x = 40 +y = -40 + +[State 1055, 4] ;Gravity +type = VelAdd +trigger1 = 1 +y = 1.8 + +[State 1055, 5] +type = HitDef +trigger1 = Time = 0 +attr = A, SA +animtype = Med +damage = 35 + (prevstateno = 1061)*5, 2 +priority = 4 +guardflag = MA +pausetime = 12,12 +sparkxy = 0,-360 +hitsound = 5,2 +guardsound = 6,0 +ground.type = High +ground.slidetime = 17 +ground.hittime = 18 +ground.velocity = -24 +guard.velocity = -32 +guard.ctrltime = 14 +air.velocity = -16,-20 +airguard.velocity = -16,-18 +air.fall = 1 + +[State 1055, 6] ;Change state when KFM is close to ground +type = ChangeState +trigger1 = Vel Y > 0 && Pos Y >= -20 +value = 1056 + +;------------------ +; Kung Fu Knee - land from kick +[Statedef 1056] +type = S +movetype= I +physics = S +anim = 1056 +sprpriority = 1 +velset = 0,0 + +[State 1056, 1] ;Reset y-position to ground level +type = PosSet +trigger1 = Time = 0 +y = 0 + +[State 1056, 2] ;Play a sound for landing +type = PlaySnd +trigger1 = Time = 0 +value = 40, 0 + +[State 1056, 3] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Strong Kung Fu Knee +[Statedef 1060] +type = S +movetype= A +physics = S +juggle = 4 +poweradd= 60 +velset = 0,0 +anim = 1060 +ctrl = 0 +sprpriority = 2 + +[State 1060, 1] +type = PlaySnd +trigger1 = Time = 1 +value = 0, 2 + +[State 1060, 2] +type = PosAdd +trigger1 = AnimElem = 2 +x = 24 + +[State 1060, 3] +type = PosAdd +trigger1 = AnimElem = 4 +x = 84 + +[State 1060, 4] +type = HitDef +trigger1 = Time = 0 +attr = A, SA +animtype = Medium +damage = 90, 4 +priority = 5 +guardflag = MA +pausetime = 12,12 +sparkxy = -40,-280 +hitsound = 5,3 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 22 +ground.hittime = 22 +ground.velocity = -14,-30 +guard.velocity = -28 +air.velocity = -14,-30 +fall = 1 + +[State 1060, 5] +type = ChangeState +trigger1 = AnimTime = 0 +value = 1061 + +;------------------ +; Strong Kung Fu Knee - jump +[Statedef 1061] +type = A +movetype= A +physics = N +velset = 10,-30 +anim = 1061 +hitdefpersist = 1 ;Keep the HitDef from previous state active + +[State 1061, 1] +type = VelAdd +trigger1 = 1 +y = 1.8 + +[State 1061, 2] +type = ChangeState +trigger1 = Command = "a" || Command = "b" +trigger1 = Vel y < -4 +value = 1055 + +[State 1061, 3] +type = ChangeState +trigger1 = Vel Y > 0 && Pos Y >= -40 +value = 1052 + +;--------------------------------------------------------------------------- +; Fast Kung Fu Knee +; Description: This version of the Kung Fu Knee hits up to 3 times (including +; the kick). +[Statedef 1070] +type = S +movetype= A +physics = S +juggle = 6 +poweradd= -330 +velset = 0,0 +anim = 1070 +ctrl = 0 +sprpriority = 2 + +[State 1070, Afterimage] +type = AfterImage +trigger1 = Time = 0 +length = 13 +PalBright = 30, 30, 0 +PalContrast = 70, 70, 20 +PalAdd = -10,-10,-10 +PalMul = .85,.85,.50 +TimeGap = 1 +FrameGap = 2 +Trans = Add +time = 2 + +[State 1070, Afterimage] +type = AfterImageTime +trigger1 = 1 +time = 2 + +[State 1070, Blink Yellow] +type = PalFX +trigger1 = Time = 0 +time = 20 +add = 32,16,0 +sinadd = 64,32,5,3 + +[State 1070, 1] +type = PlaySnd +trigger1 = Time = 1 +value = 0, 2 + +[State 1070, 2] +type = PosAdd +trigger1 = AnimElem = 2 +x = 24 + +[State 1070, 3] +type = PosAdd +trigger1 = AnimElem = 4 +x = 84 + +[State 1070, 4] +type = HitDef +trigger1 = Time = 0 +attr = S, SA +animtype = Medium +getpower = 0 +damage = 35, 3 +priority = 5 +hitflag = MA +guardflag = MA +pausetime = 8,7 +sparkxy = -40,-280 +hitsound = 5,2 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 20 +ground.hittime = 20 +ground.velocity = -8,-24 +guard.velocity = -28 +air.velocity = -8,-24 +fall = 1 +fall.animtype = Med +fall.recovertime = 30 + +[State 1070, 5] +type = ChangeState +trigger1 = AnimTime = 0 +value = 1071 + +;------------------ +; Fast Kung Fu Knee - jump +[Statedef 1071] +type = A +movetype= A +physics = N +velset = 10,-36 +anim = 1071 + +[State 1071, Blink Yellow] +type = PalFX +trigger1 = Time = 0 +time = 18 +add = 32,16,0 +sinadd = 64,32,5,3 + +[State 1071, Afterimage] +type = AfterImageTime +trigger1 = Vel Y < 0 +time = 2 + +[State 1071, 1] +type = VelAdd +trigger1 = 1 +y = 2 + +[State 1071, 2] +type = VelAdd +trigger1 = Vel Y >= -4 +y = .8 + +[State 1071, 3] +type = HitDef +trigger1 = Time = 0 +attr = A, SA +animtype = Medium +getpower = 0 +damage = 68, 4 +priority = 5 +guardflag = MA +pausetime = 12,12 +sparkxy = -40,-280 +hitsound = 5,3 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 20 +ground.hittime = 20 +ground.velocity = -12,-38 +guard.velocity = -28 +air.velocity = -12,-38 +fall = 1 +fall.recovertime = 30 + +[State 1071, 4] +type = ChangeState +trigger1 = Command = "a" || Command = "b" +trigger1 = Vel y < -4 +trigger1 = Time > 0 +value = 1075 + +[State 1071, 5] +type = ChangeState +trigger1 = Vel Y > 0 && Pos Y >= -40 +value = 1052 + +;------------------ +; Fast Kung Fu Knee - kick +[Statedef 1075] +type = A +movetype= A +physics = N +anim = 1055 + +[State 1075, Afterimage] +type = AfterImageTime +trigger1 = 1 +time = 2 + +[State 1075, Blink Yellow] +type = PalFX +trigger1 = Time = 0 +time = 20 +add = 32,16,0 +sinadd = 64,32,5,3 + +[State 1075, 1] +type = PlaySnd +trigger1 = Time = 0 +value = 100,0 +channel = 0 + +[State 1075, 2] +type = PlaySnd +trigger1 = Time = 0 +value = 0, 1 + +[State 1075, 3] +type = PosAdd +trigger1 = Time = 0 +x = 40 +y = -40 + +[State 1075, 4] ;Gravity +type = VelAdd +trigger1 = 1 +y = 1.8 + +[State 1075, 5] +type = VelAdd +trigger1 = Vel Y >= -4 +y = .8 + +[State 1075, 6] +type = HitDef +trigger1 = Time = 0 +attr = A, SA +animtype = Med +damage = 42, 2 +getpower = 0 +priority = 4 +guardflag = MA +pausetime = 12,12 +sparkxy = 0,-360 +hitsound = 5,2 +guardsound = 6,0 +ground.type = High +ground.slidetime = 17 +ground.hittime = 20 +ground.velocity = -24 +guard.velocity = -24 +air.velocity = -16,-24 +airguard.velocity = -16,-18 +air.fall = 1 + +[State 1075, 7] ;Change state when KFM is close to ground +type = ChangeState +trigger1 = Vel Y > 0 && Pos Y >= -20 +value = 1056 + + +;--------------------------------------------------------------------------- +; Light Kung Fu Upper +; CNS difficulty: easy +; Description: This is a simple special attack that can hit twice. Notice +; the use of the Width controller to keep opponents from getting too +; close to KFM during his uppercut (press Ctrl-C, and look at the +; yellow bar at KFM's feet during the move). +; The second HitDef has some interesting parameters. fall.recovertime +; is used to prevent the opponent (p2) from recovering immediately +; after being hit (eg. press x+y with KFM to recover). This gives the +; attacking KFM a chance to follow up with an extra attack, such as +; a Kung Fu Knee. The yaccel parameter, set at 0.4, makes p2 fall at a +; greater value of acceleration than the default, which is 0.35. +[Statedef 1100] +type = S +movetype= A +physics = S +juggle = 4 +poweradd= 55 +velset = 0,0 +anim = 1100 +ctrl = 0 +sprpriority = 2 + +[State 1100, Width] +type = Width +trigger1 = AnimElemTime(4) >= 0 && AnimElemTime(13) < 0 +value = 5,0 + +[State 1100, 1] +type = PlaySnd +trigger1 = AnimElem = 4 +value = 0, 2 + +[State 1100, 2] +type = HitDef +trigger1 = Time = 0 +attr = S, SA +animtype = Med +damage = 52, 4 +priority = 5 +guardflag = MA +pausetime = 4,8 +sparkxy = 0,-192 +hitsound = 5,2 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 17 +ground.hittime = 20 +ground.velocity = -12 +guard.velocity = -24 +air.velocity = -8,-8 +airguard.velocity = -16,-18 +p2facing = 1 +forcestand = 1 ;Force p2 into a standing state if hit + +[State 1100, 3] +type = HitDef +trigger1 = AnimElem = 7 +attr = S, SA +animtype = Up +damage = 55, 4 +priority = 5 +guardflag = MA +pausetime = 12,12 +sparkxy = 0,-440 +hitsound = 5,2 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 17 +ground.hittime = 20 +ground.velocity = -4,-38 +guard.velocity = -24 +air.velocity = -4,-30 +airguard.velocity = -16,-18 +p2facing = 1 +fall = 1 ;Make p2 fall down +fall.recovertime = 40 ;40 ticks before p2 can recover from fall +yaccel = 1.6 ;p2 will accelerate down at this rate when falling + +[State 1100, 5] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Strong Kung Fu Upper +[Statedef 1110] +type = S +movetype= A +physics = S +juggle = 4 +poweradd= 60 +velset = 0,0 +anim = 1110 +ctrl = 0 +sprpriority = 2 + +[State 1110, Width] +type = Width +trigger1 = AnimElemTime(4) >= 0 && AnimElemTime(14) < 0 +value = 5,0 + +[State 1110, 1] +type = PlaySnd +trigger1 = AnimElem = 4 +value = 0, 2 + +[State 1110, 2] +type = HitDef +trigger1 = Time = 0 +attr = S, SA +animtype = Med +damage = 57, 4 +priority = 5 +guardflag = MA +pausetime = 4,8 +sparkxy = 0,-192 +hitsound = 5,2 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 17 +ground.hittime = 20 +ground.velocity = -12 +guard.velocity = -24 +air.velocity = -8,-8 +airguard.velocity = -16,-18 +p2facing = 1 +forcestand = 1 + +[State 1110, 3] +type = HitDef +trigger1 = AnimElem = 7 +attr = S, SA +animtype = Up +damage = 60, 4 +priority = 5 +guardflag = MA +pausetime = 12,12 +sparkxy = 0,-440 +hitsound = 5,2 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 17 +ground.hittime = 20 +ground.velocity = -4,-42 +guard.velocity = -24 +air.velocity = -4,-34 +airguard.velocity = -16,-18 +p2facing = 1 +fall = 1 +fall.recovertime = 50 +yaccel = 1.6 + +[State 1110, 5] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Fast Kung Fu Upper +[Statedef 1120] +type = S +movetype= A +physics = S +juggle = 6 +poweradd= -330 +velset = 0,0 +anim = 1120 +ctrl = 0 +sprpriority = 2 + +[State 1120, Width] +type = Width +trigger1 = AnimElemTime(4) >= 0 && AnimElemTime(14) < 0 +value = 5,0 + +[State 1120, Afterimage] +type = AfterImage +trigger1 = Time = 0 +length = 13 +PalBright = 30, 30, 0 +PalContrast = 70, 70, 20 +PalAdd = -10,-10,-10 +PalMul = .85,.85,.50 +TimeGap = 1 +FrameGap = 2 +Trans = Add +time = 2 + +[State 1120, Afterimage] +type = AfterImageTime +trigger1 = AnimTime < -2 +time = 2 + +[State 1120, Blink Yellow] +type = PalFX +trigger1 = Time = 0 +time = 20 +add = 32,16,0 +sinadd = 64,32,5,3 + +[State 1120, 1] +type = PlaySnd +trigger1 = AnimElem = 4 +value = 0, 2 + +[State 1120, 2] +type = HitDef +trigger1 = Time = 0 +trigger2 = AnimElem = 4 +attr = S, SA +animtype = Med +damage = 30, 4 +getpower = 0 +priority = 5 +guardflag = MA +pausetime = 6,10 +sparkxy = 0, ifelse(Time = 0, -192, -220) +hitsound = 5,2 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 20 +ground.hittime = 23 +ground.velocity = -12 +guard.velocity = -24 +air.velocity = -8,-8 +airguard.velocity = -16,-18 +p2facing = 1 +forcestand = 1 + +[State 1120, 3] +type = HitDef +trigger1 = AnimElem = 7 +attr = S, SA +animtype = Up +damage = 68, 4 +getpower = 0 +priority = 5 +guardflag = MA +pausetime = 12,12 +sparkxy = 0,-440 +hitsound = 5,2 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 20 +ground.hittime = 23 +ground.velocity = -4.8,-44 +guard.velocity = -24 +air.velocity = -4.8,-36 +airguard.velocity = -16,-18 +p2facing = 1 +fall = 1 +fall.recovertime = 60 +yaccel = 1.6 + +[State 1120, 5] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Light Kung Fu Blow +; CNS difficulty: easy +; Notes: This uses the EnvShake controller to shake the screen. It makes the +; move look stronger. +[Statedef 1200] +type = S +movetype= A +physics = S +juggle = 4 +poweradd= 50 +velset = 0,0 +anim = 1200 +ctrl = 0 +sprpriority = 2 + +[State 1200, 1] +type = PlaySnd +trigger1 = AnimElem = 4 +value = 0, 3 + +[State 1200, Width 1] +type = Width +trigger1 = AnimElemTime(5) >= 0 && AnimElemTime(6) < 0 +value = 40,0 + +[State 1200, Width 2] +type = Width +trigger1 = AnimElemTime(6) >= 0 && AnimElemTime(9) < 0 +value = 80,0 + +[State 1200, Shake Screen] +type = EnvShake +trigger1 = AnimElem = 6 +time = 4 ;Time to shake screen +ampl = 8 ;Amount to shake +freq = 180 ;A frequency of 180 shakes the screen rapidly + +[State 1200, 2] +type = HitDef +trigger1 = Time = 0 +attr = S, SA +animtype = Hard +damage = 100, 6 +priority = 5 +guardflag = MA +pausetime = 12,12 +sparkxy = 0,-260 +hitsound = 5,3 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 18 +ground.hittime = 20 +ground.velocity = -40 +ground.cornerpush.veloff = -48 ;To push far away when p2 is in corner +guard.velocity = -28 +air.velocity = -14,-18 +airguard.velocity = -14,-18 + +[State 1200, 3] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Strong Kung Fu Blow +; CNS difficulty: easy +[Statedef 1210] +type = S +movetype= A +physics = S +juggle = 4 +poweradd= 60 +velset = 0,0 +anim = 1210 +ctrl = 0 +sprpriority = 2 + +[State 1210, 1] +type = PlaySnd +trigger1 = AnimElem = 4 +value = 0, 3 + +[State 1210, Width 1] +type = Width +trigger1 = AnimElemTime(5) >= 0 && AnimElemTime(6) < 0 +value = 40,0 + +[State 1210, Width 2] +type = Width +trigger1 = AnimElemTime(6) >= 0 && AnimElemTime(9) < 0 +value = 80,0 + +[State 1210, Shake Screen] +type = EnvShake +trigger1 = AnimElem = 6 +time = 8 +ampl = 8 +freq = 170 ;A frequency of less than 180 causes a dampening effect + +[State 1210, 2] +type = HitDef +trigger1 = Time = 0 +attr = S, SA +animtype = Hard +damage = 125, 9 +priority = 5 +guardflag = MA +pausetime = 12,12 +sparkxy = 0,-260 +hitsound = 5,3 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 20 +ground.hittime = 22 +ground.velocity = -40 +ground.cornerpush.veloff = -60 ;To push far away when p2 is in corner +guard.velocity = -32 +air.velocity = -16,-18 +airguard.velocity = -16,-18 + +[State 1210, 3] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Fast Kung Fu Blow +; CNS difficulty: easy +[Statedef 1220] +type = S +movetype= A +physics = S +juggle = 6 +poweradd= -330 +velset = 0,0 +anim = 1220 +ctrl = 0 +sprpriority = 2 + +[State 1220, Afterimage] +type = AfterImage +trigger1 = Time = 0 +length = 13 +PalBright = 30, 30, 0 +PalContrast = 70, 70, 20 +PalAdd = -10,-10,-10 +PalMul = .85,.85,.50 +TimeGap = 1 +FrameGap = 2 +Trans = Add +time = 2 + +[State 1220, Afterimage] +type = AfterImageTime +trigger1 = AnimTime < -2 +time = 2 + +[State 1220, Blink Yellow] +type = PalFX +trigger1 = Time = 0 +time = 20 +add = 32,16,0 +sinadd = 64,32,5,3 + +[State 1220, 1] +type = PlaySnd +trigger1 = AnimElem = 4 +value = 0, 3 + +[State 1220, Width 1] +type = Width +trigger1 = AnimElemTime(5) >= 0 && AnimElemTime(6) < 0 +value = 40,0 + +[State 1220, Width 2] +type = Width +trigger1 = AnimElemTime(6) >= 0 && AnimElemTime(9) < 0 +value = 80,0 + +[State 1220, Shake Screen] +type = EnvShake +trigger1 = AnimElem = 6 +time = 8 +ampl = 12 +freq = 170 + +[State 1220, 2] +type = HitDef +trigger1 = Time = 0 +attr = S, SA +animtype = Hard +damage = 125, 9 +getpower = 0 +priority = 5 +guardflag = MA +pausetime = 15,15 +sparkxy = 0,-260 +hitsound = 5,4 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 22 +ground.hittime = 32 +ground.velocity = -60 +ground.cornerpush.veloff = -80 ;To push far away when p2 is in corner +guard.velocity = -36 +air.velocity = -20,-20 +airguard.velocity = -20,-20 +air.fall = 1 +fall.animtype = Hard ;Show "hard" animtype when hit for a fall +yaccel = 1.6 ;Fall faster + +[State 1220, 3] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + + +;--------------------------------------------------------------------------- +; Kung Fu Blocking High +; CNS difficulty: medium +; Notes: This move uses a ReversalDef controller to counter attacks. Any +; attacks not caught by the ReversalDef are handled by the HitOverride. +; The movetype is Idle because this is not an attack. +[Statedef 1300] +type = S +movetype= I +physics = S +velset = 0,0 +anim = 1300 +ctrl = 0 +sprpriority = 1 + +[State 1300, Width] +type = Width +trigger1 = AnimElemTime(3) < 0 +value = 60,0 + +[State 1300, 1] +type = PlaySnd +trigger1 = Time = 0 +value = 0, 1 + +[State 1300, 2] +type = ReversalDef +trigger1 = Time = 0 +reversal.attr = SA, AA +pausetime = 0,0 +sparkno = 40 +sparkxy = 160,0 +hitsound = 6,0 +p1stateno = 1310 +p1sprpriority = 2 ;Set P1's sprite in front of P2's +p2sprpriority = 1 + +[State 1300, 3] ;Stop ReversalDef +type = ReversalDef +trigger1 = Time = 4 +trigger1 = Time = command = "holdfwd" +trigger2 = Time = 8 +reversal.attr = + +[State 1300, 4] +type = HitOverride +trigger1 = Time = 0 +attr = SA, AP +stateno = 1310 +time = 8 + +[State 1300, 5] +type = HitOverride +trigger1 = Time = 4 +trigger1 = Time = command = "holdfwd" +attr = +time = 0 + +[State 1300, 6] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Kung Fu Blocking High (blocked) +; Notes: This state uses a Pause controller to freeze the action dramatically. +[Statedef 1310] +type = S +movetype= I +physics = S +velset = 0,0 +anim = 1310 +ctrl = 0 +sprpriority = 2 + +[State 1310, 1] +type = Pause +trigger1 = Time = 0 +time = 20 +endcmdbuftime = 20 ;Buffer commands input during the pause +pausebg = 0 ;Don't pause backgrounds + +[State 1310, 2] ;Go to guarding +type = ChangeState +trigger1 = Time = 1 +trigger1 = command = "holdback" +value = 130 +ctrl = 1 + +[State 1310, 3] +type = NotHitBy +trigger1 = Time = 0 +value = SCA +time = 1 + +[State 1310, 4] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Kung Fu Blocking Low +[Statedef 1320] +type = C +movetype= I +physics = C +velset = 0,0 +anim = 1320 +ctrl = 0 +sprpriority = 1 + +[State 1320, Width] +type = Width +trigger1 = AnimElemTime(3) < 0 +value = 40,0 + +[State 1320, 1] +type = PlaySnd +trigger1 = Time = 0 +value = 0, 1 + +[State 1320, 2] +type = ReversalDef +trigger1 = Time = 0 +reversal.attr = C, AA +pausetime = 0,0 +sparkno = 40 +sparkxy = 160,0 +hitsound = 6,0 +p1stateno = 1330 +p1sprpriority = 2 +p2sprpriority = 1 + +[State 1320, 3] ;Stop +type = ReversalDef +trigger1 = Time = 5 +reversal.attr = + +[State 1320, 4] +type = HitOverride +trigger1 = Time < 5 +attr = C, AP +stateno = 1330 + +[State 1320, 5] +type = ChangeState +trigger1 = AnimTime = 0 +value = 11 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Kung Fu Blocking Low (blocked) +[Statedef 1330] +type = C +movetype= I +physics = C +velset = 0,0 +anim = 1330 +ctrl = 0 +sprpriority = 2 + +[State 1330, 1] +type = Pause +trigger1 = Time = 0 +time = 20 +endcmdbuftime = 20 ;Buffer commands input during the pause +pausebg = 0 ;Don't pause backgrounds + +[State 1330, 2] +type = ChangeState +trigger1 = Time = 1 +trigger1 = command = "holdback" +value = 131 +ctrl = 1 + +[State 1330, 3] +type = NotHitBy +trigger1 = Time = 0 +value = SCA +time = 1 + +[State 1330, 4] +type = ChangeState +trigger1 = AnimTime = 0 +value = 11 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Kung Fu Blocking Air +[Statedef 1340] +type = A +movetype= I +physics = N +anim = 1340 +ctrl = 0 +sprpriority = 1 + +[State 1340, Width] +type = Width +trigger1 = AnimElemTime(3) < 0 +value = 40,0 + +[State 1340, 1] +type = PlaySnd +trigger1 = Time = 0 +value = 0, 1 + +[State 1340, 2] +type = ReversalDef +trigger1 = Time = 0 +reversal.attr = A, AA +pausetime = 0,0 +sparkno = 40 +sparkxy = 160,0 +hitsound = 6,0 +p1stateno = 1350 +p1sprpriority = 2 +p2sprpriority = 1 + +[State 1340, 3] ;Stop +type = ReversalDef +trigger1 = Time = 5 +reversal.attr = + +[State 1340, 4] +type = HitOverride +trigger1 = Time < 5 +attr = SA, AP +stateno = 1350 + +[State 1340, 5] +type = CtrlSet +trigger1 = AnimElem = 4 +value = 1 + +[State 1340, 6] ;Gravity +type = VelAdd +trigger1 = 1 +y = Const(movement.yaccel) + +[State 1340, 6] ;Land from jump +type = ChangeState +trigger1 = (Pos Y >= 0) && (Vel Y > 0) +value = 1351 + +;--------------------------------------------------------------------------- +; Kung Fu Blocking Air (blocked) +[Statedef 1350] +type = A +movetype= I +physics = N +anim = 1350 +ctrl = 0 +sprpriority = 2 + +[State 1350, 1] +type = Pause +trigger1 = Time = 0 +time = 20 +endcmdbuftime = 20 ;Buffer commands input during the pause +pausebg = 0 ;Don't pause backgrounds + +[State 1350, 2] +type = ChangeState +trigger1 = Time = 1 +trigger1 = command = "holdback" +value = 132 +ctrl = 1 + +[State 1350, 3] +type = NotHitBy +trigger1 = Time = 0 +value = SCA +time = 1 + +[State 1350, 4] ;Stop KFM in the air +type = PosFreeze +trigger1 = AnimElemTime(3) < 0 + +[State 1350, 5] +type = CtrlSet +trigger1 = AnimElem = 3 +value = 1 + +[State 1350, 6] ;Gravity +type = VelAdd +trigger1 = AnimElemTime(3) > 0 +y = Const(movement.yaccel) + +[State 1350, 7] ;Land from jump +type = ChangeState +trigger1 = (Pos Y >= 0) && (Vel Y > 0) +value = 1351 + +;--------------------------------------------------------------------------- +; Kung Fu Blocking Air (land) +[Statedef 1351] +type = S +physics = S +ctrl = 0 +anim = 47 + +[State 1351, 1] +type = VelSet +trigger1 = Time = 0 +y = 0 + +[State 1351, 2] +type = PosSet +trigger1 = Time = 0 +y = 0 + +[State 1351, 3] +type = CtrlSet +trigger1 = Time = 3 +value = 1 + +[State 1351, 4] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +[State 1351, 5] ;Go to high block +type = ChangeState +trigger1 = command = "blocking" +trigger1 = command != "holddown" +value = 1300 + +[State 1351, 6] ;Go to low block +type = ChangeState +trigger1 = command = "blocking" +value = 1320 + +;--------------------------------------------------------------------------- +; Light Kung Fu Zankou +; CNS difficulty: easy +[Statedef 1400] +type = S +movetype= A +physics = N +juggle = 4 +poweradd= 50 +velset = 0,0 +anim = 1400 +ctrl = 0 +sprpriority = 2 + +[State 1400, 1] +type = PlaySnd +trigger1 = AnimElem = 3 +value = 0, 3 + +[State 1400, Friction] +type = VelMul +trigger1 = 1 +x = 0.5 + +[State 1400, 2] +type = HitDef +trigger1 = Time = 0 +attr = S, SA +animtype = Hard +damage = 100, 6 +priority = 4 +guardflag = MA +pausetime = 12,12 +sparkxy = 0,-260 +hitsound = 5,3 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 14 +ground.hittime = 17 +ground.velocity = -36 +ground.cornerpush.veloff = -60 ;To push far away when p2 is in corner +guard.velocity = -36 +air.velocity = -8,-20 +airguard.velocity = -14,-18 +air.fall = 1 + +[State 1400, 3] +type = PosAdd +trigger1 = AnimElem = 2 +trigger2 = AnimElem = 3 +trigger3 = AnimElem = 4 +x = 40 + +[State 1400, 4] +type = VelSet +trigger1 = AnimElem = 4 +x = 8 + +[State 1400, 5] +type = PosAdd +trigger1 = AnimElem = 8 +x = 40 + +[State 1400, 6] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Strong Kung Fu Zankou +; CNS difficulty: easy +[Statedef 1410] +type = S +movetype= A +physics = N +juggle = 4 +poweradd= 50 +velset = 0,0 +anim = 1410 +ctrl = 0 +sprpriority = 2 + +[State 1410, 1] +type = PlaySnd +trigger1 = AnimElem = 3 +value = 0, 3 + +[State 1410, Friction] +type = VelMul +trigger1 = 1 +x = 0.65 + +[State 1410, 2] +type = HitDef +trigger1 = Time = 0 +attr = S, SA +animtype = Hard +damage = 100, 6 +priority = 4 +guardflag = MA +pausetime = 12,12 +sparkxy = 0,-260 +hitsound = 5,3 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 14 +ground.hittime = 17 +ground.velocity = -36 +ground.cornerpush.veloff = -60 +guard.velocity = -36 +air.velocity = -8,-20 +airguard.velocity = -14,-18 +air.fall = 1 + +[State 1410, 3] +type = PosAdd +trigger1 = AnimElem = 2 +trigger2 = AnimElem = 3 +trigger3 = AnimElem = 4 +x = 40 + +[State 1410, 4] +type = VelSet +trigger1 = AnimElem = 3 +x = 32 + +[State 1410, 5] +type = PosAdd +trigger1 = AnimElem = 9 +x = 40 + +[State 1410, 6] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Far Kung Fu Zankou +; CNS difficulty: easy +[Statedef 1420] +type = S +movetype= A +physics = N +juggle = 6 +poweradd= -330 +velset = 0,0 +anim = 1420 +ctrl = 0 +sprpriority = 2 + +[State 1420, Afterimage] +type = AfterImage +trigger1 = Time = 0 +length = 13 +PalBright = 30, 30, 0 +PalContrast = 70, 70, 20 +PalAdd = -10,-10,-10 +PalMul = .85,.85,.50 +TimeGap = 1 +FrameGap = 2 +Trans = Add +time = 2 + +[State 1420, Afterimage] +type = AfterImageTime +trigger1 = AnimElemTime(8) < 0 +time = 2 + +[State 1420, Blink Yellow] +type = PalFX +trigger1 = Time = 0 +time = 20 +add = 32,16,0 +sinadd = 64,32,5,3 + +[State 1420, 1] +type = PlaySnd +trigger1 = AnimElem = 3 +value = 0, 3 + +[State 1420, Friction] +type = VelMul +trigger1 = 1 +x = 0.7 + +[State 1420, 2] +type = HitDef +trigger1 = AnimElemTime(4) = -2 +attr = S, SA +animtype = Hard +damage = 25, 2 +getpower = 0 +priority = 4 +guardflag = MA +pausetime = 9,9 +sparkxy = -60,-180 +hitsound = 5,2 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 24 +ground.hittime = 24 +ground.velocity = -28 +ground.cornerpush.veloff = -32 +guard.velocity = -36 +air.velocity = -20,-16 +airguard.velocity = -14,-18 + +[State 1420, 2] +type = HitDef +trigger1 = AnimElem = 4 +attr = S, SA +animtype = Hard +damage = 100, 8 +getpower = 0 +priority = 5 +guardflag = MA +pausetime = 12,12 +sparkxy = 0,-260 +hitsound = 5,3 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 24 +ground.hittime = 24 +ground.velocity = -20,-16 +ground.cornerpush.veloff = -60 +guard.velocity = -36 +air.velocity = -20,-16 +airguard.velocity = -14,-18 +fall = 1 + +[State 1420, 3] +type = PosAdd +trigger1 = AnimElem = 2 +trigger2 = AnimElem = 3 +trigger3 = AnimElem = 4 +x = 40 + +[State 1420, 4] +type = VelSet +trigger1 = AnimElemTime(3) = [1,2] +x = 80 + +[State 1420, 5] +type = PosAdd +trigger1 = AnimElem = 10 +x = 40 + +[State 1420, 6] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Triple Kung Fu Palm (hyper) +; CNS difficulty: medium +; Notes: Notice that the HitDefs in supers have "getpower = 0". This makes +; sure KFM doesn't recharge his super guage as he hits. +; Also, the attributes for the HitDefs is "HA" for "hyper attack", +; ie. "attr = S, HA". +; Notice how the first HitDef is reused twice by allowing it to +; trigger on two animation elements. +[Statedef 3000] +type = S +movetype= A +physics = S +juggle = 4 +velset = 0,0 +anim = 3000 +ctrl = 0 +sprpriority = 2 + +[State 3000, Width] +type = Width +trigger1 = AnimElem = 2, >= 0 +value = 60,0 + +[State 3000, Super A] +type = SuperPause +trigger1 = AnimElem = 2, 1 +pos = 100, -228 +anim = 100 +sound = 20, 0 +poweradd = -1000 + +[State 3000, Super B] +type = AfterImage +trigger1 = AnimElem = 2, 1 +time = 2 + +[State 3000, Super C] +type = AfterImageTime +trigger1 = AnimElemTime(2) >= 1 && Time < 60 +time = 2 + +[State 3000, Super D] +type = NotHitBy +trigger1 = AnimElem = 2 +value = , NA, SA, AT +time = 11 + +[State 3000, Super E] +type = NotHitBy +trigger1 = AnimElemTime(2) >= 0 && AnimElemTime(14) < 0 +value2 = C, NA +time = 1 + +[State 3000, 1] +type = PlaySnd +trigger1 = AnimElem = 4 +trigger2 = AnimElem = 12 +trigger3 = AnimElem = 20 +value = 0, 3 + +[State 3000, 2] +type = PosAdd +trigger1 = AnimElem = 2 +x = 80 + +[State 3000, 3] +type = PosAdd +trigger1 = AnimElem = 3 +trigger2 = AnimElem = 11 +trigger3 = AnimElem = 13 +trigger4 = AnimElem = 19 +trigger5 = AnimElem = 21 +trigger4 = AnimElem = 31 +x = 40 + +[State 3000, 4] +type = VelSet +trigger1 = AnimElem = 5 +trigger2 = AnimElem = 13 +trigger3 = AnimElem = 21 +x = 24 + +[State 3000, 4] +type = PosAdd +trigger1 = AnimElem = 5 +x = 20 + +[State 3000, 5] +type = HitDef +trigger1 = AnimElem = 5 +trigger2 = AnimElem = 13 +attr = S, HA +animtype = Hard +damage = 72,4 +getpower = 0 +priority = 6 +guardflag = MA +pausetime = 15,15 +sparkxy = -40,-240 +hitsound = 5,4 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 32 +ground.hittime = 32 +ground.velocity = -24 +air.velocity = -12,-11.2 +air.fall = 1 +fall.animtype = Hard +fall.recover = 0 + +[State 3000, 6] +type = HitDef +trigger1 = AnimElem = 21 +attr = S, HA +animtype = Hard +damage = 75,4 +getpower = 0 +priority = 5 +guardflag = MA +pausetime = 15,15 +sparkxy = -40,-240 +hitsound = 5,4 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 32 +ground.hittime = 32 +ground.velocity = -20, -16 +guard.velocity = -48 +air.velocity = -20,-16 +airguard.velocity = -12,-12 +fall.animtype = Hard +fall = 1 +fall.recover = 0 + +[State 3000, 7] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;--------------------------------------------------------------------------- +; Smash Kung Fu Upper (hyper) +; CNS difficulty: medium +; Description: This is very similar to KFM's Strong and Light Kung Fu Uppers. +; There is just one HitDef, for a screen-shaking hit. The envshake +; parameters are used to make this effect. You can find out more about +; each parameter in the CNS documentation. +; The fall.recover parameter is set at 0, meaning that p2 cannot recover +; from the fall by entering his recovery command (for KFM, that is x+y). +; This gives the attacking KFM a chance to follow up with another attack, +; such as the Fast Kung Fu Palm. +; Note that there is a ChangeState controller used to make KFM change to +; a success state if he hits. The success state has KFM hold his arm +; up longer for a dramatic effect. +[Statedef 3050] +type = S +movetype= A +physics = S +juggle = 4 +velset = 0,0 +anim = 3050 +ctrl = 0 +sprpriority = 2 + +[State 3050, Width] +type = Width +trigger1 = AnimElemTime(4) >= 0 && AnimElemTime(16) < 0 +value = 5,0 + +[State 3050, Super A] +type = SuperPause +trigger1 = AnimElem = 2 +pos = -20, -220 +anim = 100 +sound = 20, 0 +poweradd = -1000 + +[State 3050, Super B] +type = AfterImage +trigger1 = AnimElem = 2 +time = 2 + +[State 3050, Super C] +type = AfterImageTime +trigger1 = AnimElemTime(2) >= 0 +time = 2 + +[State 3050, Super D] +type = NotHitBy +trigger1 = AnimElem = 2 +value = , NA, SA, AT +time = 6 + +[State 3050, 1] +type = PlaySnd +trigger1 = AnimElem = 4 +value = 0, 2 + +[State 3050, 2] +type = HitDef +trigger1 = Time = 0 +attr = S, HA +animtype = Up ;Make p2 use "Up" type animation on hit +damage = 155, 12 +getpower = 0 +priority = 5 +guardflag = MA +pausetime = 30,30 +sparkno = 3 +sparkxy = 0,-440 +hitsound = 5,4 +guardsound = 6,0 +ground.type = Low +ground.slidetime = 28 +ground.hittime = 28 +ground.velocity = -5.2,-100 +guard.velocity = -44 +air.velocity = -5.2,-100 +airguard.velocity = -18,-20 +envshake.time = 25 ;Parameters for shaking the screen on hit +envshake.ampl = 28 +envshake.freq = 176 +p2facing = 1 ;Force p2 to face p1 on hit +fall = 1 +fall.recover = 0 ;Prevent p2 from recovering +fall.damage = 70 ;p2 will take 70 damage on hitting the ground +fall.envshake.ampl = 24 ;Parameters for shaking the screen on fall +fall.envshake.freq = 178 +fall.envshake.time = 15 +mindist = 200,-400 ;Keep p2 a minimum of 200 pixels away from p1, and no higher than 400 pixels up +maxdist = 400,-40 ;Keep p2 a maximum of 400 pixels away from p1, and no lower than 40 pixels below +yaccel = 3.2 + +;This controller below makes Kung Fu man change to a success state if he +;successfully hits the Smash Kung Fu Upper. +[State 3050, 4] +type = ChangeState +trigger1 = MoveHit +value = 3051 + +[State 3050, 5] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + +;------------------ +; Smash Kung Fu Upper (success) +; Description: This is the state that KFM changes to if he successfully hits +; with Smash Kung Fu Upper. KFM holds his arm high for a short while +; longer, then changes back to his idle stand state. +[Statedef 3051] +type = S +movetype= A +physics = S +anim = 3051 + +[State 3051, 1] +type = AfterImageTime +trigger1 = AnimTime < -2 +time = 2 + +[State 3051, 2] +type = ChangeState +trigger1 = AnimTime = 0 +value = 0 +ctrl = 1 + + +;--------------------------------------------------------------------------- +; Override common states (use same number to override) : +;--------------------------------------------------------------------------- + +;--------------------------------------------------------------------------- +; States that are always executed (use statedef -2) +;--------------------------------------------------------------------------- + +;--------------------------------------------------------------------------- +; States that are executed when in self's state file (use statedef -3) +;--------------------------------------------------------------------------- + +[Statedef -3] + +;This controller plays a sound everytime KFM lands from a jump, or +;from his back-dash. +[State -3, Landing Sound] +type = PlaySnd +triggerall = Time = 1 +trigger1 = stateno = 52 ;Jump land +trigger2 = stateno = 106 ;Run-back land +value = 40, 0 diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/kfm720.def b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/kfm720.def new file mode 100644 index 00000000..0e8e91ee --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/kfm720.def @@ -0,0 +1,45 @@ +; Definition file for Kung Fu Man +; Contains all the filenames needed for the character + +; Player information +[Info] +name = "Kung Fu Man 720" ;Name of character +displayname = "Kung Fu Man" ;Name of character to display +versiondate = 09,30,2009 ;Version of character (MM-DD-YYYY or X.XX) +mugenversion = 1.0 ;Version of M.U.G.E.N character works on (X.XX) +author = "Elecbyte" ;Character author name +pal.defaults = 1,2,3,4 ;Default palettes in order of preference (up to 4) + ;Numbering starts from 1 +localcoord = 1280,720 ;Local coordinate space width and height + +; Files for the player +[Files] +cmd = kfm720.cmd ;Command set +cns = kfm720.cns ;Constants +st = kfm720.cns ;States +stcommon = common1.cns ;Common states (from data/ or motif) +sprite = kfm720.sff ;Sprite +anim = kfm720.air ;Animation +sound = kfm.snd ;Sound +ai = kfm720.ai ;AI hints data (not used) +movelist = movelist.dat ;Ikemen feature: Movelist + +; Maps character selection buttons to palette numbers. +[Palette Keymap] +x = 1 ;Press button X to select palette 1, etc. +y = 2 +z = 3 +a = 4 +b = 5 +c = 6 +x2 = 7 ;Hold Start and press button X for palette 7, etc. +y2 = 8 +z2 = 9 +a2 = 10 +b2 = 11 +c2 = 12 + +; Arcade mode +[Arcade] +intro.storyboard = intro.def +ending.storyboard = ending.def diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/kfm720.sff b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/kfm720.sff new file mode 100644 index 00000000..6202e810 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/kfm720.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/movelist.dat b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/movelist.dat new file mode 100644 index 00000000..5d756166 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/movelist.dat @@ -0,0 +1,19 @@ +<#f0f000>:Unique Attacks: +High Kung Fu Blocking _F_+^X +Low Kung Fu Blocking _DF_+^X +Air Kung Fu Blocking _AIR_F_+^X + +<#f0f000>:Throws: +Kung Fu Throw [_B/_F]_+^Y + +<#f0f000>:Special Moves: +Kung Fu Palm_EX _QDF^P +Kung Fu Upper_EX _DSF^P +Kung Fu Blow_EX _QDB^P +Kung Fu Zankou_EX _QDF^K +Kung Fu Knee_EX _F_F^K +_!Extra kick ^K + +<#f0f000>:Super Moves: +Triple Kung Fu Palm <#bebebe>(1000) _QDF_QDF^P +Smash Kung Fu Upper <#bebebe>(1000) _QDB_QDB^P \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/readme.txt b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/readme.txt new file mode 100644 index 00000000..052040f5 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm720/readme.txt @@ -0,0 +1,154 @@ +======================== + Kung Fu Man (720p ver) +======================== + +For M.U.G.E.N 1.0 +(c) 2009 Elecbyte + +This version updated: 15 Sep 2009 + +Kung Fu Man is a sample character that works with M.U.G.E.N. + +KFM's work files are available in the work/kfm720/ directory. + +KFM is licensed under the Creative Commons Noncommercial +License. Attribution is optional. This means you may freely +build upon or use parts of KFM for non-commercial puposes. + + +Controls +======== + +Basic Controls +-------------- + +Kung Fu Man is a 4-button character. Button X is his weak +punch, button Y his strong punch, A for weak kick, and +B for his strong kick. We will use W. to mean weak, and S. +for strong. + +We will use the notation: +D - down +F - forward +U - up +B - back +x - button X (weak punch) +y - button Y (strong punch) +a - button A (weak kick) +b - button B (strong kick) + +DF means diagonally down-forwards, UB diagonally up-back, +etc. If you see ab it means press button A and button B +simultaneously. x/y means hit either x or y, and so on. + +Use the direction keys to move KFM. Press down to crouch, +and up to jump. While in the air, you can press up again to +air-jump. Hold the direction facing away from the opponent +to guard. KFM can guard attacks while jumping. + +When falling in the air, hit buttons X and Y at the same +time to recover. Hold a directional key when recovering to +move a little bit in that direction. If you are near the +ground when you hit xy, you will do a ground-based recovery +instead. + +KFM has a taunt. To do it, press the start button. + + +Standard Movement +----------------- + +U - Jump +UF - Jump forwards +F - Walk forwards +DF - Crouch +D - Crouch +DB - Crouch or low guard +B - Walk backwards or high guard +UB - Jump back +F, F - Forward dash +B, B - Back dash +xy - Recovery (when falling) + +Basic Standing Attacks +---------------------- + +x - W. Punch +y - S. Punch +a - W. Kick +b - S. Kick + +Basic Crouching Attacks +----------------------- + +x - Low W. Punch +y - Low S. Punch +a - Low W. Kick +b - Sweep Kick + +Basic Air Attacks +----------------- + +x - Air W. Punch +y - Air S. Punch +a - Air W. Kick +b - Flying Kick + +Throws +------ + +F/B + y (when close) - Kung Fu Throw + +Special Attacks +--------------- + +D, DF, F, x - W. Kung Fu Palm +D, DF, F, y - S. Kung Fu Palm +D, DF, F, x+y - Fast Kung Fu Palm (uses 1/3 power bar) + +F, D, DF, x - W. Kung Fu Upper +F, D, DF, y - S. Kung Fu Upper +F, D, DF, x+y - Fast Kung Fu Upper (uses 1/3 power bar) + +D, DB, B, x - W. Kung Fu Blow +D, DB, B, y - S. Kung Fu Blow +D, DB, B, x+y - Fast Kung Fu Blow (uses 1/3 power bar) + +D, DF, F, a - W. Kung Fu Zankou +D, DF, F, b - S. Kung Fu Zankou +D, DF, F, a+b - Fast Kung Fu Zankou (uses 1/3 power bar) + +F, F, a - W. Kung Fu Knee +F, F, b - S. Kung Fu Knee +F, F, a+b - Fast Kung Fu Knee (uses 1/3 power bar) +Press button A or B during Kung Fu Knee to add a kick. + +Hyper Attacks (each uses 1 power bar) +------------- + +D, DF, F, D, DF, F, x/y - Triple Kung Fu Palm +D, DB, B, D, DB, B, x/y - Smash Kung Fu Upper + + +Combo notes +=========== + +KFM's strengths lie in his ability to chain moves into each +other. Here are his basic combo rules: + +1. You can combo from weaker basic attacks into stronger ones + eg. light kick -> strong kick + +2. You can combo into special attacks from most basic attacks + eg. stand strong punch -> Kung Fu Palm + +3. You can combo into hyper attacks from all basic and special + attacks + eg. Kung Fu Palm -> Triple Kung Fu Palm + +4. You can combo from hyper attacks into other hyper attacks, + as long as you do not do the same hyper twice in a row + eg. Triple Kung Fu Palm -> Smash Kung Fu Upper + +These rules make it possible for you to do some damaging combos. +Experiment, and perfect your own Kung Fu Combos! diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/AI.zss b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/AI.zss new file mode 100644 index 00000000..ee98d1de --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/AI.zss @@ -0,0 +1,611 @@ +#=============================================================================== +#Global states (not halted by pause/superPause, no helper limitations) +#=============================================================================== +[StateDef -4] + +if stateNo = 100 && roundState != 2 && aiLevelF { + changeState{value: 0; ctrl: 1} +} + +# this ZSS AI file is used to define and implement AI for kung fu man. +#it can also be used a guide for you to create your own AI using IKEMEN GO. + +#------------|dis values|------------------------------------------------------- + +#This code ensures that in tag mode or simul mode, the "p2bodydist x" value accounts for +#the actual nearest enemy immediately. +ignoreHitPause if !isHelper { + #activeplayer dist + mapSet{map: "enemydx"; value: (pos x - enemyNear,pos x) * (-facing)} + #activeplayer bodydist grounded + if stateType != A && enemyNear,stateType != A { + mapSet{map: "enemybdx"; value: ((pos x - enemyNear,pos x) + (const(size.ground.front) + enemyNear,const(size.ground.front)) * (facing)) * (-facing)} + } else if stateType = A && enemyNear,stateType != A { #activeplayer bodydist - p1 in air, p2 on ground + mapSet{map: "enemybdx"; value: ((pos x - enemyNear,pos x) + (const(size.air.front) + enemyNear,const(size.ground.front)) * (facing)) * (-facing)} + } else if stateType != A && enemyNear,stateType = A { #activeplayer bodydist - p1 on ground, p2 in air + mapSet{map: "enemybdx"; value: ((pos x - enemyNear,pos x) + (const(size.ground.front) + enemyNear,const(size.air.front)) * (facing)) * (-facing)} + } else if stateType = A && enemyNear,stateType = A { #activeplayer bodydist - both in air + mapSet{map: "enemybdx"; value: ((pos x - enemyNear,pos x) + (const(size.air.front) + enemyNear,const(size.air.front)) * (facing)) * (-facing)} + } +} + +#This code will calculate a "velocity" even if the opponent uses posadds for movement. +ignoreHitPause if gameTime%2 = 0 { + mapSet{map: "ppx"; value: enemyNear,pos x} +} + +#------------|Juggle point|----------------------------------------------------- +#Currently, juggle points cannot be detected, so this hackish way of doing so will help the AI +#determine what juggles it has left to use for combo attacks +ignoreHitPause if moveHit = 2 && !isHelper && cond(numTarget, target,hitFall, 0) { + if hitCount = 1 || map(jug) = 0 { + if stateNo = 200 { + let jug = 1; + } else if stateNo = 600 { + let jug = 2; + } else if stateNo = 630 { + let jug = 3; + } else if stateNo = 230 || stateNo = 210 || stateNo = 610 || stateNo = 640 || stateNo = 1000 || stateNo = 1010 || stateNo = 1050 || stateNo = 1060 || stateNo = 1070 || + stateNo = 1100 || stateNo = 1110 || stateNo = 1200 || stateNo = 1210 || stateNo = 1400 || stateNo = 1410 || stateNo = 3000 || stateNo = 3050 { + let jug = 4; + } else if stateNo = 240 || stateNo = 400 || stateNo = 430 { + let jug = 5; + } else if stateNo = 410 || stateNo = 1020 || stateNo = 1420 || stateNo = 1220 || stateNo = 1120 { + let jug = 6; + } else if stateNo = 440 { + let jug = 7; + } + mapAdd{map: "jug"; value: $jug} + } +} + +if enemyNear,moveType != H || enemyNear,stateNo = 5040 || enemyNear,stateNo = [5200, 5210] { + mapSet{map: "jug"; value: 0} +} + +#=============================================================================== +#Global states (commands) +#=============================================================================== +[StateDef -1] + +#This is used to prevent undesirable actions after getting up from a knock down for a short amount of time +if anim = 5120 || roundState != 2 { #getuprecoverytime + mapSet{map: "gurt"; value: 10} +} + +#global AI loop +ignoreHitPause if aiLevelF && roundState = 2 && !standby { + +#prevent default jump behavior +assertSpecial{flag: nojump; flag2: noairjump} + +#prevent default walk behavior +assertSpecial{flag: nowalk; flag2: nobrake} + +#------------|AI variable declarations|----------------------------------------- + +let inrange = 0; + +#short hand p2bodydist x +let p2dx = map(enemybdx); + +#short hand p2bodydist y +let p2dy = p2BodyDist Y; + +#get all lights +let lights = stateNo = 200 || stateNo = 230 || stateNo = 400 || stateNo = 430; + +#get all heavies that can cancel +let heavy = stateNo = 210 || stateNo = 240 || stateNo = 410; + +#opponent is not in air or lying down +let grounded = enemyNear,stateType = S || enemyNear,stateType = C; + +#Super cancel flag +let SC = stateNo = [1000, 1420] && stateType != A && map(canCombo); + +#CC - CanCombo, this variable checks and returns the current amount of hitstun the opponent is in. +# because KFM has no projectiles, we can easily detect if he has a target to accomplish this. +let CC = cond(numTarget, cond(!enemyNear,hitFall, target,getHitVar(hittime), getHitVar(fall.recovertime)), 0); + +#typically you could check the velocity of the opponent to determine how fast they are moving +#however, if they use posadds to move instead, the vel will remain 0. Using some trickery we can determine the position based velocity +#using this code below because if the opponent has moved position on the x-axis, we can check 1 frame later to determine how far they moved. +#if they have not moved, we can try to track velocity instead. +let trvelx = cond((abs(map(ppx)) - abs(enemyNear,pos x)) = 0 || enemyNear,vel x > (abs(map(ppx)) - abs(enemyNear,pos x)), enemyNear,vel x, (abs(map(ppx)) - abs(enemyNear,pos x))); + +#game specific values +let nojug = enemyNear,anim = 5120 || enemyNear,stateNo = 5040 && enemyNear,ctrl || enemyNear,stateNo = 52 && enemyNear,time < 3 && enemyNear,prevStateNo = 5040; + +#how many points do we have to juggle with? +let jugpt = map(jug); + +let hitfall = enemyNear,hitFall || $CC > 8; + +#Allows the AI to possibly link attacks if they have less recovery than the opponent. +if ctrl && !enemyNear,ctrl && (enemyNear,getHitVar(hittime) > 0) { + let AI_JI = enemyNear,getHitVar(hittime); +} + +#things to do in neutral(not attacking) +#Neutral attacks and combo conditions are separated to prevent accidental code preventing either from working +#properly. + + +if (ctrl && stateNo != 105 || stateNo = 20 || stateNo = 100 || stateNo = 1310 || stateNo = 1330 || stateNo = 1330 || stateNo = 1350) { + if stateType != A { + #--|Reversals|----------------------------------------------------------- + if (enemyNear,moveType = A) && enemyNear,time > 1 { + + #------------|SUPERS|--------------------------------------------------- + if power >= 1500 { + if ($p2dx = [-10, (35+floor($trvelx*.4)*3)] &&(!$grounded && $p2dy = [-80+(floor(enemyNear,vel y*.4)*-5), -15] || $grounded)) { + changeState{value: 3050} + } + + #Tripple Kung Fu Palm + #This first condition checks for if the opponent is in range of the attack hitting, it adds the opponents current velocity + #to determine if they would be hit by them moving closer while attacking. This can be set to any range if you are using this + #as an example. + if ($p2dx = [30*($hitfall)-36, (90+floor($trvelx*.4)*5)] && ($p2dy = [-50+(floor(enemyNear,vel y*.4)*-5), -15] || $grounded) && + (enemyNear,stateNo != 5040 && enemyNear,moveType != H || !$grounded && $p2dy = [-50, -15])) && power >= 1000 { + changeState{value: 3000} + } + } + #------------------------------------------------------------------------- + #Kung Fu Knee + if enemyNear,stateType = A && $p2dx = [40*($hitfall)-30, (50+floor($trvelx*.4)*10)] && $p2dy = [-80+(floor(enemyNear,vel y*.4)*-5), -60+($hitfall)*40] && + (enemyNear,stateNo != 5040 && enemyNear,moveType != H || !$grounded && $p2dy = [-60, -15]) && (!map(gurt) || $p2dx > 30) && + random <= (350 * (aiLevelF ** 2 / 48.0)) { + + if power >= 500 && random%3 = 1 && $p2dy < -70 { + let version2 = 1070; + } else if enemyNear,vel x > 0 && $p2dy < -70 { + let version2 = 1060; + } else { + let version2 = 1050; + } + changeState{value: $version2} + } + + #----------------------------------------------------------------------- + #Kung Fu Blocking + #This is a command parry that kung fu man has, from an AI perspective, it can be challenging to indicate when it should be used. + #For now, this is the most case handling we will attempt. We start by checking if they are moving or what the attack distance of their + #current attack is. We can use that math loosely to determine where their attack is. Because this can make fighting challenging, it is disabled + #unless the aiLevelF is 5 or higher + if $p2dx = [-15, 30+floor($trvelx*.4)*10+floor(enemyNear,const(size.attack.dist)*.5)] && $p2dy = [-50+(floor(enemyNear,vel y *.6)*-10), 0] && + random <= (335 * (aiLevelF ** 2 / 48.0)) && enemyNear,moveType = A && aiLevel > 4 { + changeState{value: cond(enemyNear,stateType != C,1300,1320)} + } + } + + #----------------------------------------------------------------------- + #anti air specials are used where it is safe for kfm to try to stop the opponent from jumping in and attacking + #because of how they can connect, even on a blocking opponent, it leaves kfm moderately safe and is considered + #minimal risk to perform. + + #Kung Fu Upper + #We reduce the chance of this happening to 25% to prevent overusage. + if enemyNear,stateType = A && $p2dx = [5*($hitfall)-20, (30+floor($trvelx*.4)*20)] && + (enemyNear,stateNo != 5040 && enemyNear,moveType != H || !$grounded && $p2dy = [-80+(floor(enemyNear,vel y*.6)*-5), -40+($hitfall)*30]) && (!map(gurt) || $p2dx > 30) && + random <= (450 * (aiLevelF ** 2 / 48.0)) { + + #1/3 chance to use ex move when power is at least half of one meter + if power >= 500 && random%3 = 1 { + let version = 1120; + #use this for advancing enemies + } else if enemyNear,vel x > 0 { + let version = 1110; + #default version + } else { + let version = 1100; + } + changeState{value: $version} + } + + #----------------------------------------------------------------------- + #anti air normals + if random <= (420 * (aiLevelF ** 2 / 48.0)) && $p2dx < 45 && $p2dy = [-70+(floor(enemyNear,vel y*.4)*-5), -20] && !$nojug && $jugpt = 0 { + changeState{value: 410} + } + + #----------------------------------------------------------------------- + #throw + if random <= (310 * (aiLevelF ** 2 / 48.0)) && stateType = S && stateNo != 100 && (enemyNear,moveType != H || enemyNear,stateNo = [120, 131]) && + (map(AI_JI) < 2) && $p2dx < 30 && $grounded { + changeState{value: 800} + } + + #----------------------------------------------------------------------- + #blocking + if (enemyNear,moveType = A && prevStateNo != [1300, 1350] && stateNo != [1300, 1350] && + inGuardDist && random <= (700 * (aiLevelF ** 2 / 48.0)) || enemyNear,numProj > 0 && random < (440 * (aiLevelF ** 2 / 48.0))) && + $p2dx > -20 && enemyNear,stateType != L && + (ctrl || stateNo = 20 || stateNo = 100) || (enemyNear,numProj >= 1) { + assertSpecial{flag: autoguard} + changeState{value: 120} + } + + #----------------------------------------------------------------------- + #this attack is a special case attack, the angle of attack indicates it can be used + #to stop crouching attacking opponents preemptively, so kfm will try to do so when possible. + #used to hit crouching attacking opponents from a distance + if ($p2dx = [35, 55+(floor($trvelx*.4)*5)]) && enemyNear,stateType = C && (enemyNear,moveType = A) && random <= (450 * (aiLevelF ** 2 / 48.0)) { + changeState{value: 240} + } + + #----------------------------------------------------------------------- + #light attacks (200,230,400,430) + if $p2dx < 55 + (floor($trvelx * .4) * 5) && !$AI_JI && !$nojug && (!map(gurt) || $p2dx > 35) && ($p2dx > 25 || random <= (225 * (aiLevelF ** 2 / 48.0)) || enemyNear,stateType = A) && + (enemyNear,stateNo != [1025, 1028] || (enemyNear,moveType != H || $CC > 3 && $hitfall && enemyNear,stateNo != [1025, 1028])) { + if ($grounded || $p2dy = [-40+(floor(enemyNear,vel y*.4)*-10), -15]) && $p2dx < 45 { + let att = cond($p2dy < -40 || enemyNear,stateType = S, 200, 400); + if $att = 400 && $p2dx < 35 + (floor($trvelx * .4) * 5) || $att != 400 { + changeState{value: $att} + } + } else if ($p2dx > 25 || random <= (225 * (aiLevelF ** 2 / 48.0))) && $grounded { + let att = cond($p2dy > -10 || enemyNear,stateType = S, 430, 230); + if $att = 430 && $p2dx < 45 + (floor($trvelx * .4) * 5) || $att != 430 { + changeState{value: $att} + } + } + } + + #----------------------------------------------------------------------- + #heavy attacks (210,240) + #we do not include 440 or 410 here because they are defined elsewhere in a more + #specialized way that focuses on what they are capable of doing in a match. + if $p2dx < 60 + (floor($trvelx * .4) * 5) && !$AI_JI && (!$nojug || $p2dy > -10) && (!map(gurt) || $p2dx > 35) && random <= (425 * (aiLevelF ** 2 / 48.0)) && + (enemyNear,stateNo != [1025, 1028] || enemyNear,moveType != H) { + if ($grounded || $p2dy = [-50 + (floor(enemyNear,vel y*.6)*-10), -25]) { + let att = cond($p2dy > -10 || enemyNear,stateType = S, 240, 210); + if $att = 240 && $p2dx < 45 + (floor($trvelx * .4) * 5) || $att != 240 { + changeState{value: $att} + } + } + } + + #----------------------------------------------------------------------- + #jump in landing attacks can be used to start combos from a successful jump attack (600-640) + #Using the $AI_JumpIn variable, we can inform the AI about how much time they have to + #start a combo by linking a ground attack. + if $AI_JI > 9 && $p2dx = [35, 60] && $grounded { + changeState{value: cond($p2dx < 50, 240, 210)} + } + if $AI_JI > 3 && $p2dx <= 55 && $grounded { + changeState{value: cond(enemyNear,stateType = S, cond($p2dx > 40, 230, 200), cond($p2dx < 30, 400, 430))} + } + + #----------------------------------------------------------------------- + #The term "poke" is used to refer to attacks that can usually attack opponents from a safe distance + #without high risk. The attacks below meet that criteria but can be changed if more attacks are added later. + #pokes + if $p2dx = [45, 60] && enemyNear,moveType != H && $grounded && random < (250 * (aiLevelF ** 2 / 48.0)) { + if $p2dx = [30, 60+(floor($trvelx*.4)*5)] && random%4 = 0 { + let att2 = 210; + } else if $p2dx = [30, 50+(floor($trvelx*.4)*5)] && random%4 = 1 { + let att2 = 240; + } else if $p2dx = [30, 60+(floor($trvelx*.4)*5)] && enemyNear,stateType = S { + let att2 = 440; + } + if $att2 > 0 { + changeState{value: $att2} + } + } + + #----------------------------------------------------------------------- + #OTG - attacks that can hit a fallen opponent. + if (enemyNear,stateType = L || enemyNear,stateNo = 52) && $jugpt < 13 && $p2dx = [-2, 45] && (!$nojug || enemyNear,stateNo = 52) { + changeState{value: cond($jugpt < 8 && enemyNear,time < 20, 440, 430)} + } + + #End of file: stateType != A + #=========================================================================== + #This section of AI handles attacks that are done in the air. + } else if stateType = A && enemyNear,stateType != L { + + #kung fu blocking - air + if $p2dx = [-15, 35+floor($trvelx*.4)*5+floor(enemyNear,const(size.attack.dist)*.5)] && $p2dy = [-20+(floor(enemyNear,vel y*.4)*-5), 30+(floor(vel y*.4)*5)] && + random <= (600 * (aiLevelF ** 2 / 48.0)) && enemyNear,moveType = A { + changeState{value: 1340} + } + + #cross up + #currently this character has no way to do a cross up(attack that hits behind opponent while you jump) + #so this is commented, however you could add that ability right now! If you do you can use this code + #to define it. + #let cu = $p2dx = [-65, 10]; + + #if $cu && vel x > 0 && (enemyNear,stateNo = 5120 || $grounded && !$nojug) && vel y > 0 { + # ChangeState{value: 630} + #} + + #------------|air normal attacks|--------------------------------------- + + #we do not want kfm to try to hit an attacking opponent using specials because this typically means kfm will lose to it. + #However, if it's a lower AI level it's ok to make mistakes, or if kfm is behind the opponent anyway. + if (enemyNear,hitDefAttr != SCA,SA || facing != enemyNear,facing || aiLevelF < 6) && random <= (700 * (aiLevelF ** 2 / 48.0)) { + + #These attacks will have variable y distance detection depending on if the opponent is standing or crouching, it is not perfect + #but the illusion of intelligence is all that matters. We do not want kfm to attack characters in a recovering (state 5040) state. + #heavy attacks are given priority as they have bigger rewards, but light attacks are faster so both will be taken into account. + + if (frontEdgeBodyDist < 50 || $p2dx = [-5, (55+(floor($trvelx * .4)*5) + (floor(vel x * .4)*20))]) && + ($p2dy > 30 || $p2dy < 0) && $p2dy = [5,40 + ((enemyNear,stateType = S || enemyNear,stateNo = [5115,5122])*40) + ((enemyNear,stateType = C)*25)] && + (vel y > 0 || !$grounded && !$nojug) { + changeState{value: 640} + } + + if (frontEdgeBodyDist < 50 || $p2dx = [-8, (45+(floor($trvelx * .4)*5) + (floor(vel x * .4)*5))]) && + ($p2dy > 30 || $p2dy < 0) && $p2dy = [-20,45 + ((enemyNear,stateType = S || enemyNear,stateNo = [5115,5122])*40) + ((enemyNear,stateType = C)*25)] && + (vel y > 0 || !$grounded && !$nojug) { + changeState{value: 610} + } + + if (frontEdgeBodyDist < 50 || $p2dx = [-15, (40+(floor($trvelx * .4)*5) + (floor(vel x * .4)*20))]) && + $p2dy = [-20,35+((enemyNear,stateType = S || enemyNear,stateNo = [5115,5122])*40) + ((enemyNear,stateType = C)*25)] && + (vel y > 0 || !$grounded && !$nojug) { + changeState{value: 600} + } + + if (frontEdgeBodyDist < 50 || $p2dx =[-15, (30+(floor($trvelx * .4)*5) + (floor(vel x * .4)*25))]) && + $p2dy = [-80,35+((enemyNear,stateType = S || enemyNear,stateNo = [5115,5122])*40) + ((enemyNear,stateType = C)*25)] && + (vel y > 0 || (!$grounded) && (!$nojug) || $hitfall) { + changeState{value: 630} + } + } + + #End of file: stateType = A + #=========================================================================== + } +#End of file: ctrl +#=============================================================================== +#this section of AI is meant for attacks to be done after an attack defined above connects either as a hit +#or blocked by the opponent. +} else if moveContact = [1, 3] && hitPauseTime = 0 && stateType != A { + + #--------------------------------------------------------------------------- + #These are freeform random combo fillers. They have very basic conditions and + #do not break the human pattern of combos. lights can be used to build distance before + #finishing combos as well as giving additional damage. + #lights + if $jugpt < 6 && random < (700 * (aiLevelF ** 2 / 48.0)) { + if $p2dx < 20 && moveContact && $lights { + if random%2 || enemyNear,stateType = A { + changeState{value: cond($p2dy < -18, 200, 400)} + } else { + changeState{value: cond($p2dx < 25, 430, 230)} + } + } + #--------------------------------------------------------------------------- + #light to other + #this block will build the middle piece of combos. Sometimes a super will occur if the condition + #is met. + if $p2dx < 85 && moveHit && $lights && !$nojug && random < (600 * (aiLevelF ** 2 / 48.0)) { + if $hitfall && $jugpt = [8, 10] && $p2dx = [-8, 35] && $p2dy > -75 && $p2dy != 0 && power > 1000 { + changeState{value: 3050} + } + #We must ensure kfm's attack will combo by checking how much hittime the opponent has remaining. + if (random%5 < 3 || enemyNear,stateType = A) && (enemyNear,stateType != L || $p2dy != 0) && $p2dx < 60 { + if $CC > 8 { + changeState{value: cond($p2dy < -30 || $p2dx > 40, 210, 240)} + } else if $p2dx < 35 { + changeState{value: 410} + } + } else { + changeState{value: 440} + } + } + } + #--------------------------------------------------------------------------- + #this block will determine how and if kfm will cancel into his various specials. The criteria is that the hitpause of the current attack + #is over and the opponent is either not falling or in the air in a possible juggle state. It also requires at least 11 frames of hittime + #to ensure the special will connect and the combo will continue unless they are in the air where fall.recovertime is prioritized instead. + if ($heavy || $lights && (!$grounded && $p2dy < -10 & $p2dx > 55 || $p2dx >55)) && (moveHit) && ($hitfall || $grounded || $CC > 11) && random < (800 * (aiLevelF ** 2 / 48.0)) { + #using our somewhat accurate juggle point system, we are specifying that we only want moves to be used + #if we haven't used more than 8 juggle points. + if $jugpt <= 8 { #if we have at least 7 frames of hittime from the current attack, we + #can cancel into the specials below without fail. For lower levels, + #we randomly cancel 50% of the time. + if $CC > 7 || aiLevel < 5 && random%2 { + #the range of kung fu palm requires at least 120 pixels of space to + #connect without missing. The opponent needs to at least be 50 pixels in the air + #while falling to ensure the attack juggles. Or they are not in the air at all. + if $p2dx = [40, 120] && ($p2dy = [10, -50] || $grounded) { + #1/3 chance of using ex version if possible. + if power > 450 && $grounded && random%3 = 0 { + let spver = 1020; + #if we have at least 9 frames of hittime + } else if $CC > 9 && $p2dx < 85 { + let spver = 1010; + } else { + #at minimum we use weak kung fu palm + let spver = 1000; + } + changeState{value: $spver} + #if the opponent is closer, we can use higher damaging moves that deal more stun. + #such as kung fu zankou + } else if $p2dx < 40 && ($p2dy = [10, -50] || $grounded) { + if power > 450 && $grounded && random%3 = 0 { + let spver = 1420; + } else if $CC > 9 && $p2dx > 40 { + let spver = 1410; + } else { + let spver = 1400; + } + changeState{value: $spver} + } + } + #if the opponent is in the air and they are in range, kfm will try to use kung fu knee + if !$grounded && $p2dy = [-80+(floor(enemyNear,vel y*.4)*-5), -25] && $CC > 6 && $p2dx < 40 { + if power > 450 && $grounded && random%3 = 0 { + let spver = 1070; + } else if $p2dx > 40 || random%2 { + let spver = 1060; + } else { + let spver = 1050; + } + changeState{value: $spver} + } + # if kfm is about to run out of juggle points, he will try to use kung fu blow to deal a + # devastating end to a combo. + } else if $jugpt = [8, 12+(power < 1000)] { #finishers + if $p2dx = [-8, 80] && $p2dy = [-55+(floor(enemyNear,vel y*.4)*-5), -35] { + changeState{value: 1200 + (random%2) * 10} + } + } + } + #--------------------------------------------------------------------------- + #This is used to determine if kfm should cancel his supers attacks into hyper attacks + #as a reminder $SC is used to identify the same check a human player has to meet to perform this + #cancel. we then check if a heavy attack or even a light attack can be used if the opponent is + #close to losing. This will gurantee kfm's victory usually. + if ($SC || ($heavy && (enemyNear,life < 350) || $lights)) && moveHit && $jugpt < 14 && random < (700 * (aiLevelF ** 2 / 48.0)) { + if power >= 1000 { + if $p2dx = [-5, 25] && ($p2dy = [-75, -1] || $grounded) { + changeState{value: 3050} + } + if $p2dx = [-5, 80] && ($p2dy = [-40+(floor(enemyNear,vel y*.6)*-5), -25] || $grounded) { + changeState{value: 3000} + } + } + } +#End of file: moveContact +#=============================================================================== +} + +#------------|Kung Fu Knee follow up|------------------------------------------- +#If there was more follow ups to his kung fu knee, this is the place to handle it +#The criteria matches the same rule as a non-cpu. Refer to state 1051 to verify. +#This is placed outside of the main two blocks above because it is considered a special case outlier. +if (stateNo = 1051 || stateNo = 1061 || stateNo = 1071) && (moveHit || moveContact && aiLevel < 6) && vel y < -1 { + if stateNo = [1050, 1069] { + changeState{value: 1055} + } else { + changeState{value: 1075} + } +} + +#------------|MOVEMENT|--------------------------------------------------------- + +#------------|walking|---------------------------------------------------------- +#These are the conditions that will make kfm walk forward. +mapSet{map: "AIw"; value: 0} + +if ((enemyNear,moveType != A) || $p2dx > 25) || (enemyNear,stateType = L && $p2dx > 70) || $AI_JI > 0 { + mapSet{map: "AIw"; value: 1} +} + +#These are the conditions that will make kfm walk backwards +if backEdgeBodyDist > 40 && (enemyNear,moveType = A || enemyNear,stateType != L && $p2dx < 30) { + mapSet{map: "AIw"; value: -1} +} + +#there's a 25% chance at any time that if possible, kfm will walk a given direction with the conditions given +if stateType = S && ctrl && stateNo != 100 && random < 249 && (enemyNear,moveType != A || backEdgeBodyDist < 40) && ($p2dx = [25, 120]) && map(AIw) != 0 { + changeState{value: 20} +} + +#If the AI is walking, we don't want them to stutter crouching as it looks very robotic. +if map(AIw) != 0 && aiLevel > 3 { + assertSpecial{flag: nocrouch} +} + +#if the walk condition zeros out, kfm will stop walking. +if map(AIw) = 0 && stateNo = 20 { + printToConsole{text: "changeState{value: 0}"} + changeState{value: 0; ctrl: 1} +} +#------------|running|---------------------------------------------------------- + +#These are the conditions that will make kfm run + +if stateType != A && (ctrl || stateNo = 20) && stateNo != 100 && random <= (396 * (aiLevelF ** 2 / 48.0)) && + (enemyNear,moveType != A || backEdgeBodyDist < 40) && ($p2dx >= cond($hitfall || enemyNear,stateNo = 5300, 10, 120)) { + changeState{value: 100} +} + +#this will make kfm stop running. If you are making your own character with a stop running animation, +#be sure to change this value: 0 to whatever that state is. +if stateNo = 100 && ($p2dx < 40 - 20 * (!$grounded) && enemyNear,stateNo != 5040 || $p2dx < - 65 || roundState != 2) { + changeState{value: 0; ctrl: 1} +} + +#------------|jumping|---------------------------------------------------------- +#this will decrement the get-up recovery-time map set above +if map(gurt) > 0 { + mapAdd{map: "gurt"; value: -1} +} + +#this is to control optimal times to jump and attack on an opponent getting up from +#a knock down. +let p2l = enemyNear,anim = 5120 || enemyNear,stateNo = 5110 && enemyNear,time > 10; + +#These are the jump conditions for kfm. Starting off, kfm should not jump immediately after getting up as statistically, +#it leads to the worst outcome. However, if an opponent tries to throw and kfm detects it, he will still jump. +#He will also jump if the opponent is waking up from their knock down to score a hit or maintain advantageous pressure. +#Lastly, he will try to jump after hitting an enemy with an attack that did not knock down. This usually puts the opponent +#in state 5040 or if they are stunned (state 5300). it is worth mentioning that at lower levels kfm will not be as precise +#and will leave himself open forbeginners. +if stateType != A && (((!map(gurt)) && (random < (375 * (aiLevelF ** 2 / 48.0)) || enemyNear,moveType = A && aiLevelF > 6) && + ($p2dx > 45 + ((enemyNear,moveType != A && $grounded) * 45) || frontEdgeBodyDist < 50 || $p2l || enemyNear,stateNo = 5040 && $p2dy > -40)) || + enemyNear,hitDefAttr = SC,AT && random < (455 * (aiLevelF ** 2 / 48.0))) && + ( + enemyNear,hitDefAttr = SC,AT || + ($p2dx = [70, 90+(floor(vel x*.4)*5)] || frontEdgeDist < 30) && enemyNear,moveType != H || + $p2l && ($p2dx = [50, 75+(floor(vel x*.4)*5)] || frontEdgeDist < 60) || + enemyNear,stateNo = 5040 && $p2dx = [-20, 60] || + enemyNear,stateNo = 5300 && $p2dx < 40 + ) { + let AIJ = 1; +} + +#this will cancel out a jump declaration if the conditions have changed to prevent bad jumping behavior. +#This is usually meant as a last ditch effort to ensure a jump should be done because it is considered a +#high risk action. +if stateType = A || moveType = H && stateNo != [120, 155] || + prevStateNo = 5120 && enemyNear,stateType = A || $p2dx < 80 && frontEdgeBodyDist > 60 && !$nojug || + map(gurt) > 0 && enemyNear,hitDefAttr != SC,AT || $p2dx > 180 { + let AIJ = 0; +} + +#If the AIJumping indicator remains valid, kfm will jump if he has control. +if $AIJ && (ctrl || stateNo = 20 || stateNo = 100) { + changeState{value: 40} +} + +if stateNo = 40 { + sysVar(1) := 0; + #We override default sysVar setting to influence jumping forward or backward + if $p2dx >= 60 || (enemyNear,stateNo = 5120 || enemyNear,moveType = H) && $p2dx >= 20 || enemyNear,stateType = A && $p2dx >= 60 { + sysVar(1) := 1; + } + if $p2dx < 15 && enemyNear,moveType = A && backEdgeBodyDist > 30 && frontEdgeBodyDist > 60 { + sysVar(1) := -1; + } +} + +#------------------------------------------------------------------------------- +#These are the conditions that will make kfm back dash/jump it has it's own random modifier because +#we do not want him to back jump as often + +if stateType != A && (ctrl || stateNo = 20) && random <= (296 * (aiLevelF ** 2 / 48.0)) && backEdgeBodyDist > 40 && + (enemyNear,moveType = A && $p2dx < 55 || $p2dx < 20 && enemyNear,anim = 5120 && enemyNear,backEdgeBodyDist > 60) { + changeState{value: 105; ctrl: 0} +} + +#---------|AI recover|---------------------------------------------------------- +#This will let kfm recover if possible with a 20% chance at any time. +if alive && canRecover && random%5 = 0 && hitFall && stateNo = 5050 { + if vel y > 0 && pos y >= const(movement.air.gethit.groundrecover.ground.threshold) { + changeState{value: 5200} + } + if vel y > const(movement.air.gethit.airrecover.threshold) { + changeState{value: 5210} + } +} +#displayToClipboard{text: "%v %v %v %v %v"; params: $p2dx, sysVar(1), $jugpt, $CC, $AI_JI} + +#End of file: AI +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/command.zss b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/command.zss new file mode 100644 index 00000000..8d3a3c16 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/command.zss @@ -0,0 +1,496 @@ +#------------------------------------------------------------------------------- +# 2. State entry +# -------------- +# This is where you define what commands bring you to what states. +# +# Each state entry block looks like: +# #Command-attack ;Change Label to any name you want to use to +# ;identify the state with. +#Before, there were triggers to dictate what should happen for a +#command to work. Now, it can be expressed as following +#Triggerall = stateType!=A +#trigger1 = ctrl +#trigger2 = var(1) +# +#becomes the following +#if stateType!=A && +#(ctrl||var(1)) +# +# +# changeState{ ;Don't change this +# value : new_state_number} +# +# - new_state_number is the number of the state to change to +# - command_name is the name of the command (from the section above) +# - Useful triggers to know: +# - statetype +# S, C or A : current state-type of player (stand, crouch, air) +# - ctrl +# 0 or 1 : 1 if player has control. Unless "interrupting" another +# move, you'll want ctrl = 1 +# - stateno +# number of state player is in - useful for "move interrupts" +# - movecontact +# 0 or 1 : 1 if player's last attack touched the opponent +# useful for "move interrupts" +# +# Note: The order of state entry is important. +# State entry with a certain command must come before another state +# entry with a command that is the subset of the first. +# For example, command "fwd_a" must be listed before "a", and +# "fwd_ab" should come before both of the others. +# +# For reference on triggers, see CNS documentation. +# +# Just for your information (skip if you're not interested): +# This part is an extension of the CNS. "State -1" is a special state +# that is executed once every game-tick, regardless of what other state +# you are in. + +# This is used to calculate the zones for the EO (Easy Operation) stick. +# You may divide this into as many arbitrary zones as you wish by changing +# the numZones parameter. +[function getEOStickZone(vx, vy, numZones) zone] +let zone = -1; +# Decrement our leeway timer (to prevent specials from triggering too soon) +if map(EOBufferTime) > 0 { + map(EOBufferTime) := map(EOBufferTime) - 1; +} else if map(EOBufferTime) = 0 { + let cs = GameOption(Input.ControllerStickSensitivity); + if $vx != 0 || $vy != 0 { + let angleRad = atan2($vy, $vx); + let fcr = 2 * pi; + if $angleRad < 0 { + let angleRad = $angleRad + $fcr; + } + let zoneSizeRad = $fcr / $numZones; + let zone = floor($angleRad / $zoneSizeRad); + } + # Nullify the buffer time so it can get set next execution. + map(EOBufferTime) := -1; +# Set the initial buffer timer. +} else { + map(EOBufferTime) := 1; +} + +# Gets how deep we are into the EO stick zone. +[function getThrowDepth(vx, vy) depth] +let depth = (($vx*$vx + $vy*$vy)**0.5); +if $depth > 1.0 { + let depth = 1.0; +} + +# Don't remove the following line. It's required by the CMD standard. + +#=============================================================================== +# command code +#=============================================================================== +[StateDef -1] + +let RDEADBAND = 0.20; #Deadband for right analog stick +let HVY_DEPTH = 0.90; #This controls the heavy range for the EO stick. H: [HVY_DEPTH,1.0] +let MED_DEPTH = 0.30; #This controls the light and medium range for the EO stick. L: (0.0,MED_DEPTH), M: [MED_DEPTH,HVY_DEPTH) + +#This processes analog movement +if map(AnalogEnabled) > 0 { + map(vector_x) := Analog(LeftX); + map(vector_z) := Analog(LeftY); + let cs = GameOption(Input.ControllerStickSensitivity); + + #Some deadzone for D-Pads mapped to axes + if map(vector_x) != [-$cs,$cs] { + if map(vector_x) < 0 { + sysVar(1) := -1; + } else { + sysVar(1) := 1; + } + } else if command = "holdfwd" || command = "holdback" { + sysVar(1) := (command = "holdfwd" - command = "holdback"); + } else { + sysVar(1) := 0; + } + + #Process EO stick behavior + let numSpecialsAndSupers = 7; + let rx = map(right_x) := Analog(RightX); + let ry = map(right_y) := Analog(RightY); + let zone = -1; + if $rx != [-$RDEADBAND,$RDEADBAND] || $ry != [-$RDEADBAND,$RDEADBAND] { + let zone = call getEOStickZone($rx, $ry, $numSpecialsAndSupers); + } + map(EOZone) := $zone; + let depth = call getThrowDepth($rx, $ry); + + # Don't set anything if EOEnabled is disabled. + if map(EOEnabled) <= 0 { + map(EOZone) := -1; + let depth = 0; + } +} else { + map(vector_x) := map(vector_z) := 0; + map(EOZone) := -1; +} + +#------------------------------------------------------------------------------- +#ADC (Analog to Digital Converter) - This is used so that specials can function +#for the new analog inputs +let vx = 0; +let vz = 0; +ignorehitpause { + let vx = map(vector_x)*Facing; + let cs = GameOption(Input.ControllerStickSensitivity); + if $vx != 0 { + # Forward + if $vx > $cs { + AssertInput{ + flag: F; + } + # Back + } else if -$vx > $cs { + AssertInput{ + flag: B; + } + } + } + + let vz = map(vector_z); + if $vz != 0 { + # Down + if $vz > $cs { + AssertInput{ + flag: D; + } + # Up + } else if -$vz > $cs { + AssertInput{ + flag: U; + } + } + } +} + +#This is not a move, but it sets up the map "cancombo" to be 1 if +#conditions are right for a combo into a special move (used below). +#Since a lot of special moves rely on the same conditions, this reduces +#redundant logic. +ignoreHitPause { + mapSet{map: "cancombo"; value: 0} + if stateType != A && + (ctrl || + ((stateNo = [200, 299] || stateNo = [400, 499]) && stateNo != 440 && moveContact) || #!= 440: Except for sweep kick + (stateNo = 1310 || stateNo = 1330)) { #From blocking + mapSet{map: "cancombo"; value: 1} + } +} + +#============|IF roundState = 2|================================================ +if roundState = 2 { #prevent attacks outside of fight state + +#=============================================================================== +# +#------------------------------------------------------------------------------- +#Smash Kung Fu Upper (uses one super bar) +if (command = "SmashKFUpper" || map(EOZone) = 6) && power >= 1000 && stateType != A && + (ctrl || + (hitDefAttr = SC, NA, SA, HA && stateNo != [3050, 3099] && moveContact) || + (stateNo = 1310 || stateNo = 1330)) { #From blocking + changeState{value: 3050} +} + +#------------------------------------------------------------------------------- +#Triple Kung Fu Palm (uses one super bar) +if (command = "TripleKFPalm" || map(EOZone) = 5) && power >= 1000 && stateType != A && + (ctrl || + (hitDefAttr = SC, NA, SA, HA && stateNo != [3000, 3049] && moveContact) || + (stateNo = 1310 || stateNo = 1330)) { #From blocking + changeState{value: 3000} +} + +#------------------------------------------------------------------------------- +#Fast Kung Fu Knee (1/3 super bar) +if (command = "FF_ab" || (map(EOZone) = 3 && $depth >= $HVY_DEPTH)) && power >= 330 && map(cancombo) { #Use combo condition (above) + changeState{value: 1070} +} + +#------------------------------------------------------------------------------- +#Fast Kung Fu Upper (1/3 super bar) +if (command = "upper_xy" || (map(EOZone) = 1 && $depth >= $HVY_DEPTH)) && power >= 330 && map(cancombo) { + changeState{value: 1120} +} + +#------------------------------------------------------------------------------- +#Fast Kung Fu Zankou +if (command = "QCF_ab" || (map(EOZone) = 4 && $depth >= $HVY_DEPTH)) && power >= 330 && map(cancombo) { + changeState{value: 1420} +} + +#------------------------------------------------------------------------------- +#Fast Kung Fu Palm (1/3 super bar) +if (command = "QCF_xy" || (map(EOZone) = 0 && $depth >= $HVY_DEPTH)) && power >= 330 && map(cancombo) { + changeState{value: 1020} +} + +#------------------------------------------------------------------------------- +#Fast Kung Fu Blow (1/3 super bar) +if (command = "QCB_xy" || (map(EOZone) = 2 && $depth >= $HVY_DEPTH)) && power >= 330 && map(cancombo) { + changeState{value: 1220} +} + +#------------------------------------------------------------------------------- +#Strong Kung Fu Knee +if (command = "FF_b" || (map(EOZone) = 3 && $depth >= $MED_DEPTH)) && map(cancombo) { +changeState{value: 1060} +} + +#------------------------------------------------------------------------------- +#Light Kung Fu Knee +if (command = "FF_a" || (map(EOZone) = 3 && $depth < $MED_DEPTH)) && map(cancombo) { + changeState{value: 1050} +} + +#------------------------------------------------------------------------------- +#Strong Kung Fu Upper +if (command = "upper_y" || (map(EOZone) = 1 && $depth >= $MED_DEPTH)) && map(cancombo) { + changeState{value: 1110} +} + +#------------------------------------------------------------------------------- +#Light Kung Fu Upper +if (command = "upper_x" || (map(EOZone) = 1 && $depth < $MED_DEPTH)) && map(cancombo) { + changeState{value: 1100} +} + +#------------------------------------------------------------------------------- +#Strong Kung Fu Zankou +if (command = "QCF_b" || (map(EOZone) = 4 && $depth >= $MED_DEPTH)) && map(cancombo) { + changeState{value: 1410} +} + +#------------------------------------------------------------------------------- +#Light Kung Fu Zankou +if (command = "QCF_a" || (map(EOZone) = 4 && $depth < $MED_DEPTH)) && map(cancombo) { + changeState{value: 1400} +} + +#------------------------------------------------------------------------------- +#Strong Kung Fu Palm +if (command = "QCF_y" || (map(EOZone) = 0 && $depth >= $MED_DEPTH)) && map(cancombo) { + changeState{value: 1010} +} + +#------------------------------------------------------------------------------- +#Light Kung Fu Palm +if (command = "QCF_x" || (map(EOZone) = 0 && $depth < $MED_DEPTH)) && map(cancombo) { + changeState{value: 1000} +} + +#------------------------------------------------------------------------------- +#Strong Kung Fu Blow +if (command = "QCB_y" || (map(EOZone) = 2 && $depth >= $MED_DEPTH)) && map(cancombo) { + changeState{value: 1210} +} + +#------------------------------------------------------------------------------- +#Light Kung Fu Blow +if (command = "QCB_x" || (map(EOZone) = 2 && $depth < $MED_DEPTH)) && map(cancombo) { + changeState{value: 1200} +} + +#------------------------------------------------------------------------------- +#Kung Fu Blocking (High) +if command = "blocking" && !map(crouchinput) && + ((ctrl && stateType != A) || + ((stateNo = 1310 || stateNo = 1330) && time > 0)) { + changeState{value: 1300} +} + +#------------------------------------------------------------------------------- +#Kung Fu Blocking (Low) +if command = "blocking" && map(crouchinput) && + ((ctrl && stateType != A) || + ((stateNo = 1310 || stateNo = 1330) && time > 0)) { + changeState{value: 1320} +} + +#------------------------------------------------------------------------------- +#Kung Fu Blocking (Air) +if command = "blocking" && !map(crouchinput) && command != "holdup" && + ((ctrl && stateType = A) || + (stateNo = 1350 && time > 0)) { + changeState{value: 1340} +} + +#=============================================================================== +# +#------------------------------------------------------------------------------- +#Run Fwd +if command = "FF" && stateType != A && ctrl { + changeState{value: 100} +} + +#------------------------------------------------------------------------------- +#Run Back +if command = "BB" && stateType != A && ctrl { + changeState{value: 105} +} + +#------------------------------------------------------------------------------- +#Run Up +if command = "UU" && stateType != A && ctrl { + changeState{value: 110} +} + +#------------------------------------------------------------------------------- +#Run Down +if command = "DD" && stateType != A && ctrl { + changeState{value: 115} +} + +#------------------------------------------------------------------------------- +#Kung Fu Throw +if command = "y" && stateType != A && ctrl && stateNo != 100 && + (p2StateType = S || p2StateType = C) && p2MoveType != H && + abs(p2BodyDist Z) <= 4 && p2BodyDist X < 6 && + (command = "holdfwd" || command = "holdback" || command = "holdup" || command = "holddown") { + changeState{value: 800} +} + +#=============================================================================== +# +#------------------------------------------------------------------------------- +#Stand Light Punch +if command = "x" && !map(crouchinput) && + ((stateType != A && ctrl) || + (stateNo = 200 && animElemTime(3) > 0)) { + changeState{value: 200} +} + +#------------------------------------------------------------------------------- +#Stand Strong Punch +if command = "y" && !map(crouchinput) && + ((stateType != A && ctrl) || + ((stateNo = 200 || stateNo = 230) && animElemTime(3) > 0)) { + changeState{value: 210} +} + +#------------------------------------------------------------------------------- +#Stand Light Kick +if command = "a" && !map(crouchinput) && + ((stateType != A && ctrl) || + ((stateNo = 200 || stateNo = 230) && animElemTime(3) > 0)) { + changeState{value: 230} +} + +#------------------------------------------------------------------------------- +#Standing Strong Kick +if command = "b" && !map(crouchinput) && + ((stateType != A && ctrl) || + ((stateNo = 200 || stateNo = 230) && animElemTime(3) > 0)) { + changeState{value: 240} +} + +#------------------------------------------------------------------------------- +#Taunt +if command = "start" && !map(crouchinput) && stateType != A && ctrl { + changeState{value: 195} +} + +#------------------------------------------------------------------------------- +#Crouching Light Punch +if command = "x" && map(crouchinput) && stateType != A && ctrl { + changeState{value: 400} +} + +#------------------------------------------------------------------------------- +#Crouching Strong Punch +if command = "y" && map(crouchinput) && + ((stateType != A && ctrl) || + (stateNo = 400 && animElemTime(2) > 0) || + (stateNo = 430 && moveContact && animElemTime(3) > 0)) { + changeState{value: 410} +} + +#------------------------------------------------------------------------------- +#Crouching Light Kick +if command = "a" && map(crouchinput) && + ((stateType != A && ctrl) || + (stateNo = 400 && animElemTime(2) > 0) || + (stateNo = 430 && moveContact && animElemTime(3) > 0)) { + changeState{value: 430} +} + +#------------------------------------------------------------------------------- +#Crouching Strong Kick +if command = "b" && map(crouchinput) && + ((stateType != A && ctrl) || + (stateNo = 400 && animElemTime(2) > 0) || + (stateNo = 430 && moveContact && animElemTime(3) > 0)) { + changeState{value: 440} +} + +#------------------------------------------------------------------------------- +#Jump Light Punch +if command = "x" && + ((stateType = A && ctrl) || + (stateNo = 600 && animElemTime(2) > 0) || + stateNo = 1350) { #Air blocking + changeState{value: 600} +} + +#------------------------------------------------------------------------------- +#Jump Strong Punch +if command = "y" && + ((stateType = A && ctrl) || + ((stateNo = 600 || stateNo = 630) && moveContact) || #jump_x or jump_a + stateNo = 1350) { #Air blocking + changeState{value: 610} +} + +#------------------------------------------------------------------------------- +#Jump Light Kick +if command = "a" && + ((stateType = A && ctrl) || + stateNo = 1350) { #Air blocking + changeState{value: 630} +} + +#------------------------------------------------------------------------------- +#Jump Strong Kick +if command = "b" && + ((stateType = A && ctrl) || + ((stateNo = 600 || stateNo = 630) && moveContact) || #jump_x or jump_a + stateNo = 1350) { #Air blocking + changeState{value: 640} +} + +#------------------------------------------------------------------------------- +#Crouch override +if map(crouchinput) && stateType = S && ctrl { + changeState{value: 10} +} + +#------------------------------------------------------------------------------- +#Jump override +if command = "z" && stateType = S && ctrl { + changeState{value: 40} +} + +#------------------------------------------------------------------------------- +#Air Jump override +if command = "z" && stateType = A && ctrl && + stateNo = 50 && prevStateNo = 40 && pos y <= -const(movement.airjump.height) { + changeState{value: 45} +} + +#------------------------------------------------------------------------------- +#Z-axis walk +let cs = GameOption(Input.ControllerStickSensitivity); +if (command = "holdup" || command = "holddown" || (map(vector_z) != [-$cs,$cs])) && stateType = S && ctrl { + if stateNo != 100 { + changeState{value: 20} + } +} + +#End of file: roundState = 2 +#=============================================================================== +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/ending.def b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/ending.def new file mode 100644 index 00000000..c0186be8 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/ending.def @@ -0,0 +1,93 @@ +; Ending cutscene for KFM's story. + +; Like the intro, this storyboard has multiple scenes. +; Each scene uses two overlay anims, one for the picture, and +; another for the text. +; The fadein and fadeout parameters are used to fade one screen +; to the next. + +[SceneDef] +spr = ending.sff +startscene = 0 ;Starting scene number (for debugging) + +;------------------------------------ +[Scene 0] +; Fade +fadein.time = 60 ;Time to take for fading in +fadein.col = 0,0,0 ;Use 255,255,255 for white-fade +fadeout.time = 15 +fadeout.col = 255,255,255 +; Screen color +clearcolor = 255,255,255 +; Overlay Anims (from 0 to 9) +layerall.pos = 160,0 ;Default position for all layers +layer0.anim = 0 ;Anim action number +layer0.offset = 0,32 ;Position offset +layer0.starttime = 0 ;Time to start display +layer1.anim = 1 +layer1.offset = 0,176 +; Music +bgm = ending.mp3 ;Name of music file to play +bgm.loop = 0 +; Total time +end.time = 460 + +;------------------------------------ +[Scene 1] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 15 +fadeout.col = 255,255,255 +; Screen color +; The previous clearcolor value is carried over by default +; Overlay Anims (from 0 to 9) +; The previous layerall.pos value is carried over by default +layer0.anim = 10 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 11 +layer1.offset = 0,176 +; Total time +end.time = 300 + +;------------------------------------ +[Scene 2] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 90 +fadeout.col = 0,0,0 +; Overlay Anims (from 0 to 9) +layer0.anim = 20 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 21 +layer1.offset = 0,176 +; Total time +end.time = 400 + +;Background image +[Begin Action 0] +0,0, 0,0, -1 + +;Text +[Begin Action 1] +1,0, 0,0, 200 +1,1, 0,0, -1 + +;Background image +[Begin Action 10] +10,0, 0,0, -1 + +;Text +[Begin Action 11] +11,0, 0,0, -1 + +;Background image +[Begin Action 20] +20,0, 0,0, -1 + +;Text +[Begin Action 21] +21,0, 0,0, -1 \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/ending.sff b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/ending.sff new file mode 100644 index 00000000..c00229bb Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/ending.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/hits.zss b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/hits.zss new file mode 100644 index 00000000..a701ae45 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/hits.zss @@ -0,0 +1,290 @@ +#=============================================================================== +# Thrown by Kung Fu Throw +#=============================================================================== +# (a custom gethit state) +# Description: This is the state that the opponent changes to after being +# hit by KFM's throw hitDef. The important thing here is to use a +# changeAnim2 controller. The difference between changeAnim2 and +# changeAnim is that changeAnim2 changes the player's animation to +# an action in the AIR file of the attacker (in this case, kfm.air), +# whereas changeAnim always changes the player to an action in his +# own AIR file. Look at Action 820 in kfm.air for some extra +# comments. +[StateDef 820; +type: A; movetype: H; physics: N; +velset: 0, 0;] + +if time = 0 { + changeAnim2{value: 820} +} + +#In case attacker loses binding on player for any reason, this controller +#guarantees that the player will never get stuck in this thrown state. +if !getHitVar(IsBound) { + selfState{value: 5050} +} + +#=============================================================================== +# Thrown by Kung Fu Throw - thrown into the air +#=============================================================================== +# (a custom gethit state) +# Description: This state has the opponent flying through the air and +# falling down onto the ground. The selfState controller sets the +# opponent back using to his own state file when he his the ground. +# Controllers 821,2 and 821,3 allow the opponent to recover by +# hitting his recovery command when he is falling. +[StateDef 821; +type: A; movetype: H; physics: N; poweradd: 40;] + +if time = 0 { + velSet{x: 3.0; y: -7.0; z: ifelse(stateOwner, map(throw_up_down) > 0, 1.5, -1.5)} +} + +#Gravity +velAdd{y: 0.4} + +#triggerall +if vel y > 0 && alive && canRecover && (command = "recovery" || random%5=0 && aiLevelF) { + #trigger1 + if pos y >= -20 { + # Recover near ground (use changeState) + changeState{value: 5200} #HITFALL_RECOVER + } else { + #Else is used when the if{} block has a either true or false statement + #it is not required to handle the opposite of an if but this is used to + #to specify that only one thing should happen as the opposite(false) + + #Recover in mid air (use selfState) + selfState{value: 5210} # ;HITFALL_AIRRECOVER + } +} + +if pos y >= 0 && vel y > 0 { + selfState{value: 5100} #Hit ground +} + +#=============================================================================== +# Hit by Fast Kung Fu Palm - shaking from the hit +#=============================================================================== +# (a custom gethit state) +# See State 1020 for details +[StateDef 1025; +type: A; movetype: H; physics: N; +velset: 0, 0;] + +#Custom animation +changeAnim2{value: 1025} + +if hitShakeOver = 1 { + changeState{value: 1026} +} + +#=============================================================================== +# Hit by Fast Kung Fu Palm - flying through the air +#=============================================================================== +# (a custom gethit state) +[StateDef 1026; +type: A; movetype: H; physics: N;] + +if time = 0 { + hitVelSet{x: 1; y: 1} +} + +velAdd{y: 0.45} + +#No scroll +if pos y < -15 { + if backEdgeBodyDist < 65 || frontEdgeBodyDist < 65 { + screenBound{value: 1; movecamera: 0, 1} + } + if backEdgeBodyDist <= 20 || frontEdgeBodyDist <= 20 { + changeState{value: 1027} + } +} + +if vel y > 0 && pos y >= 0 { + selfState{value: 5100} +} + +#=============================================================================== +# Hit by Fast Kung Fu Palm - hit wall +#=============================================================================== +# (a custom gethit state) +[StateDef 1027; +type: A; movetype: H; physics: N;] + +if time = 0 { + if frontEdgeBodyDist <= 30 { + turn{} + } + posAdd{x: 15 - backEdgeBodyDist} + explod{ + anim: F72; + pos: 0, floor(screenPos Y) - 50; + postype: back; + sprpriority: 3; + } + playsnd{value: F 7, 2; channel: 1} + changeAnim2{value: 1027} +} + +#Stop moving +posFreeze{} + +#No scroll +screenBound{value: 1; movecamera: 0, 1} + +if animTime = 0 { + changeState{value: 1028} +} + +#=============================================================================== +# Hit by Fast Kung Fu Palm - bounce off wall +#=============================================================================== +# (a custom gethit state) +[StateDef 1028; +type: A; movetype: H; physics: N;] + +notHitBy{value: , NA, NP} + +if time = 0 { + #Vel Y, X + velSet{y: -6; x: 1.6} + if backEdgeDist < 30 { + turn{} + } + if !selfAnimExist(5052) { #Self falling animation + changeAnim{value: 5050} + } + if selfAnimExist(5052) { #Self falling animation (diagup type) + changeAnim{value: 5052} + } +} + +velAdd{y: 0.35} + +if vel y > -2 { + persistent(0) if anim = 5050 && selfAnimExist(5060) { #Coming down - normal + changeAnim{value: 5060} + } + persistent(0) if anim = 5052 && selfAnimExist(5062) { #Coming down - diagup type + changeAnim{value: 5062} + } +} + +if vel y > 0 && pos y >= 0 { + selfState{value: 5100} +} + +#=============================================================================== +# Hit by Fast Kung Fu Zankou - shaking from the hit +#=============================================================================== +# (a custom gethit state) +# See State 1420 for details +[StateDef 1425; +type: A; movetype: H; physics: N; +velset: 0, 0;] + +#Custom animation +changeAnim2{value: 1025} + +if hitShakeOver = 1 { + changeState{value: 1426} +} + +#=============================================================================== +# Hit by Fast Kung Fu Zankou - flying through the air +#=============================================================================== +# (a custom gethit state) +[StateDef 1426; +type: A; movetype: H; physics: N;] + +if time = 0 { + hitVelSet{x: 1; y: 1; z: 1} +} + +velAdd{y: 0.45} + +if pos y < -15 { + if topBoundBodyDist <= 0 { #backEdgeBodyDist + changeState{value: 1427} + } +} + +if vel y > 0 && pos y >= 0 { + selfState{value: 5100} +} + +#=============================================================================== +# Hit by Fast Kung Fu Zankou - hit wall +#=============================================================================== +# (a custom gethit state) +[StateDef 1427; +type: A; movetype: H; physics: N;] + +if time = 0 { + #if frontEdgeBodyDist <= 30 { + # turn{} + #} + # posAdd{x: 15 - backEdgeBodyDist} + explod{ + anim: F71; + postype: p1; + pos: 0, const(size.mid.pos.y), 0; + sprpriority: -10; + facing: 1; + } + explod{ + anim: F71; + postype: p1; + pos: 0, const(size.mid.pos.y), 0; + sprpriority: -10; + facing: -1; + } + playsnd{value: F 7, 2; channel: 1} + changeAnim2{value: 1427} +} + +#Stop moving +posFreeze{} + +if animTime = 0 { + changeState{value: 1428} +} + +#=============================================================================== +# Hit by Fast Kung Fu Zankou - bounce off wall +#=============================================================================== +# (a custom gethit state) +[StateDef 1428; +type: A; movetype: H; physics: N;] + +notHitBy{value: , NA, NP} + +if time = 0 { + velSet{x: vel x / 2.0; y: -6.0; z: 1.6} + #if backEdgeDist < 30 { + # turn{} + #} + if !selfAnimExist(5052) { #Self falling animation + changeAnim{value: 5050} + } + if selfAnimExist(5052) { #Self falling animation (diagup type) + changeAnim{value: 5052} + } +} + +velAdd{y: 0.35} + +if vel y > -2 { + persistent(0) if anim = 5050 && selfAnimExist(5060) { #Coming down - normal + changeAnim{value: 5060} + } + persistent(0) if anim = 5052 && selfAnimExist(5062) { #Coming down - diagup type + changeAnim{value: 5062} + } +} + +if vel y > 0 && pos y >= 0 { + selfState{value: 5100} +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/intro.def b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/intro.def new file mode 100644 index 00000000..4f879f81 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/intro.def @@ -0,0 +1,148 @@ +; Introduction cutscene for KFM's story. + +; This storyboard has multiple scenes. +; Each scene uses two overlay anims, one for the picture, and +; another for the text. +; The fadein and fadeout parameters are used to fade one screen +; to the next. + +[SceneDef] +spr = intro.sff +startscene = 0 ;Starting scene number (for debugging) + +;------------------------------------ +[Scene 0] +; Fade +fadein.time = 60 ;Time to take for fading in +fadein.col = 0,0,0 ;Use 255,255,255 for white-fade +fadeout.time = 15 +fadeout.col = 255,255,255 +; Screen color +clearcolor = 255,255,255 +; Overlay Anims (from 0 to 9) +layerall.pos = 160,0 ;Default position for all layers +layer0.anim = 0 ;Anim action number +layer0.offset = 0,32 ;Position offset +layer0.starttime = 0 ;Time to start display +layer1.anim = 1 +layer1.offset = 0,176 +; Music +bgm = intro.mp3 ;Name of music file to play +bgm.loop = 0 +; Total time +end.time = 300 + +;------------------------------------ +[Scene 1] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 15 +fadeout.col = 255,255,255 +; Screen color +; The previous clearcolor value is carried over by default +; Overlay Anims (from 0 to 9) +; The previous layerall.pos value is carried over by default +layer0.anim = 10 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 11 +layer1.offset = 0,176 +; Total time +end.time = 300 + +;------------------------------------ +[Scene 2] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 15 +fadeout.col = 255,255,255 +; Overlay Anims (from 0 to 9) +layer0.anim = 20 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 21 +layer1.offset = 0,176 +; Total time +end.time = 300 + +;------------------------------------ +[Scene 3] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 15 +fadeout.col = 255,255,255 +; Overlay Anims (from 0 to 9) +layer0.anim = 30 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 31 +layer1.offset = 0,176 +; Total time +end.time = 300 + +;------------------------------------ +[Scene 4] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 90 +fadeout.col = 0,0,0 +; Overlay Anims (from 0 to 9) +layer0.anim = 40 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 41 +layer1.offset = 53,85 +layer2.anim = 42 +layer2.offset = 0,176 +; Total time +end.time = 600 + +;Background image +[Begin Action 0] +0,0, 0,0, -1 + +;Text +[Begin Action 1] +1,0, 0,0, -1 + +;Background image +[Begin Action 10] +10,0, 0,0, -1 + +;Text +[Begin Action 11] +11,0, 0,0, -1 + +;Background image +[Begin Action 20] +20,0, 0,0, -1 + +;Text +[Begin Action 21] +21,0, 0,0, -1 + +;Background image +[Begin Action 30] +30,0, 0,0, -1 + +;Text +[Begin Action 31] +31,0, 0,0, -1 + +;Background image +[Begin Action 40] +40,0, 0,0, -1 + +;Blinking arrow +[Begin Action 41] +41,0, 0,0, 40 +-1,0, 0,0, 20 + +;Text (two lines) +[Begin Action 42] +42,0, 0,0, 200 +42,1, 0,0, -1 diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/intro.sff b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/intro.sff new file mode 100644 index 00000000..89fb4111 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/intro.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm.air b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm.air new file mode 100644 index 00000000..d1b52c33 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm.air @@ -0,0 +1,2496 @@ +; KFM's animation data +; see docs/air.txt for more information + +;--------------------------------------------------------------------------- +; Standing Animation +[Begin Action 0] +Clsn2Default: 2 + Clsn2[0] = -13, 0, 16,-79 + Clsn2[1] = 5,-79, -7,-93 +0,0, 0,0, 10 +0,1, 0,0, 7 +0,2, 0,0, 7 +0,3, 0,0, 7 +0,4, 0,0, 60 +0,3, 0,0, 7 +0,2, 0,0, 7 +0,1, 0,0, 7 +0,0, 0,0, 40 + +; Turning +[Begin Action 5] +Clsn2Default: 2 + Clsn2[0] = -10, 0, 10,-79 + Clsn2[1] = -4,-92, 6,-79 +5,0, 0,0, 4, H +5,0, 0,0, 4 + +; Crouch Turning +[Begin Action 6] +Clsn2Default: 3 + Clsn2[0] = 10, 0,-10,-47 + Clsn2[1] = 5,-47, -5,-60 + Clsn2[2] = 10,-39, 15, 0 +6,0, 0,0, 4, H +6,0, 0,0, 4 + +; Stand to crouch +[Begin Action 10] +Clsn2: 2 + Clsn2[0] = -12, 0, 17,-65 + Clsn2[1] = -7,-81, 6,-65 +11,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = -12,-52, 17, 0 + Clsn2[1] = -7,-67, 6,-52 +11,1, 0,0, 2 + +; Crouching animation +[Begin Action 11] +Clsn2: 2 + Clsn2[0] = 19, 0,-15,-48 + Clsn2[1] = -6,-62, 6,-48 +11,2, 0,0, 1 + +; Crouch to Stand +[Begin Action 12] +Clsn2: 2 + Clsn2[0] = -12,-52, 17, 0 + Clsn2[1] = -7,-67, 6,-52 +11,1, 0,0, 2 +Clsn2: 2 + Clsn2[0] = -12, 0, 17,-65 + Clsn2[1] = -7,-81, 6,-65 +11,0, 0,0, 2 + +; Walking Forward +[Begin Action 20] +Clsn2Default: 2 + Clsn2[0] = -14, 0, 16,-81 + Clsn2[1] = 6,-81, -7,-96 +20,0, 0,0, 3 +20,1, 0,0, 3 +20,2, 0,0, 3 +20,3, 0,0, 3 +20,4, 0,0, 3 +20,5, 0,0, 3 +20,6, 0,0, 3 +20,7, 0,0, 3 +20,8, 0,0, 3 +20,9, 0,0, 3 +20,10, 0,0, 3 +20,11, 0,0, 3 +20,12, 0,0, 3 +20,13, 0,0, 3 +20,14, 0,0, 3 +20,15, 0,0, 3 + +; Walking Back +[Begin Action 21] +Clsn2Default: 2 + Clsn2[0] = -14, 0, 16,-81 + Clsn2[1] = 6,-81, -7,-96 +21,11, 0,0, 3 +21,10, 0,0, 3 +21,9, 0,0, 3 +21,8, 0,0, 3 +21,7, 0,0, 3 +21,6, 0,0, 3 +21,5, 0,0, 3 +21,4, 0,0, 3 +21,3, 0,0, 3 +21,2, 0,0, 3 +21,1, 0,0, 3 +21,0, 0,0, 3 +21,15, 0,0, 3 +21,14, 0,0, 3 +21,13, 0,0, 3 +21,12, 0,0, 3 + +; Jump start frame +[Begin Action 40] +Clsn2: 2 + Clsn2[0] = -15, 0, 16,-67 + Clsn2[1] = -6,-83, 6,-67 +11,0, 0,0, 3 + +; Starting Jumping up +[Begin Action 41] +Clsn2: 2 + Clsn2[0] = 12,-11,-11,-94 + Clsn2[1] = -6,-109, 6,-94 +41,0, 0,0, 7 +Clsn2: 2 + Clsn2[0] = -11,-86, 12,-28 + Clsn2[1] = -6,-101, 8,-86 +41,1, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-77, 14,-33 + Clsn2[1] = 0,-91, 11,-77 +41,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-73, 14,-35 + Clsn2[1] = 3,-86, 15,-69 +41,3, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-73, 14,-35 + Clsn2[1] = 3,-86, 15,-69 +41,4, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-33, 14,-77 + Clsn2[1] = -2,-93, 11,-76 +41,5, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-84, 14,-27 + Clsn2[1] = -3,-99, 9,-84 +41,6, 0,0, 4 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +; Starting Jumping forwards +[Begin Action 42] +Clsn2: 2 + Clsn2[0] = 12,-11,-11,-94 + Clsn2[1] = -6,-109, 6,-94 +42,0, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -11,-86, 14,-28 + Clsn2[1] = 5,-96, 17,-85 +42,1, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -11,-77, 14,-33 + Clsn2[1] = 0,-91, 11,-77 +41,2, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -11,-73, 14,-35 + Clsn2[1] = 3,-86, 15,-69 +41,3, 0,0, 4 +Clsn2: 1 + Clsn2[0] = -18,-75, 18,-44 +42,3, 0,0, 3 +Clsn2: 1 + Clsn2[0] = -18,-75, 18,-44 +42,4, 0,0, 3 +Clsn2: 1 + Clsn2[0] = -18,-75, 18,-44 +42,5, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -11,-33, 14,-77 + Clsn2[1] = -2,-93, 11,-76 +41,5, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -11,-84, 14,-27 + Clsn2[1] = -3,-99, 9,-84 +41,6, 0,0, 5 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +; Starting Jumping backwards +[Begin Action 43] +Clsn2: 2 + Clsn2[0] = 12,-11,-11,-94 + Clsn2[1] = -6,-109, 6,-94 +43,0, 0,0, 6 +Clsn2: 2 + Clsn2[0] = -11,-86, 12,-28 + Clsn2[1] = -6,-101, 8,-86 +43,1, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -11,-77, 14,-33 + Clsn2[1] = 0,-91, 11,-77 +41,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-73, 14,-35 + Clsn2[1] = 3,-86, 15,-69 +41,3, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-73, 14,-35 + Clsn2[1] = 3,-86, 15,-69 +41,4, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-33, 14,-77 + Clsn2[1] = -2,-93, 11,-76 +41,5, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-84, 14,-27 + Clsn2[1] = -3,-99, 9,-84 +41,6, 0,0, 5 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +; Peak and coming down from Jumping up +;[Begin Action 44] + +; Peak and coming down from Jumping forwards +;[Begin Action 45] + +; Peak and coming down from Jumping backwards +;[Begin Action 46] + +; Jump land animation +[Begin Action 47] +Clsn2: 2 + Clsn2[0] = 15, 0,-16,-68 + Clsn2[1] = -5,-79, 6,-68 +11,0, 0,0, 3 + +; Run forwards +[Begin Action 100] +Clsn2Default: 2 + Clsn2[0] = 14, 0,-15,-79 + Clsn2[1] = 14,-79, 1,-91 +100,0, 0,0, 5 +100,1, 0,0, 5 +100,2, 0,0, 5 +100,3, 0,0, 5 +100,4, 0,0, 5 +100,5, 0,0, 5 + +; Hop backwards +[Begin Action 105] +Clsn2: 3 + Clsn2[0] = -9,-94, 14,-56 + Clsn2[1] = 2,-61, 25,-34 + Clsn2[2] = 6,-90, -6,-104 +43,0, 0,0, 8 +Clsn2: 2 + Clsn2[0] = -8,-28, 10,-81 + Clsn2[1] = 6,-81, -5,-94 +43,1, 0,0, 4 +Clsn2Default: 2 + Clsn2[0] = -8,-33, 13,-77 + Clsn2[1] = 0,-90, 10,-77 +41,6, 0,0, 4 +41,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -8,-28, 10,-81 + Clsn2[1] = 6,-81, -5,-94 +41,1, 0,0, -1 + +; Run Up +[Begin Action 110] +Clsn2Default: 2 + Clsn2[0] = -14, 0, 16,-81 + Clsn2[1] = 6,-81, -7,-96 +21,0, 0,0, 3 +21,15, 0,0, 3 +21,14, 0,0, 6 +21,15, 0,0, 3 +21,0, 0,0, 3 + +; Run Down +[Begin Action 115] +Clsn2Default: 2 + Clsn2[0] = -14, 0, 16,-81 + Clsn2[1] = 6,-81, -7,-96 +21,0, 0,0, 3 +21,15, 0,0, 3 +21,14, 0,0, 6 +21,15, 0,0, 3 +21,0, 0,0, 3 + +;--------------------------- +; Lose +[Begin Action 170] +5000, 0,-5,0, 5 +5000,10,-5,0, 6 +5000,11,-5,0, 9 +5000,10,-5,0, 5 +5000, 0,-5,0, 3 +5010, 0, 5,0, 3 +5300, 3, 5,0, 4 +5300, 2, 5,0, 2 +5300, 1, 5,0, -1 + +;--------------------------- +; Win +[Begin Action 181] +Clsn2Default: 1 + Clsn2[0] = 17, 0,-12,-83 +200,0, 0,0, 4 +181,0, 0,0, 5 +181,1, 0,0, 5 +181,2, 0,0, 5 +181,3, 0,0, 5 +181,4, 0,0, 5 +181,5, 0,0, 5 +181,6, 0,0, 30 +181,5, 0,0, 7 +181,4, 0,0, 6 +181,3, 0,0, 5 +181,2, 0,0, -1 + +;----------------------------------- +; INTRO +[Begin Action 190] +Clsn2Default: 1 + Clsn2[0] = 17, 0,-12,-83 +0,3, 0,0, 7 +0,2, 0,0, 7 +0,1, 0,0, 7 +0,0, 0,0, 20 +240,0,-8,0, 4 +240,1,-8,0, 3 +240,2,-8,0, 6 +240,3,-8,0, 5 +240,4,-8,0, 4 +200,0, 0,0, 4 + +; INTRO -- WOOD (projectile) +[Begin Action 191] +191,3, 0,0, 8 +191,2, 0,0, 8 +191,1, 0,0, 8 +191,0, 0,0, 8 + +; INTRO -- WOODBREAK (projectile) +; Note: Putting -1,0 for the sprite means it does not draw anything +[Begin Action 192] +192,0, 0,0, 5 +192,1, 0,0, 8 + -1,0, 0,0, 1 +192,1, 0,0, 3 + -1,0, 0,0, 1 +192,1, 0,0, 3 + -1,0, 0,0, 2 +192,1, 0,0, 3 + -1,0, 0,0, 2 +Loopstart +192,1, 0,0, 1 + -1,0, 0,0, 3 + +;--------------------------- +; Taunt +[Begin Action 195] +Clsn2Default: 2 + Clsn2[0] = 18, 0,-10,-79 + Clsn2[1] = -1,-94, 12,-78 +200,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 13, 0,-13,-84 + Clsn2[1] = -7,-99, 6,-85 +181,0, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -13,-88, 13, 0 + Clsn2[1] = -8,-105, 4,-87 +181,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -13,-88, 13, 0 + Clsn2[1] = 5,-84, 17,-104 +181,3, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -13,-88, 13, 0 + Clsn2[1] = 14,-76, 27,-95 +181,4, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 13, 0,-13,-78 + Clsn2[1] = 36,-81, 9,-64 +181,5, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 13, 0,-13,-78 + Clsn2[1] = 9,-79, 38,-62 +181,6, 0,0, 12 +Clsn2: 2 + Clsn2[0] = 13, 0,-13,-78 + Clsn2[1] = 36,-81, 9,-64 +181,5, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -13,-88, 13, 0 + Clsn2[1] = 14,-76, 27,-95 +181,4, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -13,-88, 13, 0 + Clsn2[1] = 5,-84, 17,-104 +181,3, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -13,-88, 13, 0 + Clsn2[1] = -8,-105, 4,-87 +181,2, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 13, 0,-13,-84 + Clsn2[1] = -7,-99, 6,-85 +181,0, 0,0, 3 +200,0, 0,0, 2 + +;----------------------------------- +; Stand Light Punch +[Begin Action 200] +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 2 +200,1, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 16,-80, 61,-71 +Clsn2: 3 + Clsn2[0] = 19, 0,-10,-80 + Clsn2[1] = 6,-94, 18,-78 + Clsn2[2] = 19,-80, 61,-71 +200,2, 0,0, 4 +200,1, 0,0, 3 +200,0, 0,0, 2 + +;----------------------------------- +; Stand Strong Punch +[Begin Action 210] +Clsn2: 2 + Clsn2[0] = 19, 0,-10,-81 + Clsn2[1] = 0,-96, 12,-80 +200,0, 0,0, 2 +Clsn2: 3 + Clsn2[0] = -11, 0, 43,-32 + Clsn2[1] = 41,-32, 12,-75 + Clsn2[2] = 21,-91, 34,-75 +210,0, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 45, 0, -7,-32 + Clsn2[1] = 19,-73, 48,-24 + Clsn2[2] = 35,-89, 48,-72 +210,1, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 47,-31, -6, 0 + Clsn2[1] = 17,-31, 47,-78 + Clsn2[2] = 31,-94, 42,-76 +210,2, 0,0, 2 +Clsn1: 2 + Clsn1[0] = 27,-86, 64,-60 + Clsn1[1] = 64,-63, 79,-82 +Clsn2: 5 + Clsn2[0] = 40, 0,-11,-32 + Clsn2[1] = 34,-32, 5,-86 + Clsn2[2] = 13,-97, 26,-77 + Clsn2[3] = 34,-60, 64,-86 + Clsn2[4] = 64,-63, 79,-82 +210,3, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 40, 0,-11,-32 + Clsn2[1] = 34,-32, 5,-86 + Clsn2[2] = 13,-97, 26,-77 +210,4, 0,0, 4 +Clsn2: 3 + Clsn2[0] = -11, 0, 32,-39 + Clsn2[1] = 24,-39, -1,-81 + Clsn2[2] = 20,-79, 8,-95 +210,5, 0,0, 6 +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-81 + Clsn2[1] = 0,-96, 12,-80 +200,0, 0,0, 3 + +; Standing Light Kick +[Begin Action 230] +Clsn2: 2 + Clsn2[0] = 19, 0,-10,-81 + Clsn2[1] = 0,-96, 12,-80 +200,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = -10,-84, 19, 0 + Clsn2[1] = 2,-99, 15,-83 +230,0, 0,0, 2 +Clsn1: 3 + Clsn1[0] = 38,-53, 14,-36 + Clsn1[1] = 35,-42, 56,-29 + Clsn1[2] = 69,-34, 53,-23 +Clsn2: 5 + Clsn2[0] = -6,-84, 18, 0 + Clsn2[1] = 6,-98, 19,-83 + Clsn2[2] = 18,-53, 38,-36 + Clsn2[3] = 56,-29, 35,-42 + Clsn2[4] = 53,-23, 69,-34 +230,1, 0,0, 3 +Clsn2: 5 + Clsn2[0] = -6,-84, 18, 0 + Clsn2[1] = 6,-98, 19,-83 + Clsn2[2] = 32,-37, 18,-54 + Clsn2[3] = 32,-42, 45,-29 + Clsn2[4] = 52,-22, 44,-34 +230,2, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -10,-84, 19, 0 + Clsn2[1] = 2,-99, 15,-83 +230,0, 0,0, 3 +200,0, 0,0, 2 + +; Standing Strong Kick +[Begin Action 240] +Clsn2Default: 3 + Clsn2[0] = -13,-82, 6, 0 + Clsn2[1] = -12,-95, 0,-81 + Clsn2[2] = 24,-28, 2,-66 +240,0, 0,0, 4 +240,1, 0,0, 3 +Clsn1: 1 + Clsn1[0] = 4,-65, 67,-50 +Clsn2: 4 + Clsn2[0] = 6, 0, -9,-62 + Clsn2[1] = -20,-80, 4,-57 + Clsn2[2] = -19,-94, -7,-79 + Clsn2[3] = 67,-50, 3,-65 +240,2, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 70,-65, 8,-50 +Clsn2: 4 + Clsn2[0] = 9, 0, -7,-62 + Clsn2[1] = -18,-80, 6,-57 + Clsn2[2] = -16,-94, -4,-80 + Clsn2[3] = 3,-65, 70,-50 +240,3, 0,0, 4 +Clsn2: 4 + Clsn2[0] = -6, -1, 9,-60 + Clsn2[1] = -12,-81, 13,-55 + Clsn2[2] = -9,-92, 2,-81 + Clsn2[3] = 9,-57, 37,-39 +240,4, 0,0, 4 +Clsn2: 3 + Clsn2[0] = -2, 0, 30,-58 + Clsn2[1] = -2,-79, 22,-58 + Clsn2[2] = 1,-94, 12,-79 +240,5, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -9, 0, 17,-80 + Clsn2[1] = 0,-94, 12,-81 +200,0, 0,0, 3 + +; Crouching light punch +[Begin Action 400] +Clsn2: 2 + Clsn2[0] = 18, 0,-15,-48 + Clsn2[1] = -4,-63, 9,-48 +400,0, 0,0, 3 +Clsn1: 1 + Clsn1[0] = 54,-40, 17,-48 +Clsn2: 3 + Clsn2[0] = -14, 0, 19,-48 + Clsn2[1] = 0,-63, 12,-48 + Clsn2[2] = 18,-48, 54,-40 +400,1, 0,0, 6 +Clsn2: 2 + Clsn2[0] = 18, 0,-15,-48 + Clsn2[1] = -4,-63, 9,-48 +400,0, 0,0, 3 + +; Crouching strong punch +[Begin Action 410] +Clsn2Default: 2 + Clsn2[0] = -10, 0, 30,-58 + Clsn2[1] = 2,-76, 14,-58 +410,0, 0,0, 2 +410,1, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 45,-37, 20,-62 +Clsn2: 3 + Clsn2[0] = -2, 0, 32,-55 + Clsn2[1] = 9,-75, 21,-54 + Clsn2[2] = 45,-37, 20,-62 +410,2, 0,0, 3 +Clsn1: 2 + Clsn1[0] = 51,-79, 29,-57 + Clsn1[1] = 44,-94, 57,-74 +Clsn2: 4 + Clsn2[0] = -1, 0, 39,-42 + Clsn2[1] = 14,-43, 34,-83 + Clsn2[2] = 51,-79, 34,-62 + Clsn2[3] = 44,-94, 57,-74 +410,3, 0,0, 7 +Clsn2: 3 + Clsn2[0] = 37, 0, -5,-37 + Clsn2[1] = 6,-37, 36,-64 + Clsn2[2] = 13,-78, 25,-64 +410,4, 0,0, 5 +410,0, 0,0, 3 + +; Crouching Light Kick +[Begin Action 430] +Clsn2: 3 + Clsn2[0] = 28, 0,-15,-28 + Clsn2[1] = -19,-49, 14,-28 + Clsn2[2] = -1,-47,-13,-60 +430,0, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 29, 0,-21,-31 + Clsn2[1] = 11,-23,-19,-45 + Clsn2[2] = -7,-42,-18,-54 +430,1, 0,0, 2 +Clsn1: 3 + Clsn1[0] = 24,-24, 8,-13 + Clsn1[1] = 23,-19, 45,-10 + Clsn1[2] = 45,-11, 63, 0 +Clsn2: 5 + Clsn2[0] = 11, 0,-20,-41 + Clsn2[1] = -21,-50,-10,-38 + Clsn2[2] = 24,-24, 8,-13 + Clsn2[3] = 23,-19, 45,-10 + Clsn2[4] = 45,-11, 63, 0 +430,2, 0,0, 3 +Clsn2: 5 + Clsn2[0] = -20,-41, 11, 0 + Clsn2[1] = -21,-50,-10,-39 + Clsn2[2] = 11,-25, 24,-13 + Clsn2[3] = 23,-19, 43,-10 + Clsn2[4] = 43,-11, 60, 0 +430,3, 0,0, 4 +Clsn2: 3 + Clsn2[0] = 29, 0,-21,-31 + Clsn2[1] = 11,-23,-19,-45 + Clsn2[2] = -7,-42,-18,-54 +430,1, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 28, 0,-15,-28 + Clsn2[1] = -19,-49, 14,-28 + Clsn2[2] = -1,-47,-13,-60 +430,0, 0,0, 3 + +; Crouching Strong Kick +[Begin Action 440] +Clsn2: 3 + Clsn2[0] = -15, 0, 28,-28 + Clsn2[1] = -7,-28, 25,-50 + Clsn2[2] = 7,-65, 19,-48 +440,0, 0,0, 4 +Clsn2Default: 3 + Clsn2[0] = 26, 0,-17,-24 + Clsn2[1] = -7,-24, 27,-48 + Clsn2[2] = 7,-58, 20,-46 +440,1, 0,0, 3 +440,2, 0,0, 2 +Clsn1: 3 + Clsn1[0] = 40,-10, 18,-25 + Clsn1[1] = 40,-17, 58, -4 + Clsn1[2] = 76, 1, 58,-10 +Clsn2: 5 + Clsn2[0] = 17,-52, -7, 0 + Clsn2[1] = 40,-10, 12,-25 + Clsn2[2] = 40,-17, 58, -4 + Clsn2[3] = 76, 1, 58,-10 + Clsn2[4] = 8,-59, 20,-46 +440,3, 0,0, 4 +Clsn2Default: 4 + Clsn2[0] = 17, 0, -7,-52 + Clsn2[1] = 8,-59, 20,-46 + Clsn2[2] = 17,-27, 33,-11 + Clsn2[3] = 33,-17, 52, -4 +440,4, 0,0, 5 +440,5, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 26, 0,-17,-24 + Clsn2[1] = -7,-24, 27,-48 + Clsn2[2] = 7,-58, 20,-46 +440,6, 0,0, 5 +Clsn2: 3 + Clsn2[0] = -15, 0, 28,-28 + Clsn2[1] = -7,-28, 25,-50 + Clsn2[2] = 7,-65, 19,-48 +440,0, 0,0, 4 + +; Jump light punch +[Begin Action 600] +Clsn2Default: 2 + Clsn2[0] = -11,-72, 16,-27 + Clsn2[1] = -5,-87, 8,-72 +600,0, 0,0, 3 +Clsn1: 2 + Clsn1[0] = 15,-70, 31,-60 + Clsn1[1] = 49,-54, 29,-65 +Clsn2: 4 + Clsn2[0] = -13,-72, 17,-27 + Clsn2[1] = 0,-87, 12,-71 + Clsn2[2] = 15,-70, 31,-60 + Clsn2[3] = 49,-54, 29,-65 +600,1, 0,0, 11 +Clsn2: 4 + Clsn2[0] = -13,-72, 17,-27 + Clsn2[1] = 0,-87, 12,-71 + Clsn2[2] = 15,-70, 31,-60 + Clsn2[3] = 49,-54, 29,-65 +600,1, 0,0, 4 +600,0, 0,0, -1 + +; Jump strong punch +[Begin Action 610] +Clsn2: 2 + Clsn2[0] = -13,-76, 18,-24 + Clsn2[1] = -2,-88, 11,-73 +610,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 20,-23,-10,-76 + Clsn2[1] = 7,-91, 27,-68 +610,1, 0,0, 3 +Clsn1: 1 + Clsn1[0] = 23,-45, 57,-77 +Clsn2: 3 + Clsn2[0] = 20,-23,-10,-76 + Clsn2[1] = 18,-85, 30,-70 + Clsn2[2] = 57,-45, 20,-77 +610,2, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -10,-77, 20,-23 + Clsn2[1] = 10,-92, 23,-71 +610,3, 0,0, 12 +Clsn2: 2 + Clsn2[0] = -10,-77, 20,-23 + Clsn2[1] = 6,-92, 30,-71 +610,1, 0,0, -1 + +; Jump light kick +[Begin Action 630] +Clsn2: 2 + Clsn2[0] = -15,-72, 17,-24 + Clsn2[1] = -8,-91, 4,-72 +640,0, 0,0, 3 +Clsn1: 1 + Clsn1[0] = 11,-54, 35,-37 +Clsn2: 3 + Clsn2[0] = -22,-72, 15,-33 + Clsn2[1] = -11,-90, 0,-71 + Clsn2[2] = 11,-54, 35,-37 +630,1, 0,0, 3 +Clsn1: 2 + Clsn1[0] = 34,-30, 13,-48 + Clsn1[1] = 21,-38, 7,-52 +Clsn2: 3 + Clsn2[0] = -7,-89, 5,-73 + Clsn2[1] = 19,-34,-18,-74 + Clsn2[2] = 13,-48, 34,-30 +630,2, 0,0, 12 +Clsn2: 2 + Clsn2[0] = -22,-72, 15,-33 + Clsn2[1] = -11,-90, 0,-71 +630,1, 0,0, -1 + +; Jump strong kick +[Begin Action 640] +Clsn2: 2 + Clsn2[0] = -15,-72, 17,-24 + Clsn2[1] = -8,-91, 4,-72 +640,0, 0,0, 6 +Clsn1: 2 + Clsn1[0] = 43,-48, 13,-33 + Clsn1[1] = 43,-42, 69,-28 +Clsn2: 4 + Clsn2[0] = -21,-73, 15,-29 + Clsn2[1] = -4,-73,-15,-90 + Clsn2[2] = 15,-48, 43,-33 + Clsn2[3] = 43,-42, 69,-28 +640,1, 0,0, 5 +Clsn2: 3 + Clsn2[0] = -19,-73, 14,-32 + Clsn2[1] = 14,-48, 35,-35 + Clsn2[2] = -12,-89, -2,-73 +640,2, 0,0, 8 +Clsn2: 2 + Clsn2[0] = -15,-72, 17,-24 + Clsn2[1] = -8,-91, 4,-72 +640,0, 0,0, -1 + +;----------------------------------- +; Kung Fu Throw Attempt +[Begin Action 800] +Clsn1: 1 + Clsn1[0] = 0,-81, 26, 0 +Clsn2Default: 2 + Clsn2[0] = -8, 0, 21,-81 + Clsn2[1] = 10,-94, 20,-80 +800,0, 0,0, 1 +800,0, 0,0, 1 +800,1, 0,0, 3 +800,2, 0,0, 10 +800,4, 0,0, 4 +800,0, 0,0, 3 + +;----------------------------------- +;Kung Fu Throw +[Begin Action 810] +800, 0, 0,0, 2 +800, 1, 0,0, 3 +800, 2, 0,0, 10 +800, 3, 0,0, 5 +800, 4, 0,0, 3 +800, 5, 0,0, 4 +800, 6, 0,0, 4 +800, 7, 0,0, 3 +800, 8, 0,0, 3 +800, 9, 0,0, 3 +800,10, 0,0, 5 +800,11, 0,0, 4, H +800,11, 0,0, 4, H +800,12, 0,0, 12, H +200, 0, 0,0, 5 + +;----------------------------------- +;Thrown by Kung Fu Throw (animation for opponent) +; Note: Use ONLY the required frames documented in spr.txt and spr.gif. +; It is important to be restricted to the required frames so that +; the throw animation will look correct for any given character. +; Notice that the animation timings are synchronized to KFM's +; throw animation (action 810). +[Begin Action 820] +5000, 0, 0,0, 2 +5010, 0, 0,0, 3 +5010,10, 0,0, 10 +5010,10, 0,0, 5 +5010, 0, 0,0, 3 +5061, 0, 0,0, 4 +5071, 0, 0,0, 4 +5071,10, 0,0, 3 +5071,20, 0,0, 3 +5031, 0, 0,0, 3, HV +5011, 0, 0,-40, 5, HV +Clsn2: 2 + Clsn2[0] = -26,-38, 6,-69 + Clsn2[1] = 18,-81,-12,-55 +5030,40, 0,0, 5 +Clsn2: 1 + Clsn2[0] = -26,-32, 20,-66 +5030,30, 0,0,-1 + +;----------------------------------- +; Light Kung Fu Palm +[Begin Action 1000] +Clsn2: 2 + Clsn2[0] = -14, 0, 15,-80 + Clsn2[1] = -6,-94, 7,-80 +200,0, -5,0, 1 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 2 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,1, 0,0, 2 +1000,2, 0,0, 2 +1000,3, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 68,-66, 9,-44 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-66, 68,-46 +1000,4, 0,0, 3 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 68,-46 +1000,5, 0,0, 7 +1000,7, 0,0, 4 +1000,2, 0,0, 3 +1000,1, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -14, 0, 15,-80 + Clsn2[1] = -6,-94, 7,-80 +200,0, -5,0, 2 + +;----------------------------------- +; Strong Kung Fu Palm +[Begin Action 1010] +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 2 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,1, 0,0, 2 +1000,2, 0,0, 2 +1000,3, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 68,-66, 9,-44 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-66, 68,-46 +1000,4, 0,0, 3 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 68,-46 +1000,5, 0,0, 5 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 68,-46 +1000,6, 0,0, 5 +1000,7, 0,0, 4 +1000,2, 0,0, 3 +1000,1, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -15, 0, 15,-80 + Clsn2[1] = -5,-94, 7,-79 +200,0, -5,0, 3 + +;----------------------------------- +; Fast Kung Fu Palm +[Begin Action 1020] +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,1, 0,0, 3 +1000,3, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 66,-66, 9,-44 +Clsn2Default: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-66, 66,-46 +1000,4, 0,0, 5 +Clsn1: 1 + Clsn2[0] = 66,-66, 9,-44 +1000,5, 0,0, 4 +Clsn2Default: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 66,-46 +1000,6, 0,0, 4 +1000,5, 0,0, 4 +1000,6, 0,0, 3 +1000,7, 0,0, 3 +1000,1, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -15, 0, 15,-80 + Clsn2[1] = -6,-94, 7,-80 +200,0, -5,0, 2 + +; Hit by Fast Kung Fu Palm +[Begin Action 1025] +Clsn2: 1 + Clsn2[0] = -29,-73, 8,-27 +5010,10, 0,0, 4 +Clsn2: 1 + Clsn2[0] = -29,-73, 8,-27 +5010,20, 0,0, 4 +Clsn2Default: 1 + Clsn2[0] = -29,-82, 12,-48 +5030, 0, 0,0, 4 +5030,10, 0,0, -1 + +; Hit by Fast Kung Fu Palm - hit wall +[Begin Action 1027] +Clsn2Default: 1 + Clsn2[0] = -33,-68, 1,-23 +5010,20, 0,0, 3 +5010,10, 0,0, 3 +5010, 0, 0,0, 2 + +;----------------------------------- +; Light Kung Fu Knee - move forwards +[Begin Action 1050] +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 25, 0,-16,-41 + Clsn2[1] = -16, 0,-39,-21 + Clsn2[2] = 18,-41, -7,-71 + Clsn2[3] = 5,-81, 15,-68 +1050,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 24, 0, -9,-79 + Clsn2[1] = 7,-91, 19,-78 +1050,1, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 5,-67, 24,-36 +Clsn2: 2 + Clsn2[0] = -12,-105, 10, 0 + Clsn2[1] = 5,-67, 24,-31 +1050,2, 0,0, 2 + +;----------------------------------- +; Light Kung Fu Knee - jump +[Begin Action 1051] +Clsn1: 1 + Clsn1[0] = 34,-90, 9,-49 +Clsn2Default: 4 + Clsn2[0] = -13,-101, 13,-60 + Clsn2[1] = -6,-34, 9,-60 + Clsn2[2] = 30,-80, 9,-49 + Clsn2[3] = 6,-110, 18,-95 +1050,3, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,4, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,3, 0,0, 4 +Clsn2: 3 + Clsn2[0] = -8,-97, 12,-35 + Clsn2[1] = 16,-92, 5,-105 + Clsn2[2] = 10,-71, 25,-40 +1050,5, 0,0, 4 +Clsn2: 3 + Clsn2[0] = -8,-95, 12,-33 + Clsn2[1] = 6,-104, 16,-92 + Clsn2[2] = 10,-64, 29,-33 +1050,6, 0,0, 4 +Clsn2: 3 + Clsn2[0] = 10,-27,-11,-95 + Clsn2[1] = 6,-104, 16,-92 + Clsn2[2] = 27,-27, 10,-63 +1050,7, 0,0, -1 + +;----------------------------------- +; Light Kung Fu Knee - land +[Begin Action 1052] +Clsn2: 3 + Clsn2[0] = 26, 0,-11,-47 + Clsn2[1] = 16,-47, -9,-77 + Clsn2[2] = 16,-76, 5,-88 +1052,0, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 27, 0,-10,-37 + Clsn2[1] = -5,-65, 19,-36 + Clsn2[2] = 18,-63, 8,-74 +1052,1, 0,0, 4 +Clsn2: 3 + Clsn2[0] = 15, 0,-12,-40 + Clsn2[1] = -11,-40, 9,-70 + Clsn2[2] = 1,-79, 11,-67 +1052,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -16,-85, 14, 0 + Clsn2[1] = -1,-95, 9,-84 +1052,3, 0,0, 3 + +;----------------------------------- +; Light Kung Fu Knee - kick +[Begin Action 1055] +Clsn2: 2 + Clsn2[0] = -16,-87, 19,-48 + Clsn2[1] = -7,-99, 3,-86 +1055,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 19,-48,-16,-87 + Clsn2[1] = -6,-99, 5,-86 +1055,1, 0,0, 2 +Clsn2: 2 + Clsn2[0] = -16,-87, 19,-48 + Clsn2[1] = -6,-101, 3,-87 +1055,2, 0,0, 1 +Clsn2: 3 + Clsn2[0] = -16,-93, 14,-41 + Clsn2[1] = -9,-104, 3,-90 + Clsn2[2] = 31,-100, 13,-78 +1055,3, 0,0, 1 +Clsn1: 2 + Clsn1[0] = 14,-96, 32,-44 + Clsn1[1] = 45,-111, 30,-77 +Clsn2: 4 + Clsn2[0] = -16,-93, 14,-41 + Clsn2[1] = -9,-104, 3,-90 + Clsn2[2] = 14,-96, 32,-44 + Clsn2[3] = 45,-111, 30,-77 +1055,4, 0,0, 3 +Clsn2: 3 + Clsn2[0] = -16,-93, 14,-41 + Clsn2[1] = -9,-104, 3,-90 + Clsn2[2] = 31,-94, 14,-72 +1055,5, 0,0, 7 +Clsn2: 3 + Clsn2[0] = -16,-41, 14,-93 + Clsn2[1] = -9,-104, 3,-90 + Clsn2[2] = 14,-77, 31,-65 +1055,6, 0,0, 3 +Clsn2: 3 + Clsn2[0] = -16,-93, 14,-41 + Clsn2[1] = -9,-104, 3,-90 + Clsn2[2] = 14,-73, 28,-51 +1055,7, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 14,-33,-11,-92 + Clsn2[1] = -3,-103, 9,-89 +41,6, 0,-5, 3 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +;----------------------------------- +; Light Kung Fu Knee - kick land +[Begin Action 1056] +Clsn2: 2 + Clsn2[0] = -15,-65, 15, 0 + Clsn2[1] = -6,-80, 5,-64 +11,1, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 13, 0,-15,-53 + Clsn2[1] = -6,-68, 5,-53 +11,0, 0,0, 3 + +;----------------------------------- +; Strong Kung Fu Knee - move forwards +[Begin Action 1060] +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 38, 0, -3,-41 + Clsn2[1] = -3, 0,-26,-21 + Clsn2[2] = 31,-41, 6,-71 + Clsn2[3] = 18,-81, 31,-68 +1050,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 24, 0, -9,-79 + Clsn2[1] = 7,-91, 19,-78 +1050,1, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 5,-67, 24,-36 +Clsn2: 2 + Clsn2[0] = -12,-105, 10, 0 + Clsn2[1] = 5,-67, 24,-31 +1050,2, 0,0, 2 + +;----------------------------------- +; Strong Kung Fu Knee - jump +[Begin Action 1061] +Clsn1: 1 + Clsn1[0] = 34,-90, 9,-49 +Clsn2Default: 4 + Clsn2[0] = -13,-101, 13,-60 + Clsn2[1] = -6,-34, 9,-60 + Clsn2[2] = 30,-80, 9,-49 + Clsn2[3] = 6,-110, 18,-95 +1050,3, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,4, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,3, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,4, 0,0, 4 +Clsn2: 3 + Clsn2[0] = -8,-97, 12,-35 + Clsn2[1] = 16,-92, 5,-105 + Clsn2[2] = 10,-71, 25,-40 +1050,5, 0,0, 5 +Clsn2: 3 + Clsn2[0] = -8,-95, 12,-33 + Clsn2[1] = 6,-104, 16,-92 + Clsn2[2] = 10,-64, 29,-33 +1050,6, 0,0, 5 +Clsn2: 3 + Clsn2[0] = 10,-27,-11,-95 + Clsn2[1] = 6,-104, 16,-92 + Clsn2[2] = 27,-27, 10,-63 +1050,7, 0,0, -1 + +;----------------------------------- +; Fast Kung Fu Knee - move forwards +[Begin Action 1070] +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 38, 0, -3,-41 + Clsn2[1] = -3, 0,-26,-21 + Clsn2[2] = 31,-41, 6,-71 + Clsn2[3] = 18,-81, 31,-68 +1050,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 24, 0, -9,-79 + Clsn2[1] = 7,-91, 19,-78 +1050,1, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 5,-67, 26,-36 +Clsn2: 2 + Clsn2[0] = -12,-105, 10, 0 + Clsn2[1] = 5,-67, 26,-31 +1050,2, 0,0, 1 + +;----------------------------------- +; Fast Kung Fu Knee - jump +[Begin Action 1071] +Clsn1: 1 + Clsn1[0] = 34,-90, 9,-49 +Clsn2Default: 4 + Clsn2[0] = -13,-101, 13,-60 + Clsn2[1] = -6,-34, 9,-60 + Clsn2[2] = 30,-80, 9,-49 + Clsn2[3] = 6,-110, 18,-95 +1050,3, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,4, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,3, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,4, 0,0, 4 +Clsn2: 3 + Clsn2[0] = -8,-97, 12,-35 + Clsn2[1] = 16,-92, 5,-105 + Clsn2[2] = 10,-71, 25,-40 +1050,5, 0,0, 5 +Clsn2: 3 + Clsn2[0] = -8,-95, 12,-33 + Clsn2[1] = 6,-104, 16,-92 + Clsn2[2] = 10,-64, 29,-33 +1050,6, 0,0, 5 +Clsn2: 3 + Clsn2[0] = 10,-27,-11,-95 + Clsn2[1] = 6,-104, 16,-92 + Clsn2[2] = 27,-27, 10,-63 +1050,7, 0,0, -1 + +;----------------------------------- +; Light Kung Fu Upper +[Begin Action 1100] +Clsn2Default: 1 + Clsn2[0] = -12, 0, 16,-94 +1100,0, 0,0, 2 +1100,1, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 22, -58, 43, -18 +Clsn2: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 22, -58, 43, -18 +1100,2, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 23,-92, 34,-76 +1100,3, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 31, 0, -3,-85 + Clsn2[1] = 14,-96, 27,-80 +1100,4, 0,0, 1 +Clsn2: 1 + Clsn2[0] = 32, 0, 1,-96 +1100,5, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-60, 55,-131 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 30,-131, 44,-93 +1100,6, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-93, 44,-131 +1100,6, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 27,-110, 38,-93 +1100,7, 0,0, 4 +1100,6, 0,0, 4 +1100,8, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 32,-80, 43,-97 +1100,9, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,1, 0,0, 2 +200,0, 0,0, 2 + +;----------------------------------- +; Strong Kung Fu Upper +[Begin Action 1110] +Clsn2Default: 1 + Clsn2[0] = -12, 0, 16,-94 +1100,0, 0,0, 2 +1100,1, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 22, -58, 43, -21 +Clsn2: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 22, -58, 43, -21 +1100,2, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 23,-92, 34,-76 +1100,3, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 31, 0, -3,-85 + Clsn2[1] = 14,-96, 27,-80 +1100,4, 0,0, 1 +Clsn2: 1 + Clsn2[0] = 32, 0, 1,-96 +1100,5, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-60, 55,-131 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 30,-131, 44,-93 +1100,6, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-93, 44,-131 +1100,6, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 27,-110, 38,-93 +1100,7, 0,0, 4 +1100,6, 0,0, 4 +1100,7, 0,0, 4 +1100,8, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 32,-80, 43,-97 +1100,9, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,1, 0,0, 2 +200,0, 0,0, 2 + +;----------------------------------- +; Fast Kung Fu Upper +[Begin Action 1120] +Clsn2Default: 1 + Clsn2[0] = -12, 0, 16,-94 +1100,0, 0,0, 1 +1100,1, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 22, -58, 43, -24 +Clsn2: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 22, -58, 43, -24 +1100,2, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 25, -62, 46, -30 +Clsn2: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 25, -62, 46, -30 +1100,3, 0,0, 1 +Clsn2: 2 + Clsn2[0] = 31, 0, -3,-85 + Clsn2[1] = 14,-96, 27,-80 +1100,4, 0,0, 1 +Clsn2: 1 + Clsn2[0] = 32, 0, 1,-96 +1100,5, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-60, 55,-131 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 30,-131, 44,-93 +1100,6, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-93, 44,-131 +1100,6, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 27,-110, 38,-93 +1100,7, 0,0, 4 +1100,6, 0,0, 4 +1100,7, 0,0, 4 +1100,6, 0,0, 4 +1100,8, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 32,-80, 43,-97 +1100,9, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,1, 0,0, 2 +200,0, 0,0, 2 + +;----------------------------------- +; Light Kung Fu Blow +[Begin Action 1200] +Clsn2Default: 2 + Clsn2[0] = -14,-84, 17, 0 + Clsn2[1] = -5,-96, 6,-81 +1210,0, 0,0, 3 +1210,1, 0,0, 6 +1210,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +1210,2, 0,0, 1 +Clsn2: 2 + Clsn2[0] = -7,-80, 34, 0 + Clsn2[1] = 11,-93, 24,-79 +1210,3, 0,0, 1 +Clsn2: 4 + Clsn2[0] = 17,-71, 51, 0 + Clsn2[1] = 37,-82, 50,-69 + Clsn2[2] = -9,-22, 17, 0 + Clsn2[3] = -14,-72, 91,-55 +1210,4, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 52, 0, 14,-70 + Clsn2[1] = 33,-82, 45,-69 + Clsn2[2] = -9, 0, 18,-19 + Clsn2[3] = 1,-71, 73,-56 +1210,5, 0,0, 8 +Clsn2: 3 + Clsn2[0] = 53, 0, -8,-40 + Clsn2[1] = 6,-73, 46,-32 + Clsn2[2] = 37,-68, 23,-84 +1210,6, 0,0, 6 +Clsn2: 2 + Clsn2[0] = -7,-80, 34, 0 + Clsn2[1] = 11,-93, 24,-79 +1210,3, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +200, 0, 0,0, 3 + +;----------------------------------- +; Strong Kung Fu Blow +[Begin Action 1210] +Clsn2Default: 2 + Clsn2[0] = -14,-84, 17, 0 + Clsn2[1] = -5,-96, 6,-81 +1210,0, 0,0, 4 +1210,1, 0,0, 8 +1210,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +1210,2, 0,0, 1 +Clsn2: 2 + Clsn2[0] = -7,-80, 34, 0 + Clsn2[1] = 11,-93, 24,-79 +1210,3, 0,0, 1 +Clsn2: 4 + Clsn2[0] = 17,-71, 51, 0 + Clsn2[1] = 37,-82, 50,-69 + Clsn2[2] = -9,-22, 17, 0 + Clsn2[3] = -14,-72, 91,-55 +1210,4, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 52, 0, 14,-70 + Clsn2[1] = 33,-82, 45,-69 + Clsn2[2] = -9, 0, 18,-19 + Clsn2[3] = 1,-71, 73,-56 +1210,5, 0,0, 12 +Clsn2: 3 + Clsn2[0] = 53, 0, -8,-40 + Clsn2[1] = 6,-73, 46,-32 + Clsn2[2] = 37,-68, 23,-84 +1210,6, 0,0, 6 +Clsn2: 2 + Clsn2[0] = -7,-80, 34, 0 + Clsn2[1] = 11,-93, 24,-79 +1210,3, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +200, 0, 0,0, 3 + +;----------------------------------- +; Fast Kung Fu Blow +[Begin Action 1220] +Clsn2Default: 2 + Clsn2[0] = -14,-84, 17, 0 + Clsn2[1] = -5,-96, 6,-81 +1210,0, 0,0, 2 +1210,1, 0,0, 3 +1210,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +1210,2, 0,0, 1 +Clsn2: 2 + Clsn2[0] = -7,-80, 34, 0 + Clsn2[1] = 11,-93, 24,-79 +1210,3, 0,0, 1 +Clsn2: 4 + Clsn2[0] = 17,-71, 51, 0 + Clsn2[1] = 37,-82, 50,-69 + Clsn2[2] = -9,-22, 17, 0 + Clsn2[3] = -14,-72, 91,-55 +1210,4, 0,0, 3 +Clsn2: 4 + Clsn2[0] = 52, 0, 14,-70 + Clsn2[1] = 33,-82, 45,-69 + Clsn2[2] = -9, 0, 18,-19 + Clsn2[3] = 1,-71, 73,-56 +1210,5, 0,0, 12 +Clsn2: 3 + Clsn2[0] = 53, 0, -8,-40 + Clsn2[1] = 6,-73, 46,-32 + Clsn2[2] = 37,-68, 23,-84 +1210,6, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -7,-80, 34, 0 + Clsn2[1] = 11,-93, 24,-79 +1210,3, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +200, 0, 0,0, 3 + +; Projectile +[Begin Action 1230] +Clsn1Default: 1 + Clsn1[0] = 4, 0, 12, 8 +Clsn2Default: 1 + Clsn2[0] = -18, -12, 18, 12 +191,3, 0,0, 6 +191,2, 0,0, 6 +191,1, 0,0, 6 +191,0, 0,0, 6 + +; Projectile hit +[Begin Action 1231] +192,0, 0,0, 5 +192,1, 0,0, 10, , AS256D0 +Interpolate Blend +192,1, 0,0, 1, , AS0D256 + +;----------------------------------- +; Kung Fu Blocking High (attempt) +[Begin Action 1300] +Clsn1: 2 + Clsn2[0] = 0, 1, 34,-84 + Clsn2[1] = 13,-97, 47,-65 +Clsn2: 2 + Clsn2[0] = 0, 1, 34,-84 + Clsn2[1] = 13,-97, 47,-65 +1300,0, 0,0, 2 +Clsn1: 2 + Clsn2[0] = -4,-83, 31, 0 + Clsn2[1] = 10,-96, 39,-67 +Clsn2: 2 + Clsn2[0] = -4,-83, 31, 0 + Clsn2[1] = 10,-96, 39,-67 +1300,1, 0,0, 7 +Clsn2: 2 + Clsn2[0] = -8,-83, 25, 0 + Clsn2[1] = 4,-94, 16,-82 +1300,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +200, 0, 0,0, 2 + +; Kung Fu Blocking High (successful block) +[Begin Action 1310] +Clsn2Default: 2 + Clsn2[0] = -4,-83, 31, 0 + Clsn2[1] = 10,-96, 39,-67 +1300,1, 0,0, 3 +1300,2, 0,0, 6 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +200, 0, 0,0, 4 + +;----------------------------------- +; Kung Fu Blocking Low (attempt) +[Begin Action 1320] +Clsn1: 2 + Clsn1[0] = -11, 0, 24,-49 + Clsn1[1] = 1,-60, 35,-32 +Clsn2Default: 2 + Clsn2[0] = -11,-49, 24, 0 + Clsn2[1] = 1,-60, 35,-32 +1320,0, 0,0, 2 +Clsn1: 2 + Clsn1[0] = -11, 0, 24,-49 + Clsn1[1] = 1,-60, 35,-32 +1320,1, 0,0, 7 +Clsn2: 2 + Clsn2[0] = 20, 0,-14,-50 + Clsn2[1] = -2,-60, 10,-47 +1320,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 19, 0,-15,-48 + Clsn2[1] = -6,-62, 6,-48 +11,2, 0,0, 2 + +; Kung Fu Blocking Low (successful block) +[Begin Action 1330] +Clsn2Default: 2 + Clsn2[0] = 20, 0,-11,-49 + Clsn2[1] = 1,-60, 31,-32 +1320,1, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 20, 0,-14,-50 + Clsn2[1] = -2,-60, 10,-47 +1320,2, 0,0, 6 +Clsn2: 2 + Clsn2[0] = 19, 0,-15,-48 + Clsn2[1] = -6,-62, 6,-48 +11,2, 0,0, 4 + +;----------------------------------- +; Kung Fu Blocking Air (attempt) +[Begin Action 1340] +Clsn1: 2 + Clsn1[0] = 17,-80,-12,-38 + Clsn1[1] = -2,-89, 20,-59 +Clsn2Default: 2 + Clsn2[0] = -12,-80, 17,-38 + Clsn2[1] = -2,-89, 20,-59 +1340,0, 0,0, 2 +Clsn1: 2 + Clsn1[0] = 17,-80,-12,-38 + Clsn1[1] = -2,-89, 20,-59 +1340,1, 0,0, 7 +1340,0, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-33, 14,-77 + Clsn2[1] = -2,-93, 11,-76 +41,5, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -11,-84, 14,-27 + Clsn2[1] = -3,-99, 9,-84 +41,6, 0,0, 5 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +; Kung Fu Blocking Air (successful block) +[Begin Action 1350] +Clsn2Default: 2 + Clsn2[0] = -12,-80, 17,-38 + Clsn2[1] = -2,-89, 20,-59 +1340,1, 0,0, 3 +1340,0, 0,0, 6 +Clsn2: 2 + Clsn2[0] = -11,-33, 14,-77 + Clsn2[1] = -2,-93, 11,-76 +41,5, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -11,-84, 14,-27 + Clsn2[1] = -3,-99, 9,-84 +41,6, 0,0, 5 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +;----------------------------------- +; Light Kung Fu Zankou +[Begin Action 1400] +Clsn2Default: 2 + Clsn2[0] = 29, 0,-11,-55 + Clsn2[1] = 14,-69, 28,-53 +1400,0, 0,0, 3 +1400,1, -10,0, 2 +Clsn2: 3 + Clsn2[0] = 36, 0, 0,-55 + Clsn2[1] = 14,-69, 28,-53 + Clsn2[2] = 45,-30,-25, 0 +1400,2, 0,0, 3 +Clsn1: 1 + Clsn1[0] = 34,-76, 4,-22 +Clsn2: 2 + Clsn2[0] = 34,-76,-12, 0 + Clsn2[1] = 9,-85, 23,-70 +1400,3, 0,0, 4 +Clsn2Default: 2 + Clsn2[0] = 28,-76,-14, 0 + Clsn2[1] = 7,-85, 21,-70 +1400,4, 0,0, 5 +1400,5, 0,0, 5 +1400,6, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +1400,7, 0,0, 4 + +; Strong Kung Fu Zankou +[Begin Action 1410] +Clsn2Default: 2 + Clsn2[0] = 29, 0,-11,-55 + Clsn2[1] = 14,-69, 28,-53 +1400,0, 0,0, 3 +1400,1, -10,0, 3 +Clsn2: 3 + Clsn2[0] = 36, 0, 0,-55 + Clsn2[1] = 14,-69, 28,-53 + Clsn2[2] = 45,-30,-25, 0 +1400,2, 0,0, 3 +Clsn1: 1 + Clsn1[0] = 34,-76, 4,-22 +Clsn2: 2 + Clsn2[0] = 34,-76,-12, 0 + Clsn2[1] = 9,-85, 23,-70 +1400,3, 0,0, 4 +Clsn2Default: 2 + Clsn2[0] = 28,-76,-14, 0 + Clsn2[1] = 7,-85, 21,-70 +1400,4, 0,0, 5 +1400,5, 0,0, 4 +1400,4, 0,0, 4 +1400,6, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +1400,7, 0,0, 4 + +; Far Kung Fu Zankou +[Begin Action 1420] +Clsn2Default: 2 + Clsn2[0] = 29, 0,-11,-55 + Clsn2[1] = 14,-69, 28,-53 +1400,0, 0,0, 5 +1400,1, -10,0, 3 +Clsn1: 1 + Clsn1[0] = 36,-55, 19,-18 +Clsn2: 3 + Clsn2[0] = 36, 0, 0,-55 + Clsn2[1] = 14,-69, 28,-53 + Clsn2[2] = 45,-30,-25, 0 +1400,2, 0,0, 7 +Clsn1: 1 + Clsn1[0] = 34,-76, 4,-22 +Clsn2: 2 + Clsn2[0] = 34,-76,-12, 0 + Clsn2[1] = 9,-85, 23,-70 +1400,3, 0,0, 4 +Clsn2Default: 2 + Clsn2[0] = 28,-76,-14, 0 + Clsn2[1] = 7,-85, 21,-70 +1400,4, 0,0, 4 +1400,5, 0,0, 4 +1400,4, 0,0, 4 +1400,5, 0,0, 4 +1400,6, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +1400,7, 0,0, 4 + +; Hit by Fast Kung Fu Zankou - hit wall +[Begin Action 1427] +Clsn2Default: 1 + Clsn2[0] = -33,-68, 1,-23 +5060,0, 0,0, 8 + +;----------------------------------- +; Triple Kung Fu Palm +[Begin Action 3000] +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 2 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,1, 0,0, 3 +1000,2, 0,0, 4 +1000,3, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 68,-71, 9,-40 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-71, 68,-40 +1000,4, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 68,-46 +1000,5, 0,0, 2 +1000,7, 0,0, 2 +1000,2, 0,0, 2 +1000,1, 0,0, 1 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,2, 0,0, 2 +1000,3, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 68,-71, 9,-40 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-71, 68,-40 +1000,4, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 68,-46 +1000,5, 0,0, 2 +1000,7, 0,0, 2 +1000,2, 0,0, 2 +1000,1, 0,0, 1 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,2, 0,0, 2 +1000,3, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 68,-71, 9,-40 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-71, 68,-40 +1000,4, 0,0, 3 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 68,-46 +1000,5, 0,0, 5 +1000,6, 0,0, 5 +1000,5, 0,0, 5 +1000,6, 0,0, 5 +1000,5, 0,0, 5 +1000,6, 0,0, 4 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,7, 0,0, 4 +1000,1, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -15, 0, 15,-80 + Clsn2[1] = -6,-94, 7,-80 +200,0, -5,0, 3 + +;----------------------------------- +; Smash Kung Fu Upper +[Begin Action 3050] +Clsn2Default: 1 + Clsn2[0] = -12, 0, 16,-94 +1100,0, 0,0, 1 +1100,0, 0,0, 1 +1100,1, 0,0, 1 +Clsn2Default: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 23,-92, 34,-76 +1100,2, 0,0, 1 +1100,3, 0,0, 1 +Clsn2: 2 + Clsn2[0] = 31, 0, -3,-85 + Clsn2[1] = 14,-96, 27,-80 +1100,4, 0,0, 1 +Clsn2: 1 + Clsn2[0] = 32, 0, 1,-96 +1100,5, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-40, 55,-131 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 30,-131, 44,-93 +1100,6, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 30,-93, 44,-131 +1100,6, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 27,-110, 38,-93 +1100,7, 0,0, 5 +1100,6, 0,0, 5 +1100,7, 0,0, 5 +1100,6, 0,0, 5 +1100,8, 0,0, 5 +Clsn2: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 32,-80, 43,-97 +1100,9, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,1, 0,0, 2 +200,0, 0,0, 2 + +; Smash Kung Fu Upper (success) +[Begin Action 3051] +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 27,-110, 38,-93 +1100,6, 0,0, 5 +1100,7, 0,0, 5 +1100,6, 0,0, 5 +1100,7, 0,0, 5 +1100,6, 0,0, 5 +1100,7, 0,0, 5 +1100,6, 0,0, 5 +1100,8, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 32,-80, 43,-97 +1100,9, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,1, 0,0, 2 +200,0, 0,0, 2 + +;-------------------- +; GUARDSTART (stand) +[Begin Action 120] +Clsn2Default: 4 + Clsn2[0] = 14, 0,-13,-43 + Clsn2[1] = -11,-43, 12,-86 + Clsn2[2] = -1,-86,-11,-94 + Clsn2[3] = -20,-78, 13,-58 +120,0, 0,0, 1 + +; GUARDSTART (crouch) +[Begin Action 121] +Clsn2: 2 + Clsn2[0] = -17, 0, 16,-56 + Clsn2[1] = 3,-56, -9,-64 +121,0, 0,0, 1 + +; GUARDSTART (air) +[Begin Action 122] +Clsn2: 2 + Clsn2[0] = 22,-38, 0,-88 + Clsn2[1] = 9,-31, -9,-76 +122,0, 0,0, 1 + +; GUARD (stand) +[Begin Action 130] +Clsn2Default: 4 + Clsn2[0] = 14, 0,-13,-43 + Clsn2[1] = -11,-43, 12,-86 + Clsn2[2] = -1,-86,-11,-94 + Clsn2[3] = -20,-78, 13,-58 +120,0, 0,0, -1 + +; GUARD (crouch) +[Begin Action 131] +Clsn2: 2 + Clsn2[0] = -17, 0, 16,-56 + Clsn2[1] = 3,-56, -9,-64 +121,0, 0,0, -1 + +; GUARD (air) +[Begin Action 132] +Clsn2: 2 + Clsn2[0] = 22,-38, 0,-88 + Clsn2[1] = 9,-31, -9,-76 +122,0, 0,0, -1 + +; GUARDEND (stand) +[Begin Action 140] +Clsn2Default: 4 + Clsn2[0] = 14, 0,-13,-43 + Clsn2[1] = -11,-43, 12,-86 + Clsn2[2] = -1,-86,-11,-94 + Clsn2[3] = -20,-78, 13,-58 +120,0, 0,0, 5 + +; GUARDEND (crouch) +[Begin Action 141] +Clsn2: 2 + Clsn2[0] = -17, 0, 16,-56 + Clsn2[1] = 3,-56, -9,-64 +121,0, 0,0, 1 + +; GUARDEND (air) +[Begin Action 142] +Clsn2: 2 + Clsn2[0] = 22,-38, 0,-88 + Clsn2[1] = 9,-31, -9,-76 +122,0, 0,0, 1 + +; Hit back while guarding (stand) +[Begin Action 150] +Clsn2Default: 4 + Clsn2[0] = 14, 0,-13,-43 + Clsn2[1] = -11,-43, 12,-86 + Clsn2[2] = -1,-86,-11,-94 + Clsn2[3] = -20,-78, 13,-58 +120,1, 0,0, 4 +120,2, 0,0, 8 +120,1, 0,0, 4 +120,0, 0,0, -1 + +; Hit back while guarding (crouch) +[Begin Action 151] +Clsn2: 2 + Clsn2[0] = -17, 0, 16,-56 + Clsn2[1] = 3,-56, -9,-64 +121,0, 0,0, -1 + +; Hit back while guarding (air) +[Begin Action 152] +Clsn2: 2 + Clsn2[0] = 22,-38, 0,-88 + Clsn2[1] = 9,-31, -9,-76 +122,0, 0,0, -1 + +;--------------------------- +; Stand/Air Hit high (light) +[Begin Action 5000] +Clsn2Default: 3 + Clsn2[0] = 12, 0,-15,-46 + Clsn2[1] = 9,-46,-15,-81 + Clsn2[2] = 2,-81,-10,-96 +5000, 0, 0,0, 5 +5000,10, 0,0, 5 + +;Stand/Air Hit high (medium) +[Begin Action 5001] +Clsn2Default: 3 + Clsn2[0] = 12, 0,-15,-46 + Clsn2[1] = 9,-46,-15,-81 + Clsn2[2] = 2,-81,-10,-96 +5000,10, 0,0, 5 +5000,20, 0,0, 5 + +;Stand/Air Hit high (hard) +[Begin Action 5002] +Clsn2Default: 3 + Clsn2[0] = 18, 0,-15,-37 + Clsn2[1] = 9,-37,-15,-81 + Clsn2[2] = -5,-81,-18,-96 +5000,20, 0,0, 5 +5000,21, 0,0, 5 + +;--------------------------- +;Stand Recover high (light) +[Begin Action 5005] +Clsn2Default: 3 + Clsn2[0] = 12, 0,-15,-46 + Clsn2[1] = 9,-46,-15,-81 + Clsn2[2] = 2,-81,-10,-96 +5000,20, 0,0, 3 +5000,10, 0,0, 3 +5000, 0, 0,0, -1 + +;Stand Recover high (medium) +[Begin Action 5006] +Clsn2Default: 3 + Clsn2[0] = 12, 0,-15,-46 + Clsn2[1] = 9,-46,-15,-81 + Clsn2[2] = 2,-81,-10,-96 +5000,20, 0,0, 5 +5000,21, 0,0, 4 +5000,10, 0,0, 4 +5000, 0, 0,0, -1 + +;Stand Recover high (hard) +[Begin Action 5007] +Clsn2Default: 3 + Clsn2[0] = 12, 0,-15,-46 + Clsn2[1] = 9,-46,-15,-81 + Clsn2[2] = 2,-81,-10,-96 +5000,20, 0,0, 5 +5000,21, 0,0, 5 +5000,20, 0,0, 4 +5000,10, 0,0, 4 +5000, 0, 0,0, -1 + +;--------------------------- +;Stand/Air Hit low (light) +[Begin Action 5010] +Clsn2Default: 3 + Clsn2[0] = 11, 0,-15,-45 + Clsn2[1] = 7,-45,-15,-80 + Clsn2[2] = 3,-80, -9,-94 +5010, 0, 0,0, 5 +5010,10, 0,0, 5 + +;Stand/Air Hit low (medium) +[Begin Action 5011] +Clsn2Default: 3 + Clsn2[0] = 11, 0,-15,-45 + Clsn2[1] = 7,-45,-15,-80 + Clsn2[2] = 3,-80, -9,-94 +5010,10, 0,0, 5 +Clsn2: 2 + Clsn2[0] = 11, 0,-19,-38 + Clsn2[1] = 2,-38,-26,-78 +5010,20, 0,0, 5 +Clsn2: 2 + Clsn2[0] = 11, 0,-19,-38 + Clsn2[1] = 2,-38,-26,-78 +5010,21, 0,0, 5 + +;Stand/Air Hit low (hard) +[Begin Action 5012] +Clsn2Default: 3 + Clsn2[0] = 11, 0,-19,-38 + Clsn2[1] = -26,-73, 2,-38 + Clsn2[2] = -12,-73, 2,-86 +5010,20, 0,0, 1 +5010,21, 0,0, 5 +5010,20, 0,0, 5 +5010,21, 0,0, 5 + +;--------------------------- +;Stand Recover low (light) +[Begin Action 5015] +Clsn2Default: 3 + Clsn2[0] = 11, 0,-15,-45 + Clsn2[1] = 7,-45,-15,-80 + Clsn2[2] = 3,-80, -9,-94 +5010,10, 0,0, 1 +5010, 0, 0,0, -1 + +;Stand Recover low (medium) +[Begin Action 5016] +Clsn2: 3 + Clsn2[0] = 11, 0,-19,-38 + Clsn2[1] = -26,-73, 2,-38 + Clsn2[2] = -12,-73, 2,-86 +5010,20, 0,0, 1 +Clsn2Default: 3 + Clsn2[0] = 11, 0,-15,-45 + Clsn2[1] = 7,-45,-15,-80 + Clsn2[2] = 3,-80, -9,-94 +5010,10, 0,0, 4 +5010, 0, 0,0, -1 + +;Stand Recover low (hard) +[Begin Action 5017] +Clsn2: 3 + Clsn2[0] = 11, 0,-19,-38 + Clsn2[1] = -26,-73, 2,-38 + Clsn2[2] = -12,-73, 2,-86 +5010,20, 0,0, 1 +Clsn2Default: 3 + Clsn2[0] = 11, 0,-15,-45 + Clsn2[1] = 7,-45,-15,-80 + Clsn2[2] = 3,-80, -9,-94 +5010,10, 0,0, -1 + +;--------------------------- +;Crouch Hit (light) +[Begin Action 5020] +Clsn2Default: 3 + Clsn2[0] = 18, 0,-15,-27 + Clsn2[1] = 11,-27,-15,-50 + Clsn2[2] = -2,-49,-14,-62 +5020, 0, 0,0, 5 +5020,10, 0,0, 5 + +;Crouch Hit (medium) +[Begin Action 5021] +Clsn2Default: 3 + Clsn2[0] = 18, 0,-15,-27 + Clsn2[1] = 11,-27,-15,-50 + Clsn2[2] = -2,-49,-14,-62 +5020,10, 0,0, 5 +5020,20, 0,0, 5 + +;Crouch Hit (hard) +[Begin Action 5022] +Clsn2Default: 3 + Clsn2[0] = 18, 0,-15,-27 + Clsn2[1] = 11,-27,-15,-50 + Clsn2[2] = -2,-49,-14,-62 +5020,20, 0,0, 5 +5020,20, 0,0, 5 + +;--------------------------- +;Crouch Recover (light) +[Begin Action 5025] +Clsn2Default: 3 + Clsn2[0] = 18, 0,-15,-27 + Clsn2[1] = 11,-27,-15,-50 + Clsn2[2] = -2,-49,-14,-62 +5020,10, 0,0, 1 +5020, 0, 0,0, -1 + +;Crouch Recover (medium) +[Begin Action 5026] +Clsn2Default: 3 + Clsn2[0] = 18, 0,-15,-27 + Clsn2[1] = 11,-27,-15,-50 + Clsn2[2] = -2,-49,-14,-62 +5020,20, 0,0, 3 +5020,10, 0,0, 5 +5020, 0, 0,0, -1 + +;Crouch Recover (hard) +[Begin Action 5027] +Clsn2Default: 3 + Clsn2[0] = 18, 0,-15,-27 + Clsn2[1] = 11,-27,-15,-50 + Clsn2[2] = -2,-49,-14,-62 +5020,20, 0,0, 4 +5020,10, 0,0, 4 +5020, 0, 0,0, -1 + +;--------------------------- +;Stand/Air Hit back +[Begin Action 5030] +Clsn2: 2 + Clsn2[0] = -21,-88, 5,-61 + Clsn2[1] = -8,-66, 16,-38 +5030, 0, 0,0, 5 + +;Stand/Air Hit transition +[Begin Action 5035] +Clsn2: 2 + Clsn2[0] = -21,-88, 5,-61 + Clsn2[1] = -8,-66, 16,-38 +5030, 0, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 19,-39, -5,-66 + Clsn2[1] = 2,-57,-26,-83 +5030,10, 0,0, 7 + +;--------------------------- +;Air Recover +[Begin Action 5040] +Clsn2: 1 + Clsn2[0] = 16,-46,-14,-75 +41,4, 0,-120, 3, VH +Clsn2: 1 + Clsn2[0] = -18,-75, 18,-44 +42,3, 0,0, 4 +Clsn2: 1 + Clsn2[0] = 14,-45,-17,-73 +41,4, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -8,-28, 10,-81 + Clsn2[1] = 6,-81, -5,-94 +41,1, 0,0, -1 + +;--------------------------- +;Air Fall (going up) +[Begin Action 5050] +Clsn2Default: 2 + Clsn2[0] = 24,-44, -2,-76 + Clsn2[1] = -2,-44,-33,-67 +5030,30, 0,0, 5 +5030,31, 0,0, 5 + +;--------------------------- +;Air Fall (up-type, going up) +[Begin Action 5051] +Clsn2: 1 + Clsn2[0] = -19,-105, 14,-25 +5060, 0, 0,0, 3 +Clsn2: 1 + Clsn2[0] = -19,-105, 14,-25 +5060, 1, 0,0, 3 + +;--------------------------- +;Air Fall (up-type, coming down) +[Begin Action 5061] +Clsn2: 2 + Clsn2[0] = 5,-61,-24,-98 + Clsn2[1] = -8,-65, 20,-30 +5030, 0, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -31,-85, 0,-55 + Clsn2[1] = 26,-32, -4,-65 +5030,10, 0,0, 5 +Clsn2: 1 + Clsn2[0] = -33,-69, 24,-44 +5030,30, 0,0, 5 +Clsn2: 2 + Clsn2[0] = 2,-71,-25,-42 + Clsn2[1] = 0,-58, 22,-86 +5030,40, 0,0, 5 +Clsn2: 2 + Clsn2[0] = 5,-72,-19,-34 + Clsn2[1] = 18,-96, -4,-63 +5030,50, 0,0, 5 +Clsn2: 1 + Clsn2[0] = -20,-84, 9,-20 +5060,10, 0,0, -1 + +;--------------------------- +;Tripped +[Begin Action 5070] +Clsn2: 2 + Clsn2[0] = 16, 0,-11,-76 + Clsn2[1] = 0,-91, 11,-76 +5010,10, 8, 0, 5 +Clsn2: 2 + Clsn2[0] = -13,-57, 10,-30 + Clsn2[1] = -2,-57,-27,-88 +5030, 0,-8, 0, 5 +Clsn2: 2 + Clsn2[0] = 12,-39,-13,-66 + Clsn2[1] = -6,-57,-34,-83 +5030,10,-8, 0, -1 + +;--------------------------- +;LieDown Hit (stay down) +[Begin Action 5080] +Clsn2Default: 1 + Clsn2[0] = 22, 0,-26,-21 +5040,20, 0,0, 4 +5040, 0, 0,0, 4 +5040,10, 0,0, -1 + +;--------------------------- +;LieDown Hit (hit up into air) +[Begin Action 5090] +Clsn2: 2 + Clsn2[0] = 19,-39, -5,-66 + Clsn2[1] = 2,-57,-26,-83 +5030,10, 0,0, 7 + +;--------------------------- +; Hit ground from fall +[Begin Action 5100] +Clsn2Default: 1 + Clsn2[0] = 22, 0,-26,-21 +5040, 0, 0,0, 3 + +; Bounce into air +[Begin Action 5160] +Clsn2: 1 + Clsn2[0] = -30,-47, 23,-23 +5030,30, 0,20, -1 + +; Hit ground from bounce +[Begin Action 5170] +Clsn2: 1 + Clsn2[0] = 22, 0,-26,-21 +5040, 0, 0,0, 3 + +;--------------------------- +; Hit ground from fall (up-type) +[Begin Action 5101] +Clsn2Default: 1 + Clsn2[0] = 22, 0,-26,-21 +5040,1, 0,0, 4 +5040,0, 0,0, 2 + +;--------------------------- +; LieDown +[Begin Action 5110] +Clsn2: 1 + Clsn2[0] = 22, 0,-26,-21 +5040,10, 0,0, 1 + +; Get up from LieDown +[Begin Action 5120] +Clsn2Default: 1 + Clsn2[0] = 17, 0,-13,-53 +5040,11, 0,0, 5 +11,2, 0,0, 3 +11,1, 0,0, 3 +11,0, 0,0, 3 + +;LieDead animation +[Begin Action 5150] +Clsn2: 1 + Clsn2[0] = 22, 0,-26,-21 +5040,10, 0,0, 1 + +;--------------------------- +; Fall-recovery near ground +[Begin Action 5200] +Clsn2: 1 + Clsn2[0] = 16,-46,-14,-75 +41,4, 0,-120, 3, VH +Clsn2: 1 + Clsn2[0] = -18,-75, 18,-44 +42,3, 0,0, 4 +Clsn2: 1 + Clsn2[0] = 14,-45,-17,-73 +41,4, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -8,-28, 10,-81 + Clsn2[1] = 6,-81, -5,-94 +41,1, 0,0, -1 + +;Fall-recovery in mid-air +[Begin Action 5210] +Clsn2: 1 + Clsn2[0] = 16,-46,-14,-75 +41,4, 0,-120, 3, VH +Clsn2: 1 + Clsn2[0] = -18,-75, 18,-44 +42,3, 0,0, 4 +Clsn2: 1 + Clsn2[0] = 14,-45,-17,-73 +41,4, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -8,-28, 10,-81 + Clsn2[1] = 6,-81, -5,-94 +41,1, 0,0, -1 + +;--------------------------- +; Dizzy +[Begin Action 5300] +Clsn2Default: 1 + Clsn2[0] = 15, 0,-20,-91 +5000,0, 0,0, 8 +5000,10, 0,0, 8 +5000,20, 0,0, 8 +5000,10, 0,0, 8 +5000,0, 0,0, 8 +5010,0, 10,0, 8 +5000,0, 0,0, 8 diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm.cmd b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm.cmd new file mode 100644 index 00000000..21734129 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm.cmd @@ -0,0 +1,357 @@ +; The CMD file. +; +; Two parts: 1. Command definition and 2. State entry +; (state entry is after the commands def section) +; +; 1. Command definition +; --------------------- +; Note: The commands are CASE-SENSITIVE, and so are the command names. +; The eight directions are: +; B, DB, D, DF, F, UF, U, UB (all CAPS) +; corresponding to back, down-back, down, downforward, etc. +; The six buttons are: +; a, b, c, x, y, z (all lower case) +; In default key config, abc are are the bottom, and xyz are on the +; top row. For 2 button characters, we recommend you use a and b. +; For 6 button characters, use abc for kicks and xyz for punches. +; +; Each [Command] section defines a command that you can use for +; state entry, as well as in the CNS file. +; The command section should look like: +; +; [Command] +; name = some_name +; command = the_command +; time = time (optional) +; buffer.time = time (optional) +; +; - some_name +; A name to give that command. You'll use this name to refer to +; that command in the state entry, as well as the CNS. It is case- +; sensitive (QCB_a is NOT the same as Qcb_a or QCB_A). +; +; - command +; list of buttons or directions, separated by commas. Each of these +; buttons or directions is referred to as a "symbol". +; Directions and buttons can be preceded by special characters: +; slash (/) - means the key must be held down +; egs. command = /D ;hold the down direction +; command = /DB, a ;hold down-back while you press a +; tilde (~) - to detect key releases +; egs. command = ~a ;release the a button +; command = ~D, F, a ;release down, press fwd, then a +; If you want to detect "charge moves", you can specify +; the time the key must be held down for (in game-ticks) +; egs. command = ~30a ;hold a for at least 30 ticks, then release +; dollar ($) - Direction-only: detect as 4-way +; egs. command = $D ;will detect if D, DB or DF is held +; command = $B ;will detect if B, DB or UB is held +; plus (+) - Buttons only: simultaneous press +; egs. command = a+b ;press a and b at the same time +; command = x+y+z ;press x, y and z at the same time +; greater-than (>) - means there must be no other keys pressed or released +; between the previous and the current symbol. +; egs. command = a, >~a ;press a and release it without having hit +; ;or released any other keys in between +; You can combine the symbols: +; eg. command = ~30$D, a+b ;hold D, DB or DF for 30 ticks, release, +; ;then press a and b together +; +; Note: Successive direction symbols are always expanded in a manner similar +; to this example: +; command = F, F +; is expanded when MUGEN reads it, to become equivalent to: +; command = F, >~F, >F +; +; It is recommended that for most "motion" commads, eg. quarter-circle-fwd, +; you start off with a "release direction". This makes the command easier +; to do. +; +; - time (optional) +; Time allowed to do the command, given in game-ticks. The default +; value for this is set in the [Defaults] section below. A typical +; value is 15. +; +; - buffer.time (optional) +; Time that the command will be buffered for. If the command is done +; successfully, then it will be valid for this time. The simplest +; case is to set this to 1. That means that the command is valid +; only in the same tick it is performed. With a higher value, such +; as 3 or 4, you can get a "looser" feel to the command. The result +; is that combos can become easier to do because you can perform +; the command early. Attacks just as you regain control (eg. from +; getting up) also become easier to do. The side effect of this is +; that the command is continuously asserted, so it will seem as if +; you had performed the move rapidly in succession during the valid +; time. To understand this, try setting buffer.time to 30 and hit +; a fast attack, such as KFM's light punch. +; The default value for this is set in the [Defaults] section below. +; This parameter does not affect hold-only commands (eg. /F). It +; will be assumed to be 1 for those commands. +; +; If you have two or more commands with the same name, all of them will +; work. You can use it to allow multiple motions for the same move. +; +; Some common commands examples are given below. +; +; [Command] ;Quarter circle forward + x +; name = "QCF_x" +; command = ~D, DF, F, x +; +; [Command] ;Half circle back + a +; name = "HCB_a" +; command = ~F, DF, D, DB, B, a +; +; [Command] ;Two quarter circles forward + y +; name = "2QCF_y" +; command = ~D, DF, F, D, DF, F, y +; +; [Command] ;Tap b rapidly +; name = "5b" +; command = b, b, b, b, b +; time = 30 +; +; [Command] ;Charge back, then forward + z +; name = "charge_B_F_z" +; command = ~60$B, F, z +; time = 10 +; +; [Command] ;Charge down, then up + c +; name = "charge_D_U_c" +; command = ~60$D, U, c +; time = 10 + + +;-| Button Remapping |----------------------------------------------------- +; This section lets you remap the player's buttons (to easily change the +; button configuration). The format is: +; old_button = new_button +; If new_button is left blank, the button cannot be pressed. +[Remap] +x = x +y = y +z = z +a = a +b = b +c = c +s = s + +;-| Default Values |------------------------------------------------------- +[Defaults] +; Default value for the "time" parameter of a Command. Minimum 1. +command.time = 15 + +; Default value for the "buffer.time" parameter of a Command. Minimum 1, +; maximum 30. +command.buffer.time = 1 + +;-| Super Motions |-------------------------------------------------------- +;The following two have the same name, but different motion. +;Either one will be detected by a "command = TripleKFPalm" trigger. +;Time is set to 20 (instead of default of 15) to make the move +;easier to do. +; +[Command] +name = "TripleKFPalm" +command = ~D, DF, F, D, DF, x +time = 20 +buffer.time=3 + +[Command] +name = "TripleKFPalm" ;Same name as above +command = ~D, DF, F, D, DF, y +time = 20 +buffer.time=3 + +[Command] +name = "SmashKFUpper" +command = ~D, DB, B, D, DB, x;~F, D, DF, F, D, DF, x +time = 20 +buffer.time=3 + +[Command] +name = "SmashKFUpper" ;Same name as above +command = ~D, DB, B, D, DB, y;~F, D, DF, F, D, DF, y +time = 20 +buffer.time=3 + +;-| Special Motions |------------------------------------------------------ +[Command] +name = "blocking" +command = $F,x +time = 3 + +[Command] +name = "blocking" ;Same name as above (buttons in opposite order) +command = x,$F +time = 3 + +[Command] +name = "upper_x" +command = ~F, D, DF, x +buffer.time=3 + +[Command] +name = "upper_y" +command = ~F, D, DF, y +buffer.time=3 + +[Command] +name = "upper_xy" +command = ~F, D, DF, x+y +buffer.time=3 + +[Command] +name = "QCF_x" +command = ~D, DF, F, x +buffer.time=3 + +[Command] +name = "QCF_y" +command = ~D, DF, F, y +buffer.time=3 + +[Command] +name = "QCF_xy" +command = ~D, DF, F, x+y +buffer.time=3 + +[Command] +name = "QCB_x" +command = ~D, DB, B, x +buffer.time=3 + +[Command] +name = "QCB_y" +command = ~D, DB, B, y +buffer.time=3 + +[Command] +name = "QCB_xy" +command = ~D, DB, B, x+y +buffer.time=3 + +[Command] +name = "QCF_a" +command = ~D, DF, F, a +buffer.time=3 + +[Command] +name = "QCF_b" +command = ~D, DF, F, b +buffer.time=3 + +[Command] +name = "QCF_ab" +command = ~D, DF, F, a+b +buffer.time=3 + +[Command] +name = "FF_ab" +command = F, F, a+b +buffer.time=3 + +[Command] +name = "FF_a" +command = F, F, a +buffer.time=3 + +[Command] +name = "FF_b" +command = F, F, b +buffer.time=3 + +;-| Double Tap |----------------------------------------------------------- +[Command] +name = "FF" ;Required (do not remove) +command = F, F +time = 10 + +[Command] +name = "BB" ;Required (do not remove) +command = B, B +time = 10 + +[Command] +name = "UU" +command = U, U +time = 10 + +[Command] +name = "DD" +command = D, D +time = 10 + +;-| 2/3 Button Combination |----------------------------------------------- +[Command] +name = "recovery";Required (do not remove) +command = x+y +time = 1 + +;-| Dir + Button |--------------------------------------------------------- +[Command] +name = "down_a" +command = /$D,a +time = 1 + +[Command] +name = "down_b" +command = /$D,b +time = 1 + +;-| Single Button |--------------------------------------------------------- +[Command] +name = "a" +command = a +time = 3 + +[Command] +name = "b" +command = b +time = 3 + +[Command] +name = "c" +command = c +time = 3 + +[Command] +name = "x" +command = x +time = 3 + +[Command] +name = "y" +command = y +time = 3 + +[Command] +name = "z" +command = z +time = 3 + +[Command] +name = "start" +command = s +time = 1 + +;-| Hold Dir |-------------------------------------------------------------- +[Command] +name = "holdfwd";Required (do not remove) +command = /$F +time = 1 + +[Command] +name = "holdback";Required (do not remove) +command = /$B +time = 1 + +[Command] +name = "holdup" ;Required (do not remove) +command = /$U +time = 1 + +[Command] +name = "holddown";Required (do not remove) +command = /$D +time = 1 diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm.const b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm.const new file mode 100644 index 00000000..b653cd6d --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm.const @@ -0,0 +1,114 @@ +; KFM's constants and state file. +; Because ZSS format is for state code only, these now use a dedicated file. +; There are comments scattered through this file, so you may like to +; take a look if would like to learn more about the cns. + +[Data] + +life = 1000 ;Amount of life to start with +power = 3000 ;Maximum power character is allowed to have +attack = 100 ;Attack power (more is stronger) +defence = 100 ;Defensive power (more is stronger) +fall.defence_up = 50 ;Percentage to increase defense everytime player is knocked down +liedown.time = 60 ;Time which player lies down for, before getting up +airjuggle = 15 ;Number of points for juggling +sparkno = 2 ;Default hit spark number for HitDefs +guard.sparkno = 40 ;Default guard spark number +KO.echo = 0 ;1 to enable echo on KO +volumescale = 100 ;Sound volume percentage +IntPersistIndex = 60 ;Variables with this index and above will not have their values +FloatPersistIndex = 40 ;reset to 0 between rounds or matches. There are 60 int variables, + ;indexed from 0 to 59, and 40 float variables, indexed from 0 to 39. + ;If omitted, then it defaults to 60 and 40 for integer and float + ;variables repectively, meaning that none are persistent, i.e. all + ;are reset. If you want your variables to persist between matches, + ;you need to override state 5900 from common1.cns. + +[Size] +xscale = 1 ;Horizontal scaling factor. +yscale = 1 ;Vertical scaling factor. +ground.back = 15 ;Player width (back, ground) +ground.front = 16 ;Player width (front, ground) +air.back = 12 ;Player width (back, air) +air.front = 12 ;Player width (front, air) +height = 60 ;Height of player (for opponent to jump over) +attack.dist = 160 ;Default attack distance +proj.attack.dist = 90 ;Default attack distance for projectiles +proj.doscale = 0 ;Set to 1 to scale projectiles too +head.pos = -5, -90 ;Approximate position of head +mid.pos = -5, -60 ;Approximate position of midsection +shadowoffset = 0 ;Number of pixels to vertically offset the shadow +draw.offset = 0, 0 ;Player drawing offset in pixels (x, y). Recommended 0,0 +depth = 4, 4 ;Size of character in Z space: top, bottom +attack.depth = 4, 4 ;Default attack depth: top, bottom + +[Velocity] +walk.fwd = 2.4 ;Walk forward +walk.back = -2.2 ;Walk backward +run.fwd = 4.6, 0 ;Run forward (x, y) +run.back = -4.5,-3.8 ;Hop backward (x, y) +jump.neu = 0,-8.4 ;Neutral jumping velocity (x, y) +jump.back = -2.55 ;Jump back Speed (x, y) +jump.fwd = 2.5 ;Jump forward Speed (x, y) +runjump.back = -2.55,-8.1 ;Running jump speeds (opt) +runjump.fwd = 4,-8.1 ;. +airjump.neu = 0,-8.1 ;. +airjump.back = -2.55 ;Air jump speeds (opt) +airjump.fwd = 2.5 ;. +air.gethit.groundrecover = -.15,-3.5 ;Velocity for ground recovery state (x, y) **MUGEN 1.0** +air.gethit.airrecover.mul = 0.5,.2 ;Multiplier for air recovery velocity (x, y) **MUGEN 1.0** +air.gethit.airrecover.add = 0,-4.5 ;Velocity offset for air recovery (x, y) **MUGEN 1.0** +air.gethit.airrecover.back = -1 ;Extra x-velocity for holding back during air recovery **MUGEN 1.0** +air.gethit.airrecover.fwd = 0 ;Extra x-velocity for holding forward during air recovery **MUGEN 1.0** +air.gethit.airrecover.up = -2 ;Extra y-velocity for holding up during air recovery **MUGEN 1.0** +air.gethit.airrecover.down = 1.5 ;Extra y-velocity for holding down during air recovery **MUGEN 1.0** +walk.up = 0, 0, -1.1 ;Walk up (x, y, z) +walk.down = 0, 0, 1.2 ;Walk down (x, y, z) +run.up = 0, 0, -6.0 ;Run up (x, y, z) +run.down = 0, 0, 6.0 ;Run up (x, y, z) +jump.up = 0, 0, -1.25 ;Jump up velocity (x, y, z) +jump.down = 0, 0, 1.25 ;Jump down velocity (x, y, z) + +[Movement] +airjump.num = 1 ;Number of air jumps allowed (opt) +airjump.height = 35 ;Minimum distance from ground before you can air jump (opt) +yaccel = 0.44 ;Vertical acceleration +stand.friction = 0.85 ;Friction coefficient when standing +crouch.friction = 0.82 ;Friction coefficient when crouching +stand.friction.threshold = 2 ;If player's speed drops below this threshold while standing, stop his movement **MUGEN 1.0** +crouch.friction.threshold = 0.05 ;If player's speed drops below this threshold while crouching, stop his movement **MUGEN 1.0** +air.gethit.groundlevel = 25 ;Y-position at which a falling player is considered to hit the ground **MUGEN 1.0** +air.gethit.groundrecover.ground.threshold = -20 ;Y-position below which falling player can use the recovery command **MUGEN 1.0** +air.gethit.groundrecover.groundlevel = 10 ;Y-position at which player in the ground recovery state touches the ground **MUGEN 1.0** +air.gethit.airrecover.threshold = -1 ;Y-velocity above which player may use the air recovery command **MUGEN 1.0** +air.gethit.airrecover.yaccel = 0.35 ;Vertical acceleration for player in the air recovery state **MUGEN 1.0** +air.gethit.trip.groundlevel = 15 ;Y-position at which player in the tripped state touches the ground **MUGEN 1.0** +down.bounce.offset = 0, 20 ;Offset for player bouncing off the ground (x, y) **MUGEN 1.0** +down.bounce.yaccel = 0.4 ;Vertical acceleration for player bouncing off the ground **MUGEN 1.0** +down.bounce.groundlevel = 12 ;Y-position at which player bouncing off the ground touches the ground again **MUGEN 1.0** +down.friction.threshold = 0.05 ;If the player's speed drops below this threshold while lying down, stop his movement **MUGEN 1.0** + +;Default language victory quotes (optional). **MUGEN 1.0** +;If this section is included, the default language victory quotes must be in English. +[Quotes] +; Up to 100 victory quotes can be specified per language (victory0 - victory99) +victory1 = "You must defeat Tu Shou to stand a chance." +victory2 = "You need a lot of training. Come back in ten years." +victory3 = "You look familiar. Did I see you on TV?" +victory4 = "Your moves are too predictable. You want to learn Kung Fu Palm? It's not for novices." +victory5 = "That was a good workout." +victory6 = "I want to challenge more skilled fighters." +victory7 = "What do you mean my girlfriend is in another temple?" + +;Alternate language victory quotes (optional). +;0 or more alternate language sections may be added, preceded by the +;ISO 639-1 code followed by a ".", e.g. "[ja.Quotes]". +;See language setting in mugen.cfg. +[ja.Quotes] +victory1 = "カンフー��手を破ら��り������目����" +victory2 = "�年早�ん��" +victory3 = "���見覚���る�。テレビ��も…?" +victory4 = "���動��見破りや���る。 ���カンフー��手�覚���ん��? 素人��無���" +victory5 = "�ー。 ��汗���" +victory6 = "も��強�相手�挑戦���" +victory7 = "�ん���彼女����も����?" diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm.sff b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm.sff new file mode 100644 index 00000000..980ff4e0 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm.snd b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm.snd new file mode 100644 index 00000000..d84829ce Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm.snd differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm.zss b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm.zss new file mode 100644 index 00000000..6e1d74f9 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm.zss @@ -0,0 +1,3086 @@ +# ZSS language: https://github.com/ikemen-engine/Ikemen-GO/wiki/ZSS +# ZSS syntax highlighter for Notepad++: https://github.com/ikemen-engine/zss_npp +#------------------------------------------------------------------------------- +# Commenting in ZSS +# You may notice that the ";" character is now replaced with the "#" character. +# This is because ";" is now used to separate parameters in sctrls rather than a +# blank space. + +# This version of Kung Fu Man allows moving around in the Z axis +# It is meant to showcase that feature in Ikemen GO +# For the sake of backward compatibility, it uses some workarounds that one +# would not normally need in a game designed with Z axis in mind + +#=============================================================================== +# Functions +#=============================================================================== +# Used to apply palFx during EX moves +[Function EXFX(time)] +palFx{time: $time; add: 32, 16, 0; sinadd: 64, 32, 5, 3} + + +# Summons a board projectile +[Function BoardProjectile(damage, xvel, zvel)] +projectile{ + projID: 1230; + projanim: 1230; + projhitanim: 1231; + projremanim: 1231; + projcancelanim: 1231; + projscale: 1, 1; + projremove: 1; + projremovetime: -1; + velocity: $xvel, -2.0, $zvel; + remvelocity: 0, 0, 0; + accel: 0, 0.2, 0; + velmul: 1, 1, 1; + projhits: 1; + projmisstime: 0; + projpriority: 1; + projsprpriority: 3; + projedgebound: 40; + projdepthbound: 0; + projstagebound: 40; + projheightbound: -240, 0; + offset: 92, -64, 0; + postype: p1; + projshadow: -1; + # Hitdef part + attr: S, SP; + animtype: Hard; + damage: $damage, $damage / 8.0; + priority: 5; + guardflag: MA; + pausetime: 0, 12; + sparkno: 1; + sparkxy: 0, 0; + hitsound: 5, 1; + guardsound: 6, 0; + ground.type: High; + ground.slidetime: 16; + ground.hittime: 1 + 20; + ground.velocity: -10; + guard.velocity: -7; + air.velocity: -3.5, -4.5; + airguard.velocity: -3.5, -4.5; + getpower: 0; +} + +#=============================================================================== +# Stand Override +#=============================================================================== +# The main difference here is that Z velocity must also be reset +[StateDef 0; type: S; physics: S; sprpriority: 0;] + +if cond(anim = 5, animTime = 0, anim != 0) { + changeAnim{value: 0} +} +if time = 0 { + velSet{y: 0} +} + +if time = 4 || abs(vel x) < const(movement.stand.friction.threshold) { + velSet{x: 0} +} +if time = 4 || abs(vel z) < const(movement.stand.friction.threshold) { + velSet{z: 0} +} + +if !alive { + changeState{value: 5050; ctrl: 0} +} + + +#=============================================================================== +# Crouch Override +#=============================================================================== +# Stand to Crouch +[StateDef 10; +type: C; physics: C; anim: 10;] + +if time = 0 { + velMul{x: 0.75; z: 0.75} +} + +if abs(vel x) < const(movement.crouch.friction.threshold) { + velSet{x: 0} +} +if abs(vel z) < const(movement.crouch.friction.threshold) { + velSet{z: 0} +} + +# Override normal stand up behavior +if !map(crouchinput) { + changeState{value: 12} +} + +if animTime = 0 { + changeState{value: 11} +} + +# Crouching +[StateDef 11; +type: C; physics: C; anim: 11; sprpriority: 0;] + +if anim = 6 && animTime = 0 { + changeAnim{value: 11} +} + +if abs(vel x) < const(movement.crouch.friction.threshold) { + velSet{x: 0} +} +if abs(vel z) < const(movement.crouch.friction.threshold) { + velSet{z: 0} +} + + +# Override normal stand up behavior +if !map(crouchinput) { + changeState{value: 12} +} + +#------------------------------------------------------------------------------- +# Crouch to Stand +[StateDef 12; +type: S; physics: S; anim: 12;] + +if animTime = 0 { + changeState{value: 0} +} + +#=============================================================================== +# Walk Override +#=============================================================================== +[StateDef 20; +type: S; physics: S; sprpriority: 0; velset: 0, 0, 0;] + +let vx = Facing * map(vector_x); +let vz = map(vector_z); +let cs = GameOption(Input.ControllerStickSensitivity); +if sysVar(1) = -1 { + if $vx != 0 { + velSet{x: const(velocity.walk.back.x) * -$vx} + } else { + velSet{x: const(velocity.walk.back.x)} + } +} else if sysVar(1) = 1 { + if $vx != 0 { + velSet{x: const(velocity.walk.fwd.x) * $vx} + } else { + velSet{x: const(velocity.walk.fwd.x)} + } +} else { + velSet{x: 0} +} + +if command = "holdup" || ($vz < -$cs) { + velSet{z: const(velocity.walk.up.z) * cond($vz != 0, -$vz, 1)} +} else if command = "holddown" || ($vz > $cs) { + velSet{z: const(velocity.walk.down.z) * cond($vz != 0, $vz, 1)} +} else { + velSet{z: 0} +} + +if vel x > 0 { + if cond(anim = 5, animTime = 0, anim != 20) { + changeAnim{value: 20} + } +} else if vel x < 0 { + if cond(anim = 5, animTime = 0, anim != 21) { + changeAnim{value: 21} + } +} else if vel z > 0 { + if cond(anim = 5, animTime = 0, anim != 20) { + changeAnim{value: 20} + } +} else if vel z < 0 { + if cond(anim = 5, animTime = 0, anim != 21) { + changeAnim{value: 21} + } +} + +# We must stop walking manually so that the character still walks when releasing B and F but holding U or D +assertSpecial{flag: nobrake} +if command != "holdfwd" && command != "holdback" && command != "holdup" && command != "holddown" && $vx = [-$cs,$cs] && $vz = [-$cs,$cs] { + changeState{value: 0} +} + +#=============================================================================== +# Jump Override +#=============================================================================== +# Where we add Z directional jumping +#------------------------------------------------------------------------------- +# Jump Start +[StateDef 40; +type: S; physics: S; anim: 40; ctrl: 0; sprpriority: 1; facep2: 1;] + +if time = 0 { + sysVar(1) := 0; + map(jumpz) := 0; +} + +if command = "holdback" { + sysVar(1) := -1; +} else if command = "holdfwd" { + sysVar(1) := 1; +} +let vx = map(vector_x) * Facing; +let vz = map(vector_z); +let cs = GameOption(Input.ControllerStickSensitivity); +if $vx != [-$cs,$cs] { + if $vx < 0 { + sysVar(1) := -1; + } else { + sysVar(1) := 1; + } +} + +if command = "holdup" || $vz != [-$cs,1] { + map(jumpz) := -1; +} else if command = "holddown" || $vz != [-1,$cs] { + map(jumpz) := 1; +} + +if animTime = 0 { + # X axis + if sysVar(1) = 0 { + let x = const(velocity.jump.neu.x); + } else if sysVar(1) = 1 { + if prevStateNo = 100 { + let x = const(velocity.runjump.fwd.x); + } else { + let x = const(velocity.jump.fwd.x); + } + } else { + let x = const(velocity.jump.back.x); + } + + # Z axis + if map(jumpz) = -1 { + let z = const(velocity.jump.up.z); + } else if map(jumpz) = 1 { + let z = const(velocity.jump.down.z); + } + + velSet{x: $x; y: const(velocity.jump.y); z: $z} + changeState{value: 50; ctrl: 1} +} + +#------------------------------------------------------------------------------- +# AirJump Start +[StateDef 45; +type: A; physics: N; ctrl: 0; velset: 0, 0;] + +changeAnim{value: ifElse(selfAnimExist(44), 44, 41)} + +if time = 0 { + sysVar(1) := 0; + map(jumpz) := 0; +} + +if command = "holdback" { + sysVar(1) := -1; +} else if command = "holdfwd" { + sysVar(1) := 1; +} + +if command = "holdup" { + map(jumpz) := -1; +} else if command = "holddown" { + map(jumpz) := 1; +} + +if time = 2 { + # X axis + if sysVar(1) = 0 { + let x = const(velocity.airjump.neu.x); + } else if sysVar(1) = 1 { + let x = const(velocity.airjump.fwd.x); + } else { + let x = const(velocity.airjump.back.x); + } + + # Z axis + if map(jumpz) = -1 { + let z = const(velocity.jump.up.z); + } else if map(jumpz) = 1 { + let z = const(velocity.jump.down.z); + } + + velSet{x: $x; y: const(velocity.airjump.y); z: $z} + changeState{value: 50; ctrl: 1} +} + +#=============================================================================== +# Run forward Override +#=============================================================================== +[StateDef 100; +type: S; physics: S; anim: 100; sprpriority: 1;] + +assertSpecial{flag: nowalk; flag2: noautoturn} + +velSet{x: const(velocity.run.fwd.x)} + +if command = "holdup" { + velSet{z: -1} +} else if command = "holddown" { + velSet{z: 1} +} else { + velSet{z: 0} +} + +if command != "holdfwd" { + changeState{value: 0} +} + +#=============================================================================== +# Run up override +#=============================================================================== +[StateDef 110; +type: S; movetype: I; physics: S; +anim: 110; ctrl: 0; +velset: 0, 0, 0; +sprpriority: 1;] + +if time = 0 { + hitBy{value: SCA, NT, ST, HT; time: 8} + velSet{x: const(velocity.run.up.x); y: const(velocity.run.up.y); z: const(velocity.run.up.z)} +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Run down override +#=============================================================================== +[StateDef 115; +type: S; movetype: I; physics: S; +anim: 115; ctrl: 0; +velset: 0, 0, 0; +sprpriority: 1;] + +if time = 0 { + hitBy{value: SCA, NT, ST, HT; time: 8} + velSet{x: const(velocity.run.down.x); y: const(velocity.run.down.y); z: const(velocity.run.down.z)} +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Guard override +#=============================================================================== +# Like the common1 states except we replace down with the crouch input +#------------------------------------------------------------------------------- +[Function KFM_HiToLoAndLoToHi()] +if map(crouchinput) { + if stateType = S { + stateTypeSet{statetype: C; physics: C} + } +} else if stateType = C { + stateTypeSet{statetype: S; physics: S} +} + +#------------------------------------------------------------------------------- +[Function KFM_StopGuarding()] +if command != "holdback" || !inGuardDist { + changeState{value: 140} +} + +#------------------------------------------------------------------------------- +# GUARD (start) +[StateDef 120; type: U; physics: U;] + +call KFM_HiToLoAndLoToHi(); +if time = 0 { + changeAnim{value: 120 + (stateType = C) + (stateType = A) * 2} + if stateType = S { + stateTypeSet{physics: S} + } else if stateType = C { + stateTypeSet{physics: C} + } else if stateType = A { + stateTypeSet{physics: A} + } +} +if animTime = 0 { + changeState{value: 130 + (stateType = C) + (stateType = A) * 2} +} +call KFM_StopGuarding(); + +#------------------------------------------------------------------------------- +# Stand guard (guarding) +[StateDef 130; type: S; physics: S;] + +if anim != 130 { + changeAnim{value: 130} +} +if map(crouchinput) { + changeState{value: 131} +} +call KFM_StopGuarding(); + +#------------------------------------------------------------------------------- +# Crouch guard (guarding) +[StateDef 131; type: C; physics: C;] + +if anim != 131 { + changeAnim{value: 131} +} +if !map(crouchinput) { + changeState{value: 130} +} +call KFM_StopGuarding(); + +#------------------------------------------------------------------------------- +[Function KFM_AirGuardLand()] +velAdd{y: const(movement.yAccel)} +if sysVar(0) := (pos y >= 0 && vel y > 0) { + velSet{y: 0} + posSet{y: 0} + changeState{value: ifElse(command = "holdback" && inGuardDist, 130, 52)} +} + +#------------------------------------------------------------------------------- +# Air guard (guarding) +[StateDef 132; type: A; physics: N;] + +if anim != 132 { + changeAnim{value: 132} +} +call KFM_AirGuardLand(); +call KFM_StopGuarding(); + +#------------------------------------------------------------------------------- +# Guard (end) +[StateDef 140; type: U; physics: U; ctrl: 1;] + +call KFM_HiToLoAndLoToHi(); +if time = 0 { + changeAnim{value: 140 + (stateType = C) + (stateType = A) * 2} + if stateType = S { + stateTypeSet{physics: S} + } else if stateType = C { + stateTypeSet{physics: C} + } else if stateType = A { + stateTypeSet{physics: A} + } +} + +#------------------------------------------------------------------------------- +[Function KFM_GuardShaking(anim)] +changeAnim{value: $anim} +if hitShakeOver { + changeState{value: 151 + 2 * (map(crouchinput))} +} +call KFM_HiToLoAndLoToHi(); + +#------------------------------------------------------------------------------- +[Function KFM_GuardKnockedBack(nextState)] +if time = 0 { + hitVelSet{x: 1} +} +if time = getHitVar(slideTime) || hitOver { + velSet{x: 0} +} +if time = getHitVar(ctrlTime) { + ctrlSet{value: 1} +} +call KFM_HiToLoAndLoToHi(); +if hitOver { + changeState{value: $nextState; ctrl: 1} +} + +#------------------------------------------------------------------------------- +# Stand guard hit (shaking) +[StateDef 150; type: S; movetype: H; physics: N; velset: 0, 0;] + +call KFM_GuardShaking(150); +if time = 0 { + forceFeedback{waveform: square; time: 3} +} + +#------------------------------------------------------------------------------- +# Stand guard hit (knocked back) +[StateDef 151; type: S; movetype: H; physics: S; anim: 150;] + +call KFM_GuardKnockedBack(130); + +#------------------------------------------------------------------------------- +# Crouch guard hit (shaking) +[StateDef 152; type: C; movetype: H; physics: N; velset: 0, 0;] + +call KFM_GuardShaking(151); +if time = 0 { + forceFeedback{waveform: square; time: 4} +} + +#------------------------------------------------------------------------------- +# Crouch guard hit (knocked back) +[StateDef 153; type: C; movetype: H; physics: C; anim: 151;] + +call KFM_GuardKnockedBack(131); + +#------------------------------------------------------------------------------- +# Air guard hit (shaking) +[StateDef 154; type: A; movetype: H; physics: N; velset: 0, 0;] + +changeAnim{value: 152} +if hitShakeOver { + changeState{value: 155} +} +if time = 0 { + forceFeedback{waveform: square; time: 4} +} + +#------------------------------------------------------------------------------- +# Air guard hit (knocked away) +[StateDef 155; type: A; movetype: H; physics: N; anim: 152;] + +if time = 0 { + hitVelSet{x: 1; y: 1} +} +if time = getHitVar(ctrlTime) { + ctrlSet{value: 1} +} +call KFM_AirGuardLand(); + + +#=============================================================================== +# Lose by Time Over +#=============================================================================== +# ZSS difficulty: basic +#This is how statedefs are defined in ZSS. It must always end with a ";" or it +#will result in a crash. +[StateDef 170; +type: S; movetype: I; physics: S; +anim: 170; ctrl: 0; velset: 0, 0, 0; +sprpriority: 1;] + +#If you used a trigger that normally read "trigger1 = 1" you can just declare +#the sctrl with no condition like below. +notHitBy{value: SCA; time: 1} + +#=============================================================================== +# Win state decider +#=============================================================================== +# ZSS difficulty: basic +[StateDef 180; +type: S; movetype: I; physics: S; +anim: -2; ctrl: 0; velset: 0, 0, 0; +sprpriority: 1;] + +changeState{value: 181; ctrl: 0} + +#=============================================================================== +# win pose 1 - Bow +#=============================================================================== +# ZSS difficulty: basic +[StateDef 181; +type: S; movetype: I; physics: S; +anim: 181; ctrl: 0; velset: 0, 0, 0; +sprpriority: 1;] + +#trigger is replaced with a simple "if". All conditions can be handled the same +#with multiple if blocks. Optional Assert roundnotover +if animTime < -2 { + assertSpecial{flag: roundnotover} +} + +notHitBy{value: SCA; time: 1} + +#=============================================================================== +# Introduction +#=============================================================================== +# ZSS difficulty: basic +[StateDef 191; +type: S; movetype: I; physics: S; +anim: 190; ctrl: 0; velset: 0, 0, 0; +sprpriority: 1;] + +if roundState = 0 { + changeAnim{value: 190} +} + +#Assert this until you want "round 1, fight" to begin +assertSpecial{flag: intro} + +#You can delete the following two controllers if you're building your own +#character using KFM. These are the wood pieces that KFM kicks. This is how +#persistent = 0 is applied, if this were an sctrl that has no trigger, the +#persistent(0) would be that trigger e.g. persistent(0){sctrl{}} +persistent(0) if roundState != 0 { + # Define a random Z position at which to spawn the wood piece + let zposition = randomRange(-50, 50); + # Create the wood piece + explod{ + anim: 191; + postype: p1; + pos: 260, -90, $zposition; + velocity: -4.2, -7, $zposition / -48.0; # This makes the explod always reach KFM's Z position in 48 frames + accel: 0, 0.32, 0; + removetime: 48; + sprpriority: sprPriority + 1; + shadow: -1; # Use shadow with default stage color + } +} + +if animElemTime(7) = 1 { + explod{ + anim: 192; + postype: p1; + pos: 60, -70, 0; + velocity: 2, -4, 0; + accel: 0, 0.32, 0; + removetime: 35; + sprpriority: sprPriority + 1; + shadow: -1; + } +} + +#You can delete the following two controllers if you're building your own +#character using KFM. These play back the sounds of the wood block being broken. +if animElemTime(7) = 0 { + playsnd{value: F 5, 2; channel: 1; volumescale: 50} +} + +if animElemTime(7) = 3 { + playsnd{value: F 5, 3; channel: 2} +} + +#Change to stand state when done +if animTime = 0 { + changeState{value: 0} +} + +#------------------------------------------------------------------------------- +[StateDef 195; +type: S; movetype: I; physics: S; +anim: 195; ctrl: 0; velset: 0, 0, 0; +sprpriority: 2;] + +if time = 40 { + ctrlSet{value: 1} +} + +#Change to stand state when done +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Stand Light Punch +#=============================================================================== +# ZSS difficulty: easy +[StateDef 200; +type: S; #State-type: S-stand, C-crouch, A-air, L-liedown +movetype: A; #Move-type: A-attack, I-idle, H-gethit +physics: S; #Physics: S-stand, C-crouch, A-air +juggle: 1; #Number of air juggle points move takes +#Commonly-used controllers: +velset: 0, 0, 0; #Set velocity (x, y) (Def: no change) +ctrl: 0; #Set ctrl (Def: no change) +anim: 200; #Change animation (Def: no change) +poweradd: 10; #Power to add (Def: 0) +sprpriority: 2;] #Set p1's sprite layering priority to 2 (in front) + +if animElem = 3 { + #When using zss sctrls, you must have the bracket on the same line as the + #sctrl's name as specified below e.g. "HitDef{" + hitDef{ + attr: S, NA; #Attribute: Standing, Normal Attack + damage: 23, 0; #Damage that move inflicts, guard damage + animtype: Light; #Animation type: Light, Medium, Heavy, Back (def: Light) + guardflag: MA; #Flags on how move is to be guarded against + hitflag: MAF; #Flags of conditions that move can hit + priority: 3, Hit; #Attack priority: 0 (least) to 7 (most), 4 default + #Hit/Miss/Dodge type (Def: Hit) + pausetime: 8, 8; #Time attacker pauses, time opponent shakes + sparkno: 0; #Spark anim no (Def: set above) + sparkxy: -10, -76; #X-offset for the "hit spark" rel. to p2, + #Y-offset for the spark rel. to p1 + hitsound: 5, 0; #Sound to play on hit + guardsound: 6, 0; #Sound to play on guard + ground.type: High; #Type: High, Low, Trip (def: Normal) + ground.slidetime: 5; #Time that the opponent slides back + ground.hittime: 1 + 11; #Time opponent is in hit state. Needs an increase of 1 if char has ikemenversion + ground.velocity: -4; #Velocity at which opponent is pushed + airguard.velocity: -1.9, -0.8; #Guard velocity in air (def: (air.xvel*1.5, air.yvel/2)) + air.type: High; #Type: High, Low, Trip (def: same as ground.type) + air.velocity: -1.4, -3; #X-velocity at which opponent is pushed, + #Y-velocity at which opponent is pushed + air.hittime: 1 + 15; #Time before opponent regains control in air + } +} + +if time = 1 { + playsnd{value: S 0, 0; channel: 1} +} + +#Change to stand state when done +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Standing strong punch +#=============================================================================== +# ZSS difficulty: easy +# Note the width controller. It makes KFM's push box larger, so he doesn't +# stand so close to the opponent. Hit Ctrl-C and look at the red bar at his +# feet. +# The sprpriority for this state is at -1, instead of the usual 2 for +# attacks. This makes KFM appear behind the opponent initially. +# The sprPriority controller in [State 210, 4] brings KFM to the front when +# his arm has swung over. +# To stop KFM from pausing in his swing frame, there is a changeAnim in +# [State 210, 3] that detects if the hit has come in contact with the +# opponent during that frame, and switches to the next animation element +# (notice the elem=6 parameter). If you don't see what I mean, try commenting +# out that controller, then hit someone with this attack. +[StateDef 210; +type: S; movetype: A; physics: S; +juggle: 4; poweradd: 30; ctrl: 0; +velset: 0, 0, 0; anim: 210; +sprpriority: -1;] + +if animElemTime(2) >= 0 && animElemTime(7) < 0 { + width{value: 15, 0} +} + +if time = 2 { + playsnd{value: S 0, 4; channel: 1} +} + +if animElem = 3 { + hitDef{ + attr: S, NA; + animtype: Medium; + damage: 57; + guardflag: MA; + pausetime: 12, 12; + sparkno: 1; + sparkxy: -10, -70; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: High; + ground.slidetime: 12; + ground.hittime: 1 + 16; + ground.velocity: -5.5; + air.velocity: -2.5, -4; + forcenofall: 1; + attack.depth: 6, 6; + } +} + +#This is how ignoreHitPause=1 is applied in ZSS. If there were no "trigger" it +#would act as the trigger itself EG. ignoreHitPause{sctrl{}} +ignoreHitPause persistent(0) if animElemTime(5) > 0 && animElemTime(6) <= 0 && moveContact { + changeAnim{value: 210; elem: 6} +} + +if animElem = 5 { + sprPriority{value: 2} +} + +#Change to stand state when done +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Standing light kick +#=============================================================================== +# ZSS difficulty: easy +[StateDef 230; +type: S; movetype: A; physics: S; +juggle: 4; poweradd: 11; ctrl: 0; +velset: 0, 0, 0; anim: 230; +sprpriority: 2;] + +if time = 2 { + playSnd{value: S 0, 0; channel: 1} +} + +if animElem = 3 { + hitDef{ + attr: S, NA; + animtype: Medium; + damage: 26; + guardflag: MA; + pausetime: 12, 12; + sparkno: 0; + sparkxy: -10, -37; + hitsound: 5, 1; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 10; + ground.hittime: 1 + 14; + ground.velocity: -5; + air.velocity: -2.5, -3.5; + } +} + +#Change to stand state when done +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Standing strong kick +#=============================================================================== +# ZSS difficulty: easy +[StateDef 240; +type: S; movetype: A; physics: S; +juggle: 5; poweradd: 30; ctrl: 0; +velset: 0, 0, 0; anim: 240; +sprpriority: 2;] + +if time = 2 { + playSnd{value: S 0, 1; channel: 1} +} + +if animElem = 3 { + hitDef{ + attr: S, NA; + animtype: Medium; + damage: 63; + guardflag: MA; + pausetime: 12, 12; + sparkno: 1; + sparkxy: -10, -60; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 12; + ground.hittime: 1 + 17; + ground.velocity: -6; + air.velocity: -2.2, -3.2; + } +} + +if animElem = 7 { + posAdd{x: 12} +} + +#Change to stand state when done +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Crouching light punch +#=============================================================================== +# ZSS difficulty: easy +# Description: Simple crouching attack. The hitDef's guardflag parameter +# is set to "L", meaning that the move can only be guarded low +# (crouching), and not by standing or jumping opponents. +# Like for all light attacks, it's a good idea to keep the slidetime +# and hittime parameters at a smaller number, so the opponent isn't +# stunned for too long. For all crouching attacks you have to +# remember to set the attr parameter to indicate that it is crouching +# attack. In this case, "C, NA" stands for "crouching, normal attack". +# The hitDef's priority is set at 3, instead of the default of 4, +# so this attack has a lower priority than most others, meaning +# KFM will get hit instead of trading hits with his opponent if +# their attack collision boxes (Clsn1) intersect each other's Clsn2 +# boxes at the same time. +[StateDef 400; +type: C; movetype: A; physics: C; +juggle: 5; poweradd: 8; ctrl: 0; +anim: 400; sprpriority: 2;] + +if time = 1 { + playSnd{value: S 0, 0; channel: 1} +} + +if animElem = 2 { + hitDef{ + attr: C, NA; + damage: 23; + priority: 3; + animtype: Light; + hitflag: MAF; + guardflag: L; + pausetime: 10, 11; + sparkno: 0; + sparkxy: -10, -42; + hitsound: 5, 0; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 4; + ground.hittime: 1 + 9; + ground.velocity: -4; + air.velocity: -1.5, -3; + } +} + +#This gives control back to kfm early. While this could be done better in a +#number of ways, this is a 1:1 creation of kfm from elecbyte so this change is +#left intact. +if animElemTime(3) = 2 { + ctrlSet{value: 1} +} + +#Change to stand state when done +if animTime = 0 { + changeState{value: 11; ctrl: 1} +} + +#=============================================================================== +# Crouching strong punch +#=============================================================================== +# ZSS difficulty: easy +# Description: This is a 2-hit move. It is done by having two HitDefs +# triggered, one for each frame of animation that hits. +# Notice how the first hit cannot be guarded by an opponent in the +# air, because of the "M" in the guardflag, meaning it can only +# be guarded "middle". The second hit has an "MA" guardflag, so +# it can be guarded both on the ground and in the air. +[StateDef 410; +type: C; movetype: A; physics: C; +juggle: 6; poweradd: 25; ctrl: 0; +anim: 410; sprpriority: 2;] + +if time = 1 { + playSnd{value: S 0, 1; channel: 1} +} + +#This is the first hit, triggered on the 3rd element of animation. +if animElem = 3 { + hitDef{ + attr: C, NA; + damage: 37; + animtype: Medium; + hitflag: MAF; + guardflag: M; + pausetime: 12, 12; + sparkno: 1; + sparkxy: -10, -55; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 12; + ground.hittime: 1 + 17; + ground.velocity: -4; + air.velocity: -3, -4; + } +} + +#This is the second hit, triggered on the 4th element of animation. +if animElem = 4 { + hitDef{ + attr: C, NA; + damage: 36; + animtype: Medium; + hitflag: MAF; + guardflag: MA; + pausetime: 12, 12; + sparkxy: -10, -83; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: High; + ground.slidetime: 12; + ground.hittime: 1 + 17; + ground.velocity: -7; + air.velocity: -3, -4; + } +} + +#Change to stand state when done +if animTime = 0 { + changeState{value: 11; ctrl: 1} +} + +#=============================================================================== +# Crouching light kick +#=============================================================================== +# ZSS difficulty: easy +[StateDef 430; +type: C; movetype: A; physics: C; +juggle: 5; poweradd: 11; ctrl: 0; +anim: 430; sprpriority: 2;] + +if time = 1 { + playSnd{value: S 0, 0; channel: 1} +} + +if animElem = 3 { + hitDef{ + attr: C, NA; + damage: 28; + animtype: Light; + hitflag: MAFD; + guardflag: L; + pausetime: 12, 12; + sparkno: 0; + sparkxy: -10, -8; + hitsound: 5, 1; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 6; + ground.hittime: 1 + 10; + ground.velocity: -5; + air.velocity: -2, -3; + down.velocity: -5, 0; + down.hittime: 1 + 22; + } +} + +#Change to stand state when done +if animTime = 0 { + changeState{value: 11; ctrl: 1} +} + +#=============================================================================== +# Crouch Strong Kick +#=============================================================================== +# ZSS difficulty: easy +# Description: This move uses "Trip" for the "ground.type" parameter in +# its hitDef. It's a special type that puts the opponent in a tripped +# animation as he falls. Also, the hitflag parameter in the hitDef +# is set to "MAFD". The "D" indicates that a downed opponent can be +# hit by the attack. +[StateDef 440; +type: C; movetype: A; physics: C; +juggle: 7; poweradd: 35; ctrl: 0; +anim: 440; sprpriority: 2;] + +if time = 1 { + playSnd{value: S 0, 2; channel: 1} +} + +if animElem = 4 { + hitDef{ + attr: C, NA; + damage: 72; + hitflag: MAFD; + guardflag: L; + pausetime: 12, 12; + sparkno: 1; + sparkxy: -5, -10; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Trip; + ground.slidetime: 10; + ground.hittime: 1 + 17; + ground.velocity: -1.5, -2; + air.velocity: -1.2, -3; + guard.velocity: -5; + fall: 1; + } +} + +#Change to stand state when done +if animTime = 0 { + changeState{value: 11; ctrl: 1} +} + +#=============================================================================== +# Jump Light Punch +#=============================================================================== +# ZSS difficulty: easy +[StateDef 600; +type: A; movetype: A; physics: A; +juggle: 2; poweradd: 5; ctrl: 0; +anim: 600; sprpriority: 2;] + +if time = 1 { + playSnd{value: S 0, 0; channel: 1} +} + +if animElem = 2 { + hitDef{ + attr: A, NA; + damage: 20; + guardflag: HA; + priority: 3; + pausetime: 7, 8; + sparkno: 0; + sparkxy: -10, -58; + hitsound: 5, 0; + guardsound: 6, 0; + ground.type: High; + ground.slidetime: 5; + ground.hittime: 1 + 8; + guard.ctrltime: 8; + ground.velocity: -4; + air.velocity: -1.3, -3; + air.hittime: 1 + 14; + } +} + +#This gives control back to kfm early. While this could be done better in a +#number of ways, this is a 1:1 creation of kfm from elecbyte so this change is +#left intact. +if animElemTime(3) = 2 { + ctrlSet{value: 1} +} + +#=============================================================================== +# Jump Strong Punch +#=============================================================================== +# ZSS difficulty: easy +[StateDef 610; +type: A; movetype: A; physics: A; +juggle: 4; poweradd: 30; ctrl: 0; +anim: 610; sprpriority: 2;] + +if time = 2 { + playSnd{value: S 0, 1; channel: 1} +} + +if animElem = 3 { + hitDef{ + attr: A, NA; + damage: 72; + guardflag: HA; + priority: 4; + pausetime: 12, 12; + sparkno: 1; + sparkxy: -10, -55; + hitsound: 5, 3; + guardsound: 6, 0; + animtype: Medium; + ground.type: High; + ground.slidetime: 12; + ground.hittime: 1 + 14; + guard.ctrltime: 14; + ground.velocity: -6; + air.velocity: -3, -4; + } +} + +#=============================================================================== +# Jump Light Kick +#=============================================================================== +# ZSS difficulty: easy +[StateDef 630; +type: A; movetype: A; physics: A; +juggle: 3; poweradd: 10; ctrl: 0; +anim: 630; sprpriority: 2;] + +if time = 1 { + playSnd{value: S 0, 0; channel: 1} +} + +if animElem = 2 { + hitDef{ + attr: A, NA; + damage: 26; + guardflag: HA; + priority: 3; + pausetime: 8, 8; + sparkno: 1; + sparkxy: -5, -35; + hitsound: 5, 0; + guardsound: 6, 0; + ground.type: High; + ground.slidetime: 6; + ground.hittime: 1 + 10; + guard.ctrltime: 10; + ground.velocity: -4; + air.velocity: -2, -3; + air.hittime: 1 + 14; + } +} + +#=============================================================================== +# Jump Strong Kick +#=============================================================================== +# ZSS difficulty: easy +[StateDef 640; +type: A; movetype: A; physics: A; +juggle: 4; poweradd: 30; ctrl: 0; +anim: 640; sprpriority: 2;] + +if time = 2 { + playSnd{value: S 0, 1; channel: 1} +} + +if animElem = 2 { + hitDef{ + attr: A, NA; + damage: 70; + guardflag: HA; + priority: 4; + pausetime: 12, 12; + sparkno: 1; + sparkxy: -10, -40; + hitsound: 5, 3; + guardsound: 6, 0; + animtype: Medium; + ground.type: High; + ground.slidetime: 12; + ground.hittime: 1 + 15; + guard.ctrltime: 15; + ground.velocity: -7; + air.velocity: -3, -4; + } +} + +#=============================================================================== +# Kung Fu Throw - Attempt +#=============================================================================== +# ZSS difficulty: medium-advanced +# Description: Throws are not difficult to make, although then can be +# tedious at times. Throw attempt states have a hitDef of a +# special format. The key parameters in a throw are p1stateno +# and p2stateno. If the hitDef successfully connects, then +# the attacker will change to the state number specified by +# p1stateno, and the opponent will be change to the state +# number assigned to p2stateno. The special thing about p2stateno +# is that the opponent will be temporarily brought into the +# attacker's state file. In this case, no matter who the +# opponent is, he will be taken to state 820 of this file (kfm.ZSS) +# and remain here until the end of the throw (look at his debug +# information when he is being thrown; the text changes to yellow +# to mean that he is in another player's state file). +[StateDef 800; +type: S; movetype: A; physics: S; +juggle: 0; velset: 0, 0, 0; ctrl: 0; +anim: 800; sprpriority: 2;] + +# Notes: The '-' symbol in the hitflag field means that it only affects +# players who are not in a hit state. This prevents KFM from combo-ing +# into the throw. The priority should be set to a low number, such as +# 1 or 2, so that the throw does not take precedence over normal attacks. +# The type of priority must always be set to "Miss" or "Dodge" for throws, +# otherwise strange behavior can result. +if time = 0 { + hitDef{ + attr: S, NT; #Attributes: Standing, Normal Throw + hitflag: M-; #Affect only ground people who are not being hit + priority: 1, Miss; #Throw has low priority, must be miss or dodge type. + sparkno: -1; #No spark + p1sprpriority: 1; #Draw p1's sprite in front of p2 + #p2's sprite priority is set to 0 by default + p1facing: 1; + p2facing: 1; #Force p2 to face KFM + p1stateno: 810; #On success, KFM changes to state 810 + p2stateno: 820; #If hit, p2 changes to state 820 in KFM's ZSS + guard.dist: 0; #This prevents p2 from going into a guard state if close + fall: 1; #Force p2 into falling down + } +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Kung Fu Throw - Throwing the opponent +#=============================================================================== +# Description: In this state, KFM throws the opponent by binding him to +# various offsets based on his current frame of animation. For +# example, [State 810, Bind 1] binds the opponent to an offset of +# 28 pixels in front of KFM. That puts him around where KFM's hand +# is at. Is is important to keep the opponent bound using a +# targetBind controller at all times, until you let him go. This +# is especially important if your player has a Clsn2 box that +# allows him to get hit while throwing someone. Each time a player +# gets hit, all his bound targets will be set to a fall state. If +# the opponent is not bound, then he may get stuck in his thrown +# state when his attacker is knocked out of the throw halfway. +# Notes: There is a targetLifeAdd controller to decrease the opponent's +# life, and a targetState controller to change his state to a +# falling state when KFM lets go of him. +[StateDef 810; +type: S; movetype: A; physics: N; +anim: 810; poweradd: 0;] + +# Here, a map is used to remember which directions the player was holding up +# until the enemy is thrown. This map is checked later to decide the enemy +# throwing velocities +if time = 0 { + mapSet{map: "throw_back"; value: command = "holdback"} + mapSet{map: "throw_up_down"; value: 0} +} + +# Update throwing z direction +if (command = "holdup" || command = "holddown") && animElemTime(6) < 0 { + mapSet{map: "throw_up_down"; value: command = "holddown" - command = "holdup"} +} + +if animElem = 2 { + playSnd{value: S 1, 1; channel: 1} +} + +if animElem = 7 { + playSnd{value: S 800, 0; channel: 1} +} + +if animElemTime(2) < 0 { + targetBind{pos: 28, 0} +} + +if animElemTime(2) >= 0 && animElemTime(12) < 0 { + width{edge: 60, 0} + #Because triggers are done in if{} blocks, conditions can be grouped + #together to prevent repeating code. This still means + #"AnimElemTime(2) >= 0 && animElemTime(5) < 0" but we're under an if{} block + #saying animElemTime(2) >= 0 already, so we don't need to specify it again. + if animElemTime(5) < 0 { + targetBind{pos: 58, 0} + } +} + +if animElemTime(5) >= 0 && animElemTime(6) < 0 { + targetBind{pos: 47, 0} +} + +#It is possible to group sctrls together if they had the same triggers in ZSS. +#Saving time and space. +if !map(throw_back) && animElem = 6 { + turn{} # If player was not holding back before, turn now + posAdd{x: -37} # And move a little + targetFacing{value: -1} # And turn the target too +} + +#For optimization, else if is used to make sure the code below the first if +#condition is the only code checked. The second the animation looks for the +#second condition, that if statement will be the only one checked until it goes +#through the entire animation. +if animElemTime(6) >= 0 && animElemTime(7) < 0 { + targetBind{pos: 41, -60} +} else if animElemTime(7) >= 0 && animElemTime(8) < 0 { + targetBind{pos: 25, -75} +} else if animElemTime(8) >= 0 && animElemTime(9) < 0 { + targetBind{pos: 15, -90} +} else if animElemTime(9) >= 0 && animElemTime(10) < 0 { + targetBind{pos: -5, -96} +} else if animElemTime(10) >= 0 && animElemTime(11) < 0 { + targetBind{pos: -14, -90} +} + +if animElem = 11 { + targetBind{pos: -50, -50} + targetLifeAdd{value: -78} + targetState{value: 821} +} + +if animElem = 12 { + turn{} +} + +if animElem = 15 { + posAdd{x: -10} +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Kung Fu Palm +#=============================================================================== +# ZSS difficulty: medium +# Description: This is like a standard attack, but with some differences. +# There are two HitDefs in this attack. One is triggered when the +# opponent is near (using a p2BodyDist trigger), and the other +# when the opponent is farther away. The main differences between +# the near and far versions of the HitDefs is that the near version +# has a "fall" parameter set to 1, causing the opponent to be knocked +# down. Other minor differences are the damage, and the velocity to +# give the opponent. +# The line "attr = S, SA" line means this is a Standing, Special attack. +# It is important you have the attr parameter set correctly for all +# you HitDefs. +[StateDef 1000; +type: S; movetype: A; physics: S; +juggle: 4; poweradd: 55; velset: 0, 0, 0; +anim: 1000; ctrl: 0; sprpriority: 2;] + +if time = 8 { + playSnd{value: S 0, 3; channel: 1} +} + +if animElem = 2 { + posAdd{x: 20} +} + +if animElem = 3 || animElem = 13 { + posAdd{x: 10} +} + +if animElem = 5 { + posAdd{x: 5} + if p2BodyDist X < 40 { + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 90, 4; + priority: 5; + guardflag: MA; + pausetime: 15, 15; + sparkxy: -10, -60; + hitsound: 5, 4; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 12; + ground.hittime: 1 + 17; + ground.velocity: -4, -3.5; + air.velocity: -4, -3; + fall: 1; + } + } else { + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 85, 4; + priority: 4; + guardflag: MA; + pausetime: 15, 15; + sparkxy: -10, -60; + hitsound: 5, 4; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 12; + ground.hittime: 1 + 17; + ground.velocity: -7; + air.velocity: -4, -2.5; + } + } +} + +if animElem = 9 { + posAdd{x: -5} +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Strong Kung Fu Palm +#=============================================================================== +# ZSS difficulty: medium +[StateDef 1010; +type: S; movetype: A; physics: S; +juggle: 4; poweradd: 60; velset: 0, 0, 0; +anim: 1010; ctrl: 0; sprpriority: 2;] + +if time = 9 { + playSnd{value: S 0, 3; channel: 1} +} + +if animElem = 2 { + posAdd{x: 20} +} + +if animElem = 3 || animElem = 13 { + posAdd{x: 10} +} + +if animElem = 5 { + posAdd{x: 5} + velSet{x: 4} + if p2BodyDist X < 40 { + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 90, 4; + priority: 5; + guardflag: MA; + pausetime: 15, 15; + sparkxy: -10, -60; + hitsound: 5, 4; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 12; + ground.hittime: 1 + 17; + ground.velocity: -4, -3.5; + air.velocity: -4, -3; + fall: 1; + } + } else { + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 85, 4; + priority: 4; + guardflag: MA; + pausetime: 15, 15; + sparkxy: -10, -60; + hitsound: 5, 4; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 12; + ground.hittime: 1 + 17; + ground.velocity: -7; + air.velocity: -4, -2.5; + } + } +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Fast Kung Fu Palm +#=============================================================================== +# ZSS difficulty: advanced +# Description: This is a complicated attack move. If you're a beginner, +# you should skip looking at this for now and check it later when +# you are more comfortable with the ZSS. +# This move puts the other player in a custom get-hit state. +# The line "p2stateno = 1025" in the hitDef does this. KFM has some +# palette effects as well as after-image effects. +[StateDef 1020; +type: S; movetype: A; physics: N; +juggle: 6; poweradd: -330; velset: 0, 0, 0; +anim: 1020; ctrl: 0; sprpriority: 2;] + +velMul{x: 0.85 * ifElse (animElemTime(6) < 0, 1, 0.8)} + +if time = 0 { + afterImage{ + length: 13; + palbright: 30, 30, 0; + palcontrast: 70, 70, 20; + paladd: -10, -10, -10; + palmul: 0.85, 0.85, 0.50; + timegap: 1; + framegap: 2; + trans: Add; + time: 2; + } + call EXFX(20); +} + +if animElemTime(8) < 0 { + afterImageTime{time: 2} +} + +if time = 2 { + playSnd{value: S 0, 3; channel: 1} +} + +if animElem = 2 { + posAdd{x: 20} +} + +if animElem = 3 || animElem = 12 { + posAdd{x: 10} +} + +if animElem = 4 { + posAdd{x: 5} + velSet{x: 13} + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 95, 5; + getpower: 0; + priority: 4; + guardflag: MA; + pausetime: 8, 7; + sparkxy: -10, -60; + hitsound: 5, 4; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 20; + ground.hittime: 1 + 22; + ground.velocity: -8, -7; + guard.velocity: -7; + air.velocity: -8, -7; + airguard.velocity: -5, -4; + fall: 1; + p2stateno: 1025; #Make p2 go to state 1025 on hit + p2facing: 1; #Force to face p1 + } +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Kung Fu Knee +#=============================================================================== +# ZSS difficulty: medium +# Description: Like the Kung Fu Palm, this is a special attack. This attack +# begins on the ground, launches KFM into the air, then ends when KFM +# lands on the ground. To achieve this, we use three states. The first +# has KFM starting on the ground (note that type = S in the Statedef). +# The changeState controller brings KFM into the second state (state +# 1051) when his ground animation ends. The second state controls KFM's +# movement into the air and back towards the ground. The last state +# (state 1052) stops KFM from moving when he touches the ground, and +# brings him back to his stand state (state 0) when the animation is +# over. More details are given in comments before each of the following +# states. +[StateDef 1050; +type: S; movetype: A; physics: S; +juggle: 4; poweradd: 55; velset: 0, 0, 0; +anim: 1050; ctrl: 0; sprpriority: 2;] + +if time = 1 { + playSnd{value: S 0, 2; channel: 1} +} + +if animElem = 4 { + posAdd{x: 20} +} + +if animElem = 4 { + hitDef{ + attr: A, SA; + animtype: Medium; + damage: 80, 4; + priority: 5; + guardflag: MA; + pausetime: 12, 12; + sparkxy: -10, -70; + hitsound: 5, 3; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 20; + ground.hittime: 1 + 22; + ground.velocity: -3.5, -7; + guard.velocity: -7; + air.velocity: -3.5, -7; + fall: 1; + } +} + +if animTime = 0 { + changeState{value: 1051} +} + +#------------------------------------------------------------------------------- +# Light Kung Fu Knee - jump +# Description: This state uses a velet parameter in the StateDef to make +# KFM move upwards. A value of 2, -6 means 2 pixels/tick forwards, and +# 6 pixels/tick upwards. Since this is an aerial state, the type is set +# to A in the Statedef. +# Notice that physics = N (N for None) here. This means we are not using +# the built-in aerial physics model (physics = A), so we have complete +# control over what KFM does in this state. Since we do not have +# physics = A to take care of gravity for us, we need to put in our own +# controller for that. Controller 1051, 1 does the work of pulling KFM +# down towards the ground. Controller 1051, 2 checks if KFM has reached +# the ground, and changes to state 1052 if so. +# In this state's Statedef, we will use the hitdefpersist parameter to +# retain the hitDef information from the last state. If we did not have +# hitdefpersist, the hitDef will be turned off between state changes. +[StateDef 1051; +type: A; movetype: A; physics: N; +velset: 2, -6; anim: 1051; +hitdefpersist: 1 ;] #Keep the hitDef from previous state active + +#Gravity +velAdd{y: 0.45} + +if (command = "a" || command = "b") && vel y < -1 { + changeState{value: 1055} +} + +#Change state when KFM is close to ground +if vel y > 0 && pos y >= -10 { + changeState{value: 1052} +} + +#------------------------------------------------------------------------------- +# Light Kung Fu Knee - land +# Description: This is KFM's landing state. There is a velset in the +# StateDef to stop KFM from moving. Since KFM's y-position can be any +# number greater than -10 upon entering this state (see the changeState +# controller in State 1051), we need to reset it to 0, the ground +# level. That is what controller 1052, 1 is for. +[StateDef 1052; +type: S; movetype: I; physics: S; +anim: 1052; sprpriority: 1; +velset: 0, 0, 0;] + +#Reset y-position to ground level +if time = 0 { + posSet{y: 0} + playSnd{value: S 40, 0; channel: 1} #Play a sound for landing +} + +#Give KFM back control early +if animElem = 3, -1 { + ctrlSet{value: 1} +} + +if animElem = 4 { + posAdd{x: -15} +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#------------------------------------------------------------------------------- +# Kung Fu Knee - kick +[StateDef 1055; +type: A; movetype: A; physics: N; +anim: 1055;] + +if time = 0 { + #Channel 0 is reserved for voices here but it is not a requirement. + playSnd{value: S 100, 0; channel: 0} + playSnd{value: S 0, 1; channel: 1} + posAdd{x: 10; y: -10} +} + +#Gravity +velAdd{y: 0.45} + +if animElem = 5 { + hitDef{ + attr: A, SA; + animtype: Medium; + damage: 35 + (prevstateno = 1061)*5, 2; + priority: 4; + guardflag: MA; + pausetime: 12, 12; + sparkxy: 0, -90; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: High; + ground.slidetime: 15; + ground.hittime: 1 + 18; + ground.velocity: -6; + guard.velocity: -8; + guard.ctrltime: 12; + air.velocity: -4, -5; + airguard.velocity: -4, -4.5; + air.fall: 1; + } +} + +#Change state when KFM is close to ground +if vel y > 0 && pos y >= -5 { + changeState{value: 1056} +} + +#------------------------------------------------------------------------------- +# Kung Fu Knee - land from kick +[StateDef 1056; +type: S; movetype: I; physics: S; +anim: 1056; sprpriority: 1; +velset: 0, 0, 0;] + +if time = 0 { + posSet{y: 0} #Reset y-position to ground level + playSnd{value: S 40, 0; channel: 1} #Play a sound for landing +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Strong Kung Fu Knee +#=============================================================================== +[StateDef 1060; +type: S; movetype: A; physics: S; +juggle: 4; poweradd: 60; velset: 0, 0, 0; +anim: 1060; ctrl: 0; sprpriority: 2;] + +if time = 1 { + playSnd{value: S 0, 2; channel: 1} +} + +if animElem = 2 { + posAdd{x: 6} +} + +if animElem = 4 { + posAdd{x: 21} +} + +if animElem = 4 { + hitDef{ + attr: A, SA; + animtype: Medium; + damage: 90, 4; + priority: 5; + guardflag: MA; + pausetime: 12, 12; + sparkxy: -10, -70; + hitsound: 5, 3; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 20; + ground.hittime: 1 + 22; + ground.velocity: -3.5, -7.5; + guard.velocity: -7; + air.velocity: -3.5, -7.5; + fall: 1; + } +} + +if animTime = 0 { + changeState{value: 1061} +} + +#------------------------------------------------------------------------------- +# Strong Kung Fu Knee - jump +[StateDef 1061; +type: A; movetype: A; physics: N; +velset: 2, -7.5; anim: 1051; +hitdefpersist: 1;] #Keep the hitDef from previous state active + +#Gravity +velAdd{y: 0.45} + +if (command = "a" || command = "b") && vel y < -1 { + changeState{value: 1055} +} + +#Change state when KFM is close to ground +if vel y > 0 && pos y >= -10 { + changeState{value: 1052} +} + +#=============================================================================== +# Fast Kung Fu Knee +#=============================================================================== +# Description: This version of the Kung Fu Knee hits up to 3 times (including +# the kick). +[StateDef 1070; +type: S; movetype: A; physics: S; +juggle: 6; poweradd: -330; +velset: 0, 0, 0; anim: 1070; ctrl: 0; +sprpriority: 2;] + +afterImageTime{time: 2} + +if time = 0 { + afterImage{ + length: 13; + palbright: 30, 30, 0; + palcontrast: 70, 70, 20; + paladd: -10, -10, -10; + palmul: 0.85, 0.85, 0.50; + timegap: 1; + framegap: 2; + trans: Add; + time: 2; + } + call EXFX(20); +} + +if time = 1 { + playSnd{value: S 0, 2; channel: 1} +} + +if animElem = 2 { + posAdd{x: 6} +} + +if animElem = 4 { + posAdd{x: 21} +} + +if animElem = 4 { + hitDef{ + attr: S, SA; + animtype: Medium; + getpower: 0; + damage: 35, 3; + priority: 5; + hitflag: MA; + guardflag: MA; + pausetime: 8, 7; + sparkxy: -10, -70; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 18; + ground.hittime: 1 + 20; + ground.velocity: -2, -6; + guard.velocity: -7; + air.velocity: -2, -6; + fall: 1; + fall.animtype: Medium; + fall.recovertime: 30; + } +} + +if animTime = 0 { + changeState{value: 1071} +} + +#------------------------------------------------------------------------------- +# Fast Kung Fu Knee - jump +[StateDef 1071; +type: A; movetype: A; physics: N; +velset: 2.5, -9; anim: 1071;] + +if time = 0 { + call EXFX(20); + hitDef{ + attr: A, SA; + animtype: Medium; + getpower: 0; + damage: 68, 4; + priority: 5; + guardflag: MA; + pausetime: 12, 12; + sparkxy: -10, -70; + hitsound: 5, 3; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 18; + ground.hittime: 1 + 20; + ground.velocity: -3, -9.5; + guard.velocity: -7; + air.velocity: -3, -9.5; + fall: 1; + fall.recovertime: 30; + } +} + +if vel y < 0 { + afterImageTime{time: 2} +} + +velAdd{y: 0.5} + +if vel y >= -1 { + velAdd{y: 0.2} +} + +if (command = "a" || command = "b") && vel y < -1 && time > 0 { + changeState{value: 1075} +} + +#Change state when KFM is close to ground +if vel y > 0 && pos y >= -10 { + changeState{value: 1052} +} + +#------------------------------------------------------------------------------- +# Fast Kung Fu Knee - kick +[StateDef 1075; +type: A; movetype: A; physics: N; +anim: 1055;] + +afterImageTime{time: 2} + +if time = 0 { + call EXFX(20); + playSnd{value: S 100, 0; channel: 0} + playSnd{value: S 0, 1; channel: 1} + posAdd{x: 10; y: -10} + hitDef{ + attr: A, SA; + animtype: Medium; + damage: 42, 2; + getpower: 0; + priority: 4; + guardflag: MA; + pausetime: 12, 12; + sparkxy: 0, -90; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: High; + ground.slidetime: 15; + ground.hittime: 1 + 20; + ground.velocity: -6; + guard.velocity: -6; + air.velocity: -4, -6; + airguard.velocity: -4, -4.5; + air.fall: 1; + } +} + +#Gravity +velAdd{y: 0.5} + +if vel y >= -1 { + velAdd{y: 0.2} +} + +#Change state when KFM is close to ground +if vel y > 0 && pos y >= -5 { + changeState{value: 1056} +} + +#=============================================================================== +# Light Kung Fu Upper +#=============================================================================== +# ZSS difficulty: easy +# Description: This is a simple special attack that can hit twice. Notice +# the use of the width controller to keep opponents from getting too +# close to KFM during his uppercut (press Ctrl-C, and look at the +# yellow bar at KFM's feet during the move). +# The second hitDef has some interesting parameters. fall.recovertime +# is used to prevent the opponent (p2) from recovering immediately +# after being hit (eg. press x+y with KFM to recover). This gives the +# attacking KFM a chance to follow up with an extra attack, such as +# a Kung Fu Knee. The yaccel parameter, set at 0.4, makes p2 fall at a +# greater value of acceleration than the default, which is 0.35. +[StateDef 1100; +type: S; movetype: A; physics: S; +juggle: 4; poweradd: 55; velset: 0, 0, 0; +anim: 1100; ctrl: 0; sprpriority: 2;] + +if animElemTime(4) >= 0 && animElemTime(13) < 0 { + width{value: 5, 0} +} + +if animElem = 4 { + playSnd{value: S 0, 2; channel: 1} +} + +if time = 0 { + hitDef{ + attr: S, SA; + animtype: Medium; + damage: 52, 4; + priority: 5; + guardflag: MA; + pausetime: 4, 8; + sparkxy: 0, -48; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 15; + ground.hittime: 1 + 20; + ground.velocity: -3; + guard.velocity: -6; + air.velocity: -2, -2; + airguard.velocity: -4, -4.5; + p2facing: 1; + forcestand: 1; #Force p2 into a standing state if hit + } +} + +if animElem = 7 { + hitDef{ + attr: S, SA; + animtype: Up; + damage: 55, 4; + priority: 5; + guardflag: MA; + pausetime: 12, 12; + sparkxy: 0, -110; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 15; + ground.hittime: 1 + 20; + ground.velocity: -1, -9.5; + guard.velocity: -6; + air.velocity: -1, -7.5; + airguard.velocity: -4, -4.5; + p2facing: 1; + fall: 1; #Make p2 fall down + fall.recovertime: 40; #40 ticks before p2 can recover from fall + yaccel: 0.4; #p2 will accelerate down at 0.4 pixels/sec^2 when falling + } +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Strong Kung Fu Upper +#=============================================================================== +[StateDef 1110; +type: S; movetype: A; physics: S; +juggle: 4; poweradd: 60; velset: 0, 0, 0; +anim: 1110; ctrl: 0; sprpriority: 2;] + +if animElemTime(4) >= 0 && animElemTime(14) < 0 { + width{value: 5, 0} +} + +if animElem = 4 { + playSnd{value: S 0, 2; channel: 1} +} + +if time = 0 { + hitDef{ + attr: S, SA; + animtype: Medium; + damage: 57, 4; + priority: 5; + guardflag: MA; + pausetime: 4, 8; + sparkxy: 0, -48; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 15; + ground.hittime: 1 + 20; + ground.velocity: -3; + guard.velocity: -6; + air.velocity: -2, -2; + airguard.velocity: -4, -4.5; + p2facing: 1; + forcestand: 1; + } +} + +if animElem = 7 { + hitDef{ + attr: S, SA; + animtype: Up; + damage: 60, 4; + priority: 5; + guardflag: MA; + pausetime: 12, 12; + sparkxy: 0, -110; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 15; + ground.hittime: 1 + 20; + ground.velocity: -1, -10.5; + guard.velocity: -6; + air.velocity: -1, -8.5; + airguard.velocity: -4, -4.5; + p2facing: 1; + fall: 1; + fall.recovertime: 50; + yaccel: 0.4; + } +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Fast Kung Fu Upper +#=============================================================================== +[StateDef 1120; +type: S; movetype: A; physics: S; +juggle: 6; poweradd: -330; velset: 0, 0, 0; +anim: 1120; ctrl: 0; sprpriority: 2;] + +if animElemTime(4) >= 0 && animElemTime(14) < 0 { + width{value: 5, 0} +} + +if animElem = 4 { + playSnd{value: S 0, 2; channel: 1} +} + +if time = 0 { + afterImage{ + length: 13; + palbright: 30, 30, 0; + palcontrast: 70, 70, 20; + paladd: -10, -10, -10; + palmul: 0.85, 0.85, 0.50; + timegap: 1; + framegap: 2; + trans: Add; + time: 2; + } + call EXFX(20); +} + +if animTime < -2 { + afterImageTime{time: 2} +} + +if time = 0 || animElem = 4 { + hitDef{ + attr: S, SA; + animtype: Medium; + damage: 30, 4; + getpower: 0; + priority: 5; + guardflag: MA; + pausetime: 6, 10; + sparkxy: 0, ifElse(time = 0, -48, -55); + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 18; + ground.hittime: 1 + 23; + ground.velocity: -3; + guard.velocity: -6; + air.velocity: -2, -2; + airguard.velocity: -4, -4.5; + p2facing: 1; + forcestand: 1; + } +} + +if animElem = 7 { + hitDef{ + attr: S, SA; + animtype: Up; + damage: 68, 4; + getpower: 0; + priority: 5; + guardflag: MA; + pausetime: 12, 12; + sparkxy: 0, -110; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 18; + ground.hittime: 1 + 23; + ground.velocity: -1.2, -11; + guard.velocity: -6; + air.velocity: -1.2, -9; + airguard.velocity: -4, -4.5; + p2facing: 1; + fall: 1; + fall.recovertime: 60; + yaccel: 0.4; + } +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Light Kung Fu Blow +#=============================================================================== +# ZSS difficulty: easy +# Notes: This uses the envShake controller to shake the screen. It makes the +# move look stronger. +[StateDef 1200; +type: S; movetype: A; physics: S; +juggle: 4; poweradd: 50; velset: 0, 0, 0; +anim: 1200; ctrl: 0; sprpriority: 2;] + +if animElem = 4 { + playSnd{value: S 0, 3; channel: 1} +} + +if animElemTime(5) >= 0 && animElemTime(6) < 0 { + width{value: 10, 0} +} + +if animElemTime(6) >= 0 && animElemTime(9) < 0 { + width{value: 20, 0} +} + +if animElem = 6 { + call BoardProjectile(60, 5.0, 0.0); # damage, xvel, zvel +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Strong Kung Fu Blow +#=============================================================================== +# ZSS difficulty: easy +[StateDef 1210; +type: S; movetype: A; physics: S; +juggle: 4; poweradd: 60; velset: 0, 0, 0; +anim: 1210; ctrl: 0; sprpriority: 2;] + +if animElem = 4 { + playSnd{value: S 0, 3; channel: 1} +} + +if animElemTime(5) >= 0 && animElemTime(6) < 0 { + width{value: 10, 0} +} + +if animElemTime(6) >= 0 && animElemTime(9) < 0 { + width{value: 20, 0} +} + +if animElem = 6 { + call BoardProjectile(40, 5.0, -1.0); # damage, xvel, zvel + call BoardProjectile(40, 5.0, 1.0); +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Fast Kung Fu Blow +#=============================================================================== +# ZSS difficulty: easy +[StateDef 1220; +type: S; movetype: A; physics: S; +juggle: 6; poweradd: -330; velset: 0, 0, 0; +anim: 1220; ctrl: 0; sprpriority: 2;] + +if time = 0 { + afterImage{ + length: 13; + palbright: 30, 30, 0; + palcontrast: 70, 70, 20; + paladd: -10, -10, -10; + palmul: 0.85, 0.85, 0.50; + timegap: 1; + framegap: 2; + trans: Add; + time: 2; + } + call EXFX(20); +} + +if animTime < -2 { + afterImageTime{time: 2} +} + +if animElem = 4 { + playSnd{value: S 0, 3; channel: 1} +} + +if animElemTime(5) >= 0 && animElemTime(6) < 0 { + width{value: 10, 0} +} + +if animElemTime(6) >= 0 && animElemTime(9) < 0 { + width{value: 20, 0} +} + +if animElem = 6 { + call BoardProjectile(40, 5.0, 0.0); # damage, xvel, zvel + call BoardProjectile(40, 4.0, -1.5); + call BoardProjectile(40, 4.0, 1.5); +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Kung Fu Blocking High +#=============================================================================== +# ZSS difficulty: medium +# Notes: This move uses a reversalDef controller to counter attacks. Any +# attacks not caught by the reversalDef are handled by the hitOverride. +# The movetype is Idle because this is not an attack. + +[StateDef 1300; +type: S; movetype: I; physics: S; +velset: 0, 0, 0; anim: 1300; ctrl: 0; +sprpriority: 1;] + +if animElemTime(3) < 0 { + width{value: 15, 0} +} + +if time = 0 { + playSnd{value: S 0, 1; channel: 1} + reversalDef{ + reversal.attr: SA, AA; + pausetime: 0, 0; + sparkno: 40; + sparkxy: 40, 0; + hitsound: 6, 0; + p1stateno: 1310; + p1sprpriority: 2; #Set P1's sprite in front of P2's + p2sprpriority: 1; + } + hitOverride{attr: SA, AP; stateno: 1310; time: 8} +} + +#Stop countering +if time = 4 && command = "holdfwd" || time = 8 { + reversalDef{reversal.attr: } + hitOverride{attr: ; time: 0} +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Kung Fu Blocking High (blocked) +#=============================================================================== +# Notes: This state uses a pause controller to freeze the action dramatically. +[StateDef 1310; +type: S; movetype: I; physics: S; +velset: 0, 0, 0; anim: 1310; ctrl: 0; +sprpriority: 2;] + +if time = 0 { + #Buffer commands input during the pause + #Don't pause backgrounds + pause{time: 20; endcmdbuftime: 20; pausebg: 0} + notHitBy{value: SCA; time: 1} +} + +if time = 1 && command = "holdback" { + changeState{value: 130; ctrl: 1} +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Kung Fu Blocking Low +#=============================================================================== +[StateDef 1320; +type: C; movetype: I; physics: C; +velset: 0, 0, 0; anim: 1320; ctrl: 0; +sprpriority: 1;] + +if animElemTime(3) < 0 { + width{value: 10, 0} +} + +if time = 0 { + playSnd{value: S 0, 1; channel: 1} + reversalDef{ + reversal.attr: C, AA; + pausetime: 0, 0; + sparkno: 40; + sparkxy: 40, 0; + hitsound: 6, 0; + p1stateno: 1330; + p1sprpriority: 2; + p2sprpriority: 1; + } +} + +if time = 5 { + reversalDef{reversal.attr: } #Stop +} + +if time < 5 { + hitOverride{attr: C, AP; stateno: 1330} +} + +if animTime = 0 { + changeState{value: 11; ctrl: 1} +} + +#=============================================================================== +# Kung Fu Blocking Low (blocked) +#=============================================================================== +[StateDef 1330; +type: C; movetype: I; physics: C; +velset: 0, 0, 0; anim: 1330; ctrl: 0; +sprpriority: 2;] + +if time = 0 { + #Buffer commands input during the pause + #Don't pause backgrounds + pause{time: 20; endcmdbuftime: 20; pausebg: 0} + notHitBy{value: SCA; time: 1} +} + +if time = 1 && command = "holdback" { + changeState{value: 131; ctrl: 1} +} + +if animTime = 0 { + changeState{value: 11; ctrl: 1} +} + +#=============================================================================== +# Kung Fu Blocking Air +#=============================================================================== +[StateDef 1340; +type: A; movetype: I; physics: N; +anim: 1340; ctrl: 0; sprpriority: 1;] + +if animElemTime(3) < 0 { + width{value: 10, 0} +} + +if time = 0 { + playSnd{value: S 0, 1; channel: 1} + reversalDef{ + reversal.attr: A, AA; + pausetime: 0, 0; + sparkno: 40; + sparkxy: 40, 0; + hitsound: 6, 0; + p1stateno: 1350; + p1sprpriority: 2; + p2sprpriority: 1; + } +} + +if time = 5 { + reversalDef{reversal.attr: } #Stop +} + +if time < 5 { + hitOverride{attr: SA, AP; stateno: 1350} +} + +if animElem = 4 { + ctrlSet{value: 1} +} + +#Gravity +velAdd{y: const(movement.yaccel)} + +#Land from jump +if pos y >= 0 && vel y > 0 { + changeState{value: 1351} +} + +#=============================================================================== +# Kung Fu Blocking Air (blocked) +#=============================================================================== +[StateDef 1350; +type: A; movetype: I; physics: N; +anim: 1350; ctrl: 0; sprpriority: 2;] + +if time = 0 { + #Buffer commands input during the pause + #Don't pause backgrounds + pause{time: 20; endcmdbuftime: 20; pausebg: 0} + notHitBy{value: SCA; time: 1} +} + +if time = 1 && command = "holdback" { + changeState{value: 132; ctrl: 1} +} + +#Stop KFM in the air +if animElemTime(3) < 0 { + posFreeze{} +} + +if animElem = 3 { + ctrlSet{value: 1} +} + +#Gravity +if animElemTime(3) > 0 { + velAdd{y: const(movement.yaccel)} +} + +#Land from jump +if pos y >= 0 && vel y > 0 { + changeState{value: 1351} +} + +#=============================================================================== +# Kung Fu Blocking Air (land) +#=============================================================================== +[StateDef 1351; +type: S; physics: S; ctrl: 0; anim: 47;] + +if time = 0 { + velSet{y: 0} + posSet{y: 0} +} + +if time = 3 { + ctrlSet{value: 1} +} + +if command = "blocking" { + if command != "holddown" { + changeState{value: 1300} + } else { + changeState{value: 1320} + } +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Light Kung Fu Zankou +#=============================================================================== +# ZSS difficulty: easy +[StateDef 1400; +type: S; movetype: A; physics: N; +juggle: 4; poweradd: 50; velset: 0, 0, 0; +anim: 1400; ctrl: 0; sprpriority: 2;] + +if animElem = 3 { + playSnd{value: S 0, 3; channel: 1} +} + +velMul{x: 0.5} + +if time = 0 { + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 100, 6; + priority: 4; + guardflag: MA; + pausetime: 12, 12; + sparkxy: 0, -65; + hitsound: 5, 3; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 12; + ground.hittime: 1 + 17; + ground.velocity: -9; + ground.cornerpush.veloff: -15; #To push far away when p2 is in corner + guard.velocity: -9; + air.velocity: -2, -5; + airguard.velocity: -3.5, -4.5; + air.fall: 1; + } +} + +if animElem = 2 || animElem = 3 || animElem = 4 || animElem = 8 { + posAdd{x: 10} +} + +if animElem = 4 { + velSet{x: 2} +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Strong Kung Fu Zankou +#=============================================================================== +# ZSS difficulty: easy +[StateDef 1410; +type: S; movetype: A; physics: N; +juggle: 4; poweradd: 50; velset: 0, 0, 0; +anim: 1410; ctrl: 0; sprpriority: 2;] + +if animElem = 3 { + playSnd{value: S 0, 0; channel: 1} +} +velMul{x: 0.65} + +if time = 0 { + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 100, 6; + priority: 4; + guardflag: MA; + pausetime: 12, 12; + sparkxy: 0, -65; + hitsound: 5, 3; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 12; + ground.hittime: 1 + 17; + ground.velocity: -9; + ground.cornerpush.veloff: -15; #To push far away when p2 is in corner + guard.velocity: -9; + air.velocity: -2, -5; + airguard.velocity: -3.5, -4.5; + air.fall: 1; + } +} + +if animElem = 2 || animElem = 3 || animElem = 4 || animElem = 9 { + posAdd{x: 10} +} + +if animElem = 4 { + velSet{x: 8} +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Far Kung Fu Zankou +#=============================================================================== +# ZSS difficulty: easy +[StateDef 1420; +type: S; movetype: A; physics: N; +juggle: 6; poweradd: -330; velset: 0, 0, 0; +anim: 1420; ctrl: 0; sprpriority: 2;] + +if time = 0 { + afterImage{ + length: 13; + palbright: 30, 30, 0; + palcontrast: 70, 70, 20; + paladd: -10, -10, -10; + palmul: 0.85, 0.85, 0.50; + timegap: 1; + framegap: 2; + trans: Add; + time: 2; + } + call EXFX(20); +} + +if animElemTime(8) < 0 { + afterImageTime{time: 2} +} + +if animElem = 3 { + playSnd{value: S 0, 0; channel: 1} +} + +velMul{x: 0.7} + +# This makes KFM wider in the Z space so the attack is less likely to miss +depth{player: 5, 5} + +if animElemTime(4) = -2 { + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 25, 2; + getpower: 0; + priority: 4; + guardflag: MA; + pausetime: 9, 9; + sparkxy: -15, -45; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 22; + ground.hittime: 1 + 24; + ground.velocity: -7; + ground.cornerpush.veloff: -8; #To push far away when p2 is in corner + guard.velocity: -9; + air.velocity: -5, -4; + airguard.velocity: -3.5, -4.5; + attack.depth: 8, 8; + } +} + +if animElem = 4 { + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 100, 8; + getpower: 0; + priority: 5; + guardflag: MA; + pausetime: 12, 12; + sparkxy: 0, -65; + hitsound: 5, 3; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 22; + ground.hittime: 1 + 24; + ground.velocity: -3, -6, -4; #-5, -4; + ground.cornerpush.veloff: -15; #To push far away when p2 is in corner + guard.velocity: -9; + air.velocity: -3, -6, -4; + airguard.velocity: -3.5, -4.5; + fall: 1; + attack.depth: 6, 6; + ID: 1425; # ID for TargetState + } +} + +# This makes the enemy bounce off the top wall only if KFM hits them with his back +ignoreHitPause if moveHitVar(frame) && moveHit = 1 && numTarget(1425) { + if target(1425), getHitVar(frame) && target(1425), stateNo = [5000, 5020] && (target(1425), pos z - pos z) <= 0 { + targetState{value: 1425; ID: 1425} + } +} + +if animElem = 2 || animElem = 3 || animElem = 4 || animElem = 10 { + posAdd{x: 10} +} + +if animElemTime(3) = [1, 2] { + velSet{x: 20} +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Triple Kung Fu Palm (hyper) +#=============================================================================== +# ZSS difficulty: medium +# Notes: Notice that the HitDefs in supers have "getpower = 0". This makes +# sure KFM doesn't recharge his super guage as he hits. +# Also, the attributes for the HitDefs is "HA" for "hyper attack", +# ie. "attr = S, HA". +# Notice how the first hitDef is reused twice by allowing it to +# trigger on two animation elements. +[StateDef 3000; +type: S; movetype: A; physics: S; +velset: 0, 0, 0; anim: 3000; +ctrl: 0; sprpriority: 2;] + +if animElem = 2, >= 0 { + width{value: 15, 0} +} + +if animElem = 2, 1 { + superPause{ + pos: 25, -57; + anim: 100; + sound: 20, 0; + poweradd: -1000; + } + afterImage{time: 2} +} + +if animElemTime(2) >= 1 && animElemTime(25) < 4 { + afterImageTime{time: 2} +} + +if animElem = 2 { + notHitBy{value: , NA, SA, AT; time: 11} + posAdd{x: 20} +} + +if animElemTime(2) >= 0 && animElemTime(14) < 0 { + notHitBy{value: C, NA; time: 1} +} + +if animElem = 4 || animElem = 12 || animElem = 20 { + playSnd{value: S 0, 0; channel: 1} +} + +if animElem = 3 || animElem = 11 || animElem = 13 || animElem = 19 || animElem = 21 || animElem = 31 { + posAdd{x: 10} +} + +if animElem = 5 || animElem = 13 || animElem = 21 { + velSet{x: 6} + if command = "holdup" { + velSet{z: -3} + } else if command = "holddown" { + velSet{z: 3} + } else { + velSet{z: 0} + } +} + +if animElem = 5 { + posAdd{x: 5} +} + +if animElem = 5 || animElem = 13 { + hitDef{ + attr: S, HA; + animtype: Hard; + damage: 72, 4; + getpower: 0; + priority: 6; + guardflag: MA; + pausetime: 15, 15; + sparkxy: -10, -60; + hitsound: 5, 4; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 30; + ground.hittime: 1 + 32; + ground.velocity: -6; + air.velocity: -3, -2.8; + air.fall: 1; + fall.animtype: Hard; + fall.recover: 0; + air.juggle: 1; + } +} + +if animElem = 21 { + hitDef{ + attr: S, HA; + animtype: Hard; + damage: 75, 4; + getpower: 0; + priority: 5; + guardflag: MA; + pausetime: 15, 15; + sparkxy: -10, -60; + hitsound: 5, 4; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 30; + ground.hittime: 1 + 32; + ground.velocity: -5, -4; + guard.velocity: -12; + air.velocity: -5, -4; + airguard.velocity: -3, -3; + fall.animtype: Hard; + fall: 1; + fall.recover: 0; + air.juggle: 1; + } +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#=============================================================================== +# Smash Kung Fu Upper (hyper) +#=============================================================================== +# CNS difficulty: medium +# Description: This is very similar to KFM's Strong and Light Kung Fu Uppers. +# There is just one hitDef, for a screen-shaking hit. The envshake +# parameters are used to make this effect. You can find out more about +# each parameter in the CNS documentation. +# The fall.recover parameter is set at 0, meaning that p2 cannot recover +# from the fall by entering his recovery command (for KFM, that is x+y). +# This gives the attacking KFM a chance to follow up with another attack, +# such as the Fast Kung Fu Palm. +# Note that there is a changeState controller used to make KFM change to +# a success state if he hits. The success state has KFM hold his arm +# up longer for a dramatic effect. +[StateDef 3050; +type: S; movetype: A; physics: S; +juggle: 3; velset: 0, 0, 0; anim: 3050; +ctrl: 0; sprpriority: 2;] + +if animElemTime(4) >= 0 && animElemTime(16) < 0 { + width{value: 5, 0} +} + +if animElem = 2 { + superPause{ + pos: -5, -55; + anim: 100; + sound: 20, 0; + poweradd: -1000 + } + notHitBy{value: , NA, SA, AT; time: 6} +} + +if animElemTime(2) >= 0 { + afterImageTime{time: 2} +} + +if animElem = 4 { + playSnd{value: S 0, 2; channel: 1} +} + +if time = 0 { + hitDef{ + attr: S, HA; + animtype: Up; #Make p2 use "Up" type animation on hit + damage: 155, 12; + getpower: 0; + priority: 5; + guardflag: MA; + pausetime: 30, 30; + sparkno: 3; + sparkxy: 0, -110; + hitsound: 5, 4; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 26; + ground.hittime: 1 + 28; + ground.velocity: -1.3, -25; + guard.velocity: -11; + air.velocity: -1.3, -25; + airguard.velocity: -4.5, -5; + envshake.time: 25; #Parameters for shaking the screen on hit + envshake.ampl: 7; + envshake.freq: 176; + p2facing: 1; #Force p2 to face p1 on hit + fall: 1; + fall.recover: 0; #Prevent p2 from recovering + fall.damage: 70; #p2 will take 70 damage on hitting the ground + fall.envshake.ampl: 6; #Parameters for shaking the screen on fall + fall.envshake.freq: 178; + fall.envshake.time: 15; + mindist: 50, -100; #Keep p2 a minimum of 50 pixels away from p1, and no higher than 100 pixels up + maxdist: 100, -10; #Keep p2 a maximum of 100 pixels away from p1, and no lower than 10 pixels below + yaccel: 0.8; #Accelerate p2 downwards rapidly + attack.depth: 8, 8; + } +} + +#This controller below makes Kung Fu man change to a success state if he +#successfully hits the Smash Kung Fu Upper. +if moveHit { + changeState{value: 3051} +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#------------------------------------------------------------------------------- +# Smash Kung Fu Upper (success) +# Description: This is the state that KFM changes to if he successfully hits +# with Smash Kung Fu Upper. KFM holds his arm high for a short while +# longer, then changes back to his idle stand state. +[StateDef 3051; +type: S; movetype: A; physics: S; +anim: 3051;] + +if animTime < -2 { + afterImageTime{time: 2} +} + +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + + +#=============================================================================== +# State controllers that are always executed, even for helpers and during pauses +#=============================================================================== +[StateDef -4] + +# Check if player is holding crouch button +mapSet{map: "crouchinput"; value: inputTime(c) > 0} + +# Stop target Z velocities upon hitting them +# Because conventional characters do not account for the Z axis +ignoreHitPause if moveHitVar(frame) && numTarget { + for i = 0; numTarget - 1; 1 { + if target(-1, $i), hitShakeOver = 0 && + target(-1, $i), vel x = 0 && target(-1, $i), vel y = 0 && target(-1, $i), vel z != 0 { + velSet{z: 0; redirectID: target(-1, $i), ID} + } + } +} + + +#=============================================================================== +# State controllers that are executed when in self's state file (use StateDef -3) +#=============================================================================== +[StateDef -3] + +# Landing Sound +# This controller plays a sound every time KFM lands from a jump, or back-dash. +# The code below is another way to represent the structure of +# triggerall, trigger1, trigger2 + +if time = 1 && (stateNo = 52 || stateNo = 106) { # Jump land || Run-back land + playSnd{value: S 40, 0; channel: 1} +} + + +#=============================================================================== +# State controllers that are always executed (use StateDef -2) +#=============================================================================== +[StateDef -2] + +# We must disable default up and down controls so that they may be used for Z movement +assertSpecial{flag: nocrouch; flag2: nostand; flag3: nojump; flag4: noairjump} + + +#=============================================================================== +# State controllers that are always executed, even for helpers and during pauses +#=============================================================================== +[StateDef +1] + +# This code makes projectiles hit the top Z wall but not the bottom wall +if numProj > 0 { + for i = 0; numProj - 1; 1 { + if projVar(-1, $i, vel z) > 0 { + modifyProjectile{ + ID: -1; + index: $i; + projdepthbound: 9999; + } + } + } +} + +# Debug +displayToClipboard{ + text: "Pos Z = %f Scale Z = %f Crouch = %d\nCS = %f, RightX = %f, RightY = %f, EOZone = %d"; + params: pos z, scale z, map(crouchinput) != 0, GameOption(Input.ControllerStickSensitivity), Analog(RightX), Analog(RightY), floor(map(EOZone)); +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm_zaxis.def b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm_zaxis.def new file mode 100644 index 00000000..aca15dee --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/kfm_zaxis.def @@ -0,0 +1,52 @@ +; Definition file for Kung Fu Man +; Contains all the filenames needed for the character + +; Player information +[Info] +name = "Kung Fu Man Z Axis" ;Name of character +displayname = "Kung Fu Man" ;Name of character to display +versiondate = 02,18,2009 ;Version date of character (MM-DD-YYYY or X.XX) +;mugenversion = 1.0 ;Version of M.U.G.E.N character works on (legacy) +ikemenversion = 1.0 ;Version of Ikemen GO the character works on +author = "Elecbyte" ;Character author name +pal.defaults = 1,2,3,4 ;Default palettes in order of preference (up to 4). Numbering starts from 1 +localcoord = 320,240 ;Local coordinate space width and height + +; Files for the player +[Files] +cmd = kfm.cmd ;Command set +cns = kfm.const ;Constants +st = kfm.zss ;States +st2 = hits.zss +st3 = command.zss +;st4 = AI.zss ;Currently unused in Z axis KFM +stcommon = common1.cns.zss ;Common states (from data/ or motif) +sprite = kfm.sff ;Sprite +anim = kfm.air ;Animation +sound = kfm.snd ;Sound +;ai = kfm.ai ;AI hints data (not used) +movelist = movelist.dat ;Ikemen feature: Movelist + +; Maps character selection buttons to palette numbers. +[Palette Keymap] +x = 1 ;Press button X to select palette 1, etc. +y = 2 +z = 3 +a = 4 +b = 5 +c = 6 +x2 = 7 ;Hold Start and press button X for palette 7, etc. +y2 = 8 +z2 = 9 +a2 = 10 +b2 = 11 +c2 = 12 + +[Map] +AnalogEnabled = 1 ;Set to 1 to enable analog controls +EOEnabled = 1 ;Set to 1 to enable the EO (Easy Operation) stick. + +; Arcade mode +[Arcade] +intro.storyboard = intro.def +ending.storyboard = ending.def diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/movelist.dat b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/movelist.dat new file mode 100644 index 00000000..ea6ed666 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/movelist.dat @@ -0,0 +1,17 @@ +<#f0f000>:Unique Attacks: +Kung Fu Blocking _F_+^X + +<#f0f000>:Throws: +Kung Fu Throw [_B/_F]_+^Y + +<#f0f000>:Special Moves: +Kung Fu Palm_EX _QDF^P +Kung Fu Upper_EX _DSF^P +Kung Fu Blow_EX _QDB^P +Kung Fu Zankou_EX _QDF^K +Kung Fu Knee_EX _F_F^K +_!Extra kick ^K + +<#f0f000>:Super Moves: +Triple Kung Fu Palm <#bebebe>(1000) _QDF_QDF^P +Smash Kung Fu Upper <#bebebe>(1000) _QDB_QDB^P \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/readme.txt b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/readme.txt new file mode 100644 index 00000000..667addc9 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zaxis/readme.txt @@ -0,0 +1,154 @@ +=========================== + Kung Fu Man (classic ver) +=========================== + +For M.U.G.E.N 1.0 +(c) 2009 Elecbyte + +This version updated: 15 Sep 2009 + +Kung Fu Man is a sample character that works with M.U.G.E.N. + +KFM's work files are available in the work/kfm720/ directory. + +KFM is licensed under the Creative Commons Noncommercial +License. Attribution is optional. This means you may freely +build upon or use parts of KFM for non-commercial puposes. + + +Controls +======== + +Basic Controls +-------------- + +Kung Fu Man is a 4-button character. Button X is his weak +punch, button Y his strong punch, A for weak kick, and +B for his strong kick. We will use W. to mean weak, and S. +for strong. + +We will use the notation: +D - down +F - forward +U - up +B - back +x - button X (weak punch) +y - button Y (strong punch) +a - button A (weak kick) +b - button B (strong kick) + +DF means diagonally down-forwards, UB diagonally up-back, +etc. If you see ab it means press button A and button B +simultaneously. x/y means hit either x or y, and so on. + +Use the direction keys to move KFM. Press down to crouch, +and up to jump. While in the air, you can press up again to +air-jump. Hold the direction facing away from the opponent +to guard. KFM can guard attacks while jumping. + +When falling in the air, hit buttons X and Y at the same +time to recover. Hold a directional key when recovering to +move a little bit in that direction. If you are near the +ground when you hit xy, you will do a ground-based recovery +instead. + +KFM has a taunt. To do it, press the start button. + + +Standard Movement +----------------- + +U - Jump +UF - Jump forwards +F - Walk forwards +DF - Crouch +D - Crouch +DB - Crouch or low guard +B - Walk backwards or high guard +UB - Jump back +F, F - Forward dash +B, B - Back dash +xy - Recovery (when falling) + +Basic Standing Attacks +---------------------- + +x - W. Punch +y - S. Punch +a - W. Kick +b - S. Kick + +Basic Crouching Attacks +----------------------- + +x - Low W. Punch +y - Low S. Punch +a - Low W. Kick +b - Sweep Kick + +Basic Air Attacks +----------------- + +x - Air W. Punch +y - Air S. Punch +a - Air W. Kick +b - Flying Kick + +Throws +------ + +F/B + y (when close) - Kung Fu Throw + +Special Attacks +--------------- + +D, DF, F, x - W. Kung Fu Palm +D, DF, F, y - S. Kung Fu Palm +D, DF, F, x+y - Fast Kung Fu Palm (uses 1/3 power bar) + +F, D, DF, x - W. Kung Fu Upper +F, D, DF, y - S. Kung Fu Upper +F, D, DF, x+y - Fast Kung Fu Upper (uses 1/3 power bar) + +D, DB, B, x - W. Kung Fu Blow +D, DB, B, y - S. Kung Fu Blow +D, DB, B, x+y - Fast Kung Fu Blow (uses 1/3 power bar) + +D, DF, F, a - W. Kung Fu Zankou +D, DF, F, b - S. Kung Fu Zankou +D, DF, F, a+b - Fast Kung Fu Zankou (uses 1/3 power bar) + +F, F, a - W. Kung Fu Knee +F, F, b - S. Kung Fu Knee +F, F, a+b - Fast Kung Fu Knee (uses 1/3 power bar) +Press button A or B during Kung Fu Knee to add a kick. + +Hyper Attacks (each uses 1 power bar) +------------- + +D, DF, F, D, DF, F, x/y - Triple Kung Fu Palm +D, DB, B, D, DB, B, x/y - Smash Kung Fu Upper + + +Combo notes +=========== + +KFM's strengths lie in his ability to chain moves into each +other. Here are his basic combo rules: + +1. You can combo from weaker basic attacks into stronger ones + eg. light kick -> strong kick + +2. You can combo into special attacks from most basic attacks + eg. stand strong punch -> Kung Fu Palm + +3. You can combo into hyper attacks from all basic and special + attacks + eg. Kung Fu Palm -> Triple Kung Fu Palm + +4. You can combo from hyper attacks into other hyper attacks, + as long as you do not do the same hyper twice in a row + eg. Triple Kung Fu Palm -> Smash Kung Fu Upper + +These rules make it possible for you to do some damaging combos. +Experiment, and perfect your own Kung Fu Combos! diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/AI.zss b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/AI.zss new file mode 100644 index 00000000..6990cb34 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/AI.zss @@ -0,0 +1,559 @@ +#=============================================================================== +#Global states (not halted by pause/superPause, no helper limitations) +#=============================================================================== +[StateDef -4] + +if stateNo = 100 && roundState != 2 && aiLevelF { + changeState{value: 0; ctrl: 1} +} + +# this ZSS AI file is used to define and implement AI for kung fu man. +#it can also be used a guide for you to create your own AI using IKEMEN GO. + +#------------|dis values|------------------------------------------------------- + +#This code will calculate a "velocity" even if the opponent uses posadds for movement. +ignoreHitPause if gameTime%2 = 0 { + mapSet{map: "ppx"; value: p2,pos x} +} + +#=============================================================================== +#Global states (commands) +#=============================================================================== +[StateDef -1] + +#This is used to prevent undesirable actions after getting up from a knock down for a short amount of time +if anim = 5120 || roundState != 2 { #getuprecoverytime + mapSet{map: "gurt"; value: 10} +} + +#global AI loop +ignoreHitPause if aiLevelF && roundState = 2 && !standby { + + #prevent default jump behavior + assertSpecial{flag: nojump; flag2: noairjump} + + #prevent default walk behavior + assertSpecial{flag: nowalk; flag2: nobrake} + + #------------|AI variable declarations|----------------------------------------- + + let inrange = 0; + + #get all lights + let lights = stateNo = 200 || stateNo = 230 || stateNo = 400 || stateNo = 430; + + #get all heavies that can cancel + let heavy = stateNo = 210 || stateNo = 240 || stateNo = 410; + + #opponent is not in air or lying down + let grounded = p2StateType = S || p2StateType = C; + + #Super cancel flag + let SC = stateNo = [1000, 1420] && stateType != A && map(canCombo); + + #CC - CanCombo, this variable checks and returns the current amount of hitstun the opponent is in. + # because KFM has no projectiles, we can easily detect if he has a target to accomplish this. + let CC = cond(numTarget, cond(!p2,hitFall, target,getHitVar(hittime), getHitVar(fall.recovertime)), 0); + + #typically you could check the velocity of the opponent to determine how fast they are moving + #however, if they use posadds to move instead, the vel will remain 0. Using some trickery we can determine the position based velocity + #using this code below because if the opponent has moved position on the x-axis, we can check 1 frame later to determine how far they moved. + #if they have not moved, we can try to track velocity instead. + let trvelx = cond((abs(map(ppx)) - abs(p2,pos x)) = 0 || p2,vel x > (abs(map(ppx)) - abs(p2,pos x)), p2,vel x, (abs(map(ppx)) - abs(p2,pos x))); + + #game specific values + let nojug = p2,anim = 5120 || p2StateNo = 5040 && p2,ctrl || p2StateNo = 52 && p2,time < 3 && p2,prevStateNo = 5040; + + #how many points do we have to juggle with? + let jugpt = map(jug); + + let hitfall = p2,hitFall || $CC > 8; + + #Allows the AI to possibly link attacks if they have less recovery than the opponent. + if ctrl && !p2,ctrl && (p2,getHitVar(hittime) > 0) { + let AI_JI = p2,getHitVar(hittime); + } + + #things to do in neutral(not attacking) + #Neutral attacks and combo conditions are separated to prevent accidental code preventing either from working + #properly. + + if (ctrl && stateNo != 105 || stateNo = 20 || stateNo = 100 || stateNo = 1310 || stateNo = 1330 || stateNo = 1330 || stateNo = 1350) { + if stateType != A { + #--|Reversals|----------------------------------------------------------- + if (p2MoveType = A) && p2,time > 1 { + + #------------|SUPERS|--------------------------------------------------- + if power >= 1000 && p2,alive { + if (p2BodyDist x = [-10, (35+floor($trvelx*.4)*3)] &&(!$grounded && p2BodyDist y = [-80+(floor(p2,vel y*.4)*-5), -15] || $grounded)) { + changeState{value: 3050} + } + + #Tripple Kung Fu Palm + #This first condition checks for if the opponent is in range of the attack hitting, it adds the opponents current velocity + #to determine if they would be hit by them moving closer while attacking. This can be set to any range if you are using this + #as an example. + if (p2BodyDist x = [30*($hitfall)-36, (90+floor($trvelx*.4)*5)] && (p2BodyDist y = [-50+(floor(p2,vel y*.4)*-5), -15] || $grounded) && + (p2StateNo != 5040 && p2MoveType != H || !$grounded && p2BodyDist y = [-50, -15])) && power >= 1000 { + changeState{value: 3000} + } + } + #------------------------------------------------------------------------- + #Kung Fu Knee + if p2StateType = A && p2BodyDist x = [40*($hitfall)-30, (50+floor($trvelx*.4)*10)] && p2BodyDist y = [-80+(floor(p2,vel y*.4)*-5), -60+($hitfall)*40] && + (p2StateNo != 5040 && p2MoveType != H || !$grounded && p2BodyDist y = [-60, -15]) && (!map(gurt) || p2BodyDist x > 30) && + random <= (350 * (aiLevelF ** 2 / 48.0)) { + + if power >= 500 && p2,alive && random%3 = 1 && p2BodyDist y < -70 { + let version2 = 1070; + } else if p2,vel x > 0 && p2BodyDist y < -70 { + let version2 = 1060; + } else { + let version2 = 1050; + } + changeState{value: $version2} + } + + #----------------------------------------------------------------------- + #Kung Fu Blocking + #This is a command parry that kung fu man has, from an AI perspective, it can be challenging to indicate when it should be used. + #For now, this is the most case handling we will attempt. We start by checking if they are moving or what the attack distance of their + #current attack is. We can use that math loosely to determine where their attack is. Because this can make fighting challenging, it is disabled + #unless the aiLevelF is 5 or higher + if p2BodyDist x = [-15, 30+floor($trvelx*.4)*10+floor(p2,const(size.attack.dist)*.5)] && p2BodyDist y = [-50+(floor(p2,vel y *.6)*-10), 0] && + random <= (335 * (aiLevelF ** 2 / 48.0)) && p2MoveType = A && aiLevel > 4 { + changeState{value: cond(p2StateType != C,1300,1320)} + } + } + + #----------------------------------------------------------------------- + #anti air specials are used where it is safe for kfm to try to stop the opponent from jumping in and attacking + #because of how they can connect, even on a blocking opponent, it leaves kfm moderately safe and is considered + #minimal risk to perform. + + #Kung Fu Upper + #We reduce the chance of this happening to 25% to prevent overusage. + if p2StateType = A && p2BodyDist x = [5*($hitfall)-20, (30+floor($trvelx*.4)*20)] && + (p2StateNo != 5040 && p2MoveType != H || !$grounded && p2BodyDist y = [-80+(floor(p2,vel y*.6)*-5), -40+($hitfall)*30]) && (!map(gurt) || p2BodyDist x > 30) && + random <= (450 * (aiLevelF ** 2 / 48.0)) { + + #1/3 chance to use ex move when power is at least half of one meter + if power >= 500 && p2,alive && random%3 = 1 { + let version = 1120; + #use this for advancing enemies + } else if p2,vel x > 0 { + let version = 1110; + #default version + } else { + let version = 1100; + } + changeState{value: $version} + } + + #----------------------------------------------------------------------- + #anti air normals + if random <= (420 * (aiLevelF ** 2 / 48.0)) && p2BodyDist x < 45 && p2BodyDist y = [-70+(floor(p2,vel y*.4)*-5), -20] && !$nojug && jugglePoints(p2, ID) = 0 { + changeState{value: 410} + } + + #----------------------------------------------------------------------- + #throw + if random <= (310 * (aiLevelF ** 2 / 48.0)) && stateType = S && stateNo != 100 && (p2MoveType != H || p2StateNo = [120, 131]) && + (map(AI_JI) < 2) && p2BodyDist x < 30 && $grounded { + changeState{value: 800} + } + + #----------------------------------------------------------------------- + #blocking + if (p2MoveType = A && prevStateNo != [1300, 1350] && stateNo != [1300, 1350] && + inGuardDist && random <= (700 * (aiLevelF ** 2 / 48.0)) || p2,numProj > 0 && random < (440 * (aiLevelF ** 2 / 48.0))) && + p2BodyDist x > -20 && p2StateType != L && + (ctrl || stateNo = 20 || stateNo = 100) || (p2,numProj >= 1) { + assertSpecial{flag: autoguard} + changeState{value: 120} + } + + #----------------------------------------------------------------------- + #this attack is a special case attack, the angle of attack indicates it can be used + #to stop crouching attacking opponents preemptively, so kfm will try to do so when possible. + #used to hit crouching attacking opponents from a distance + if (p2BodyDist x = [35, 55+(floor($trvelx*.4)*5)]) && p2StateType = C && (p2MoveType = A) && random <= (450 * (aiLevelF ** 2 / 48.0)) { + changeState{value: 240} + } + + #----------------------------------------------------------------------- + #light attacks (200,230,400,430) + if p2BodyDist x < 55 + (floor($trvelx * .4) * 5) && !$AI_JI && !$nojug && (!map(gurt) || p2BodyDist x > 35) && (p2BodyDist x > 25 || random <= (225 * (aiLevelF ** 2 / 48.0)) || p2StateType = A) && + (p2StateNo != [1025, 1028] || (p2MoveType != H || $CC > 3 && $hitfall && p2StateNo != [1025, 1028])) { + if ($grounded || p2BodyDist y = [-40+(floor(p2,vel y*.4)*-10), -15]) && p2BodyDist x < 45 { + let att = cond(p2BodyDist y < -40 || p2StateType = S, 200, 400); + if $att = 400 && p2BodyDist x < 35 + (floor($trvelx * .4) * 5) || $att != 400 { + changeState{value: $att} + } + } else if (p2BodyDist x > 25 || random <= (225 * (aiLevelF ** 2 / 48.0))) && $grounded { + let att = cond(p2BodyDist y > -10 || p2StateType = S, 430, 230); + if $att = 430 && p2BodyDist x < 45 + (floor($trvelx * .4) * 5) || $att != 430 { + changeState{value: $att} + } + } + } + + #----------------------------------------------------------------------- + #heavy attacks (210,240) + #we do not include 440 or 410 here because they are defined elsewhere in a more + #specialized way that focuses on what they are capable of doing in a match. + if p2BodyDist x < 60 + (floor($trvelx * .4) * 5) && !$AI_JI && (!$nojug || p2BodyDist y > -10) && (!map(gurt) || p2BodyDist x > 35) && random <= (425 * (aiLevelF ** 2 / 48.0)) && + (p2StateNo != [1025, 1028] || p2MoveType != H) { + if ($grounded || p2BodyDist y = [-50 + (floor(p2,vel y*.6)*-10), -25]) { + let att = cond(p2BodyDist y > -10 || p2StateType = S, 240, 210); + if $att = 240 && p2BodyDist x < 45 + (floor($trvelx * .4) * 5) || $att != 240 { + changeState{value: $att} + } + } + } + + #----------------------------------------------------------------------- + #jump in landing attacks can be used to start combos from a successful jump attack (600-640) + #Using the $AI_JumpIn variable, we can inform the AI about how much time they have to + #start a combo by linking a ground attack. + if $AI_JI > 9 && p2BodyDist x = [35, 60] && $grounded { + changeState{value: cond(p2BodyDist x < 50, 240, 210)} + } + if $AI_JI > 3 && p2BodyDist x <= 55 && $grounded { + changeState{value: cond(p2StateType = S, cond(p2BodyDist x > 40, 230, 200), cond(p2BodyDist x < 30, 400, 430))} + } + + #----------------------------------------------------------------------- + #The term "poke" is used to refer to attacks that can usually attack opponents from a safe distance + #without high risk. The attacks below meet that criteria but can be changed if more attacks are added later. + #pokes + if p2BodyDist x = [45, 60] && p2MoveType != H && $grounded && random < (250 * (aiLevelF ** 2 / 48.0)) { + if p2BodyDist x = [30, 60+(floor($trvelx*.4)*5)] && random%4 = 0 { + let att2 = 210; + } else if p2BodyDist x = [30, 50+(floor($trvelx*.4)*5)] && random%4 = 1 { + let att2 = 240; + } else if p2BodyDist x = [30, 60+(floor($trvelx*.4)*5)] && p2StateType = S { + let att2 = 440; + } + if $att2 > 0 { + changeState{value: $att2} + } + } + + #----------------------------------------------------------------------- + #OTG - attacks that can hit a fallen opponent. + if (p2StateType = L || p2StateNo = 52) && jugglePoints(p2, ID) > 2 && p2BodyDist x = [-2, 45] && (!$nojug || p2StateNo = 52) { + changeState{value: cond(jugglePoints(p2, ID) > 7 && p2,time < 20, 440, 430)} + } + + #End of file: stateType != A + #=========================================================================== + #This section of AI handles attacks that are done in the air. + } else if stateType = A && p2StateType != L { + + #kung fu blocking - air + if p2BodyDist x = [-15, 35+floor($trvelx*.4)*5+floor(p2,const(size.attack.dist)*.5)] && p2BodyDist y = [-20+(floor(p2,vel y*.4)*-5), 30+(floor(vel y*.4)*5)] && + random <= (600 * (aiLevelF ** 2 / 48.0)) && p2MoveType = A { + changeState{value: 1340} + } + + #cross up + #currently this character has no way to do a cross up(attack that hits behind opponent while you jump) + #so this is commented, however you could add that ability right now! If you do you can use this code + #to define it. + #let cu = p2BodyDist x = [-65, 10]; + + #if $cu && vel x > 0 && (p2StateNo = 5120 || $grounded && !$nojug) && vel y > 0 { + # ChangeState{value: 630} + #} + + #------------|air normal attacks|--------------------------------------- + + #we do not want kfm to try to hit an attacking opponent using specials because this typically means kfm will lose to it. + #However, if it's a lower AI level it's ok to make mistakes, or if kfm is behind the opponent anyway. + if (p2,hitDefAttr != SCA,SA || facing != p2,facing || aiLevelF < 6) && random <= (700 * (aiLevelF ** 2 / 48.0)) { + + #These attacks will have variable y distance detection depending on if the opponent is standing or crouching, it is not perfect + #but the illusion of intelligence is all that matters. We do not want kfm to attack characters in a recovering (state 5040) state. + #heavy attacks are given priority as they have bigger rewards, but light attacks are faster so both will be taken into account. + + if (frontEdgeBodyDist < 50 || p2BodyDist x = [-5, (55+(floor($trvelx * .4)*5) + (floor(vel x * .4)*20))]) && + (p2BodyDist y > 30 || p2BodyDist y < 0) && p2BodyDist y = [5,40 + ((p2StateType = S || p2StateNo = [5115,5122])*40) + ((p2StateType = C)*25)] && + (vel y > 0 || !$grounded && !$nojug) { + changeState{value: 640} + } + + if (frontEdgeBodyDist < 50 || p2BodyDist x = [-8, (45+(floor($trvelx * .4)*5) + (floor(vel x * .4)*5))]) && + (p2BodyDist y > 30 || p2BodyDist y < 0) && p2BodyDist y = [-20,45 + ((p2StateType = S || p2StateNo = [5115,5122])*40) + ((p2StateType = C)*25)] && + (vel y > 0 || !$grounded && !$nojug) { + changeState{value: 610} + } + + if (frontEdgeBodyDist < 50 || p2BodyDist x = [-15, (40+(floor($trvelx * .4)*5) + (floor(vel x * .4)*20))]) && + p2BodyDist y = [-20,35+((p2StateType = S || p2StateNo = [5115,5122])*40) + ((p2StateType = C)*25)] && + (vel y > 0 || !$grounded && !$nojug) { + changeState{value: 600} + } + + if (frontEdgeBodyDist < 50 || p2BodyDist x =[-15, (30+(floor($trvelx * .4)*5) + (floor(vel x * .4)*25))]) && + p2BodyDist y = [-80,35+((p2StateType = S || p2StateNo = [5115,5122])*40) + ((p2StateType = C)*25)] && + (vel y > 0 || (!$grounded) && (!$nojug) || $hitfall) { + changeState{value: 630} + } + } + + #End of file: stateType = A + #=========================================================================== + } + #End of file: ctrl + #=============================================================================== + #this section of AI is meant for attacks to be done after an attack defined above connects either as a hit + #or blocked by the opponent. + } else if moveContact = [1, 3] && hitPauseTime = 0 && stateType != A { + + #--------------------------------------------------------------------------- + #These are freeform random combo fillers. They have very basic conditions and + #do not break the human pattern of combos. lights can be used to build distance before + #finishing combos as well as giving additional damage. + #lights + if jugglePoints(p2, ID) > 9 && random < (700 * (aiLevelF ** 2 / 48.0)) { + if p2BodyDist x < 20 && moveContact && $lights { + if random%2 || p2StateType = A { + changeState{value: cond(p2BodyDist y < -18, 200, 400)} + } else { + changeState{value: cond(p2BodyDist x < 25, 430, 230)} + } + } + #--------------------------------------------------------------------------- + #light to other + #this block will build the middle piece of combos. Sometimes a super will occur if the condition + #is met. + if p2BodyDist x < 85 && moveHit && $lights && !$nojug && random < (600 * (aiLevelF ** 2 / 48.0)) { + if power > 1000 && p2,alive && $hitfall && jugglePoints(p2, ID) = [5, 7] && p2BodyDist x = [-8, 35] && p2BodyDist y > -75 && p2BodyDist y != 0 { + changeState{value: 3050} + } + #We must ensure kfm's attack will combo by checking how much hittime the opponent has remaining. + if (random%5 < 3 || p2StateType = A) && (p2StateType != L || p2BodyDist y != 0) && p2BodyDist x < 60 { + if $CC > 8 { + changeState{value: cond(p2BodyDist y < -30 || p2BodyDist x > 40, 210, 240)} + } else if p2BodyDist x < 35 { + changeState{value: 410} + } + } else { + changeState{value: 440} + } + } + } + #--------------------------------------------------------------------------- + #this block will determine how and if kfm will cancel into his various specials. The criteria is that the hitpause of the current attack + #is over and the opponent is either not falling or in the air in a possible juggle state. It also requires at least 11 frames of hittime + #to ensure the special will connect and the combo will continue unless they are in the air where fall.recovertime is prioritized instead. + if ($heavy || $lights && (!$grounded && p2BodyDist y < -10 & p2BodyDist x > 55 || p2BodyDist x >55)) && (moveHit) && ($hitfall || $grounded || $CC > 11) && random < (800 * (aiLevelF ** 2 / 48.0)) { + #using our somewhat accurate juggle point system, we are specifying that we only want moves to be used + #if we haven't used more than 8 juggle points. + if jugglePoints(p2, ID) >= 7 { #if we have at least 7 frames of hittime from the current attack, we + #can cancel into the specials below without fail. For lower levels, + #we randomly cancel 50% of the time. + if $CC > 7 || aiLevel < 5 && random%2 { + #the range of kung fu palm requires at least 120 pixels of space to + #connect without missing. The opponent needs to at least be 50 pixels in the air + #while falling to ensure the attack juggles. Or they are not in the air at all. + if p2BodyDist x = [40, 120] && (p2BodyDist y = [10, -50] || $grounded) { + #1/3 chance of using ex version if possible. + if power > 450 && p2,alive && $grounded && random%3 = 0 { + let spver = 1020; + #if we have at least 9 frames of hittime + } else if $CC > 9 && p2BodyDist x < 85 { + let spver = 1010; + } else { + #at minimum we use weak kung fu palm + let spver = 1000; + } + changeState{value: $spver} + #if the opponent is closer, we can use higher damaging moves that deal more stun. + #such as kung fu zankou + } else if p2BodyDist x < 40 && (p2BodyDist y = [10, -50] || $grounded) { + if power > 450 && p2,alive && $grounded && random%3 = 0 { + let spver = 1420; + } else if $CC > 9 && p2BodyDist x > 40 { + let spver = 1410; + } else { + let spver = 1400; + } + changeState{value: $spver} + } + } + #if the opponent is in the air and they are in range, kfm will try to use kung fu knee + if !$grounded && p2BodyDist y = [-80+(floor(p2,vel y*.4)*-5), -25] && $CC > 6 && p2BodyDist x < 40 { + if power > 450 && p2,alive && $grounded && random%3 = 0 { + let spver = 1070; + } else if p2BodyDist x > 40 || random%2 { + let spver = 1060; + } else { + let spver = 1050; + } + changeState{value: $spver} + } + # if kfm is about to run out of juggle points, he will try to use kung fu blow to deal a + # devastating end to a combo. + } else if jugglePoints(p2, ID) = [3+(power < 1000), 7] { #finishers + if p2BodyDist x = [-8, 80] && p2BodyDist y = [-55+(floor(p2,vel y*.4)*-5), -35] { + changeState{value: 1200 + (random%2) * 10} + } + } + } + #--------------------------------------------------------------------------- + #This is used to determine if kfm should cancel his supers attacks into hyper attacks + #as a reminder $SC is used to identify the same check a human player has to meet to perform this + #cancel. we then check if a heavy attack or even a light attack can be used if the opponent is + #close to losing. This will gurantee kfm's victory usually. + if ($SC || ($heavy && (p2,life < 350) || $lights)) && moveHit && jugglePoints(p2, ID) > 1 && random < (700 * (aiLevelF ** 2 / 48.0)) { + if power >= 1000 && p2,alive { + if p2BodyDist x = [-5, 25] && (p2BodyDist y = [-75, -1] || $grounded) { + changeState{value: 3050} + } + if p2BodyDist x = [-5, 80] && (p2BodyDist y = [-40+(floor(p2,vel y*.6)*-5), -25] || $grounded) { + changeState{value: 3000} + } + } + } + #End of file: moveContact + #=============================================================================== + } + + #------------|Kung Fu Knee follow up|------------------------------------------- + #If there was more follow ups to his kung fu knee, this is the place to handle it + #The criteria matches the same rule as a non-cpu. Refer to state 1051 to verify. + #This is placed outside of the main two blocks above because it is considered a special case outlier. + if (stateNo = 1051 || stateNo = 1061 || stateNo = 1071) && (moveHit || moveContact && aiLevel < 6) && vel y < -1 { + if stateNo = [1050, 1069] { + changeState{value: 1055} + } else { + changeState{value: 1075} + } + } + + #------------|MOVEMENT|--------------------------------------------------------- + + #------------|walking|---------------------------------------------------------- + #These are the conditions that will make kfm walk forward. + mapSet{map: "AIw"; value: 0} + + if (p2MoveType != A || p2BodyDist x > 25) || (p2StateType = L && p2BodyDist x > 70) || $AI_JI > 0 { + mapSet{map: "AIw"; value: 1} + } + + #These are the conditions that will make kfm walk backwards + if backEdgeBodyDist > 40 && (p2MoveType = A || p2StateType != L && p2BodyDist x < 30) { + mapSet{map: "AIw"; value: -1} + } + + #there's a 25% chance at any time that if possible, kfm will walk a given direction with the conditions given + if stateType = S && ctrl && stateNo != 100 && random < 249 && (p2MoveType != A || backEdgeBodyDist < 40) && p2BodyDist x = [25, 120] && map(AIw) != 0 { + changeState{value: 20} + } + + #If the AI is walking, we don't want them to stutter crouching as it looks very robotic. + if map(AIw) != 0 && aiLevel > 3 { + assertSpecial{flag: nocrouch} + } + + #if the walk condition zeros out, kfm will stop walking. + if map(AIw) = 0 && stateNo = 20 { + printToConsole{text: "changeState{value: 0}"} + changeState{value: 0; ctrl: 1} + } + #------------|running|---------------------------------------------------------- + + #These are the conditions that will make kfm run + + if stateType != A && (ctrl || stateNo = 20) && stateNo != 100 && random <= (396 * (aiLevelF ** 2 / 48.0)) && + (p2MoveType != A || backEdgeBodyDist < 40) && (p2BodyDist x >= cond($hitfall || p2StateNo = 5300, 10, 120)) { + changeState{value: 100} + } + + #this will make kfm stop running. If you are making your own character with a stop running animation, + #be sure to change this value: 0 to whatever that state is. + if stateNo = 100 && (p2BodyDist x < 40 - 20 * (!$grounded) && p2StateNo != 5040 || p2BodyDist x < - 65 || roundState != 2) { + changeState{value: 0; ctrl: 1} + } + + #------------|jumping|---------------------------------------------------------- + #this will decrement the get-up recovery-time map set above + if map(gurt) > 0 { + mapAdd{map: "gurt"; value: -1} + } + + #this is to control optimal times to jump and attack on an opponent getting up from + #a knock down. + let p2l = p2,anim = 5120 || p2StateNo = 5110 && p2,time > 10; + + #These are the jump conditions for kfm. Starting off, kfm should not jump immediately after getting up as statistically, + #it leads to the worst outcome. However, if an opponent tries to throw and kfm detects it, he will still jump. + #He will also jump if the opponent is waking up from their knock down to score a hit or maintain advantageous pressure. + #Lastly, he will try to jump after hitting an enemy with an attack that did not knock down. This usually puts the opponent + #in state 5040 or if they are stunned (state 5300). it is worth mentioning that at lower levels kfm will not be as precise + #and will leave himself open forbeginners. + if stateType != A && (((!map(gurt)) && (random < (375 * (aiLevelF ** 2 / 48.0)) || p2MoveType = A && aiLevelF > 6) && + (p2BodyDist x > 45 + ((p2MoveType != A && $grounded) * 45) || frontEdgeBodyDist < 50 || $p2l || p2StateNo = 5040 && p2BodyDist y > -40)) || + p2,hitDefAttr = SC,AT && random < (455 * (aiLevelF ** 2 / 48.0))) && + ( + p2,hitDefAttr = SC,AT || + (p2BodyDist x = [70, 90+(floor(vel x*.4)*5)] || frontEdgeDist < 30) && p2MoveType != H || + $p2l && (p2BodyDist x = [50, 75+(floor(vel x*.4)*5)] || frontEdgeDist < 60) || + p2StateNo = 5040 && p2BodyDist x = [-20, 60] || + p2StateNo = 5300 && p2BodyDist x < 40 + ) { + let AIJ = 1; + } + + #this will cancel out a jump declaration if the conditions have changed to prevent bad jumping behavior. + #This is usually meant as a last ditch effort to ensure a jump should be done because it is considered a + #high risk action. + if stateType = A || moveType = H && stateNo != [120, 155] || + prevStateNo = 5120 && p2StateType = A || p2BodyDist x < 80 && frontEdgeBodyDist > 60 && !$nojug || + map(gurt) > 0 && p2,hitDefAttr != SC,AT || p2BodyDist x > 180 { + let AIJ = 0; + } + + #If the AIJumping indicator remains valid, kfm will jump if he has control. + if $AIJ && (ctrl || stateNo = 20 || stateNo = 100) { + changeState{value: 40} + } + + if stateNo = 40 { + sysVar(1) := 0; + #We override default sysVar setting to influence jumping forward or backward + if p2BodyDist x >= 60 || (p2StateNo = 5120 || p2MoveType = H) && p2BodyDist x >= 20 || p2StateType = A && p2BodyDist x >= 60 { + sysVar(1) := 1; + } + if p2BodyDist x < 15 && p2MoveType = A && backEdgeBodyDist > 30 && frontEdgeBodyDist > 60 { + sysVar(1) := -1; + } + } + + #------------------------------------------------------------------------------- + #These are the conditions that will make kfm back dash/jump it has it's own random modifier because + #we do not want him to back jump as often + + if stateType != A && (ctrl || stateNo = 20) && random <= (296 * (aiLevelF ** 2 / 48.0)) && backEdgeBodyDist > 40 && + (p2MoveType = A && p2BodyDist x < 55 || p2BodyDist x < 20 && p2,anim = 5120 && p2,backEdgeBodyDist > 60) { + changeState{value: 105; ctrl: 0} + } + + #---------|AI recover|---------------------------------------------------------- + #This will let kfm recover if possible with a 20% chance at any time. + if alive && canRecover && random%5 = 0 && hitFall && stateNo = 5050 { + if vel y > 0 && pos y >= const(movement.air.gethit.groundrecover.ground.threshold) { + changeState{value: 5200} + } + if vel y > const(movement.air.gethit.airrecover.threshold) { + changeState{value: 5210} + } + } + + #displayToClipboard{text: "%v %v %v %v"; params: sysVar(1), jugglePoints(p2, ID), $CC, $AI_JI} + +} +#End of file: AI diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/command.zss b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/command.zss new file mode 100644 index 00000000..b8e827d2 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/command.zss @@ -0,0 +1,345 @@ +#------------------------------------------------------------------------------- +# 2. State entry +# -------------- +# This is where you define what commands bring you to what states. +# +# Each state entry block looks like: +# #Command-attack ;Change Label to any name you want to use to +# ;identify the state with. +#Before, there were triggers to dictate what should happen for a +#command to work. Now, it can be expressed as following +#Triggerall = stateType!=A +#trigger1 = ctrl +#trigger2 = var(1) +# +#becomes the following +#if stateType!=A && +#(ctrl||var(1)) +# +# +# changeState{ ;Don't change this +# value : new_state_number} +# +# - new_state_number is the number of the state to change to +# - command_name is the name of the command (from the section above) +# - Useful triggers to know: +# - statetype +# S, C or A : current state-type of player (stand, crouch, air) +# - ctrl +# 0 or 1 : 1 if player has control. Unless "interrupting" another +# move, you'll want ctrl = 1 +# - stateno +# number of state player is in - useful for "move interrupts" +# - movecontact +# 0 or 1 : 1 if player's last attack touched the opponent +# useful for "move interrupts" +# +# Note: The order of state entry is important. +# State entry with a certain command must come before another state +# entry with a command that is the subset of the first. +# For example, command "fwd_a" must be listed before "a", and +# "fwd_ab" should come before both of the others. +# +# For reference on triggers, see CNS documentation. +# +# Just for your information (skip if you're not interested): +# This part is an extension of the CNS. "State -1" is a special state +# that is executed once every game-tick, regardless of what other state +# you are in. + + +# Don't remove the following line. It's required by the CMD standard. + +#=============================================================================== +# Functions +#=============================================================================== +#This is not a move, but it sets up $canCombo to be 1 if conditions are right +#for a combo into a special move (used below). +#Since a lot of special moves rely on the same conditions, this reduces +#redundant logic. +[Function Combo() ret] +let ret = 0; +if (stateType != A && ctrl) || + ((stateNo = [200, 299] || stateNo = [400, 499]) && stateNo != 440 && moveContact) || #!= 440: Except for sweep kick + (stateNo = 1310 || stateNo = 1330) { #From blocking + let ret = 1; +} + +#=============================================================================== +# command code +#=============================================================================== +[StateDef -1] + +#============|IF roundState = 2|================================================ +if roundState = 2 && !aiLevelF { #prevent attacks outside of fight state + +let canCombo = call Combo(); +ignoreHitPause{mapSet{map:"canCombo"; value: $canCombo}} + +#=============================================================================== +# +#------------------------------------------------------------------------------- +#Smash Kung Fu Upper (uses one super bar) +if command = "SmashKFUpper" && power >= 1000 && stateType != A && + (ctrl || + (hitDefAttr = SC, NA, SA, HA && stateNo != [3050, 3100) && moveContact) || + (stateNo = 1310 || stateNo = 1330)) { #From blocking + changeState{value: 3050} +} + +#------------------------------------------------------------------------------- +#Triple Kung Fu Palm (uses one super bar) +if command = "TripleKFPalm" && power >= 1000 && stateType != A && + (ctrl || + (hitDefAttr = SC, NA, SA, HA && stateNo != [3000, 3050) && moveContact) || + (stateNo = 1310 || stateNo = 1330)) { #From blocking + changeState{value: 3000} +} + +#------------------------------------------------------------------------------- +#Fast Kung Fu Knee (1/3 super bar) +if command = "FF_ab" && power >= 330 && $canCombo { #Use combo condition (above) + changeState{value: 1070} +} + +#------------------------------------------------------------------------------- +#Fast Kung Fu Upper (1/3 super bar) +if command = "upper_xy" && power >= 330 && $canCombo { + changeState{value: 1120} +} + +#------------------------------------------------------------------------------- +#Fast Kung Fu Zankou +if command = "QCF_ab" && power >= 330 && $canCombo { + changeState{value: 1420} +} + +#------------------------------------------------------------------------------- +#Fast Kung Fu Palm (1/3 super bar) +if command = "QCF_xy" && power >= 330 && $canCombo { + changeState{value: 1020} +} + +#------------------------------------------------------------------------------- +#Fast Kung Fu Blow (1/3 super bar) +if command = "QCB_xy" && power >= 330 && $canCombo { + changeState{value: 1220} +} + +#------------------------------------------------------------------------------- +#Light Kung Fu Knee +if command = "FF_a" && $canCombo { + changeState{value: 1050} +} + +#------------------------------------------------------------------------------- +#Strong Kung Fu Knee +if command = "FF_b" && $canCombo { + changeState{value: 1060} +} + +#------------------------------------------------------------------------------- +#Light Kung Fu Upper +if command = "upper_x" && $canCombo { + changeState{value: 1100} +} + +#------------------------------------------------------------------------------- +#Strong Kung Fu Upper +if command = "upper_y" && $canCombo { + changeState{value: 1110} +} + +#------------------------------------------------------------------------------- +#Light Kung Fu Zankou +if command = "QCF_a" && $canCombo { + changeState{value: 1400} +} + +#------------------------------------------------------------------------------- +#Strong Kung Fu Zankou +if command = "QCF_b" && $canCombo { + changeState{value: 1410} +} + +#------------------------------------------------------------------------------- +#Light Kung Fu Palm +if command = "QCF_x" && $canCombo { + changeState{value: 1000} +} + +#------------------------------------------------------------------------------- +#Strong Kung Fu Palm +if command = "QCF_y" && $canCombo { + changeState{value: 1010} +} + +#------------------------------------------------------------------------------- +#Light Kung Fu Blow +if command = "QCB_x" && $canCombo { + changeState{value: 1200} +} + +#------------------------------------------------------------------------------- +#Strong Kung Fu Blow +if command = "QCB_y" && $canCombo { + changeState{value: 1210} +} + +#------------------------------------------------------------------------------- +#Kung Fu Blocking (High) +if command = "blocking" && command != "holddown" && + ((ctrl && stateType != A) || + ((stateNo = 1310 || stateNo = 1330) && time > 0)) { + changeState{value: 1300} +} + +#------------------------------------------------------------------------------- +#Kung Fu Blocking (Low) +if command = "blocking" && command = "holddown" && + ((ctrl && stateType != A) || + ((stateNo = 1310 || stateNo = 1330) && time > 0)) { + changeState{value: 1320} +} + +#------------------------------------------------------------------------------- +#Kung Fu Blocking (Air) +if command = "blocking" && command != "holddown" && command != "holdup" && + ((ctrl && stateType = A) || + (stateNo = 1350 && time > 0)) { + changeState{value: 1340} +} + +#=============================================================================== +# +#------------------------------------------------------------------------------- +#Run Fwd +if command = "FF" && stateType = S && ctrl { + changeState{value: 100} +} + +#------------------------------------------------------------------------------- +#Run Back +if command = "BB" && stateType = S && ctrl { + changeState{value: 105} +} + +#------------------------------------------------------------------------------- +#Kung Fu Throw +if command = "y" && stateType = S && ctrl && stateNo != 100 && (p2StateType = S || p2StateType = C) && p2MoveType != H && + ((command = "holdfwd" && p2BodyDist X < 3) || + (command = "holdback"&& p2BodyDist X < 5)) { + changeState{value: 800} +} + +#=============================================================================== +# +#------------------------------------------------------------------------------- +#Stand Light Punch +if command = "x" && command != "holddown" && + ((stateType = S && ctrl) || + (stateNo = 200 && animElemTime(3) > 0)) { + changeState{value: 200} +} + +#------------------------------------------------------------------------------- +#Stand Strong Punch +if command = "y" && command != "holddown" && + ((stateType = S && ctrl) || + ((stateNo = 200 || stateNo = 230) && animElemTime(3) > 0)) { + changeState{value: 210} +} + +#------------------------------------------------------------------------------- +#Stand Light Kick +if command = "a" &&Command != "holddown" && + ((stateType = S && ctrl) || + ((stateNo = 200 || stateNo = 230) && animElemTime(3) > 0)) { + changeState{value: 230} +} + +#------------------------------------------------------------------------------- +#Standing Strong Kick +if command = "b" &&Command != "holddown" && + ((stateType = S && ctrl) || + ((stateNo = 200 || stateNo = 230) && animElemTime(3) > 0)) { + changeState{value: 240} +} + +#------------------------------------------------------------------------------- +#Taunt +if command = "start" && command != "holddown" && stateType != A && ctrl { + changeState{value: 195} +} + +#------------------------------------------------------------------------------- +#Crouching Light Punch +if command = "x" && command = "holddown" && stateType = C && ctrl { + changeState{value: 400} +} + +#------------------------------------------------------------------------------- +#Crouching Strong Punch +if command = "y" && command = "holddown" && + ((stateType = C && ctrl) || + (stateNo = 400 && animElemTime(2) > 0) || + (stateNo = 430 && moveContact && animElemTime(3) > 0)) { + changeState{value: 410} +} + +#------------------------------------------------------------------------------- +#Crouching Light Kick +if command = "a" && command = "holddown" && + ((stateType = C && ctrl) || + (stateNo = 400 && animElemTime(2) > 0) || + (stateNo = 430 && moveContact && animElemTime(3) > 0)) { + changeState{value: 430} +} + +#------------------------------------------------------------------------------- +#Crouching Strong Kick +if command = "b" && command = "holddown" && + ((stateType = C && ctrl) || + (stateNo = 400 && animElemTime(2) > 0) || + (stateNo = 430 && moveContact && animElemTime(3) > 0)) { + changeState{value: 440} +} + +#------------------------------------------------------------------------------- +#Jump Light Punch +if command = "x" && + ((stateType = A && ctrl) || + (stateNo = 600 && animElemTime(2) > 0) || + stateNo = 1350) { #Air blocking + changeState{value: 600} +} + +#------------------------------------------------------------------------------- +#Jump Strong Punch +if command = "y" && + ((stateType = A && ctrl) || + ((stateNo = 600 || stateNo = 630) && moveContact) || #jump_x or jump_a + stateNo = 1350) { #Air blocking + changeState{value: 610} +} + +#------------------------------------------------------------------------------- +#Jump Light Kick +if command = "a" && + ((stateType = A && ctrl) || + stateNo = 1350) { #Air blocking + changeState{value: 630} +} + +#------------------------------------------------------------------------------- +#Jump Strong Kick +if command = "b" && + ((stateType = A && ctrl) || + ((stateNo = 600 || stateNo = 630) && moveContact) || #jump_x or jump_a + stateNo = 1350) { #Air blocking + changeState{value: 640} +} + +#End of file: roundState = 2 +#=============================================================================== +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/ending.def b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/ending.def new file mode 100644 index 00000000..c0186be8 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/ending.def @@ -0,0 +1,93 @@ +; Ending cutscene for KFM's story. + +; Like the intro, this storyboard has multiple scenes. +; Each scene uses two overlay anims, one for the picture, and +; another for the text. +; The fadein and fadeout parameters are used to fade one screen +; to the next. + +[SceneDef] +spr = ending.sff +startscene = 0 ;Starting scene number (for debugging) + +;------------------------------------ +[Scene 0] +; Fade +fadein.time = 60 ;Time to take for fading in +fadein.col = 0,0,0 ;Use 255,255,255 for white-fade +fadeout.time = 15 +fadeout.col = 255,255,255 +; Screen color +clearcolor = 255,255,255 +; Overlay Anims (from 0 to 9) +layerall.pos = 160,0 ;Default position for all layers +layer0.anim = 0 ;Anim action number +layer0.offset = 0,32 ;Position offset +layer0.starttime = 0 ;Time to start display +layer1.anim = 1 +layer1.offset = 0,176 +; Music +bgm = ending.mp3 ;Name of music file to play +bgm.loop = 0 +; Total time +end.time = 460 + +;------------------------------------ +[Scene 1] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 15 +fadeout.col = 255,255,255 +; Screen color +; The previous clearcolor value is carried over by default +; Overlay Anims (from 0 to 9) +; The previous layerall.pos value is carried over by default +layer0.anim = 10 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 11 +layer1.offset = 0,176 +; Total time +end.time = 300 + +;------------------------------------ +[Scene 2] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 90 +fadeout.col = 0,0,0 +; Overlay Anims (from 0 to 9) +layer0.anim = 20 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 21 +layer1.offset = 0,176 +; Total time +end.time = 400 + +;Background image +[Begin Action 0] +0,0, 0,0, -1 + +;Text +[Begin Action 1] +1,0, 0,0, 200 +1,1, 0,0, -1 + +;Background image +[Begin Action 10] +10,0, 0,0, -1 + +;Text +[Begin Action 11] +11,0, 0,0, -1 + +;Background image +[Begin Action 20] +20,0, 0,0, -1 + +;Text +[Begin Action 21] +21,0, 0,0, -1 \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/ending.sff b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/ending.sff new file mode 100644 index 00000000..c00229bb Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/ending.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/hits.zss b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/hits.zss new file mode 100644 index 00000000..6dc351b6 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/hits.zss @@ -0,0 +1,174 @@ +#=============================================================================== +# Thrown by Kung Fu Throw +#=============================================================================== +# (a custom gethit state) +# Description: This is the state that the opponent changes to after being +# hit by KFM's throw hitDef. The important thing here is to use a +# changeAnim2 controller. The difference between changeAnim2 and +# changeAnim is that changeAnim2 changes the player's animation to +# an action in the AIR file of the attacker (in this case, kfm.air), +# whereas changeAnim always changes the player to an action in his +# own AIR file. Look at Action 820 in kfm.air for some extra +# comments. +[StateDef 820; +type: A; movetype: H; physics: N; +velset: 0, 0;] + +if time = 0 { + changeAnim2{value: 820} +} + +#In case attacker loses binding on player for any reason, this controller +#guarantees that the player will never get stuck in this thrown state. +if !getHitVar(IsBound) { + selfState{value: 5050} +} + +#=============================================================================== +# Thrown by Kung Fu Throw - thrown into the air +#=============================================================================== +# (a custom gethit state) +# Description: This state has the opponent flying through the air and +# falling down onto the ground. The selfState controller sets the +# opponent back using to his own state file when he his the ground. +# Controllers 821,2 and 821,3 allow the opponent to recover by +# hitting his recovery command when he is falling. +[StateDef 821; +type: A; movetype: H; physics: N; +velset: 2.8, -7; poweradd: 40;] + + #Gravity +velAdd{y: .4} + +#triggerall +if vel y > 0 && alive && canRecover && (command = "recovery" || random%5=0 && aiLevelF) { + #trigger1 + if pos y >= -20 { + # Recover near ground (use changeState) + changeState{value: 5200} #HITFALL_RECOVER + } else { + #Else is used when the if{} block has a either true or false statement + #it is not required to handle the opposite of an if but this is used to + #to specify that only one thing should happen as the opposite(false) + + #Recover in mid air (use selfState) + selfState{value: 5210} # ;HITFALL_AIRRECOVER + } +} + +if pos y >= 0 && vel y > 0 { + selfState{value: 5100} #Hit ground +} + +#=============================================================================== +# Hit by Fast Kung Fu Palm - shaking from the hit +#=============================================================================== +# (a custom gethit state) +# See State 1020 for details +[StateDef 1025; +type: A; movetype: H; physics: N; +velset: 0, 0;] + +#Custom animation +changeAnim2{value: 1025} + +if hitShakeOver = 1 { + changeState{value: 1026} +} + +#=============================================================================== +# Hit by Fast Kung Fu Palm - flying through the air +#=============================================================================== +# (a custom gethit state) +[StateDef 1026; +type: A; movetype: H; physics: N;] + +if time = 0 { + hitVelSet{x: 1; y: 1} +} + +velAdd{y: .45} + +#No scroll +if pos y < -15 { + if backEdgeBodyDist < 65 || frontEdgeBodyDist < 65 { + screenBound{value: 1; movecamera: 0, 1} + } + if backEdgeBodyDist <= 20 || frontEdgeBodyDist <= 20 { + changeState{value: 1027} + } +} + +if vel y > 0 && pos y >= 0 { + selfState{value: 5100} +} + +#=============================================================================== +# Hit by Fast Kung Fu Palm - hit wall +#=============================================================================== +# (a custom gethit state) +[StateDef 1027; +type: A; movetype: H; physics: N;] + +if time = 0 { + if frontEdgeBodyDist <= 30 { + turn{} + } + posAdd{x: 15 - backEdgeBodyDist} + explod{ + anim: F72; + pos: 0, floor(screenPos Y) - 50; + postype: back; + sprpriority: 3; + } + call SysSnd(7, 0, 1); + changeAnim2{value: 1027} +} + +#Stop moving +posFreeze{} + +#No scroll +screenBound{value: 1; movecamera: 0, 1} + +if animTime = 0 { + changeState{value: 1028} +} + +#=============================================================================== +# Hit by Fast Kung Fu Palm - bounce off wall +#=============================================================================== +# (a custom gethit state) +[StateDef 1028; +type: A; movetype: H; physics: N;] + +notHitBy{value: , NA, NP} + +if time = 0 { + #Vel Y, X + velSet{y: -6; x: 1.6} + if backEdgeDist < 30 { + turn{} + } + if !selfAnimExist(5052) { #Self falling animation + changeAnim{value: 5050} + } + if selfAnimExist(5052) { #Self falling animation (diagup type) + changeAnim{value: 5052} + } +} + +velAdd{y: .35} + +if vel y > -2 { + persistent(0) if anim = 5050 && selfAnimExist(5060) { #Coming down - normal + changeAnim{value: 5060} + } + persistent(0) if anim = 5052 && selfAnimExist(5062) { #Coming down - diagup type + changeAnim{value: 5062} + } +} + +if vel y > 0 && pos y >= 0 { + selfState{value: 5100} +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/intro.def b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/intro.def new file mode 100644 index 00000000..4f879f81 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/intro.def @@ -0,0 +1,148 @@ +; Introduction cutscene for KFM's story. + +; This storyboard has multiple scenes. +; Each scene uses two overlay anims, one for the picture, and +; another for the text. +; The fadein and fadeout parameters are used to fade one screen +; to the next. + +[SceneDef] +spr = intro.sff +startscene = 0 ;Starting scene number (for debugging) + +;------------------------------------ +[Scene 0] +; Fade +fadein.time = 60 ;Time to take for fading in +fadein.col = 0,0,0 ;Use 255,255,255 for white-fade +fadeout.time = 15 +fadeout.col = 255,255,255 +; Screen color +clearcolor = 255,255,255 +; Overlay Anims (from 0 to 9) +layerall.pos = 160,0 ;Default position for all layers +layer0.anim = 0 ;Anim action number +layer0.offset = 0,32 ;Position offset +layer0.starttime = 0 ;Time to start display +layer1.anim = 1 +layer1.offset = 0,176 +; Music +bgm = intro.mp3 ;Name of music file to play +bgm.loop = 0 +; Total time +end.time = 300 + +;------------------------------------ +[Scene 1] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 15 +fadeout.col = 255,255,255 +; Screen color +; The previous clearcolor value is carried over by default +; Overlay Anims (from 0 to 9) +; The previous layerall.pos value is carried over by default +layer0.anim = 10 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 11 +layer1.offset = 0,176 +; Total time +end.time = 300 + +;------------------------------------ +[Scene 2] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 15 +fadeout.col = 255,255,255 +; Overlay Anims (from 0 to 9) +layer0.anim = 20 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 21 +layer1.offset = 0,176 +; Total time +end.time = 300 + +;------------------------------------ +[Scene 3] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 15 +fadeout.col = 255,255,255 +; Overlay Anims (from 0 to 9) +layer0.anim = 30 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 31 +layer1.offset = 0,176 +; Total time +end.time = 300 + +;------------------------------------ +[Scene 4] +; Fade +fadein.time = 15 +fadein.col = 255,255,255 +fadeout.time = 90 +fadeout.col = 0,0,0 +; Overlay Anims (from 0 to 9) +layer0.anim = 40 +layer0.offset = 0,32 +layer0.starttime = 0 +layer1.anim = 41 +layer1.offset = 53,85 +layer2.anim = 42 +layer2.offset = 0,176 +; Total time +end.time = 600 + +;Background image +[Begin Action 0] +0,0, 0,0, -1 + +;Text +[Begin Action 1] +1,0, 0,0, -1 + +;Background image +[Begin Action 10] +10,0, 0,0, -1 + +;Text +[Begin Action 11] +11,0, 0,0, -1 + +;Background image +[Begin Action 20] +20,0, 0,0, -1 + +;Text +[Begin Action 21] +21,0, 0,0, -1 + +;Background image +[Begin Action 30] +30,0, 0,0, -1 + +;Text +[Begin Action 31] +31,0, 0,0, -1 + +;Background image +[Begin Action 40] +40,0, 0,0, -1 + +;Blinking arrow +[Begin Action 41] +41,0, 0,0, 40 +-1,0, 0,0, 20 + +;Text (two lines) +[Begin Action 42] +42,0, 0,0, 200 +42,1, 0,0, -1 diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/intro.sff b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/intro.sff new file mode 100644 index 00000000..89fb4111 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/intro.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm.air b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm.air new file mode 100644 index 00000000..3ec37f2c --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm.air @@ -0,0 +1,2514 @@ +; KFM's animation data +; see docs/air.txt for more information + +;--------------------------------------------------------------------------- +; Standing Animation +[Begin Action 0] +Clsn2Default: 2 + Clsn2[0] = -13, 0, 16,-79 + Clsn2[1] = 5,-79, -7,-93 +0,0, 0,0, 10 +0,1, 0,0, 7 +0,2, 0,0, 7 +0,3, 0,0, 7 +0,4, 0,0, 7 +0,5, 0,0, 45 +0,4, 0,0, 7 +0,3, 0,0, 7 +0,2, 0,0, 7 +0,1, 0,0, 7 +0,0, 0,0, 40 + +; Turning +[Begin Action 5] +Clsn2Default: 2 + Clsn2[0] = -10, 0, 10,-79 + Clsn2[1] = -4,-92, 6,-79 +5,0, 0,0, 4, H +5,0, 0,0, 4 + +; Crouch Turning +[Begin Action 6] +Clsn2Default: 3 + Clsn2[0] = 10, 0,-10,-47 + Clsn2[1] = 5,-47, -5,-60 + Clsn2[2] = 10,-39, 15, 0 +6,0, 0,0, 4, H +6,0, 0,0, 4 + +; Stand to crouch +[Begin Action 10] +Clsn2: 2 + Clsn2[0] = -12, 0, 17,-65 + Clsn2[1] = -7,-81, 6,-65 +11,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = -12,-52, 17, 0 + Clsn2[1] = -7,-67, 6,-52 +11,1, 0,0, 2 + +; Crouching animation +[Begin Action 11] +Clsn2: 2 + Clsn2[0] = 19, 0,-15,-48 + Clsn2[1] = -6,-62, 6,-48 +11,2, 0,0, 1 + +; Crouch to Stand +[Begin Action 12] +Clsn2: 2 + Clsn2[0] = -12,-52, 17, 0 + Clsn2[1] = -7,-67, 6,-52 +11,1, 0,0, 2 +Clsn2: 2 + Clsn2[0] = -12, 0, 17,-65 + Clsn2[1] = -7,-81, 6,-65 +11,0, 0,0, 2 + +; Walking Forward +[Begin Action 20] +Clsn2Default: 2 + Clsn2[0] = -14, 0, 16,-81 + Clsn2[1] = 6,-81, -7,-96 +20,0, 0,0, 3 +20,1, 0,0, 3 +20,2, 0,0, 3 +20,3, 0,0, 3 +20,4, 0,0, 3 +20,5, 0,0, 3 +20,6, 0,0, 3 +20,7, 0,0, 3 +20,8, 0,0, 3 +20,9, 0,0, 3 +20,10, 0,0, 3 +20,11, 0,0, 3 +20,12, 0,0, 3 +20,13, 0,0, 3 +20,14, 0,0, 3 +20,15, 0,0, 3 + +; Walking Back +[Begin Action 21] +Clsn2Default: 2 + Clsn2[0] = -14, 0, 16,-81 + Clsn2[1] = 6,-81, -7,-96 +21,11, 0,0, 3 +21,10, 0,0, 3 +21,9, 0,0, 3 +21,8, 0,0, 3 +21,7, 0,0, 3 +21,6, 0,0, 3 +21,5, 0,0, 3 +21,4, 0,0, 3 +21,3, 0,0, 3 +21,2, 0,0, 3 +21,1, 0,0, 3 +21,0, 0,0, 3 +21,15, 0,0, 3 +21,14, 0,0, 3 +21,13, 0,0, 3 +21,12, 0,0, 3 + +; Jump start frame +[Begin Action 40] +Clsn2: 2 + Clsn2[0] = -15, 0, 16,-67 + Clsn2[1] = -6,-83, 6,-67 +11,0, 0,0, 3 + +; Starting Jumping up +[Begin Action 41] +Clsn2: 2 + Clsn2[0] = 12,-11,-11,-94 + Clsn2[1] = -6,-109, 6,-94 +41,0, 0,0, 7 +Clsn2: 2 + Clsn2[0] = -11,-86, 12,-28 + Clsn2[1] = -6,-101, 8,-86 +41,1, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-77, 14,-33 + Clsn2[1] = 0,-91, 11,-77 +41,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-73, 14,-35 + Clsn2[1] = 3,-86, 15,-69 +41,3, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-73, 14,-35 + Clsn2[1] = 3,-86, 15,-69 +41,4, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-33, 14,-77 + Clsn2[1] = -2,-93, 11,-76 +41,5, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-84, 14,-27 + Clsn2[1] = -3,-99, 9,-84 +41,6, 0,0, 4 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +; Starting Jumping forwards +[Begin Action 42] +Clsn2: 2 + Clsn2[0] = 12,-11,-11,-94 + Clsn2[1] = -6,-109, 6,-94 +42,0, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -11,-86, 14,-28 + Clsn2[1] = 5,-96, 17,-85 +42,1, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -11,-77, 14,-33 + Clsn2[1] = 0,-91, 11,-77 +41,2, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -11,-73, 14,-35 + Clsn2[1] = 3,-86, 15,-69 +41,3, 0,0, 4 +Clsn2: 1 + Clsn2[0] = -18,-75, 18,-44 +42,3, 0,0, 3 +Clsn2: 1 + Clsn2[0] = -18,-75, 18,-44 +42,4, 0,0, 3 +Clsn2: 1 + Clsn2[0] = -18,-75, 18,-44 +42,5, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -11,-33, 14,-77 + Clsn2[1] = -2,-93, 11,-76 +41,5, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -11,-84, 14,-27 + Clsn2[1] = -3,-99, 9,-84 +41,6, 0,0, 5 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +; Starting Jumping backwards +[Begin Action 43] +Clsn2: 2 + Clsn2[0] = 12,-11,-11,-94 + Clsn2[1] = -6,-109, 6,-94 +43,0, 0,0, 6 +Clsn2: 2 + Clsn2[0] = -11,-86, 12,-28 + Clsn2[1] = -6,-101, 8,-86 +43,1, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -11,-77, 14,-33 + Clsn2[1] = 0,-91, 11,-77 +41,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-73, 14,-35 + Clsn2[1] = 3,-86, 15,-69 +41,3, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-73, 14,-35 + Clsn2[1] = 3,-86, 15,-69 +41,4, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-33, 14,-77 + Clsn2[1] = -2,-93, 11,-76 +41,5, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-84, 14,-27 + Clsn2[1] = -3,-99, 9,-84 +41,6, 0,0, 5 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +; Peak and coming down from Jumping up +;[Begin Action 44] + +; Peak and coming down from Jumping forwards +;[Begin Action 45] + +; Peak and coming down from Jumping backwards +;[Begin Action 46] + +; Jump land animation +[Begin Action 47] +Clsn2: 2 + Clsn2[0] = 15, 0,-16,-68 + Clsn2[1] = -5,-79, 6,-68 +11,0, 0,0, 3 + +; Run forwards +[Begin Action 100] +Clsn2Default: 2 + Clsn2[0] = 14, 0,-15,-79 + Clsn2[1] = 14,-79, 1,-91 +100,0, 0,0, 5 +100,1, 0,0, 5 +100,2, 0,0, 5 +100,3, 0,0, 5 +100,4, 0,0, 5 +100,5, 0,0, 5 + +; Hop backwards +[Begin Action 105] +Clsn2: 3 + Clsn2[0] = -9,-94, 14,-56 + Clsn2[1] = 2,-61, 25,-34 + Clsn2[2] = 6,-90, -6,-104 +43,0, 0,0, 8 +Clsn2: 2 + Clsn2[0] = -8,-28, 10,-81 + Clsn2[1] = 6,-81, -5,-94 +43,1, 0,0, 4 +Clsn2Default: 2 + Clsn2[0] = -8,-33, 13,-77 + Clsn2[1] = 0,-90, 10,-77 +41,6, 0,0, 4 +41,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -8,-28, 10,-81 + Clsn2[1] = 6,-81, -5,-94 +41,1, 0,0, -1 + +;--------------------------- +; Lose +[Begin Action 170] +5000, 0,-5,0, 5 +5000,10,-5,0, 6 +5000,11,-5,0, 9 +5000,10,-5,0, 5 +5000, 0,-5,0, 3 +5010, 0, 5,0, 3 +5300, 3, 5,0, 4 +5300, 2, 5,0, 2 +5300, 1, 5,0, -1 + +;--------------------------- +; Win +[Begin Action 181] +Clsn2Default: 1 + Clsn2[0] = 17, 0,-12,-83 +200,0, 0,0, 4 +181,0, 0,0, 5 +181,1, 0,0, 5 +181,2, 0,0, 5 +181,3, 0,0, 5 +181,4, 0,0, 5 +181,5, 0,0, 5 +181,6, 0,0, 30 +181,5, 0,0, 7 +181,4, 0,0, 6 +181,3, 0,0, 5 +181,2, 0,0, -1 + +;----------------------------------- +; INTRO +[Begin Action 190] +Clsn2Default: 1 + Clsn2[0] = 17, 0,-12,-83 +0,3, 0,0, 7 +0,2, 0,0, 7 +0,1, 0,0, 7 +0,0, 0,0, 20 +240,0,-8,0, 4 +240,1,-8,0, 3 +240,2,-8,0, 6 +240,3,-8,0, 5 +240,4,-8,0, 4 +200,0, 0,0, 4 + +; INTRO -- WOOD (projectile) +[Begin Action 191] +191,3, 0,0, 8 +191,2, 0,0, 8 +191,1, 0,0, 8 +191,0, 0,0, 8 + +; INTRO -- WOODBREAK (projectile) +; Note: Putting -1,0 for the sprite means it does not draw anything +[Begin Action 192] +192,0, 0,0, 5 +192,1, 0,0, 8 + -1,0, 0,0, 1 +192,1, 0,0, 3 + -1,0, 0,0, 1 +192,1, 0,0, 3 + -1,0, 0,0, 2 +192,1, 0,0, 3 + -1,0, 0,0, 2 +Loopstart +192,1, 0,0, 1 + -1,0, 0,0, 3 + +;--------------------------- +; Taunt +[Begin Action 195] +Clsn2Default: 2 + Clsn2[0] = 18, 0,-10,-79 + Clsn2[1] = -1,-94, 12,-78 +200,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 13, 0,-13,-84 + Clsn2[1] = -7,-99, 6,-85 +181,0, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -13,-88, 13, 0 + Clsn2[1] = -8,-105, 4,-87 +181,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -13,-88, 13, 0 + Clsn2[1] = 5,-84, 17,-104 +181,3, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -13,-88, 13, 0 + Clsn2[1] = 14,-76, 27,-95 +181,4, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 13, 0,-13,-78 + Clsn2[1] = 36,-81, 9,-64 +181,5, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 13, 0,-13,-78 + Clsn2[1] = 9,-79, 38,-62 +181,6, 0,0, 12 +Clsn2: 2 + Clsn2[0] = 13, 0,-13,-78 + Clsn2[1] = 36,-81, 9,-64 +181,5, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -13,-88, 13, 0 + Clsn2[1] = 14,-76, 27,-95 +181,4, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -13,-88, 13, 0 + Clsn2[1] = 5,-84, 17,-104 +181,3, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -13,-88, 13, 0 + Clsn2[1] = -8,-105, 4,-87 +181,2, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 13, 0,-13,-84 + Clsn2[1] = -7,-99, 6,-85 +181,0, 0,0, 3 +200,0, 0,0, 2 + +;----------------------------------- +; Stand Light Punch +[Begin Action 200] +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 2 +200,1, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 16,-80, 61,-71 +Clsn2: 3 + Clsn2[0] = 19, 0,-10,-80 + Clsn2[1] = 6,-94, 18,-78 + Clsn2[2] = 19,-80, 61,-71 +200,2, 0,0, 4 +200,1, 0,0, 3 +200,0, 0,0, 2 + +;----------------------------------- +; Stand Strong Punch +[Begin Action 210] +Clsn2: 2 + Clsn2[0] = 19, 0,-10,-81 + Clsn2[1] = 0,-96, 12,-80 +200,0, 0,0, 2 +Clsn2: 3 + Clsn2[0] = -11, 0, 43,-32 + Clsn2[1] = 41,-32, 12,-75 + Clsn2[2] = 21,-91, 34,-75 +210,0, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 45, 0, -7,-32 + Clsn2[1] = 19,-73, 48,-24 + Clsn2[2] = 35,-89, 48,-72 +210,1, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 47,-31, -6, 0 + Clsn2[1] = 17,-31, 47,-78 + Clsn2[2] = 31,-94, 42,-76 +210,2, 0,0, 2 +Clsn1: 2 + Clsn1[0] = 27,-86, 64,-60 + Clsn1[1] = 64,-63, 79,-82 +Clsn2: 5 + Clsn2[0] = 40, 0,-11,-32 + Clsn2[1] = 34,-32, 5,-86 + Clsn2[2] = 13,-97, 26,-77 + Clsn2[3] = 34,-60, 64,-86 + Clsn2[4] = 64,-63, 79,-82 +210,3, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 40, 0,-11,-32 + Clsn2[1] = 34,-32, 5,-86 + Clsn2[2] = 13,-97, 26,-77 +210,4, 0,0, 4 +Clsn2: 3 + Clsn2[0] = -11, 0, 32,-39 + Clsn2[1] = 24,-39, -1,-81 + Clsn2[2] = 20,-79, 8,-95 +210,5, 0,0, 6 +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-81 + Clsn2[1] = 0,-96, 12,-80 +200,0, 0,0, 3 + +; Standing Light Kick +[Begin Action 230] +Clsn2: 2 + Clsn2[0] = 19, 0,-10,-81 + Clsn2[1] = 0,-96, 12,-80 +200,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = -10,-84, 19, 0 + Clsn2[1] = 2,-99, 15,-83 +230,0, 0,0, 2 +Clsn1: 3 + Clsn1[0] = 38,-53, 14,-36 + Clsn1[1] = 35,-42, 56,-29 + Clsn1[2] = 69,-34, 53,-23 +Clsn2: 5 + Clsn2[0] = -6,-84, 18, 0 + Clsn2[1] = 6,-98, 19,-83 + Clsn2[2] = 18,-53, 38,-36 + Clsn2[3] = 56,-29, 35,-42 + Clsn2[4] = 53,-23, 69,-34 +230,1, 0,0, 3 +Clsn2: 5 + Clsn2[0] = -6,-84, 18, 0 + Clsn2[1] = 6,-98, 19,-83 + Clsn2[2] = 32,-37, 18,-54 + Clsn2[3] = 32,-42, 45,-29 + Clsn2[4] = 52,-22, 44,-34 +230,2, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -10,-84, 19, 0 + Clsn2[1] = 2,-99, 15,-83 +230,0, 0,0, 3 +200,0, 0,0, 2 + +; Standing Strong Kick +[Begin Action 240] +Clsn2Default: 3 + Clsn2[0] = -13,-82, 6, 0 + Clsn2[1] = -12,-95, 0,-81 + Clsn2[2] = 24,-28, 2,-66 +240,0, 0,0, 4 +240,1, 0,0, 3 +Clsn1: 1 + Clsn1[0] = 4,-65, 67,-50 +Clsn2: 4 + Clsn2[0] = 6, 0, -9,-62 + Clsn2[1] = -20,-80, 4,-57 + Clsn2[2] = -19,-94, -7,-79 + Clsn2[3] = 67,-50, 3,-65 +240,2, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 70,-65, 8,-50 +Clsn2: 4 + Clsn2[0] = 9, 0, -7,-62 + Clsn2[1] = -18,-80, 6,-57 + Clsn2[2] = -16,-94, -4,-80 + Clsn2[3] = 3,-65, 70,-50 +240,3, 0,0, 4 +Clsn2: 4 + Clsn2[0] = -6, -1, 9,-60 + Clsn2[1] = -12,-81, 13,-55 + Clsn2[2] = -9,-92, 2,-81 + Clsn2[3] = 9,-57, 37,-39 +240,4, 0,0, 4 +Clsn2: 3 + Clsn2[0] = -2, 0, 30,-58 + Clsn2[1] = -2,-79, 22,-58 + Clsn2[2] = 1,-94, 12,-79 +240,5, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -9, 0, 17,-80 + Clsn2[1] = 0,-94, 12,-81 +200,0, 0,0, 3 + +; Crouching light punch +[Begin Action 400] +Clsn2: 2 + Clsn2[0] = 18, 0,-15,-48 + Clsn2[1] = -4,-63, 9,-48 +400,0, 0,0, 3 +Clsn1: 1 + Clsn1[0] = 54,-40, 17,-48 +Clsn2: 3 + Clsn2[0] = -14, 0, 19,-48 + Clsn2[1] = 0,-63, 12,-48 + Clsn2[2] = 18,-48, 54,-40 +400,1, 0,0, 6 +Clsn2: 2 + Clsn2[0] = 18, 0,-15,-48 + Clsn2[1] = -4,-63, 9,-48 +400,0, 0,0, 3 + +; Crouching strong punch +[Begin Action 410] +Clsn2Default: 2 + Clsn2[0] = -10, 0, 30,-58 + Clsn2[1] = 2,-76, 14,-58 +410,0, 0,0, 2 +410,1, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 45,-37, 20,-62 +Clsn2: 3 + Clsn2[0] = -2, 0, 32,-55 + Clsn2[1] = 9,-75, 21,-54 + Clsn2[2] = 45,-37, 20,-62 +410,2, 0,0, 3 +Clsn1: 2 + Clsn1[0] = 51,-79, 29,-57 + Clsn1[1] = 44,-94, 57,-74 +Clsn2: 4 + Clsn2[0] = -1, 0, 39,-42 + Clsn2[1] = 14,-43, 34,-83 + Clsn2[2] = 51,-79, 34,-62 + Clsn2[3] = 44,-94, 57,-74 +410,3, 0,0, 7 +Clsn2: 3 + Clsn2[0] = 37, 0, -5,-37 + Clsn2[1] = 6,-37, 36,-64 + Clsn2[2] = 13,-78, 25,-64 +410,4, 0,0, 5 +410,0, 0,0, 3 + +; Crouching Light Kick +[Begin Action 430] +Clsn2: 3 + Clsn2[0] = 28, 0,-15,-28 + Clsn2[1] = -19,-49, 14,-28 + Clsn2[2] = -1,-47,-13,-60 +430,0, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 29, 0,-21,-31 + Clsn2[1] = 11,-23,-19,-45 + Clsn2[2] = -7,-42,-18,-54 +430,1, 0,0, 2 +Clsn1: 3 + Clsn1[0] = 24,-24, 8,-13 + Clsn1[1] = 23,-19, 45,-10 + Clsn1[2] = 45,-11, 63, 0 +Clsn2: 5 + Clsn2[0] = 11, 0,-20,-41 + Clsn2[1] = -21,-50,-10,-38 + Clsn2[2] = 24,-24, 8,-13 + Clsn2[3] = 23,-19, 45,-10 + Clsn2[4] = 45,-11, 63, 0 +430,2, 0,0, 3 +Clsn2: 5 + Clsn2[0] = -20,-41, 11, 0 + Clsn2[1] = -21,-50,-10,-39 + Clsn2[2] = 11,-25, 24,-13 + Clsn2[3] = 23,-19, 43,-10 + Clsn2[4] = 43,-11, 60, 0 +430,3, 0,0, 4 +Clsn2: 3 + Clsn2[0] = 29, 0,-21,-31 + Clsn2[1] = 11,-23,-19,-45 + Clsn2[2] = -7,-42,-18,-54 +430,1, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 28, 0,-15,-28 + Clsn2[1] = -19,-49, 14,-28 + Clsn2[2] = -1,-47,-13,-60 +430,0, 0,0, 3 + +; Crouching Strong Kick +[Begin Action 440] +Clsn2: 3 + Clsn2[0] = -15, 0, 28,-28 + Clsn2[1] = -7,-28, 25,-50 + Clsn2[2] = 7,-65, 19,-48 +440,0, 0,0, 4 +Clsn2Default: 3 + Clsn2[0] = 26, 0,-17,-24 + Clsn2[1] = -7,-24, 27,-48 + Clsn2[2] = 7,-58, 20,-46 +440,1, 0,0, 3 +440,2, 0,0, 2 +Clsn1: 3 + Clsn1[0] = 40,-10, 18,-25 + Clsn1[1] = 40,-17, 58, -4 + Clsn1[2] = 76, 1, 58,-10 +Clsn2: 5 + Clsn2[0] = 17,-52, -7, 0 + Clsn2[1] = 40,-10, 12,-25 + Clsn2[2] = 40,-17, 58, -4 + Clsn2[3] = 76, 1, 58,-10 + Clsn2[4] = 8,-59, 20,-46 +440,3, 0,0, 4 +Clsn2Default: 4 + Clsn2[0] = 17, 0, -7,-52 + Clsn2[1] = 8,-59, 20,-46 + Clsn2[2] = 17,-27, 33,-11 + Clsn2[3] = 33,-17, 52, -4 +440,4, 0,0, 5 +440,5, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 26, 0,-17,-24 + Clsn2[1] = -7,-24, 27,-48 + Clsn2[2] = 7,-58, 20,-46 +440,6, 0,0, 5 +Clsn2: 3 + Clsn2[0] = -15, 0, 28,-28 + Clsn2[1] = -7,-28, 25,-50 + Clsn2[2] = 7,-65, 19,-48 +440,0, 0,0, 4 + +; Jump light punch +[Begin Action 600] +Clsn2Default: 2 + Clsn2[0] = -11,-72, 16,-27 + Clsn2[1] = -5,-87, 8,-72 +600,0, 0,0, 3 +Clsn1: 2 + Clsn1[0] = 15,-70, 31,-60 + Clsn1[1] = 49,-54, 29,-65 +Clsn2: 4 + Clsn2[0] = -13,-72, 17,-27 + Clsn2[1] = 0,-87, 12,-71 + Clsn2[2] = 15,-70, 31,-60 + Clsn2[3] = 49,-54, 29,-65 +600,1, 0,0, 11 +Clsn2: 4 + Clsn2[0] = -13,-72, 17,-27 + Clsn2[1] = 0,-87, 12,-71 + Clsn2[2] = 15,-70, 31,-60 + Clsn2[3] = 49,-54, 29,-65 +600,1, 0,0, 4 +600,0, 0,0, -1 + +; Jump strong punch +[Begin Action 610] +Clsn2: 2 + Clsn2[0] = -13,-76, 18,-24 + Clsn2[1] = -2,-88, 11,-73 +610,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 20,-23,-10,-76 + Clsn2[1] = 7,-91, 27,-68 +610,1, 0,0, 3 +Clsn1: 1 + Clsn1[0] = 23,-45, 57,-77 +Clsn2: 3 + Clsn2[0] = 20,-23,-10,-76 + Clsn2[1] = 18,-85, 30,-70 + Clsn2[2] = 57,-45, 20,-77 +610,2, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -10,-77, 20,-23 + Clsn2[1] = 10,-92, 23,-71 +610,3, 0,0, 12 +Clsn2: 2 + Clsn2[0] = -10,-77, 20,-23 + Clsn2[1] = 6,-92, 30,-71 +610,1, 0,0, -1 + +; Jump light kick +[Begin Action 630] +Clsn2: 2 + Clsn2[0] = -15,-72, 17,-24 + Clsn2[1] = -8,-91, 4,-72 +640,0, 0,0, 3 +Clsn1: 1 + Clsn1[0] = 11,-54, 35,-37 +Clsn2: 3 + Clsn2[0] = -22,-72, 15,-33 + Clsn2[1] = -11,-90, 0,-71 + Clsn2[2] = 11,-54, 35,-37 +630,1, 0,0, 3 +Clsn1: 2 + Clsn1[0] = 34,-30, 13,-48 + Clsn1[1] = 21,-38, 7,-52 +Clsn2: 3 + Clsn2[0] = -7,-89, 5,-73 + Clsn2[1] = 19,-34,-18,-74 + Clsn2[2] = 13,-48, 34,-30 +630,2, 0,0, 12 +Clsn2: 2 + Clsn2[0] = -22,-72, 15,-33 + Clsn2[1] = -11,-90, 0,-71 +630,1, 0,0, -1 + +; Jump strong kick +[Begin Action 640] +Clsn2: 2 + Clsn2[0] = -15,-72, 17,-24 + Clsn2[1] = -8,-91, 4,-72 +640,0, 0,0, 6 +Clsn1: 2 + Clsn1[0] = 43,-48, 13,-33 + Clsn1[1] = 43,-42, 69,-28 +Clsn2: 4 + Clsn2[0] = -21,-73, 15,-29 + Clsn2[1] = -4,-73,-15,-90 + Clsn2[2] = 15,-48, 43,-33 + Clsn2[3] = 43,-42, 69,-28 +640,1, 0,0, 5 +Clsn2: 3 + Clsn2[0] = -19,-73, 14,-32 + Clsn2[1] = 14,-48, 35,-35 + Clsn2[2] = -12,-89, -2,-73 +640,2, 0,0, 8 +Clsn2: 2 + Clsn2[0] = -15,-72, 17,-24 + Clsn2[1] = -8,-91, 4,-72 +640,0, 0,0, -1 + +;----------------------------------- +; Kung Fu Throw Attempt +[Begin Action 800] +Clsn1: 1 + Clsn1[0] = 26,-81, 8, 0 +Clsn2Default: 2 + Clsn2[0] = -8, 0, 21,-81 + Clsn2[1] = 10,-94, 20,-80 +800,0, 0,0, 1 +800,0, 0,0, 1 +800,1, 0,0, 3 +800,2, 0,0, 10 +800,4, 0,0, 4 +800,0, 0,0, 3 + +;----------------------------------- +;Kung Fu Throw +[Begin Action 810] +800, 0, 0,0, 2 +800, 1, 0,0, 3 +800, 2, 0,0, 10 +800, 3, 0,0, 5 +800, 4, 0,0, 3 +800, 5, 0,0, 4 +800, 6, 0,0, 4 +800, 7, 0,0, 3 +800, 8, 0,0, 3 +800, 9, 0,0, 3 +800,10, 0,0, 5 +800,11, 0,0, 4, H +800,11, 0,0, 4, H +800,12, 0,0, 12, H +200, 0, 0,0, 5 + +;----------------------------------- +;Thrown by Kung Fu Throw (animation for opponent) +; Note: Use ONLY the required frames documented in spr.txt and spr.gif. +; It is important to be restricted to the required frames so that +; the throw animation will look correct for any given character. +; Notice that the animation timings are synchronized to KFM's +; throw animation (action 810). +[Begin Action 820] +5000, 0, 0,0, 2 +5010, 0, 0,0, 3 +5010,10, 0,0, 10 +5010,10, 0,0, 5 +5010, 0, 0,0, 3 +5061, 0, 0,0, 4 +5071, 0, 0,0, 4 +5071,10, 0,0, 3 +5071,20, 0,0, 3 +5031, 0, 0,0, 3, HV +5011, 0, 0,-40, 5, HV +Clsn2: 2 + Clsn2[0] = -26,-38, 6,-69 + Clsn2[1] = 18,-81,-12,-55 +5030,40, 0,0, 5 +Clsn2: 1 + Clsn2[0] = -26,-32, 20,-66 +5030,30, 0,0,-1 + +;----------------------------------- +; Light Kung Fu Palm +[Begin Action 1000] +Clsn2: 2 + Clsn2[0] = -14, 0, 15,-80 + Clsn2[1] = -6,-94, 7,-80 +200,0, -5,0, 1 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 2 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,1, 0,0, 2 +1000,2, 0,0, 2 +1000,3, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 68,-66, 9,-44 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-66, 68,-46 +1000,4, 0,0, 3 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 68,-46 +1000,5, 0,0, 7 +1000,7, 0,0, 4 +1000,2, 0,0, 3 +1000,1, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -14, 0, 15,-80 + Clsn2[1] = -6,-94, 7,-80 +200,0, -5,0, 2 + +;----------------------------------- +; Strong Kung Fu Palm +[Begin Action 1010] +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 2 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,1, 0,0, 2 +1000,2, 0,0, 2 +1000,3, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 68,-66, 9,-44 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-66, 68,-46 +1000,4, 0,0, 3 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 68,-46 +1000,5, 0,0, 5 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 68,-46 +1000,6, 0,0, 5 +1000,7, 0,0, 4 +1000,2, 0,0, 3 +1000,1, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -15, 0, 15,-80 + Clsn2[1] = -5,-94, 7,-79 +200,0, -5,0, 3 + +;----------------------------------- +; Fast Kung Fu Palm +[Begin Action 1020] +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,1, 0,0, 3 +1000,3, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 66,-66, 9,-44 +Clsn2Default: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-66, 66,-46 +1000,4, 0,0, 5 +Clsn1: 1 + Clsn2[0] = 66,-66, 9,-44 +1000,5, 0,0, 4 +Clsn2Default: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 66,-46 +1000,6, 0,0, 4 +1000,5, 0,0, 4 +1000,6, 0,0, 3 +1000,7, 0,0, 3 +1000,1, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -15, 0, 15,-80 + Clsn2[1] = -6,-94, 7,-80 +200,0, -5,0, 2 + +; Hit by Fast Kung Fu Palm +[Begin Action 1025] +Clsn2: 1 + Clsn2[0] = -29,-73, 8,-27 +5010,10, 0,0, 4 +Clsn2: 1 + Clsn2[0] = -29,-73, 8,-27 +5010,20, 0,0, 4 +Clsn2Default: 1 + Clsn2[0] = -29,-82, 12,-48 +5030, 0, 0,0, 4 +5030,10, 0,0, -1 + +; Hit by Fast Kung Fu Palm - hit wall +[Begin Action 1027] +Clsn2Default: 1 + Clsn2[0] = -33,-68, 1,-23 +5010,20, 0,0, 3 +5010,10, 0,0, 3 +5010, 0, 0,0, 2 + +;----------------------------------- +; Light Kung Fu Knee - move forwards +[Begin Action 1050] +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 25, 0,-16,-41 + Clsn2[1] = -16, 0,-39,-21 + Clsn2[2] = 18,-41, -7,-71 + Clsn2[3] = 5,-81, 15,-68 +1050,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 24, 0, -9,-79 + Clsn2[1] = 7,-91, 19,-78 +1050,1, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 5,-67, 24,-36 +Clsn2: 2 + Clsn2[0] = -12,-105, 10, 0 + Clsn2[1] = 5,-67, 24,-31 +1050,2, 0,0, 2 + +;----------------------------------- +; Light Kung Fu Knee - jump +[Begin Action 1051] +Clsn1: 1 + Clsn1[0] = 34,-90, 9,-49 +Clsn2Default: 4 + Clsn2[0] = -13,-101, 13,-60 + Clsn2[1] = -6,-34, 9,-60 + Clsn2[2] = 30,-80, 9,-49 + Clsn2[3] = 6,-110, 18,-95 +1050,3, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,4, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,3, 0,0, 4 +Clsn2: 3 + Clsn2[0] = -8,-97, 12,-35 + Clsn2[1] = 16,-92, 5,-105 + Clsn2[2] = 10,-71, 25,-40 +1050,5, 0,0, 4 +Clsn2: 3 + Clsn2[0] = -8,-95, 12,-33 + Clsn2[1] = 6,-104, 16,-92 + Clsn2[2] = 10,-64, 29,-33 +1050,6, 0,0, 4 +Clsn2: 3 + Clsn2[0] = 10,-27,-11,-95 + Clsn2[1] = 6,-104, 16,-92 + Clsn2[2] = 27,-27, 10,-63 +1050,7, 0,0, -1 + +;----------------------------------- +; Light Kung Fu Knee - land +[Begin Action 1052] +Clsn2: 3 + Clsn2[0] = 26, 0,-11,-47 + Clsn2[1] = 16,-47, -9,-77 + Clsn2[2] = 16,-76, 5,-88 +1052,0, 0,0, 2 +Clsn2: 3 + Clsn2[0] = 27, 0,-10,-37 + Clsn2[1] = -5,-65, 19,-36 + Clsn2[2] = 18,-63, 8,-74 +1052,1, 0,0, 4 +Clsn2: 3 + Clsn2[0] = 15, 0,-12,-40 + Clsn2[1] = -11,-40, 9,-70 + Clsn2[2] = 1,-79, 11,-67 +1052,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -16,-85, 14, 0 + Clsn2[1] = -1,-95, 9,-84 +1052,3, 0,0, 3 + +;----------------------------------- +; Light Kung Fu Knee - kick +[Begin Action 1055] +Clsn2: 2 + Clsn2[0] = -16,-87, 19,-48 + Clsn2[1] = -7,-99, 3,-86 +1055,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 19,-48,-16,-87 + Clsn2[1] = -6,-99, 5,-86 +1055,1, 0,0, 2 +Clsn2: 2 + Clsn2[0] = -16,-87, 19,-48 + Clsn2[1] = -6,-101, 3,-87 +1055,2, 0,0, 1 +Clsn2: 3 + Clsn2[0] = -16,-93, 14,-41 + Clsn2[1] = -9,-104, 3,-90 + Clsn2[2] = 31,-100, 13,-78 +1055,3, 0,0, 1 +Clsn1: 2 + Clsn1[0] = 14,-96, 32,-44 + Clsn1[1] = 45,-111, 30,-77 +Clsn2: 4 + Clsn2[0] = -16,-93, 14,-41 + Clsn2[1] = -9,-104, 3,-90 + Clsn2[2] = 14,-96, 32,-44 + Clsn2[3] = 45,-111, 30,-77 +1055,4, 0,0, 3 +Clsn2: 3 + Clsn2[0] = -16,-93, 14,-41 + Clsn2[1] = -9,-104, 3,-90 + Clsn2[2] = 31,-94, 14,-72 +1055,5, 0,0, 7 +Clsn2: 3 + Clsn2[0] = -16,-41, 14,-93 + Clsn2[1] = -9,-104, 3,-90 + Clsn2[2] = 14,-77, 31,-65 +1055,6, 0,0, 3 +Clsn2: 3 + Clsn2[0] = -16,-93, 14,-41 + Clsn2[1] = -9,-104, 3,-90 + Clsn2[2] = 14,-73, 28,-51 +1055,7, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 14,-33,-11,-92 + Clsn2[1] = -3,-103, 9,-89 +41,6, 0,-5, 3 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +;----------------------------------- +; Light Kung Fu Knee - kick land +[Begin Action 1056] +Clsn2: 2 + Clsn2[0] = -15,-65, 15, 0 + Clsn2[1] = -6,-80, 5,-64 +11,1, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 13, 0,-15,-53 + Clsn2[1] = -6,-68, 5,-53 +11,0, 0,0, 3 + +;----------------------------------- +; Strong Kung Fu Knee - move forwards +[Begin Action 1060] +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 38, 0, -3,-41 + Clsn2[1] = -3, 0,-26,-21 + Clsn2[2] = 31,-41, 6,-71 + Clsn2[3] = 18,-81, 31,-68 +1050,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 24, 0, -9,-79 + Clsn2[1] = 7,-91, 19,-78 +1050,1, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 5,-67, 24,-36 +Clsn2: 2 + Clsn2[0] = -12,-105, 10, 0 + Clsn2[1] = 5,-67, 24,-31 +1050,2, 0,0, 2 + +;----------------------------------- +; Strong Kung Fu Knee - jump +[Begin Action 1061] +Clsn1: 1 + Clsn1[0] = 34,-90, 9,-49 +Clsn2Default: 4 + Clsn2[0] = -13,-101, 13,-60 + Clsn2[1] = -6,-34, 9,-60 + Clsn2[2] = 30,-80, 9,-49 + Clsn2[3] = 6,-110, 18,-95 +1050,3, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,4, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,3, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,4, 0,0, 4 +Clsn2: 3 + Clsn2[0] = -8,-97, 12,-35 + Clsn2[1] = 16,-92, 5,-105 + Clsn2[2] = 10,-71, 25,-40 +1050,5, 0,0, 5 +Clsn2: 3 + Clsn2[0] = -8,-95, 12,-33 + Clsn2[1] = 6,-104, 16,-92 + Clsn2[2] = 10,-64, 29,-33 +1050,6, 0,0, 5 +Clsn2: 3 + Clsn2[0] = 10,-27,-11,-95 + Clsn2[1] = 6,-104, 16,-92 + Clsn2[2] = 27,-27, 10,-63 +1050,7, 0,0, -1 + +;----------------------------------- +; Fast Kung Fu Knee - move forwards +[Begin Action 1070] +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 38, 0, -3,-41 + Clsn2[1] = -3, 0,-26,-21 + Clsn2[2] = 31,-41, 6,-71 + Clsn2[3] = 18,-81, 31,-68 +1050,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 24, 0, -9,-79 + Clsn2[1] = 7,-91, 19,-78 +1050,1, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 5,-67, 26,-36 +Clsn2: 2 + Clsn2[0] = -12,-105, 10, 0 + Clsn2[1] = 5,-67, 26,-31 +1050,2, 0,0, 1 + +;----------------------------------- +; Fast Kung Fu Knee - jump +[Begin Action 1071] +Clsn1: 1 + Clsn1[0] = 34,-90, 9,-49 +Clsn2Default: 4 + Clsn2[0] = -13,-101, 13,-60 + Clsn2[1] = -6,-34, 9,-60 + Clsn2[2] = 30,-80, 9,-49 + Clsn2[3] = 6,-110, 18,-95 +1050,3, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,4, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,3, 0,0, 4 +Clsn1: 1 + Clsn1[0] = 30,-80, 9,-49 +1050,4, 0,0, 4 +Clsn2: 3 + Clsn2[0] = -8,-97, 12,-35 + Clsn2[1] = 16,-92, 5,-105 + Clsn2[2] = 10,-71, 25,-40 +1050,5, 0,0, 5 +Clsn2: 3 + Clsn2[0] = -8,-95, 12,-33 + Clsn2[1] = 6,-104, 16,-92 + Clsn2[2] = 10,-64, 29,-33 +1050,6, 0,0, 5 +Clsn2: 3 + Clsn2[0] = 10,-27,-11,-95 + Clsn2[1] = 6,-104, 16,-92 + Clsn2[2] = 27,-27, 10,-63 +1050,7, 0,0, -1 + +;----------------------------------- +; Light Kung Fu Upper +[Begin Action 1100] +Clsn2Default: 1 + Clsn2[0] = -12, 0, 16,-94 +1100,0, 0,0, 2 +1100,1, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 22, -58, 43, -18 +Clsn2: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 22, -58, 43, -18 +1100,2, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 23,-92, 34,-76 +1100,3, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 31, 0, -3,-85 + Clsn2[1] = 14,-96, 27,-80 +1100,4, 0,0, 1 +Clsn2: 1 + Clsn2[0] = 32, 0, 1,-96 +1100,5, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-60, 55,-131 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 30,-131, 44,-93 +1100,6, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-93, 44,-131 +1100,6, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 27,-110, 38,-93 +1100,7, 0,0, 4 +1100,6, 0,0, 4 +1100,8, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 32,-80, 43,-97 +1100,9, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,1, 0,0, 2 +200,0, 0,0, 2 + +;----------------------------------- +; Strong Kung Fu Upper +[Begin Action 1110] +Clsn2Default: 1 + Clsn2[0] = -12, 0, 16,-94 +1100,0, 0,0, 2 +1100,1, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 22, -58, 43, -21 +Clsn2: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 22, -58, 43, -21 +1100,2, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 23,-92, 34,-76 +1100,3, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 31, 0, -3,-85 + Clsn2[1] = 14,-96, 27,-80 +1100,4, 0,0, 1 +Clsn2: 1 + Clsn2[0] = 32, 0, 1,-96 +1100,5, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-60, 55,-131 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 30,-131, 44,-93 +1100,6, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-93, 44,-131 +1100,6, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 27,-110, 38,-93 +1100,7, 0,0, 4 +1100,6, 0,0, 4 +1100,7, 0,0, 4 +1100,8, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 32,-80, 43,-97 +1100,9, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,1, 0,0, 2 +200,0, 0,0, 2 + +;----------------------------------- +; Fast Kung Fu Upper +[Begin Action 1120] +Clsn2Default: 1 + Clsn2[0] = -12, 0, 16,-94 +1100,0, 0,0, 1 +1100,1, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 22, -58, 43, -24 +Clsn2: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 22, -58, 43, -24 +1100,2, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 25, -62, 46, -30 +Clsn2: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 25, -62, 46, -30 +1100,3, 0,0, 1 +Clsn2: 2 + Clsn2[0] = 31, 0, -3,-85 + Clsn2[1] = 14,-96, 27,-80 +1100,4, 0,0, 1 +Clsn2: 1 + Clsn2[0] = 32, 0, 1,-96 +1100,5, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-60, 55,-131 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 30,-131, 44,-93 +1100,6, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-93, 44,-131 +1100,6, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 27,-110, 38,-93 +1100,7, 0,0, 4 +1100,6, 0,0, 4 +1100,7, 0,0, 4 +1100,6, 0,0, 4 +1100,8, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 32,-80, 43,-97 +1100,9, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,1, 0,0, 2 +200,0, 0,0, 2 + +;----------------------------------- +; Light Kung Fu Blow +[Begin Action 1200] +Clsn2Default: 2 + Clsn2[0] = -14,-84, 17, 0 + Clsn2[1] = -5,-96, 6,-81 +1210,0, 0,0, 3 +1210,1, 0,0, 6 +1210,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +1210,2, 0,0, 1 +Clsn2: 2 + Clsn2[0] = -7,-80, 34, 0 + Clsn2[1] = 11,-93, 24,-79 +1210,3, 0,0, 1 +Clsn1: 2 + Clsn1[0] = -14,-72, 17,-55 + Clsn1[1] = 44,-72, 91,-45 +Clsn2: 4 + Clsn2[0] = 17,-71, 51, 0 + Clsn2[1] = 37,-82, 50,-69 + Clsn2[2] = -9,-22, 17, 0 + Clsn2[3] = -14,-72, 91,-55 +1210,4, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 52, 0, 14,-70 + Clsn2[1] = 33,-82, 45,-69 + Clsn2[2] = -9, 0, 18,-19 + Clsn2[3] = 1,-71, 73,-56 +1210,5, 0,0, 6 +Clsn2: 3 + Clsn2[0] = 53, 0, -8,-40 + Clsn2[1] = 6,-73, 46,-32 + Clsn2[2] = 37,-68, 23,-84 +1210,6, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -7,-80, 34, 0 + Clsn2[1] = 11,-93, 24,-79 +1210,3, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +200, 0, 0,0, 3 + +;----------------------------------- +; Strong Kung Fu Blow +[Begin Action 1210] +Clsn2Default: 2 + Clsn2[0] = -14,-84, 17, 0 + Clsn2[1] = -5,-96, 6,-81 +1210,0, 0,0, 4 +1210,1, 0,0, 8 +1210,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +1210,2, 0,0, 1 +Clsn2: 2 + Clsn2[0] = -7,-80, 34, 0 + Clsn2[1] = 11,-93, 24,-79 +1210,3, 0,0, 1 +Clsn1: 2 + Clsn1[0] = -14,-72, 17,-55 + Clsn1[1] = 44,-72, 91,-45 +Clsn2: 4 + Clsn2[0] = 17,-71, 51, 0 + Clsn2[1] = 37,-82, 50,-69 + Clsn2[2] = -9,-22, 17, 0 + Clsn2[3] = -14,-72, 91,-55 +1210,4, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 52, 0, 14,-70 + Clsn2[1] = 33,-82, 45,-69 + Clsn2[2] = -9, 0, 18,-19 + Clsn2[3] = 1,-71, 73,-56 +1210,5, 0,0, 8 +Clsn2: 3 + Clsn2[0] = 53, 0, -8,-40 + Clsn2[1] = 6,-73, 46,-32 + Clsn2[2] = 37,-68, 23,-84 +1210,6, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -7,-80, 34, 0 + Clsn2[1] = 11,-93, 24,-79 +1210,3, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +200, 0, 0,0, 2 + +;----------------------------------- +; Fast Kung Fu Blow +[Begin Action 1220] +Clsn2Default: 2 + Clsn2[0] = -14,-84, 17, 0 + Clsn2[1] = -5,-96, 6,-81 +1210,0, 0,0, 2 +1210,1, 0,0, 3 +1210,0, 0,0, 2 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +1210,2, 0,0, 1 +Clsn2: 2 + Clsn2[0] = -7,-80, 34, 0 + Clsn2[1] = 11,-93, 24,-79 +1210,3, 0,0, 1 +Clsn1: 2 + Clsn1[0] = -14,-72, 17,-55 + Clsn1[1] = 44,-72, 91,-45 +Clsn2: 4 + Clsn2[0] = 17,-71, 51, 0 + Clsn2[1] = 37,-82, 50,-69 + Clsn2[2] = -9,-22, 17, 0 + Clsn2[3] = -14,-72, 91,-55 +1210,4, 0,0, 3 +Clsn2: 4 + Clsn2[0] = 52, 0, 14,-70 + Clsn2[1] = 33,-82, 45,-69 + Clsn2[2] = -9, 0, 18,-19 + Clsn2[3] = 1,-71, 73,-56 +1210,5, 0,0, 12 +Clsn2: 3 + Clsn2[0] = 53, 0, -8,-40 + Clsn2[1] = 6,-73, 46,-32 + Clsn2[2] = 37,-68, 23,-84 +1210,6, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -7,-80, 34, 0 + Clsn2[1] = 11,-93, 24,-79 +1210,3, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +200, 0, 0,0, 3 + +;----------------------------------- +; Kung Fu Blocking High (attempt) +[Begin Action 1300] +Clsn1: 2 + Clsn2[0] = 0, 1, 34,-84 + Clsn2[1] = 13,-97, 47,-65 +Clsn2: 2 + Clsn2[0] = 0, 1, 34,-84 + Clsn2[1] = 13,-97, 47,-65 +1300,0, 0,0, 2 +Clsn1: 2 + Clsn2[0] = -4,-83, 31, 0 + Clsn2[1] = 10,-96, 39,-67 +Clsn2: 2 + Clsn2[0] = -4,-83, 31, 0 + Clsn2[1] = 10,-96, 39,-67 +1300,1, 0,0, 7 +Clsn2: 2 + Clsn2[0] = -8,-83, 25, 0 + Clsn2[1] = 4,-94, 16,-82 +1300,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +200, 0, 0,0, 2 + +; Kung Fu Blocking High (successful block) +[Begin Action 1310] +Clsn2Default: 2 + Clsn2[0] = -4,-83, 31, 0 + Clsn2[1] = 10,-96, 39,-67 +1300,1, 0,0, 3 +1300,2, 0,0, 6 +Clsn2: 2 + Clsn2[0] = 19, 1,-13,-82 + Clsn2[1] = 1,-80, 12,-96 +200, 0, 0,0, 4 + +;----------------------------------- +; Kung Fu Blocking Low (attempt) +[Begin Action 1320] +Clsn1: 2 + Clsn1[0] = -11, 0, 24,-49 + Clsn1[1] = 1,-60, 35,-32 +Clsn2Default: 2 + Clsn2[0] = -11,-49, 24, 0 + Clsn2[1] = 1,-60, 35,-32 +1320,0, 0,0, 2 +Clsn1: 2 + Clsn1[0] = -11, 0, 24,-49 + Clsn1[1] = 1,-60, 35,-32 +1320,1, 0,0, 7 +Clsn2: 2 + Clsn2[0] = 20, 0,-14,-50 + Clsn2[1] = -2,-60, 10,-47 +1320,2, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 19, 0,-15,-48 + Clsn2[1] = -6,-62, 6,-48 +11,2, 0,0, 2 + +; Kung Fu Blocking Low (successful block) +[Begin Action 1330] +Clsn2Default: 2 + Clsn2[0] = 20, 0,-11,-49 + Clsn2[1] = 1,-60, 31,-32 +1320,1, 0,0, 3 +Clsn2: 2 + Clsn2[0] = 20, 0,-14,-50 + Clsn2[1] = -2,-60, 10,-47 +1320,2, 0,0, 6 +Clsn2: 2 + Clsn2[0] = 19, 0,-15,-48 + Clsn2[1] = -6,-62, 6,-48 +11,2, 0,0, 4 + +;----------------------------------- +; Kung Fu Blocking Air (attempt) +[Begin Action 1340] +Clsn1: 2 + Clsn1[0] = 17,-80,-12,-38 + Clsn1[1] = -2,-89, 20,-59 +Clsn2Default: 2 + Clsn2[0] = -12,-80, 17,-38 + Clsn2[1] = -2,-89, 20,-59 +1340,0, 0,0, 2 +Clsn1: 2 + Clsn1[0] = 17,-80,-12,-38 + Clsn1[1] = -2,-89, 20,-59 +1340,1, 0,0, 7 +1340,0, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-33, 14,-77 + Clsn2[1] = -2,-93, 11,-76 +41,5, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -11,-84, 14,-27 + Clsn2[1] = -3,-99, 9,-84 +41,6, 0,0, 5 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +; Kung Fu Blocking Air (successful block) +[Begin Action 1350] +Clsn2Default: 2 + Clsn2[0] = -12,-80, 17,-38 + Clsn2[1] = -2,-89, 20,-59 +1340,1, 0,0, 3 +1340,0, 0,0, 6 +Clsn2: 2 + Clsn2[0] = -11,-33, 14,-77 + Clsn2[1] = -2,-93, 11,-76 +41,5, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -11,-84, 14,-27 + Clsn2[1] = -3,-99, 9,-84 +41,6, 0,0, 5 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +;----------------------------------- +; Light Kung Fu Zankou +[Begin Action 1400] +Clsn2Default: 2 + Clsn2[0] = 29, 0,-11,-55 + Clsn2[1] = 14,-69, 28,-53 +1400,0, 0,0, 3 +1400,1, -10,0, 2 +Clsn2: 3 + Clsn2[0] = 36, 0, 0,-55 + Clsn2[1] = 14,-69, 28,-53 + Clsn2[2] = 45,-30,-25, 0 +1400,2, 0,0, 3 +Clsn1: 1 + Clsn1[0] = 34,-76, 4,-22 +Clsn2: 2 + Clsn2[0] = 34,-76,-12, 0 + Clsn2[1] = 9,-85, 23,-70 +1400,3, 0,0, 4 +Clsn2Default: 2 + Clsn2[0] = 28,-76,-14, 0 + Clsn2[1] = 7,-85, 21,-70 +1400,4, 0,0, 5 +1400,5, 0,0, 5 +1400,6, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +1400,7, 0,0, 4 + +; Strong Kung Fu Zankou +[Begin Action 1410] +Clsn2Default: 2 + Clsn2[0] = 29, 0,-11,-55 + Clsn2[1] = 14,-69, 28,-53 +1400,0, 0,0, 3 +1400,1, -10,0, 3 +Clsn2: 3 + Clsn2[0] = 36, 0, 0,-55 + Clsn2[1] = 14,-69, 28,-53 + Clsn2[2] = 45,-30,-25, 0 +1400,2, 0,0, 3 +Clsn1: 1 + Clsn1[0] = 34,-76, 4,-22 +Clsn2: 2 + Clsn2[0] = 34,-76,-12, 0 + Clsn2[1] = 9,-85, 23,-70 +1400,3, 0,0, 4 +Clsn2Default: 2 + Clsn2[0] = 28,-76,-14, 0 + Clsn2[1] = 7,-85, 21,-70 +1400,4, 0,0, 5 +1400,5, 0,0, 4 +1400,4, 0,0, 4 +1400,6, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +1400,7, 0,0, 4 + +; Far Kung Fu Zankou +[Begin Action 1420] +Clsn2Default: 2 + Clsn2[0] = 29, 0,-11,-55 + Clsn2[1] = 14,-69, 28,-53 +1400,0, 0,0, 5 +1400,1, -10,0, 3 +Clsn1: 1 + Clsn1[0] = 36,-55, 19,-18 +Clsn2: 3 + Clsn2[0] = 36, 0, 0,-55 + Clsn2[1] = 14,-69, 28,-53 + Clsn2[2] = 45,-30,-25, 0 +1400,2, 0,0, 7 +Clsn1: 1 + Clsn1[0] = 34,-76, 4,-22 +Clsn2: 2 + Clsn2[0] = 34,-76,-12, 0 + Clsn2[1] = 9,-85, 23,-70 +1400,3, 0,0, 4 +Clsn2Default: 2 + Clsn2[0] = 28,-76,-14, 0 + Clsn2[1] = 7,-85, 21,-70 +1400,4, 0,0, 4 +1400,5, 0,0, 4 +1400,4, 0,0, 4 +1400,5, 0,0, 4 +1400,6, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +1400,7, 0,0, 4 + +;----------------------------------- +; Triple Kung Fu Palm +[Begin Action 3000] +Clsn2: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,0, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 2 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,1, 0,0, 3 +1000,2, 0,0, 4 +1000,3, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 68,-71, 9,-40 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-71, 68,-40 +1000,4, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 68,-46 +1000,5, 0,0, 2 +1000,7, 0,0, 2 +1000,2, 0,0, 2 +1000,1, 0,0, 1 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,2, 0,0, 2 +1000,3, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 68,-71, 9,-40 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-71, 68,-40 +1000,4, 0,0, 2 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 68,-46 +1000,5, 0,0, 2 +1000,7, 0,0, 2 +1000,2, 0,0, 2 +1000,1, 0,0, 1 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,2, 0,0, 2 +1000,3, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 68,-71, 9,-40 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-71, 68,-40 +1000,4, 0,0, 3 +Clsn2: 4 + Clsn2[0] = 29, 0,-37,-32 + Clsn2[1] = 21,-32, -8,-65 + Clsn2[2] = 5,-74, 17,-61 + Clsn2[3] = 21,-64, 68,-46 +1000,5, 0,0, 5 +1000,6, 0,0, 5 +1000,5, 0,0, 5 +1000,6, 0,0, 5 +1000,5, 0,0, 5 +1000,6, 0,0, 4 +Clsn2Default: 3 + Clsn2[0] = 31, 0,-34,-33 + Clsn2[1] = -8,-67, 20,-33 + Clsn2[2] = 5,-81, 18,-67 +1000,7, 0,0, 4 +1000,1, 0,0, 3 +Clsn2: 3 + Clsn2[0] = 32,-39,-25, 0 + Clsn2[1] = 16,-39,-10,-73 + Clsn2[2] = 2,-86, 13,-72 +1000,0, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -15, 0, 15,-80 + Clsn2[1] = -6,-94, 7,-80 +200,0, -5,0, 3 + +;----------------------------------- +; Smash Kung Fu Upper +[Begin Action 3050] +Clsn2Default: 1 + Clsn2[0] = -12, 0, 16,-94 +1100,0, 0,0, 1 +1100,0, 0,0, 1 +1100,1, 0,0, 1 +Clsn2Default: 2 + Clsn2[0] = 28, 0, -3,-85 + Clsn2[1] = 23,-92, 34,-76 +1100,2, 0,0, 1 +1100,3, 0,0, 1 +Clsn2: 2 + Clsn2[0] = 31, 0, -3,-85 + Clsn2[1] = 14,-96, 27,-80 +1100,4, 0,0, 1 +Clsn2: 1 + Clsn2[0] = 32, 0, 1,-96 +1100,5, 0,0, 1 +Clsn1: 1 + Clsn1[0] = 30,-40, 55,-131 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 30,-131, 44,-93 +1100,6, 0,0, 2 +Clsn1: 1 + Clsn1[0] = 30,-93, 44,-131 +1100,6, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 27,-110, 38,-93 +1100,7, 0,0, 5 +1100,6, 0,0, 5 +1100,7, 0,0, 5 +1100,6, 0,0, 5 +1100,8, 0,0, 5 +Clsn2: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 32,-80, 43,-97 +1100,9, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,1, 0,0, 2 +200,0, 0,0, 2 + +; Smash Kung Fu Upper (success) +[Begin Action 3051] +Clsn2Default: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 27,-110, 38,-93 +1100,6, 0,0, 5 +1100,7, 0,0, 5 +1100,6, 0,0, 5 +1100,7, 0,0, 5 +1100,6, 0,0, 5 +1100,7, 0,0, 5 +1100,6, 0,0, 5 +1100,8, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 32, 0, 1,-96 + Clsn2[1] = 32,-80, 43,-97 +1100,9, 0,0, 3 +Clsn2Default: 2 + Clsn2[0] = -10, 0, 19,-80 + Clsn2[1] = 0,-94, 12,-80 +200,1, 0,0, 2 +200,0, 0,0, 2 + +;-------------------- +; GUARDSTART (stand) +[Begin Action 120] +Clsn2Default: 4 + Clsn2[0] = 14, 0,-13,-43 + Clsn2[1] = -11,-43, 12,-86 + Clsn2[2] = -1,-86,-11,-94 + Clsn2[3] = -20,-78, 13,-58 +120,0, 0,0, 1 + +; GUARDSTART (crouch) +[Begin Action 121] +Clsn2: 2 + Clsn2[0] = -17, 0, 16,-56 + Clsn2[1] = 3,-56, -9,-64 +121,0, 0,0, 1 + +; GUARDSTART (air) +[Begin Action 122] +Clsn2: 2 + Clsn2[0] = 22,-38, 0,-88 + Clsn2[1] = 9,-31, -9,-76 +122,0, 0,0, 1 + +; GUARD (stand) +[Begin Action 130] +Clsn2Default: 4 + Clsn2[0] = 14, 0,-13,-43 + Clsn2[1] = -11,-43, 12,-86 + Clsn2[2] = -1,-86,-11,-94 + Clsn2[3] = -20,-78, 13,-58 +120,0, 0,0, -1 + +; GUARD (crouch) +[Begin Action 131] +Clsn2: 2 + Clsn2[0] = -17, 0, 16,-56 + Clsn2[1] = 3,-56, -9,-64 +121,0, 0,0, -1 + +; GUARD (air) +[Begin Action 132] +Clsn2: 2 + Clsn2[0] = 22,-38, 0,-88 + Clsn2[1] = 9,-31, -9,-76 +122,0, 0,0, -1 + +; GUARDEND (stand) +[Begin Action 140] +Clsn2Default: 4 + Clsn2[0] = 14, 0,-13,-43 + Clsn2[1] = -11,-43, 12,-86 + Clsn2[2] = -1,-86,-11,-94 + Clsn2[3] = -20,-78, 13,-58 +120,0, 0,0, 5 + +; GUARDEND (crouch) +[Begin Action 141] +Clsn2: 2 + Clsn2[0] = -17, 0, 16,-56 + Clsn2[1] = 3,-56, -9,-64 +121,0, 0,0, 1 + +; GUARDEND (air) +[Begin Action 142] +Clsn2: 2 + Clsn2[0] = 22,-38, 0,-88 + Clsn2[1] = 9,-31, -9,-76 +122,0, 0,0, 1 + +; Hit back while guarding (stand) +[Begin Action 150] +Clsn2Default: 4 + Clsn2[0] = 14, 0,-13,-43 + Clsn2[1] = -11,-43, 12,-86 + Clsn2[2] = -1,-86,-11,-94 + Clsn2[3] = -20,-78, 13,-58 +120,1, 0,0, 4 +120,2, 0,0, 8 +120,1, 0,0, 4 +120,0, 0,0, -1 + +; Hit back while guarding (crouch) +[Begin Action 151] +Clsn2: 2 + Clsn2[0] = -17, 0, 16,-56 + Clsn2[1] = 3,-56, -9,-64 +121,0, 0,0, -1 + +; Hit back while guarding (air) +[Begin Action 152] +Clsn2: 2 + Clsn2[0] = 22,-38, 0,-88 + Clsn2[1] = 9,-31, -9,-76 +122,0, 0,0, -1 + +;--------------------------- +; Stand/Air Hit high (light) +[Begin Action 5000] +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -17,-94, -4,-79 +5000, 0, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -12,-77,-25,-94 +5000,10, 0,0, 4 + +;Stand/Air Hit high (medium) +[Begin Action 5001] +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -12,-77,-25,-94 +5000,10, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -32,-89,-15,-60 +5000,11, 0,0, 5 + +;Stand/Air Hit high (hard) +[Begin Action 5002] +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -32,-89,-15,-60 +5000,11, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -14,-55,-37,-87 +5000,20, 0,0, 5 + +;--------------------------- +;Stand Recover high (light) +[Begin Action 5005] +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -32,-89,-15,-60 +5000,11, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -12,-77,-25,-94 +5000,10, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -17,-94, -4,-79 +5000, 0, 0,0, -1 + +;Stand Recover high (medium) +[Begin Action 5006] +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -14,-55,-37,-87 +5000,20, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -32,-89,-15,-60 +5000,11, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -12,-77,-25,-94 +5000,10, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -17,-94, -4,-79 +5000, 0, 0,0, -1 + +;Stand Recover high (hard) +[Begin Action 5007] +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -14,-55,-37,-87 +5000,21, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -32,-89,-15,-60 +5000,11, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -12,-77,-25,-94 +5000,10, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -18,-79, 16, 0 + Clsn2[1] = -17,-94, -4,-79 +5000, 0, 0,0, -1 + +;--------------------------- +;Stand/Air Hit low (light) +[Begin Action 5010] +Clsn2: 2 + Clsn2[0] = 16, 0,-24,-76 + Clsn2[1] = -12,-72, 1,-88 +5010, 0, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -27,-76, 16, 0 + Clsn2[1] = -12,-66, 1,-81 +5010,10, 0,0, 5 + +;Stand/Air Hit low (medium) +[Begin Action 5011] +Clsn2: 2 + Clsn2[0] = -27,-76, 16, 0 + Clsn2[1] = -12,-66, 1,-81 +5010,10, 0,0, 5 +Clsn2: 1 + Clsn2[0] = -27,-76, 16, 0 +5010,20, 0,0, 5 +Clsn2: 1 + Clsn2[0] = -27,-76, 16, 0 +5010,21, 0,0, 5 + +;Stand/Air Hit low (hard) +[Begin Action 5012] +Clsn2Default: 1 + Clsn2[0] = -27,-76, 16, 0 +5010,20, 0,0, 1 +5010,21, 0,0, 5 +5010,20, 0,0, 5 +5010,21, 0,0, 5 + +;--------------------------- +;Stand Recover low (light) +[Begin Action 5015] +Clsn2: 2 + Clsn2[0] = -27,-76, 16, 0 + Clsn2[1] = -12,-66, 1,-81 +5010,10, 0,0, 1 +Clsn2: 2 + Clsn2[0] = 16, 0,-24,-76 + Clsn2[1] = -12,-72, 1,-88 +5010, 0, 0,0, -1 + +;Stand Recover low (medium) +[Begin Action 5016] +Clsn2: 1 + Clsn2[0] = -27,-76, 16, 0 +5010,20, 0,0, 1 +Clsn2: 2 + Clsn2[0] = -27,-76, 16, 0 + Clsn2[1] = -12,-66, 1,-81 +5010,10, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 16, 0,-24,-76 + Clsn2[1] = -12,-72, 1,-88 +5010, 0, 0,0, -1 + +;Stand Recover low (hard) +[Begin Action 5017] +Clsn2: 1 + Clsn2[0] = -27,-76, 16, 0 +5010,20, 0,0, 1 +Clsn2: 2 + Clsn2[0] = -27,-76, 16, 0 + Clsn2[1] = -12,-66, 1,-81 +5010,10, 0,0, -1 + +;--------------------------- +;Crouch Hit (light) +[Begin Action 5020] +Clsn2Default: 3 + Clsn2[0] = 18, 0,-15,-27 + Clsn2[1] = 11,-27,-15,-50 + Clsn2[2] = -2,-49,-14,-62 +5020, 0, 0,0, 5 +5020,10, 0,0, 5 + +;Crouch Hit (medium) +[Begin Action 5021] +Clsn2Default: 3 + Clsn2[0] = 18, 0,-15,-27 + Clsn2[1] = 11,-27,-15,-50 + Clsn2[2] = -2,-49,-14,-62 +5020,10, 0,0, 5 +5020,20, 0,0, 5 + +;Crouch Hit (hard) +[Begin Action 5022] +Clsn2Default: 3 + Clsn2[0] = 18, 0,-15,-27 + Clsn2[1] = 11,-27,-15,-50 + Clsn2[2] = -2,-49,-14,-62 +5020,20, 0,0, 5 +5020,20, 0,0, 5 + +;--------------------------- +;Crouch Recover (light) +[Begin Action 5025] +Clsn2Default: 3 + Clsn2[0] = 18, 0,-15,-27 + Clsn2[1] = 11,-27,-15,-50 + Clsn2[2] = -2,-49,-14,-62 +5020,10, 0,0, 1 +5020, 0, 0,0, -1 + +;Crouch Recover (medium) +[Begin Action 5026] +Clsn2Default: 3 + Clsn2[0] = 18, 0,-15,-27 + Clsn2[1] = 11,-27,-15,-50 + Clsn2[2] = -2,-49,-14,-62 +5020,20, 0,0, 3 +5020,10, 0,0, 5 +5020, 0, 0,0, -1 + +;Crouch Recover (hard) +[Begin Action 5027] +Clsn2Default: 3 + Clsn2[0] = 18, 0,-15,-27 + Clsn2[1] = 11,-27,-15,-50 + Clsn2[2] = -2,-49,-14,-62 +5020,20, 0,0, 4 +5020,10, 0,0, 4 +5020, 0, 0,0, -1 + +;--------------------------- +;Stand/Air Hit back +[Begin Action 5030] +Clsn2: 2 + Clsn2[0] = -21,-88, 5,-61 + Clsn2[1] = -8,-66, 16,-38 +5030, 0, 0,0, 5 + +;Stand/Air Hit transition +[Begin Action 5035] +Clsn2: 2 + Clsn2[0] = -21,-88, 5,-61 + Clsn2[1] = -8,-66, 16,-38 +5030, 0, 0,0, 4 +Clsn2: 2 + Clsn2[0] = 19,-39, -5,-66 + Clsn2[1] = 2,-57,-26,-83 +5030,10, 0,0, 7 + +;--------------------------- +;Air Recover +[Begin Action 5040] +Clsn2: 1 + Clsn2[0] = -18,-77, 18,-42 +42,5, 0,0, 3 +Clsn2: 1 + Clsn2[0] = -18,-77, 18,-42 +42,4, 0,0, 3 +Clsn2: 1 + Clsn2[0] = -18,-77, 18,-42 +42,3, 0,0, 3 +Clsn2: 1 + Clsn2[0] = 14,-30,-17,-75 +41,4, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -11,-33, 14,-77 + Clsn2[1] = -2,-93, 11,-76 +41,5, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-84, 14,-27 + Clsn2[1] = -3,-99, 9,-84 +41,6, 0,0, 4 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +;--------------------------- +;Air Fall (going up) +[Begin Action 5050] +Clsn2Default: 2 + Clsn2[0] = 24,-44, -2,-76 + Clsn2[1] = -2,-44,-33,-67 +5030,30, 0,0, 5 +5030,31, 0,0, 5 + +;--------------------------- +;Air Fall (up-type, going up) +[Begin Action 5051] +Clsn2: 1 + Clsn2[0] = -19,-105, 14,-25 +5060, 0, 0,0, 3 +Clsn2: 1 + Clsn2[0] = -19,-105, 14,-25 +5060, 1, 0,0, 3 + +;--------------------------- +;Air Fall (up-type, coming down) +[Begin Action 5061] +Clsn2: 2 + Clsn2[0] = 5,-61,-24,-98 + Clsn2[1] = -8,-65, 20,-30 +5030, 0, 0,0, 5 +Clsn2: 2 + Clsn2[0] = -31,-85, 0,-55 + Clsn2[1] = 26,-32, -4,-65 +5030,10, 0,0, 5 +Clsn2: 1 + Clsn2[0] = -33,-69, 24,-44 +5030,30, 0,0, 5 +Clsn2: 2 + Clsn2[0] = 2,-71,-25,-42 + Clsn2[1] = 0,-58, 22,-86 +5030,40, 0,0, 5 +Clsn2: 2 + Clsn2[0] = 5,-72,-19,-34 + Clsn2[1] = 18,-96, -4,-63 +5030,50, 0,0, 5 +Clsn2: 1 + Clsn2[0] = -20,-84, 9,-20 +5060,10, 0,0, -1 + +;--------------------------- +;Tripped +[Begin Action 5070] +Clsn2: 2 + Clsn2[0] = 16, 0,-11,-76 + Clsn2[1] = 0,-91, 11,-76 +5010,10, 8, 0, 5 +Clsn2: 2 + Clsn2[0] = -13,-57, 10,-30 + Clsn2[1] = -2,-57,-27,-88 +5030, 0,-8, 0, 5 +Clsn2: 2 + Clsn2[0] = 12,-39,-13,-66 + Clsn2[1] = -6,-57,-34,-83 +5030,10,-8, 0, -1 + +;--------------------------- +;LieDown Hit (stay down) +[Begin Action 5080] +Clsn2Default: 1 + Clsn2[0] = 22, 0,-26,-21 +5040,20, 0,0, 4 +5040, 0, 0,0, 4 +5040,10, 0,0, -1 + +;--------------------------- +;LieDown Hit (hit up into air) +[Begin Action 5090] +Clsn2: 2 + Clsn2[0] = 19,-39, -5,-66 + Clsn2[1] = 2,-57,-26,-83 +5030,10, 0,0, 7 + +;--------------------------- +; Hit ground from fall +[Begin Action 5100] +Clsn2Default: 1 + Clsn2[0] = 22, 0,-26,-21 +5040, 0, 0,0, 3 + +; Bounce into air +[Begin Action 5160] +Clsn2: 1 + Clsn2[0] = -30,-47, 23,-23 +5030,30, 0,20, -1 + +; Hit ground from bounce +[Begin Action 5170] +Clsn2: 1 + Clsn2[0] = 22, 0,-26,-21 +5040, 0, 0,0, 3 + +;--------------------------- +; Hit ground from fall (up-type) +[Begin Action 5101] +Clsn2Default: 1 + Clsn2[0] = 22, 0,-26,-21 +5040,1, 0,0, 4 +5040,0, 0,0, 2 + +;--------------------------- +; LieDown +[Begin Action 5110] +Clsn2: 1 + Clsn2[0] = 22, 0,-26,-21 +5040,10, 0,0, 1 + +; Get up from LieDown +[Begin Action 5120] +Clsn2Default: 1 + Clsn2[0] = 17, 0,-13,-53 +5040,11, 0,0, 5 +11,2, 0,0, 3 +11,1, 0,0, 3 +11,0, 0,0, 3 + +;LieDead animation +[Begin Action 5150] +Clsn2: 1 + Clsn2[0] = 22, 0,-26,-21 +5040,10, 0,0, 1 + +;--------------------------- +; Fall-recovery near ground +[Begin Action 5200] +Clsn2: 1 + Clsn2[0] = 16,-46,-14,-75 +41,4, 0,-120, 3, VH +Clsn2: 1 + Clsn2[0] = -18,-75, 18,-44 +42,3, 0,0, 4 +Clsn2: 1 + Clsn2[0] = 14,-45,-17,-73 +41,4, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -8,-28, 10,-81 + Clsn2[1] = 6,-81, -5,-94 +41,1, 0,0, -1 + +;Fall-recovery in mid-air +[Begin Action 5210] +Clsn2: 1 + Clsn2[0] = -18,-75, 18,-44 +42,5, 0,0, 3 +Clsn2: 1 + Clsn2[0] = -18,-75, 18,-44 +42,4, 0,0, 3 +Clsn2: 1 + Clsn2[0] = -18,-75, 18,-44 +42,3, 0,0, 3 +Clsn2: 1 + Clsn2[0] = 14,-45,-17,-73 +41,4, 0,0, 3 +Clsn2: 2 + Clsn2[0] = -11,-33, 14,-77 + Clsn2[1] = -2,-93, 11,-76 +41,5, 0,0, 4 +Clsn2: 2 + Clsn2[0] = -11,-84, 14,-27 + Clsn2[1] = -3,-99, 9,-84 +41,6, 0,0, 4 +Loopstart +Clsn2Default: 2 + Clsn2[0] = 14,-23,-11,-90 + Clsn2[1] = -4,-105, 9,-89 +41,7, 0,0, 4 +41,8, 0,0, 4 + +;--------------------------- +; Dizzy +[Begin Action 5300] +Clsn2Default: 1 + Clsn2[0] = 22, 0,-20,-87 +5300,0, 0,0, 8 +5300,1, 0,0, 8 +5300,2, 0,0, 8 +5300,3, 0,0, 8 +5300,2, 0,0, 8 +5300,1, 0,0, 8 + +;--------------------------- +; Speaking +[Begin Action 9003] +9000,1, 0,0, 10 +9001,0, 0,0, 10 \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm.cmd b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm.cmd new file mode 100644 index 00000000..467b730c --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm.cmd @@ -0,0 +1,330 @@ +; The CMD file. +; +; Two parts: 1. Command definition and 2. State entry +; (state entry is after the commands def section) +; +; 1. Command definition +; --------------------- +; Note: The commands are CASE-SENSITIVE, and so are the command names. +; The eight directions are: +; B, DB, D, DF, F, UF, U, UB (all CAPS) +; corresponding to back, down-back, down, downforward, etc. +; The six buttons are: +; a, b, c, x, y, z (all lower case) +; In default key config, abc are are the bottom, and xyz are on the +; top row. For 2 button characters, we recommend you use a and b. +; For 6 button characters, use abc for kicks and xyz for punches. +; +; Each [Command] section defines a command that you can use for +; state entry, as well as in the CNS file. +; The command section should look like: +; +; [Command] +; name = some_name +; command = the_command +; time = time (optional) +; buffer.time = time (optional) +; +; - some_name +; A name to give that command. You'll use this name to refer to +; that command in the state entry, as well as the CNS. It is case- +; sensitive (QCB_a is NOT the same as Qcb_a or QCB_A). +; +; - command +; list of buttons or directions, separated by commas. Each of these +; buttons or directions is referred to as a "symbol". +; Directions and buttons can be preceded by special characters: +; slash (/) - means the key must be held down +; egs. command = /D ;hold the down direction +; command = /DB, a ;hold down-back while you press a +; tilde (~) - to detect key releases +; egs. command = ~a ;release the a button +; command = ~D, F, a ;release down, press fwd, then a +; If you want to detect "charge moves", you can specify +; the time the key must be held down for (in game-ticks) +; egs. command = ~30a ;hold a for at least 30 ticks, then release +; dollar ($) - Direction-only: detect as 4-way +; egs. command = $D ;will detect if D, DB or DF is held +; command = $B ;will detect if B, DB or UB is held +; plus (+) - Buttons only: simultaneous press +; egs. command = a+b ;press a and b at the same time +; command = x+y+z ;press x, y and z at the same time +; greater-than (>) - means there must be no other keys pressed or released +; between the previous and the current symbol. +; egs. command = a, >~a ;press a and release it without having hit +; ;or released any other keys in between +; You can combine the symbols: +; eg. command = ~30$D, a+b ;hold D, DB or DF for 30 ticks, release, +; ;then press a and b together +; +; Note: Successive direction symbols are always expanded in a manner similar +; to this example: +; command = F, F +; is expanded when MUGEN reads it, to become equivalent to: +; command = F, >~F, >F +; +; It is recommended that for most "motion" commads, eg. quarter-circle-fwd, +; you start off with a "release direction". This makes the command easier +; to do. +; +; - time (optional) +; Time allowed to do the command, given in game-ticks. The default +; value for this is set in the [Defaults] section below. A typical +; value is 15. +; +; - buffer.time (optional) +; Time that the command will be buffered for. If the command is done +; successfully, then it will be valid for this time. The simplest +; case is to set this to 1. That means that the command is valid +; only in the same tick it is performed. With a higher value, such +; as 3 or 4, you can get a "looser" feel to the command. The result +; is that combos can become easier to do because you can perform +; the command early. Attacks just as you regain control (eg. from +; getting up) also become easier to do. The side effect of this is +; that the command is continuously asserted, so it will seem as if +; you had performed the move rapidly in succession during the valid +; time. To understand this, try setting buffer.time to 30 and hit +; a fast attack, such as KFM's light punch. +; The default value for this is set in the [Defaults] section below. +; This parameter does not affect hold-only commands (eg. /F). It +; will be assumed to be 1 for those commands. +; +; If you have two or more commands with the same name, all of them will +; work. You can use it to allow multiple motions for the same move. +; +; Some common commands examples are given below. +; +; [Command] ;Quarter circle forward + x +; name = "QCF_x" +; command = ~D, DF, F, x +; +; [Command] ;Half circle back + a +; name = "HCB_a" +; command = ~F, DF, D, DB, B, a +; +; [Command] ;Two quarter circles forward + y +; name = "2QCF_y" +; command = ~D, DF, F, D, DF, F, y +; +; [Command] ;Tap b rapidly +; name = "5b" +; command = b, b, b, b, b +; time = 30 +; +; [Command] ;Charge back, then forward + z +; name = "charge_B_F_z" +; command = ~60$B, F, z +; time = 10 +; +; [Command] ;Charge down, then up + c +; name = "charge_D_U_c" +; command = ~60$D, U, c +; time = 10 + + +;-| Button Remapping |----------------------------------------------------- +; This section lets you remap the player's buttons (to easily change the +; button configuration). The format is: +; old_button = new_button +; If new_button is left blank, the button cannot be pressed. +[Remap] +x = x +y = y +z = z +a = a +b = b +c = c +s = s + +;-| Default Values |------------------------------------------------------- +[Defaults] +; Default value for the "time" parameter of a Command. Minimum 1. +command.time = 15 + +; Default value for the "buffer.time" parameter of a Command. Minimum 1, +; maximum 30. +command.buffer.time = 1 + + +;-| Super Motions |-------------------------------------------------------- +;The following two have the same name, but different motion. +;Either one will be detected by a "command = TripleKFPalm" trigger. +;Time is set to 20 (instead of default of 15) to make the move +;easier to do. +; +[Command] +name = "TripleKFPalm" +command = ~D, DF, F, D, DF, x +time = 20 +buffer.time=3 +[Command] +name = "TripleKFPalm" ;Same name as above +command = ~D, DF, F, D, DF, y +time = 20 +buffer.time=3 +[Command] +name = "SmashKFUpper" +command = ~D, DB, B, D, DB, x;~F, D, DF, F, D, DF, x +time = 20 +buffer.time=3 +[Command] +name = "SmashKFUpper" ;Same name as above +command = ~D, DB, B, D, DB, y;~F, D, DF, F, D, DF, y +time = 20 +buffer.time=3 +;-| Special Motions |------------------------------------------------------ +[Command] +name = "blocking" +command = $F,x +time = 3 + +[Command] +name = "blocking" ;Same name as above (buttons in opposite order) +command = x,$F +time = 3 + +[Command] +name = "upper_x" +command = ~F, D, DF, x +buffer.time=3 +[Command] +name = "upper_y" +command = ~F, D, DF, y +buffer.time=3 +[Command] +name = "upper_xy" +command = ~F, D, DF, x+y +buffer.time=3 +[Command] +name = "QCF_x" +command = ~D, DF, F, x +buffer.time=3 +[Command] +name = "QCF_y" +command = ~D, DF, F, y +buffer.time=3 +[Command] +name = "QCF_xy" +command = ~D, DF, F, x+y +buffer.time=3 +[Command] +name = "QCB_x" +command = ~D, DB, B, x +buffer.time=3 +[Command] +name = "QCB_y" +command = ~D, DB, B, y +buffer.time=3 +[Command] +name = "QCB_xy" +command = ~D, DB, B, x+y +buffer.time=3 +[Command] +name = "QCF_a" +command = ~D, DF, F, a +buffer.time=3 +[Command] +name = "QCF_b" +command = ~D, DF, F, b +buffer.time=3 +[Command] +name = "QCF_ab" +command = ~D, DF, F, a+b +buffer.time=3 +[Command] +name = "FF_ab" +command = F, F, a+b +buffer.time=3 +[Command] +name = "FF_a" +command = F, F, a +buffer.time=3 +[Command] +name = "FF_b" +command = F, F, b +buffer.time=3 +;-| Double Tap |----------------------------------------------------------- +[Command] +name = "FF" ;Required (do not remove) +command = F, F +time = 10 + +[Command] +name = "BB" ;Required (do not remove) +command = B, B +time = 10 + +;-| 2/3 Button Combination |----------------------------------------------- +[Command] +name = "recovery";Required (do not remove) +command = x+y +time = 1 + +;-| Dir + Button |--------------------------------------------------------- +[Command] +name = "down_a" +command = /$D,a +time = 1 + +[Command] +name = "down_b" +command = /$D,b +time = 1 + +;-| Single Button |--------------------------------------------------------- +[Command] +name = "a" +command = a +time = 3 + +[Command] +name = "b" +command = b +time = 3 + +[Command] +name = "c" +command = c +time = 3 + +[Command] +name = "x" +command = x +time = 3 + +[Command] +name = "y" +command = y +time = 3 + +[Command] +name = "z" +command = z +time = 3 + +[Command] +name = "start" +command = s +time = 1 + +;-| Hold Dir |-------------------------------------------------------------- +[Command] +name = "holdfwd";Required (do not remove) +command = /$F +time = 1 + +[Command] +name = "holdback";Required (do not remove) +command = /$B +time = 1 + +[Command] +name = "holdup" ;Required (do not remove) +command = /$U +time = 1 + +[Command] +name = "holddown";Required (do not remove) +command = /$D +time = 1 + diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm.const b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm.const new file mode 100644 index 00000000..d5a6dc1f --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm.const @@ -0,0 +1,125 @@ +; KFM's constants and state file. +; There are comments scattered through this file, so you may like to +; take a look if would like to learn more about the cns. +; There is no way to convert these values to ZSS so they remain here as a constant +; definition. + +[Data] +;Amount of life to start with +life = 1000 +;attack power (more is stronger) +attack = 100 +;defensive power (more is stronger) +defence = 100 +;Percentage to increase defense everytime player is knocked down +fall.defence_up = 50 +;Time which player lies down for, before getting up +liedown.time = 60 +;Number of points for juggling +airjuggle = 15 +;Default hit spark number for HitDefs +sparkno = 2 +;Default guard spark number +guard.sparkno = 40 +;1 to enable echo on KO +KO.echo = 0 +;Volume offset (negative for softer) +volume = 0 +;Variables with this index and above will not have their values +;reset to 0 between rounds or matches. There are 60 int variables, +;indexed from 0 to 59, and 40 float variables, indexed from 0 to 39. +;If omitted, then it defaults to 60 and 40 for integer and float +;variables repectively, meaning that none are persistent, i.e. all +;are reset. If you want your variables to persist between matches, +;you need to override state 5900 from common1.cns. +IntPersistIndex = 60 +FloatPersistIndex = 40 + +[Size] +xscale = 1 ;Horizontal scaling factor. +yscale = 1 ;Vertical scaling factor. +ground.back = 15 ;Player width (back, ground) +ground.front = 16 ;Player width (front, ground) +air.back = 12 ;Player width (back, air) +air.front = 12 ;Player width (front, air) +height = 60 ;Height of player (for opponent to jump over) +attack.dist = 160 ;Default attack distance +proj.attack.dist = 90 ;Default attack distance for projectiles +proj.doscale = 0 ;Set to 1 to scale projectiles too +head.pos = -5, -90 ;Approximate position of head +mid.pos = -5, -60 ;Approximate position of midsection +shadowoffset = 0 ;Number of pixels to vertically offset the shadow +draw.offset = 0,0 ;Player drawing offset in pixels (x, y). Recommended 0,0 + +[Velocity] +walk.fwd = 2.4 ;Walk forward +walk.back = -2.2 ;Walk backward +run.fwd = 4.6, 0 ;Run forward (x, y) +run.back = -4.5,-3.8 ;Hop backward (x, y) +jump.neu = 0,-8.4 ;Neutral jumping velocity (x, y) +jump.back = -2.55 ;Jump back Speed (x, y) +jump.fwd = 2.5 ;Jump forward Speed (x, y) +runjump.back = -2.55,-8.1 ;Running jump speeds (opt) +runjump.fwd = 4,-8.1 ;. +airjump.neu = 0,-8.1 ;. +airjump.back = -2.55 ;Air jump speeds (opt) +airjump.fwd = 2.5 ;. +air.gethit.groundrecover = -.15,-3.5 ;Velocity for ground recovery state (x, y) **MUGEN 1.0** +air.gethit.airrecover.mul = .5,.2 ;Multiplier for air recovery velocity (x, y) **MUGEN 1.0** +air.gethit.airrecover.add = 0,-4.5 ;Velocity offset for air recovery (x, y) **MUGEN 1.0** +air.gethit.airrecover.back = -1 ;Extra x-velocity for holding back during air recovery **MUGEN 1.0** +air.gethit.airrecover.fwd = 0 ;Extra x-velocity for holding forward during air recovery **MUGEN 1.0** +air.gethit.airrecover.up = -2 ;Extra y-velocity for holding up during air recovery **MUGEN 1.0** +air.gethit.airrecover.down = 1.5 ;Extra y-velocity for holding down during air recovery **MUGEN 1.0** + +[Movement] +airjump.num = 1 ;Number of air jumps allowed (opt) +airjump.height = 35 ;Minimum distance from ground before you can air jump (opt) +yaccel = .44 ;Vertical acceleration +stand.friction = .85 ;Friction coefficient when standing +crouch.friction = .82 ;Friction coefficient when crouching +stand.friction.threshold = 2 ;If player's speed drops below this threshold while standing, stop his movement **MUGEN 1.0** +crouch.friction.threshold = .05 ;If player's speed drops below this threshold while crouching, stop his movement **MUGEN 1.0** +air.gethit.groundlevel = 25 ;Y-position at which a falling player is considered to hit the ground **MUGEN 1.0** +air.gethit.groundrecover.ground.threshold = -20 ;Y-position below which falling player can use the recovery command **MUGEN 1.0** +air.gethit.groundrecover.groundlevel = 10 ;Y-position at which player in the ground recovery state touches the ground **MUGEN 1.0** +air.gethit.airrecover.threshold = -1 ;Y-velocity above which player may use the air recovery command **MUGEN 1.0** +air.gethit.airrecover.yaccel = .35 ;Vertical acceleration for player in the air recovery state **MUGEN 1.0** +air.gethit.trip.groundlevel = 15 ;Y-position at which player in the tripped state touches the ground **MUGEN 1.0** +down.bounce.offset = 0, 20 ;Offset for player bouncing off the ground (x, y) **MUGEN 1.0** +down.bounce.yaccel = .4 ;Vertical acceleration for player bouncing off the ground **MUGEN 1.0** +down.bounce.groundlevel = 12 ;Y-position at which player bouncing off the ground touches the ground again **MUGEN 1.0** +down.friction.threshold = .05 ;If the player's speed drops below this threshold while lying down, stop his movement **MUGEN 1.0** + +;Default language victory quotes (optional). **MUGEN 1.0** +;If this section is included, the default language victory quotes must be in English. +[Quotes] +; Up to 100 victory quotes can be specified per language (victory0 - victory99) +victory1 = "You must defeat Tu Shou to stand a chance." +victory2 = "You need a lot of training. Come back in ten years." +victory3 = "You look familiar. Did I see you on TV?" +victory4 = "Your moves are too predictable. You want to learn Kung Fu Palm? It's not for novices." +victory5 = "That was a good workout." +victory6 = "I want to challenge more skilled fighters." +victory7 = "What do you mean my girlfriend is in another temple?" + +;Alternate language victory quotes (optional). +;0 or more alternate language sections may be added, preceded by the +;ISO 639-1 code followed by a ".", e.g. "[ja.Quotes]". +;See language setting in mugen.cfg. +[ja.Quotes] +victory1 = "カンフー��手を破ら��り������目����" +victory2 = "�年早�ん��" +victory3 = "���見覚���る�。テレビ��も…?" +victory4 = "���動��見破りや���る。 ���カンフー��手�覚���ん��? 素人��無���" +victory5 = "�ー。 ��汗���" +victory6 = "も��強�相手�挑戦���" +victory7 = "�ん���彼女����も����?" + +;--------------------------------------------------------------------------- +; Variable usage: +; This is a record of the variables that KFM uses. Keeping a record of your +; variable usage helps you avoid careless mistakes later. +; var(1) - Used in kfm.cmd for combo condition (updated every tick) +; var(2) - Used in Kung Fu Throw (state 800) to remember if fwd was being +; held (remembered from state 800 through state 810). diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm.sff b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm.sff new file mode 100644 index 00000000..75aa3c80 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm.snd b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm.snd new file mode 100644 index 00000000..d84829ce Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm.snd differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm.zss b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm.zss new file mode 100644 index 00000000..f3a0e2da --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm.zss @@ -0,0 +1,2572 @@ +#ZSS language: https://github.com/ikemen-engine/Ikemen-GO/wiki/ZSS +#ZSS syntax highlighter for Notepad++: https://github.com/ikemen-engine/zss_npp +#------------------------------------------------------------------------------- +#Commenting in ZSS +#You may notice that the ";" character is now replaced with the "#" character. +#This is because ";" is now used to separate parameters in sctrls rather than a +#blank space. + +#=============================================================================== +# Functions +#=============================================================================== +#Used to avoid repeating change state code to reference returning to state 0 or +#11 if crouching. $type is used to specify if it's standing or crouching. +#1 - crouching +#0 - standing +[Function EndState(type)] +if animTime = 0 { + changeState{value: 11 * $type; ctrl: roundState > 1} +} + +#------------------------------------------------------------------------------- +#Used to call system sounds from the screenpack +[Function SysSnd(b, s, c)] +playSnd{value: F $b, $s; channel: $c} + +#------------------------------------------------------------------------------- +#Used to call sounds coming from this character +[Function CSnd(bank, sound, c)] +playSnd{value: S $bank, $sound; channel: $c} + +#------------------------------------------------------------------------------- +#Used to apply palFx during EX moves +[Function EXFX(time)] +palFx{time: $time; add: 32, 16, 0; sinadd: 64, 32, 5, 3} + +#=============================================================================== +# Walk Override +#=============================================================================== +[StateDef 20; type: S; physics: S; sprpriority: 0;] + +if command = "holdback"&& !aiLevelF || aiLevelF && map(AIw) = -1 { + velSet{x: const(velocity.walk.back.x)} +} else if command = "holdfwd" && !aiLevelF || aiLevelF && map(AIw) = 1 { + velSet{x: const(velocity.walk.fwd.x)} +} +if vel x > 0 { + if cond(anim = 5, animTime = 0, anim != 20) { + changeAnim{value: 20} + } +} else if vel x < 0 { + if cond(anim = 5, animTime = 0, anim != 21) { + changeAnim{value: 21} + } +} + +#=============================================================================== +# Run forward Override +#=============================================================================== +[StateDef 100; type: S; physics: S; anim: 100; sprpriority: 1;] + +velSet{x: const(velocity.run.fwd.x)} + +assertSpecial{flag: nowalk; flag2: noautoturn} + +#the AI should not crouch while running +if aiLevelF { + assertSpecial{flag:nocrouch} +} + +if command != "holdfwd" && !aiLevelF { + changeState{value: 0} +} + +#=============================================================================== +# Lose by Time Over +#=============================================================================== +# ZSS difficulty: basic +#This is how statedefs are defined in ZSS. It must always end with a ";" or it +#will result in a crash. +[StateDef 170; +type: S; movetype: I; physics: S; +anim: 170; ctrl: 0; velset: 0, 0; +sprpriority: 1;] + +#If you used a trigger that normally read "trigger1 = 1" you can just declare +#the sctrl with no condition like below. +notHitBy{value: SCA; time: 1} + +#=============================================================================== +# Win state decider +#=============================================================================== +# ZSS difficulty: basic +[StateDef 180; +type: S; movetype: I; physics: S; +anim: -2; ctrl: 0; velset: 0, 0; +sprpriority: 1;] + +changeState{value: 181; ctrl: 0} + +#=============================================================================== +# win pose 1 - Bow +#=============================================================================== +# ZSS difficulty: basic +[StateDef 181; +type: S; movetype: I; physics: S; +anim: 181; ctrl: 0; velset: 0, 0; +sprpriority: 1;] + +#trigger is replaced with a simple "if". All conditions can be handled the same +#with multiple if blocks. Optional Assert roundnotover +if animTime < -2 { + assertSpecial{flag: roundnotover} +} + +notHitBy{value: SCA; time: 1} + +#=============================================================================== +# Introduction +#=============================================================================== +# ZSS difficulty: basic +[StateDef 191; +type: S; movetype: I; physics: S; +anim: 190; ctrl: 0; velset: 0, 0; +sprpriority: 1;] + +if roundState = 0 { + changeAnim{value: 190} +} + +#Assert this until you want "round 1, fight" to begin +assertSpecial{flag: intro} + +#You can delete the following two controllers if you're building your own +#character using KFM. These are the wood pieces that KFM kicks. This is how +#persistent = 0 is applied, if this were an sctrl that has no trigger, the +#persistent(0) would be that trigger e.g. persistent(0){sctrl{}} +persistent(0) if roundState != 0 { + explod{ + anim: 191; + postype: p1; + pos: 260, -90; + velocity: -4.2, -7; + accel: 0, .32; + removetime: 48; + } +} + +if animElemTime(7) = 1 { + explod{ + anim: 192; + postype: p1; + pos: 60, -70; + velocity: 2, -4; + accel: 0, .32; + removetime: 35; + } +} + +#You can delete the following two controllers if you're building your own +#character using KFM. These play back the sounds of the wood block being broken. +if animElem = 7 { + #It is worth mentioning that if you want to use the rest of the parameters + #a playSnd uses, you can use it just the same as below: + # Playsnd{value: F5, 2; channel: 1; volume: -40} + call SysSnd(5, 2, 1); +} + +if animElemTime(7) = 3 { + call SysSnd(5, 3, 2); +} + +# Basic ZSS Dialogue +# This is a basic example demonstrating how some tokens are used to build a simple dialogue. +# Note that you can define which portraits and animations to use directly in the [Dialogue Info] section in system.def. +# For more info about the dialogue tokens, check the wiki: +# https://github.com/ikemen-engine/Ikemen-GO/wiki/State-controllers-(new)#dialogue +if enemy,name = "Kung Fu Man" { # Only triggers if the opponent's name matches this value + if teamSide = 1 { # Only if the calling character is on teamSide 1 (prevents duplicate dialogue in mirror matches) + dialogue{ + # Line 1: Set P1 and P2 faces. P1 talks first + text1: "Hey... You look just like me!"; + # Line 2: P2 responds. We don't need to redefine the portraits unless we want them to change + text2: "Of course I do... I'm Kung Fu Man too!"; + # Line 3: P1 responds, pauses, then continues in a new line + text3: "This is confusing...\nI don't trust you."; + } + } +} + +#Change to stand state when done +if animTime = 0 { + changeState{value: 0} +} + +#------------------------------------------------------------------------------- +[StateDef 195; +type: S; movetype: I; physics: S; +anim: 195; ctrl: 0; velset: 0, 0; +sprpriority: 2;] + +if time = 40 { + ctrlSet{value: 1} +} + +#Change to stand state when done +call EndState(0); + +#=============================================================================== +# Stand Light Punch +#=============================================================================== +# ZSS difficulty: easy +[StateDef 200; +type: S; #State-type: S-stand, C-crouch, A-air, L-liedown +movetype: A; #Move-type: A-attack, I-idle, H-gethit +physics: S; #Physics: S-stand, C-crouch, A-air +juggle: 1; #Number of air juggle points move takes +#Commonly-used controllers: +velset: 0, 0; #Set velocity (x, y) (Def: no change) +ctrl: 0; #Set ctrl (Def: no change) +anim: 200; #Change animation (Def: no change) +poweradd: 10; #Power to add (Def: 0) +sprpriority: 2;] #Set p1's sprite layering priority to 2 (in front) + +if animElem = 3 { + #When using zss sctrls, you must have the bracket on the same line as the + #sctrl's name as specified below e.g. "HitDef{" + hitDef{ + attr: S, NA; #Attribute: Standing, Normal Attack + damage: 23, 0; #Damage that move inflicts, guard damage + animtype: Light; #Animation type: Light, Medium, Heavy, Back (def: Light) + guardflag: MA; #Flags on how move is to be guarded against + hitflag: MAF; #Flags of conditions that move can hit + priority: 3, Hit; #Attack priority: 0 (least) to 7 (most), 4 default + #Hit/Miss/Dodge type (Def: Hit) + pausetime: 8, 8; #Time attacker pauses, time opponent shakes + sparkno: 0; #Spark anim no (Def: set above) + sparkxy: -10, -76; #X-offset for the "hit spark" rel. to p2, + #Y-offset for the spark rel. to p1 + hitsound: 5, 0; #Sound to play on hit + guardsound: 6, 0; #Sound to play on guard + ground.type: High; #Type: High, Low, Trip (def: Normal) + ground.slidetime: 5; #Time that the opponent slides back + ground.hittime: 11; #Time opponent is in hit state + ground.velocity: -4; #Velocity at which opponent is pushed + airguard.velocity: -1.9, -.8; #Guard velocity in air (def: (air.xvel*1.5, air.yvel/2)) + air.type: High; #Type: High, Low, Trip (def: same as ground.type) + air.velocity: -1.4, -3; #X-velocity at which opponent is pushed, + #Y-velocity at which opponent is pushed + air.hittime: 15; #Time before opponent regains control in air + } +} + +if time = 1 { + #It is worth mentioning that if you want to use the rest of the parameters + #a playSnd uses, you can use it just the same as below: + # Playsnd{value: S0, 0; channel: 1} + call CSnd(0, 0, 1); +} + +#Change to stand state when done +call EndState(0); + +#=============================================================================== +# Standing strong punch +#=============================================================================== +# ZSS difficulty: easy +# Note the width controller. It makes KFM's push box larger, so he doesn't +# stand so close to the opponent. Hit Ctrl-C and look at the red bar at his +# feet. +# The sprpriority for this state is at -1, instead of the usual 2 for +# attacks. This makes KFM appear behind the opponent initially. +# The sprPriority controller in [State 210, 4] brings KFM to the front when +# his arm has swung over. +# To stop KFM from pausing in his swing frame, there is a changeAnim in +# [State 210, 3] that detects if the hit has come in contact with the +# opponent during that frame, and switches to the next animation element +# (notice the elem=6 parameter). If you don't see what I mean, try commenting +# out that controller, then hit someone with this attack. +[StateDef 210; +type: S; movetype: A; physics: S; +juggle: 4; poweradd: 30; ctrl: 0; +velset: 0, 0; anim: 210; +sprpriority: -1;] + +if animElemTime(2) >= 0 && animElemTime(7) < 0 { + width{value: 15, 0} +} + +if time = 2 { + #It is worth mentioning that if you want to use the rest of the parameters + #a playSnd uses, you can use it just the same as below: + # Playsnd{value: S0, 4; channel: 1} + call CSnd(0, 4, 1); +} + +if animElem = 3 { + hitDef{ + attr: S, NA; + animtype: Medium; + damage: 57; + guardflag: MA; + pausetime: 12, 12; + sparkno: 1; + sparkxy: -10, -70; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: High; + ground.slidetime: 12; + ground.hittime: 16; + ground.velocity: -5.5; + air.velocity: -2.5, -4; + forcenofall: 1; + } +} + +#This is how ignoreHitPause=1 is applied in ZSS. If there were no "trigger" it +#would act as the trigger itself EG. ignoreHitPause{sctrl{}} +ignoreHitPause persistent(0) if animElemTime(5) > 0 && animElemTime(6) <= 0 && moveContact { + changeAnim{value: 210; elem: 6} +} + +if animElem = 5 { + sprPriority{value: 2} +} + +#Change to stand state when done +call EndState(0); + +#=============================================================================== +# Standing light kick +#=============================================================================== +# ZSS difficulty: easy +[StateDef 230; +type: S; movetype: A; physics: S; +juggle: 4; poweradd: 11; ctrl: 0; +velset: 0, 0; anim: 230; +sprpriority: 2;] + +if time = 2 { + call CSnd(0, 0, 1); +} + +if animElem = 3 { + hitDef{ + attr: S, NA; + animtype: Medium; + damage: 26; + guardflag: MA; + pausetime: 12, 12; + sparkno: 0; + sparkxy: -10, -37; + hitsound: 5, 1; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 10; + ground.hittime: 14; + ground.velocity: -5; + air.velocity: -2.5, -3.5; + } +} + +#Change to stand state when done +call EndState(0); + +#=============================================================================== +# Standing strong kick +#=============================================================================== +# ZSS difficulty: easy +[StateDef 240; +type: S; movetype: A; physics: S; +juggle: 5; poweradd: 30; ctrl: 0; +velset: 0, 0; anim: 240; +sprpriority: 2;] + +if time = 2 { + call CSnd(0, 1, 1); +} + +if animElem = 3 { + hitDef{ + attr: S, NA; + animtype: Medium; + damage: 63; + guardflag: MA; + pausetime: 12, 12; + sparkno: 1; + sparkxy: -10, -60; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 12; + ground.hittime: 17; + ground.velocity: -6; + air.velocity: -2.2, -3.2; + } +} + +if animElem = 7 { + posAdd{x: 12} +} + +#Change to stand state when done +call EndState(0); + +#=============================================================================== +# Crouching light punch +#=============================================================================== +# ZSS difficulty: easy +# Description: Simple crouching attack. The hitDef's guardflag parameter +# is set to "L", meaning that the move can only be guarded low +# (crouching), and not by standing or jumping opponents. +# Like for all light attacks, it's a good idea to keep the slidetime +# and hittime parameters at a smaller number, so the opponent isn't +# stunned for too long. For all crouching attacks you have to +# remember to set the attr parameter to indicate that it is crouching +# attack. In this case, "C, NA" stands for "crouching, normal attack". +# The hitDef's priority is set at 3, instead of the default of 4, +# so this attack has a lower priority than most others, meaning +# KFM will get hit instead of trading hits with his opponent if +# their attack collision boxes (Clsn1) intersect each other's Clsn2 +# boxes at the same time. +[StateDef 400; +type: C; movetype: A; physics: C; +juggle: 5; poweradd: 8; ctrl: 0; +anim: 400; sprpriority: 2;] + +if time = 1 { + call CSnd(0, 0, 1); +} + +if animElem = 2 { + hitDef{ + attr: C, NA; + damage: 23; + priority: 3; + animtype: Light; + hitflag: MAF; + guardflag: L; + pausetime: 10, 11; + sparkno: 0; + sparkxy: -10, -42; + hitsound: 5, 0; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 4; + ground.hittime: 9; + ground.velocity: -4; + air.velocity: -1.5, -3; + } +} + +#This gives control back to kfm early. While this could be done better in a +#number of ways, this is a 1:1 creation of kfm from elecbyte so this change is +#left intact. +if animElemTime(3) = 2 { + ctrlSet{value: 1} +} + +#Change to stand state when done +call EndState(1); + +#=============================================================================== +# Crouching strong punch +#=============================================================================== +# ZSS difficulty: easy +# Description: This is a 2-hit move. It is done by having two HitDefs +# triggered, one for each frame of animation that hits. +# Notice how the first hit cannot be guarded by an opponent in the +# air, because of the "M" in the guardflag, meaning it can only +# be guarded "middle". The second hit has an "MA" guardflag, so +# it can be guarded both on the ground and in the air. +[StateDef 410; +type: C; movetype: A; physics: C; +juggle: 6; poweradd: 25; ctrl: 0; +anim: 410; sprpriority: 2;] + +if time = 1 { + call CSnd(0, 1, 1); +} + +#This is the first hit, triggered on the 3rd element of animation. +if animElem = 3 { + hitDef{ + attr: C, NA; + damage: 37; + animtype: Medium; + hitflag: MAF; + guardflag: M; + pausetime: 12, 12; + sparkno: 1; + sparkxy: -10, -55; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 12; + ground.hittime: 17; + ground.velocity: -4; + air.velocity: -3, -4; + } +} + +#This is the second hit, triggered on the 4th element of animation. +if animElem = 4 { + hitDef{ + attr: C, NA; + damage: 36; + animtype: Medium; + hitflag: MAF; + guardflag: MA; + pausetime: 12, 12; + sparkxy: -10, -83; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: High; + ground.slidetime: 12; + ground.hittime: 17; + ground.velocity: -7; + air.velocity: -3, -4; + } +} + +#Change to stand state when done +call EndState(1); + +#=============================================================================== +# Crouching light kick +#=============================================================================== +# ZSS difficulty: easy +[StateDef 430; +type: C; movetype: A; physics: C; +juggle: 5; poweradd: 11; ctrl: 0; +anim: 430; sprpriority: 2;] + +if time = 1 { + call CSnd(0, 0, 1); +} + +if animElem = 3 { + hitDef{ + attr: C, NA; + damage: 28; + animtype: Light; + hitflag: MAFD; + guardflag: L; + pausetime: 12, 12; + sparkno: 0; + sparkxy: -10, -8; + hitsound: 5, 1; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 6; + ground.hittime: 10; + ground.velocity: -5; + air.velocity: -2, -3; + down.velocity: -5, 0; + down.hittime: 22; + } +} + +#Change to stand state when done +call EndState(1); + +#=============================================================================== +# Crouch Strong Kick +#=============================================================================== +# ZSS difficulty: easy +# Description: This move uses "Trip" for the "ground.type" parameter in +# its hitDef. It's a special type that puts the opponent in a tripped +# animation as he falls. Also, the hitflag parameter in the hitDef +# is set to "MAFD". The "D" indicates that a downed opponent can be +# hit by the attack. +[StateDef 440; +type: C; movetype: A; physics: C; +juggle: 7; poweradd: 35; ctrl: 0; +anim: 440; sprpriority: 2;] + +if time = 1 { + call CSnd(0, 2, 1); +} + +if animElem = 4 { + hitDef{ + attr: C, NA; + damage: 72; + hitflag: MAFD; + guardflag: L; + pausetime: 12, 12; + sparkno: 1; + sparkxy: -5, -10; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Trip; + ground.slidetime: 10; + ground.hittime: 17; + ground.velocity: -1.5, -2; + air.velocity: -1.2, -3; + guard.velocity: -5; + fall: 1; + } +} + +#Change to stand state when done +call EndState(1); + +#=============================================================================== +# Jump Light Punch +#=============================================================================== +# ZSS difficulty: easy +[StateDef 600; +type: A; movetype: A; physics: A; +juggle: 2; poweradd: 5; ctrl: 0; +anim: 600; sprpriority: 2;] + +if time = 1 { + call CSnd(0, 0, 1); +} + +if animElem = 2 { + hitDef{ + attr: A, NA; + damage: 20; + guardflag: HA; + priority: 3; + pausetime: 7, 8; + sparkno: 0; + sparkxy: -10, -58; + hitsound: 5, 0; + guardsound: 6, 0; + ground.type: High; + ground.slidetime: 5; + ground.hittime: 8; + guard.ctrltime: 8; + ground.velocity: -4; + air.velocity: -1.3, -3; + air.hittime: 14; + } +} + +#This gives control back to kfm early. While this could be done better in a +#number of ways, this is a 1:1 creation of kfm from elecbyte so this change is +#left intact. +if animElemTime(3) = 2 { + ctrlSet{value: 1} +} + +#=============================================================================== +# Jump Strong Punch +#=============================================================================== +# ZSS difficulty: easy +[StateDef 610; +type: A; movetype: A; physics: A; +juggle: 4; poweradd: 30; ctrl: 0; +anim: 610; sprpriority: 2;] + +if time = 2 { + call CSnd(0, 1, 1); +} + +if animElem = 3 { + hitDef{ + attr: A, NA; + damage: 72; + guardflag: HA; + priority: 4; + pausetime: 12, 12; + sparkno: 1; + sparkxy: -10, -55; + hitsound: 5, 3; + guardsound: 6, 0; + animtype: Medium; + ground.type: High; + ground.slidetime: 12; + ground.hittime: 14; + guard.ctrltime: 14; + ground.velocity: -6; + air.velocity: -3, -4; + } +} + +#=============================================================================== +# Jump Light Kick +#=============================================================================== +# ZSS difficulty: easy +[StateDef 630; +type: A; movetype: A; physics: A; +juggle: 3; poweradd: 10; ctrl: 0; +anim: 630; sprpriority: 2;] + +if time = 1 { + call CSnd(0, 0, 1); +} + +if animElem = 2 { + hitDef{ + attr: A, NA; + damage: 26; + guardflag: HA; + priority: 3; + pausetime: 8, 8; + sparkno: 1; + sparkxy: -5, -35; + hitsound: 5, 0; + guardsound: 6, 0; + ground.type: High; + ground.slidetime: 6; + ground.hittime: 10; + guard.ctrltime: 10; + ground.velocity: -4; + air.velocity: -2, -3; + air.hittime: 14; + } +} + +#=============================================================================== +# Jump Strong Kick +#=============================================================================== +# ZSS difficulty: easy +[StateDef 640; +type: A; movetype: A; physics: A; +juggle: 4; poweradd: 30; ctrl: 0; +anim: 640; sprpriority: 2;] + +if time = 2 { + call CSnd(0, 1, 1); +} + +if animElem = 2 { + hitDef{ + attr: A, NA; + damage: 70; + guardflag: HA; + priority: 4; + pausetime: 12, 12; + sparkno: 1; + sparkxy: -10, -40; + hitsound: 5, 3; + guardsound: 6, 0; + animtype: Medium; + ground.type: High; + ground.slidetime: 12; + ground.hittime: 15; + guard.ctrltime: 15; + ground.velocity: -7; + air.velocity: -3, -4; + } +} + +#=============================================================================== +# Kung Fu Throw - Attempt +#=============================================================================== +# ZSS difficulty: medium-advanced +# Description: Throws are not difficult to make, although then can be +# tedious at times. Throw attempt states have a hitDef of a +# special format. The key parameters in a throw are p1stateno +# and p2stateno. If the hitDef successfully connects, then +# the attacker will change to the state number specified by +# p1stateno, and the opponent will be change to the state +# number assigned to p2stateno. The special thing about p2stateno +# is that the opponent will be temporarily brought into the +# attacker's state file. In this case, no matter who the +# opponent is, he will be taken to state 820 of this file (kfm.ZSS) +# and remain here until the end of the throw (look at his debug +# information when he is being thrown; the text changes to yellow +# to mean that he is in another player's state file). +[StateDef 800; +type: S; movetype: A; physics: S; +juggle: 0; velset: 0, 0; ctrl: 0; +anim: 800; sprpriority: 2;] + +# Notes: The '-' symbol in the hitflag field means that it only affects +# players who are not in a hit state. This prevents KFM from combo-ing +# into the throw. The priority should be set to a low number, such as +# 1 or 2, so that the throw does not take precedence over normal attacks. +# The type of priority must always be set to "Miss" or "Dodge" for throws, +# otherwise strange behavior can result. +if time = 0 { + hitDef{ + attr: S, NT; #Attributes: Standing, Normal Throw + hitflag: M-; #Affect only ground people who are not being hit + priority: 1, Miss; #Throw has low priority, must be miss or dodge type. + sparkno: -1; #No spark + p1sprpriority: 1; #Draw p1's sprite in front of p2 + #p2's sprite priority is set to 0 by default + p1facing: 1; + p2facing: 1; #Force p2 to face KFM + p1stateno: 810; #On success, KFM changes to state 810 + p2stateno: 820; #If hit, p2 changes to state 820 in KFM's ZSS + guard.dist: 0; #This prevents p2 from going into a guard state if close + fall: 1; #Force p2 into falling down + } +} + +call EndState(0); + +#=============================================================================== +# Kung Fu Throw - Throwing the opponent +#=============================================================================== +# Description: In this state, KFM throws the opponent by binding him to +# various offsets based on his current frame of animation. For +# example, [State 810, Bind 1] binds the opponent to an offset of +# 28 pixels in front of KFM. That puts him around where KFM's hand +# is at. Is is important to keep the opponent bound using a +# targetBind controller at all times, until you let him go. This +# is especially important if your player has a Clsn2 box that +# allows him to get hit while throwing someone. Each time a player +# gets hit, all his bound targets will be set to a fall state. If +# the opponent is not bound, then he may get stuck in his thrown +# state when his attacker is knocked out of the throw halfway. +# Notes: There is a targetLifeAdd controller to decrease the opponent's +# life, and a targetState controller to change his state to a +# falling state when KFM lets go of him. +[StateDef 810; +type: S; movetype: A; physics: N; +anim: 810; poweradd: 0;] + +# Here a variable, var(2), is used to remember whether or not the +# player was holding forward at the start of the state. This variable +# is checked later on to turn KFM around if necessary. +if time = 0 { + #This is how variables are set in ZSS. They must always end with a ";" + #If this were a varAdd equivalent it would say: + #var(2) := var(2) + (command = "holdfwd"); + var(2) := command = "holdfwd"; +} + +if animElem = 2 { + call CSnd(1, 1, 1); +} + +if animElem = 7 { + call CSnd(800, 0, 1); +} + +if animElemTime(2) < 0 { + targetBind{pos: 28, 0} +} + +if animElemTime(2) >= 0 && animElemTime(12) < 0 { + width{edge: 60, 0} + #Because triggers are done in if{} blocks, conditions can be grouped + #together to prevent repeating code. This still means + #"AnimElemTime(2) >= 0 && animElemTime(5) < 0" but we're under an if{} block + #saying animElemTime(2) >= 0 already, so we don't need to specify it again. + if animElemTime(5) < 0 { + targetBind{pos: 58, 0} + } +} + +if animElemTime(5) >= 0 && animElemTime(6) < 0 { + targetBind{pos: 47, 0} +} + +#It is possible to group sctrls together if they had the same triggers in ZSS. +#Saving time and space. +if var(2) && animElem = 6 { + turn{} #If was holding fwd before, turn now + posAdd{x: -37} #If was holding fwd before, move a little + targetFacing{value: -1} #If was holding fwd before, turn target too +} + +#For optimization, else if is used to make sure the code below the first if +#condition is the only code checked. The second the animation looks for the +#second condition, that if statement will be the only one checked until it goes +#through the entire animation. +if animElemTime(6) >= 0 && animElemTime(7) < 0 { + targetBind{pos: 41, -60} +} else if animElemTime(7) >= 0 && animElemTime(8) < 0 { + targetBind{pos: 25, -75} +} else if animElemTime(8) >= 0 && animElemTime(9) < 0 { + targetBind{pos: 15, -90} +} else if animElemTime(9) >= 0 && animElemTime(10) < 0 { + targetBind{pos: -5, -96} +} else if animElemTime(10) >= 0 && animElemTime(11) < 0 { + targetBind{pos: -14, -90} +} + +if animElem = 11 { + targetBind{pos: -50, -50} + targetLifeAdd{value: -78} + targetState{value: 821} +} + +if animElem = 12 { + turn{} +} + +if animElem = 15 { + posAdd{x: -10} +} + +call EndState(0); + +#=============================================================================== +# Kung Fu Palm +#=============================================================================== +# ZSS difficulty: medium +# Description: This is like a standard attack, but with some differences. +# There are two HitDefs in this attack. One is triggered when the +# opponent is near (using a p2BodyDist trigger), and the other +# when the opponent is farther away. The main differences between +# the near and far versions of the HitDefs is that the near version +# has a "fall" parameter set to 1, causing the opponent to be knocked +# down. Other minor differences are the damage, and the velocity to +# give the opponent. +# The line "attr = S, SA" line means this is a Standing, Special attack. +# It is important you have the attr parameter set correctly for all +# you HitDefs. +[StateDef 1000; +type: S; movetype: A; physics: S; +juggle: 4; poweradd: 55; velset: 0, 0; +anim: 1000; ctrl: 0; sprpriority: 2;] + +if time = 8 { + call CSnd(0, 3, 1); +} + +if animElem = 2 { + posAdd{x: 20} +} + +if animElem = 3 || animElem = 13 { + posAdd{x: 10} +} + +if animElem = 5 { + posAdd{x: 5} + if p2BodyDist X < 40 { + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 90, 4; + priority: 5; + guardflag: MA; + pausetime: 15, 15; + sparkxy: -10, -60; + hitsound: 5, 4; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 12; + ground.hittime: 17; + ground.velocity: -4, -3.5; + air.velocity: -4, -3; + fall: 1; + } + } else { + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 85, 4; + priority: 4; + guardflag: MA; + pausetime: 15, 15; + sparkxy: -10, -60; + hitsound: 5, 4; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 12; + ground.hittime: 17; + ground.velocity: -7; + air.velocity: -4, -2.5; + } + } +} + +if animElem = 9 { + posAdd{x: -5} +} + +call EndState(0); + +#=============================================================================== +# Strong Kung Fu Palm +#=============================================================================== +# ZSS difficulty: medium +[StateDef 1010; +type: S; movetype: A; physics: S; +juggle: 4; poweradd: 60; velset: 0, 0; +anim: 1010; ctrl: 0; sprpriority: 2;] + +if time = 9 { + call CSnd(0, 3, 1); +} + +if animElem = 2 { + posAdd{x: 20} +} + +if animElem = 3 || animElem = 13 { + posAdd{x: 10} +} + +if animElem = 5 { + posAdd{x: 5} + velSet{x: 4} + if p2BodyDist X < 40 { + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 90, 4; + priority: 5; + guardflag: MA; + pausetime: 15, 15; + sparkxy: -10, -60; + hitsound: 5, 4; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 12; + ground.hittime: 17; + ground.velocity: -4, -3.5; + air.velocity: -4, -3; + fall: 1; + } + } else { + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 85, 4; + priority: 4; + guardflag: MA; + pausetime: 15, 15; + sparkxy: -10, -60; + hitsound: 5, 4; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 12; + ground.hittime: 17; + ground.velocity: -7; + air.velocity: -4, -2.5; + } + } +} + +call EndState(0); + +#=============================================================================== +# Fast Kung Fu Palm +#=============================================================================== +# ZSS difficulty: advanced +# Description: This is a complicated attack move. If you're a beginner, +# you should skip looking at this for now and check it later when +# you are more comfortable with the ZSS. +# This move puts the other player in a custom get-hit state. +# The line "p2stateno = 1025" in the hitDef does this. KFM has some +# palette effects as well as after-image effects. +[StateDef 1020; +type: S; movetype: A; physics: N; +juggle: 6; poweradd: -330; velset: 0, 0; +anim: 1020; ctrl: 0; sprpriority: 2;] + +velMul{x: .85 * ifElse (animElemTime(6) < 0, 1, .8)} + +if time = 0 { + afterImage{ + length: 13; + palbright: 30, 30, 0; + palcontrast: 70, 70, 20; + paladd: -10, -10, -10; + palmul: .85, .85, .50; + timegap: 1; + framegap: 2; + trans: Add; + time: 2; + } + call EXFX(20); +} + +if animElemTime(8) < 0 { + afterImageTime{time: 2} +} + +if time = 2 { + call CSnd(0, 3, 1); +} + +if animElem = 2 { + posAdd{x: 20} +} + +if animElem = 3 || animElem = 12 { + posAdd{x: 10} +} + +if animElem = 4 { + posAdd{x: 5} + velSet{x: 13} + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 95, 5; + getpower: 0; + priority: 4; + guardflag: MA; + pausetime: 8, 7; + sparkxy: -10, -60; + hitsound: 5, 4; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 20; + ground.hittime: 22; + ground.velocity: -8, -7; + guard.velocity: -7; + air.velocity: -8, -7; + airguard.velocity: -5, -4; + fall: 1; + p2stateno: 1025; #Make p2 go to state 1025 on hit + p2facing: 1; #Force to face p1 + } +} + +call EndState(0); + +#=============================================================================== +# Kung Fu Knee +#=============================================================================== +# ZSS difficulty: medium +# Description: Like the Kung Fu Palm, this is a special attack. This attack +# begins on the ground, launches KFM into the air, then ends when KFM +# lands on the ground. To achieve this, we use three states. The first +# has KFM starting on the ground (note that type = S in the Statedef). +# The changeState controller brings KFM into the second state (state +# 1051) when his ground animation ends. The second state controls KFM's +# movement into the air and back towards the ground. The last state +# (state 1052) stops KFM from moving when he touches the ground, and +# brings him back to his stand state (state 0) when the animation is +# over. More details are given in comments before each of the following +# states. +[StateDef 1050; +type: S; movetype: A; physics: S; +juggle: 4; poweradd: 55; velset: 0, 0; +anim: 1050; ctrl: 0; sprpriority: 2;] + +if time = 1 { + call CSnd(0, 2, 1); +} + +if animElem = 4 { + posAdd{x: 20} +} + +if animElem = 4 { + hitDef{ + attr: A, SA; + animtype: Medium; + damage: 80, 4; + priority: 5; + guardflag: MA; + pausetime: 12, 12; + sparkxy: -10, -70; + hitsound: 5, 3; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 20; + ground.hittime: 22; + ground.velocity: -3.5, -7; + guard.velocity: -7; + air.velocity: -3.5, -7; + fall: 1; + } +} + +if animTime = 0 { + changeState{value: 1051} +} + +#------------------------------------------------------------------------------- +# Light Kung Fu Knee - jump +# Description: This state uses a velet parameter in the StateDef to make +# KFM move upwards. A value of 2, -6 means 2 pixels/tick forwards, and +# 6 pixels/tick upwards. Since this is an aerial state, the type is set +# to A in the Statedef. +# Notice that physics = N (N for None) here. This means we are not using +# the built-in aerial physics model (physics = A), so we have complete +# control over what KFM does in this state. Since we do not have +# physics = A to take care of gravity for us, we need to put in our own +# controller for that. Controller 1051, 1 does the work of pulling KFM +# down towards the ground. Controller 1051, 2 checks if KFM has reached +# the ground, and changes to state 1052 if so. +# In this state's Statedef, we will use the hitdefpersist parameter to +# retain the hitDef information from the last state. If we did not have +# hitdefpersist, the hitDef will be turned off between state changes. +[StateDef 1051; +type: A; movetype: A; physics: N; +velset: 2, -6; anim: 1051; +hitdefpersist: 1 ;] #Keep the hitDef from previous state active + +#Gravity +velAdd{y: .45} + +if (command = "a" || command = "b") && !aiLevelF && vel y < -1 { + changeState{value: 1055} +} + +#Change state when KFM is close to ground +if vel y > 0 && pos y >= -10 { + changeState{value: 1052} +} + +#------------------------------------------------------------------------------- +# Light Kung Fu Knee - land +# Description: This is KFM's landing state. There is a velset in the +# StateDef to stop KFM from moving. Since KFM's y-position can be any +# number greater than -10 upon entering this state (see the changeState +# controller in State 1051), we need to reset it to 0, the ground +# level. That is what controller 1052, 1 is for. +[StateDef 1052; +type: S; movetype: I; physics: S; +anim: 1052; sprpriority: 1; +velset: 0, 0;] + +#Reset y-position to ground level +if time = 0 { + posSet{y: 0} + call CSnd(40, 0, 1); #Play a sound for landing +} + +#Give KFM back control early +if animElem = 3, -1 { + ctrlSet{value: 1} +} + +if animElem = 4 { + posAdd{x: -15} +} + +call EndState(0); + +#------------------------------------------------------------------------------- +# Kung Fu Knee - kick +[StateDef 1055; +type: A; movetype: A; physics: N; +anim: 1055;] + +if time = 0 { + #Channel 0 is reserved for voices here but it is not a requirement. + call CSnd(100, 0, 0); + call CSnd(0, 1, 1); + posAdd{x: 10; y: -10} +} + +#Gravity +velAdd{y: .45} + +if animElem = 5 { + hitDef{ + attr: A, SA; + animtype: Medium; + damage: 35 + (prevstateno = 1061)*5, 2; + priority: 4; + guardflag: MA; + pausetime: 12, 12; + sparkxy: 0, -90; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: High; + ground.slidetime: 15; + ground.hittime: 18; + ground.velocity: -6; + guard.velocity: -8; + guard.ctrltime: 12; + air.velocity: -4, -5; + airguard.velocity: -4, -4.5; + air.fall: 1; + } +} + +#Change state when KFM is close to ground +if vel y > 0 && pos y >= -5 { + changeState{value: 1056} +} + +#------------------------------------------------------------------------------- +# Kung Fu Knee - land from kick +[StateDef 1056; +type: S; movetype: I; physics: S; +anim: 1056; sprpriority: 1; +velset: 0, 0;] + +if time = 0 { + posSet{y: 0} #Reset y-position to ground level + call CSnd(40, 0, 1); #Play a sound for landing +} + +call EndState(0); + +#=============================================================================== +# Strong Kung Fu Knee +#=============================================================================== +[StateDef 1060; +type: S; movetype: A; physics: S; +juggle: 4; poweradd: 60; velset: 0, 0; +anim: 1060; ctrl: 0; sprpriority: 2;] + +if time = 1 { + call CSnd(0, 2, 1); +} + +if animElem = 2 { + posAdd{x: 6} +} + +if animElem = 4 { + posAdd{x: 21} +} + +if animElem = 4 { + hitDef{ + attr: A, SA; + animtype: Medium; + damage: 90, 4; + priority: 5; + guardflag: MA; + pausetime: 12, 12; + sparkxy: -10, -70; + hitsound: 5, 3; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 20; + ground.hittime: 22; + ground.velocity: -3.5, -7.5; + guard.velocity: -7; + air.velocity: -3.5, -7.5; + fall: 1; + } +} + +if animTime = 0 { + changeState{value: 1061} +} + +#------------------------------------------------------------------------------- +# Strong Kung Fu Knee - jump +[StateDef 1061; +type: A; movetype: A; physics: N; +velset: 2, -7.5; anim: 1051; +hitdefpersist: 1;] #Keep the hitDef from previous state active + +#Gravity +velAdd{y: .45} + +if (command = "a" || command = "b") && !aiLevelF && vel y < -1 { + changeState{value: 1055} +} + +#Change state when KFM is close to ground +if vel y > 0 && pos y >= -10 { + changeState{value: 1052} +} + +#=============================================================================== +# Fast Kung Fu Knee +#=============================================================================== +# Description: This version of the Kung Fu Knee hits up to 3 times (including +# the kick). +[StateDef 1070; +type: S; movetype: A; physics: S; +juggle: 6; poweradd: -330; +velset: 0, 0; anim: 1070; ctrl: 0; +sprpriority: 2;] + +afterImageTime{time: 2} + +if time = 0 { + afterImage{ + length: 13; + palbright: 30, 30, 0; + palcontrast: 70, 70, 20; + paladd: -10, -10, -10; + palmul: .85, .85, .50; + timegap: 1; + framegap: 2; + trans: Add; + time: 2; + } + call EXFX(20); +} + +if time = 1 { + call CSnd(0, 2, 1); +} + +if animElem = 2 { + posAdd{x: 6} +} + +if animElem = 4 { + posAdd{x: 21} +} + +if animElem = 4 { + hitDef{ + attr: S, SA; + animtype: Medium; + getpower: 0; + damage: 35, 3; + priority: 5; + hitflag: MA; + guardflag: MA; + pausetime: 8, 7; + sparkxy: -10, -70; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 18; + ground.hittime: 20; + ground.velocity: -2, -6; + guard.velocity: -7; + air.velocity: -2, -6; + fall: 1; + fall.animtype: Medium; + fall.recovertime: 30; + } +} + +if animTime = 0 { + changeState{value: 1071} +} + +#------------------------------------------------------------------------------- +# Fast Kung Fu Knee - jump +[StateDef 1071; +type: A; movetype: A; physics: N; +velset: 2.5, -9; anim: 1071;] + +if time = 0 { + call EXFX(18); + hitDef{ + attr: A, SA; + animtype: Medium; + getpower: 0; + damage: 68, 4; + priority: 5; + guardflag: MA; + pausetime: 12, 12; + sparkxy: -10, -70; + hitsound: 5, 3; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 18; + ground.hittime: 20; + ground.velocity: -3, -9.5; + guard.velocity: -7; + air.velocity: -3, -9.5; + fall: 1; + fall.recovertime: 30; + } +} + +if vel y < 0 { + afterImageTime{time: 2} +} + +velAdd{y: .5} + +if vel y >= -1 { + velAdd{y: .2} +} + +if (command = "a" || command = "b") && vel y < -1 && time > 0 { + changeState{value: 1075} +} + +#Change state when KFM is close to ground +if vel y > 0 && pos y >= -10 { + changeState{value: 1052} +} + +#------------------------------------------------------------------------------- +# Fast Kung Fu Knee - kick +[StateDef 1075; +type: A; movetype: A; physics: N; +anim: 1055;] + +afterImageTime{time: 2} + +if time = 0 { + call EXFX(18); + call CSnd(100, 0, 0); + call CSnd(0, 1, 1); + posAdd{x: 10; y: -10} + hitDef{ + attr: A, SA; + animtype: Medium; + damage: 42, 2; + getpower: 0; + priority: 4; + guardflag: MA; + pausetime: 12, 12; + sparkxy: 0, -90; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: High; + ground.slidetime: 15; + ground.hittime: 20; + ground.velocity: -6; + guard.velocity: -6; + air.velocity: -4, -6; + airguard.velocity: -4, -4.5; + air.fall: 1; + } +} + +#Gravity +velAdd{y: .5} + +if vel y >= -1 { + velAdd{y: .2} +} + +#Change state when KFM is close to ground +if vel y > 0 && pos y >= -5 { + changeState{value: 1056} +} + +#=============================================================================== +# Light Kung Fu Upper +#=============================================================================== +# ZSS difficulty: easy +# Description: This is a simple special attack that can hit twice. Notice +# the use of the width controller to keep opponents from getting too +# close to KFM during his uppercut (press Ctrl-C, and look at the +# yellow bar at KFM's feet during the move). +# The second hitDef has some interesting parameters. fall.recovertime +# is used to prevent the opponent (p2) from recovering immediately +# after being hit (eg. press x+y with KFM to recover). This gives the +# attacking KFM a chance to follow up with an extra attack, such as +# a Kung Fu Knee. The yaccel parameter, set at 0.4, makes p2 fall at a +# greater value of acceleration than the default, which is 0.35. +[StateDef 1100; +type: S; movetype: A; physics: S; +juggle: 4; poweradd: 55; velset: 0, 0; +anim: 1100; ctrl: 0; sprpriority: 2;] + +if animElemTime(4) >= 0 && animElemTime(13) < 0 { + width{value: 5, 0} +} + +if animElem = 4 { + call CSnd(0, 2, 1); +} + +if time = 0 { + hitDef{ + attr: S, SA; + animtype: Medium; + damage: 52, 4; + priority: 5; + guardflag: MA; + pausetime: 4, 8; + sparkxy: 0, -48; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 15; + ground.hittime: 20; + ground.velocity: -3; + guard.velocity: -6; + air.velocity: -2, -2; + airguard.velocity: -4, -4.5; + p2facing: 1; + forcestand: 1; #Force p2 into a standing state if hit + } +} + +if animElem = 7 { + hitDef{ + attr: S, SA; + animtype: Up; + damage: 55, 4; + priority: 5; + guardflag: MA; + pausetime: 12, 12; + sparkxy: 0, -110; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 15; + ground.hittime: 20; + ground.velocity: -1, -9.5; + guard.velocity: -6; + air.velocity: -1, -7.5; + airguard.velocity: -4, -4.5; + p2facing: 1; + fall: 1; #Make p2 fall down + fall.recovertime: 40; #40 ticks before p2 can recover from fall + yaccel: .4; #p2 will accelerate down at .4 pixels/sec^2 when falling + } +} + +call EndState(0); + +#=============================================================================== +# Strong Kung Fu Upper +#=============================================================================== +[StateDef 1110; +type: S; movetype: A; physics: S; +juggle: 4; poweradd: 60; velset: 0, 0; +anim: 1110; ctrl: 0; sprpriority: 2;] + +if animElemTime(4) >= 0 && animElemTime(14) < 0 { + width{value: 5, 0} +} + +if animElem = 4 { + call CSnd(0, 2, 1); +} + +if time = 0 { + hitDef{ + attr: S, SA; + animtype: Medium; + damage: 57, 4; + priority: 5; + guardflag: MA; + pausetime: 4, 8; + sparkxy: 0, -48; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 15; + ground.hittime: 20; + ground.velocity: -3; + guard.velocity: -6; + air.velocity: -2, -2; + airguard.velocity: -4, -4.5; + p2facing: 1; + forcestand: 1; + } +} + +if animElem = 7 { + hitDef{ + attr: S, SA; + animtype: Up; + damage: 60, 4; + priority: 5; + guardflag: MA; + pausetime: 12, 12; + sparkxy: 0, -110; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 15; + ground.hittime: 20; + ground.velocity: -1, -10.5; + guard.velocity: -6; + air.velocity: -1, -8.5; + airguard.velocity: -4, -4.5; + p2facing: 1; + fall: 1; + fall.recovertime: 50; + yaccel: .4; + } +} + +call EndState(0); + +#=============================================================================== +# Fast Kung Fu Upper +#=============================================================================== +[StateDef 1120; +type: S; movetype: A; physics: S; +juggle: 6; poweradd: -330; velset: 0, 0; +anim: 1120; ctrl: 0; sprpriority: 2;] + +if animElemTime(4) >= 0 && animElemTime(14) < 0 { + width{value: 5, 0} +} + +if animElem = 4 { + call CSnd(0, 2, 1); +} + +if time = 0 { + afterImage{ + length: 13; + palbright: 30, 30, 0; + palcontrast: 70, 70, 20; + paladd: -10, -10, -10; + palmul: .85, .85, .50; + timegap: 1; + framegap: 2; + trans: Add; + time: 2; + } + call EXFX(20); +} + +if animTime < -2 { + afterImageTime{time: 2} +} + +if time = 0 || animElem = 4 { + hitDef{ + attr: S, SA; + animtype: Medium; + damage: 30, 4; + getpower: 0; + priority: 5; + guardflag: MA; + pausetime: 6, 10; + sparkxy: 0, ifElse(time = 0, -48, -55); + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 18; + ground.hittime: 23; + ground.velocity: -3; + guard.velocity: -6; + air.velocity: -2, -2; + airguard.velocity: -4, -4.5; + p2facing: 1; + forcestand: 1; + } +} + +if animElem = 7 { + hitDef{ + attr: S, SA; + animtype: Up; + damage: 68, 4; + getpower: 0; + priority: 5; + guardflag: MA; + pausetime: 12, 12; + sparkxy: 0, -110; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 18; + ground.hittime: 23; + ground.velocity: -1.2, -11; + guard.velocity: -6; + air.velocity: -1.2, -9; + airguard.velocity: -4, -4.5; + p2facing: 1; + fall: 1; + fall.recovertime: 60; + yaccel: .4; + } +} + +call EndState(0); + +#=============================================================================== +# Light Kung Fu Blow +#=============================================================================== +# ZSS difficulty: easy +# Notes: This uses the envShake controller to shake the screen. It makes the +# move look stronger. +[StateDef 1200; +type: S; movetype: A; physics: S; +juggle: 4; poweradd: 50; velset: 0, 0; +anim: 1200; ctrl: 0; sprpriority: 2;] + +if animElem = 4 { + call CSnd(0, 3, 1); +} + +if animElemTime(5) >= 0 && animElemTime(6) < 0 { + width{value: 10, 0} +} + +if animElemTime(6) >= 0 && animElemTime(9) < 0 { + width{value: 20, 0} +} + +if animElem = 6 { + envShake{ + time: 4; #Time to shake screen + ampl: 2; #Amount to shake + freq: 180; #A frequency of 180 shakes the screen rapidly + } +} + +if time = 0 { + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 100, 6; + priority: 5; + guardflag: MA; + pausetime: 12, 12; + sparkxy: 0, -65; + hitsound: 5, 3; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 16; + ground.hittime: 20; + ground.velocity: -10; + ground.cornerpush.veloff: -12; #To push far away when p2 is in corner + guard.velocity: -7; + air.velocity: -3.5, -4.5; + airguard.velocity: -3.5, -4.5; + } +} + +call EndState(0); + +#=============================================================================== +# Strong Kung Fu Blow +#=============================================================================== +# ZSS difficulty: easy +[StateDef 1210; +type: S; movetype: A; physics: S; +juggle: 4; poweradd: 60; velset: 0, 0; +anim: 1210; ctrl: 0; sprpriority: 2;] + +if animElem = 4 { + call CSnd(0, 3, 1); +} + +if animElemTime(5) >= 0 && animElemTime(6) < 0 { + width{value: 10, 0} +} + +if animElemTime(6) >= 0 && animElemTime(9) < 0 { + width{value: 20, 0} +} + +if animElem = 6 { + envShake{ + time: 8; #Time to shake screen + ampl: 2; #Amount to shake + freq: 170; #A frequency of less than 180 causes a dampening effect + } +} + +if time = 0 { + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 125, 9; + priority: 5; + guardflag: MA; + pausetime: 12, 12; + sparkxy: 0, -65; + hitsound: 5, 3; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 18; + ground.hittime: 22; + ground.velocity: -10; + ground.cornerpush.veloff: -15; #To push far away when p2 is in corner + guard.velocity: -8; + air.velocity: -4, -4.5; + airguard.velocity: -4, -4.5; + } +} + +call EndState(0); + +#=============================================================================== +# Fast Kung Fu Blow +#=============================================================================== +# ZSS difficulty: easy +[StateDef 1220; +type: S; movetype: A; physics: S; +juggle: 6; poweradd: -330; velset: 0, 0; +anim: 1220; ctrl: 0; sprpriority: 2;] + +if time = 0 { + afterImage{ + length: 13; + palbright: 30, 30, 0; + palcontrast: 70, 70, 20; + paladd: -10, -10, -10; + palmul: .85, .85, .50; + timegap: 1; + framegap: 2; + trans: Add; + time: 2; + } + call EXFX(20); +} + +if animTime < -2 { + afterImageTime{time: 2} +} + +if animElem = 4 { + call CSnd(0, 3, 1); +} + +if animElemTime(5) >= 0 && animElemTime(6) < 0 { + width{value: 10, 0} +} + +if animElemTime(6) >= 0 && animElemTime(9) < 0 { + width{value: 20, 0} +} + +if animElem = 6 { + envShake{ + time: 8; #Time to shake screen + ampl: 3; #Amount to shake + freq: 170; #A frequency of less than 180 causes a dampening effect + } +} + +if time = 0 { + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 125, 9; + getpower: 0; + priority: 5; + guardflag: MA; + pausetime: 15, 15; + sparkxy: 0, -65; + hitsound: 5, 4; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 20; + ground.hittime: 32; + ground.velocity: -15; + ground.cornerpush.veloff: -20; #To push far away when p2 is in corner + guard.velocity: -9; + air.velocity: -5, -5; + airguard.velocity: -5, -5; + air.fall: 1; + fall.animtype: Hard; #Show "hard" animtype when hit for a fall + yaccel: .4; #Fall faster + } +} + +call EndState(0); + +#=============================================================================== +# Kung Fu Blocking High +#=============================================================================== +# ZSS difficulty: medium +# Notes: This move uses a reversalDef controller to counter attacks. Any +# attacks not caught by the reversalDef are handled by the hitOverride. +# The movetype is Idle because this is not an attack. + +[StateDef 1300; +type: S; movetype: I; physics: S; +velset: 0, 0; anim: 1300; ctrl: 0; +sprpriority: 1;] + +if animElemTime(3) < 0 { + width{value: 15, 0} +} + +if time = 0 { + call CSnd(0, 1, 1); + reversalDef{ + reversal.attr: SA, AA; + pausetime: 0, 0; + sparkno: 40; + sparkxy: 40, 0; + hitsound: 6, 0; + p1stateno: 1310; + p1sprpriority: 2; #Set P1's sprite in front of P2's + p2sprpriority: 1; + } + hitOverride{attr: SA, AP; stateno: 1310; time: 8} +} + +#Stop countering +if time = 4 && command = "holdfwd" || time = 8 { + reversalDef{reversal.attr: } + hitOverride{attr: ; time: 0} +} + +call EndState(0); + +#=============================================================================== +# Kung Fu Blocking High (blocked) +#=============================================================================== +# Notes: This state uses a pause controller to freeze the action dramatically. +[StateDef 1310; +type: S; movetype: I; physics: S; +velset: 0, 0; anim: 1310; ctrl: 0; +sprpriority: 2;] + +if time = 0 { + #Buffer commands input during the pause + #Don't pause backgrounds + pause{time: 20; endcmdbuftime: 20; pausebg: 0} + notHitBy{value: SCA; time: 1} +} + +if time = 1 && command = "holdback" { + changeState{value: 130; ctrl: 1} +} + +call EndState(0); + +#=============================================================================== +# Kung Fu Blocking Low +#=============================================================================== +[StateDef 1320; +type: C; movetype: I; physics: C; +velset: 0, 0; anim: 1320; ctrl: 0; +sprpriority: 1;] + +if animElemTime(3) < 0 { + width{value: 10, 0} +} + +if time = 0 { + call CSnd(0, 1, 1); + reversalDef{ + reversal.attr: C, AA; + pausetime: 0, 0; + sparkno: 40; + sparkxy: 40, 0; + hitsound: 6, 0; + p1stateno: 1330; + p1sprpriority: 2; + p2sprpriority: 1; + } +} + +if time = 5 { + reversalDef{reversal.attr: } #Stop +} + +if time < 5 { + hitOverride{attr: C, AP; stateno: 1330} +} + +call EndState(1); + +#=============================================================================== +# Kung Fu Blocking Low (blocked) +#=============================================================================== +[StateDef 1330; +type: C; movetype: I; physics: C; +velset: 0, 0; anim: 1330; ctrl: 0; +sprpriority: 2;] + +if time = 0 { + #Buffer commands input during the pause + #Don't pause backgrounds + pause{time: 20; endcmdbuftime: 20; pausebg: 0} + notHitBy{value: SCA; time: 1} +} + +if time = 1 && command = "holdback" { + changeState{value: 131; ctrl: 1} +} + +call EndState(1); + +#=============================================================================== +# Kung Fu Blocking Air +#=============================================================================== +[StateDef 1340; +type: A; movetype: I; physics: N; +anim: 1340; ctrl: 0; sprpriority: 1;] + +if animElemTime(3) < 0 { + width{value: 10, 0} +} + +if time = 0 { + call CSnd(0, 1, 1); + reversalDef{ + reversal.attr: A, AA; + pausetime: 0, 0; + sparkno: 40; + sparkxy: 40, 0; + hitsound: 6, 0; + p1stateno: 1350; + p1sprpriority: 2; + p2sprpriority: 1; + } +} + +if time = 5 { + reversalDef{reversal.attr: } #Stop +} + +if time < 5 { + hitOverride{attr: SA, AP; stateno: 1350} +} + +if animElem = 4 { + ctrlSet{value: 1} +} + +#Gravity +velAdd{y: const(movement.yaccel)} + +#Land from jump +if pos y >= 0 && vel y > 0 { + changeState{value: 1351} +} + +#=============================================================================== +# Kung Fu Blocking Air (blocked) +#=============================================================================== +[StateDef 1350; +type: A; movetype: I; physics: N; +anim: 1350; ctrl: 0; sprpriority: 2;] + +if time = 0 { + #Buffer commands input during the pause + #Don't pause backgrounds + pause{time: 20; endcmdbuftime: 20; pausebg: 0} + notHitBy{value: SCA; time: 1} +} + +if time = 1 && command = "holdback" { + changeState{value: 132; ctrl: 1} +} + +#Stop KFM in the air +if animElemTime(3) < 0 { + posFreeze{} +} + +if animElem = 3 { + ctrlSet{value: 1} +} + +#Gravity +if animElemTime(3) > 0 { + velAdd{y: const(movement.yaccel)} +} + +#Land from jump +if pos y >= 0 && vel y > 0 { + changeState{value: 1351} +} + +#=============================================================================== +# Kung Fu Blocking Air (land) +#=============================================================================== +[StateDef 1351; +type: S; physics: S; ctrl: 0; anim: 47;] + +if time = 0 { + velSet{y: 0} + posSet{y: 0} +} + +if time = 3 { + ctrlSet{value: 1} +} + +if command = "blocking" { + if command != "holddown" { + changeState{value: 1300} + } else { + changeState{value: 1320} + } +} + +call EndState(0); + +#=============================================================================== +# Light Kung Fu Zankou +#=============================================================================== +# ZSS difficulty: easy +[StateDef 1400; +type: S; movetype: A; physics: N; +juggle: 4; poweradd: 50; velset: 0, 0; +anim: 1400; ctrl: 0; sprpriority: 2;] + +if animElem = 3 { + call CSnd(0, 3, 1); +} + +velMul{x: .5} + +if time = 0 { + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 100, 6; + priority: 4; + guardflag: MA; + pausetime: 12, 12; + sparkxy: 0, -65; + hitsound: 5, 3; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 12; + ground.hittime: 17; + ground.velocity: -9; + ground.cornerpush.veloff: -15; #To push far away when p2 is in corner + guard.velocity: -9; + air.velocity: -2, -5; + airguard.velocity: -3.5, -4.5; + air.fall: 1; + } +} + +if animElem = 2 || animElem = 3 || animElem = 4 || animElem = 8 { + posAdd{x: 10} +} + +if animElem = 4 { + velSet{x: 2} +} + +call Endstate(0); + +#=============================================================================== +# Strong Kung Fu Zankou +#=============================================================================== +# ZSS difficulty: easy +[StateDef 1410; +type: S; movetype: A; physics: N; +juggle: 4; poweradd: 50; velset: 0, 0; +anim: 1410; ctrl: 0; sprpriority: 2;] + +if animElem = 3 { + call CSnd(0, 3, 1); +} +velMul{x: .65} + +if time = 0 { + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 100, 6; + priority: 4; + guardflag: MA; + pausetime: 12, 12; + sparkxy: 0, -65; + hitsound: 5, 3; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 12; + ground.hittime: 17; + ground.velocity: -9; + ground.cornerpush.veloff: -15; #To push far away when p2 is in corner + guard.velocity: -9; + air.velocity: -2, -5; + airguard.velocity: -3.5, -4.5; + air.fall: 1; + } +} + +if animElem = 2 || animElem = 3 || animElem = 4 || animElem = 9 { + posAdd{x: 10} +} + +if animElem = 4 { + velSet{x: 8} +} + +call EndState(0); + +#=============================================================================== +# Far Kung Fu Zankou +#=============================================================================== +# ZSS difficulty: easy +[StateDef 1420; +type: S; movetype: A; physics: N; +juggle: 6; poweradd: -330; velset: 0, 0; +anim: 1420; ctrl: 0; sprpriority: 2;] + +if time = 0 { + afterImage{ + length: 13; + palbright: 30, 30, 0; + palcontrast: 70, 70, 20; + paladd: -10, -10, -10; + palmul: .85, .85, .50; + timegap: 1; + framegap: 2; + trans: Add; + time: 2; + } + call EXFX(20); +} + +if animElemTime(8) < 0 { + afterImageTime{time: 2} +} + +if animElem = 3 { + call CSnd(0, 3, 1); +} + +velMul{x: .7} + +if animElemTime(4) = -2 { + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 25, 2; + getpower: 0; + priority: 4; + guardflag: MA; + pausetime: 9, 9; + sparkxy: -15, -45; + hitsound: 5, 2; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 22; + ground.hittime: 24; + ground.velocity: -7; + ground.cornerpush.veloff: -8; #To push far away when p2 is in corner + guard.velocity: -9; + air.velocity: -5, -4; + airguard.velocity: -3.5, -4.5; + } +} + +if animElem = 4 { + hitDef{ + attr: S, SA; + animtype: Hard; + damage: 100, 8; + getpower: 0; + priority: 5; + guardflag: MA; + pausetime: 12, 12; + sparkxy: 0, -65; + hitsound: 5, 3; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 22; + ground.hittime: 24; + ground.velocity: -5, -4; + ground.cornerpush.veloff: -15; #To push far away when p2 is in corner + guard.velocity: -9; + air.velocity: -5, -4; + airguard.velocity: -3.5, -4.5; + fall: 1; + } +} + +if animElem = 2 || animElem = 3 || animElem = 4 || animElem = 10 { + posAdd{x: 10} +} + +if animElemTime(3) = [1, 2] { + velSet{x: 20} +} + +call EndState(0); + +#=============================================================================== +# Triple Kung Fu Palm (hyper) +#=============================================================================== +# ZSS difficulty: medium +# Notes: Notice that the HitDefs in supers have "getpower = 0". This makes +# sure KFM doesn't recharge his super guage as he hits. +# Also, the attributes for the HitDefs is "HA" for "hyper attack", +# ie. "attr = S, HA". +# Notice how the first hitDef is reused twice by allowing it to +# trigger on two animation elements. +[StateDef 3000; +type: S; movetype: A; physics: S; +juggle: 4; velset: 0, 0; anim: 3000; +ctrl: 0; sprpriority: 2;] + +if animElem = 2, >= 0 { + width{value: 15, 0} +} + +if animElem = 2, 1 { + superPause{ + pos: 25, -57; + anim: 100; + sound: 20, 0; + poweradd: -1000; + } + afterImage{time: 2} +} + +if animElemTime(2) >= 1 && animElemTime(25) < 4 { + afterImageTime{time: 2} +} + +if animElem = 2 { + notHitBy{value: , NA, SA, AT; time: 11} + posAdd{x: 20} +} + +if animElemTime(2) >= 0 && animElemTime(14) < 0 { + notHitBy{value: C, NA; time: 1} +} + +if animElem = 4 || animElem = 12 || animElem = 20 { + call CSnd(0, 3, 1); +} + +if animElem = 3 || animElem = 11 || animElem = 13 || animElem = 19 || animElem = 21 || animElem = 31 { + posAdd{x: 10} +} + +if animElem = 5 || animElem = 13 || animElem = 21 { + velSet{x: 6} +} + +if animElem = 5 { + posAdd{x: 5} +} + +if animElem = 5 || animElem = 13 { + hitDef{ + attr: S, HA; + animtype: Hard; + damage: 72, 4; + getpower: 0; + priority: 6; + guardflag: MA; + pausetime: 15, 15; + sparkxy: -10, -60; + hitsound: 5, 4; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 30; + ground.hittime: 32; + ground.velocity: -6; + air.velocity: -3, -2.8; + air.fall: 1; + fall.animtype: Hard; + fall.recover: 0; + } +} + +if animElem = 21 { + hitDef{ + attr: S, HA; + animtype: Hard; + damage: 75, 4; + getpower: 0; + priority: 5; + guardflag: MA; + pausetime: 15, 15; + sparkxy: -10, -60; + hitsound: 5, 4; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 30; + ground.hittime: 32; + ground.velocity: -5, -4; + guard.velocity: -12; + air.velocity: -5, -4; + airguard.velocity: -3, -3; + fall.animtype: Hard; + fall: 1; + fall.recover: 0; + } +} + +call EndState(0); + +#=============================================================================== +# Smash Kung Fu Upper (hyper) +#=============================================================================== +# CNS difficulty: medium +# Description: This is very similar to KFM's Strong and Light Kung Fu Uppers. +# There is just one hitDef, for a screen-shaking hit. The envshake +# parameters are used to make this effect. You can find out more about +# each parameter in the CNS documentation. +# The fall.recover parameter is set at 0, meaning that p2 cannot recover +# from the fall by entering his recovery command (for KFM, that is x+y). +# This gives the attacking KFM a chance to follow up with another attack, +# such as the Fast Kung Fu Palm. +# Note that there is a changeState controller used to make KFM change to +# a success state if he hits. The success state has KFM hold his arm +# up longer for a dramatic effect. +[StateDef 3050; +type: S; movetype: A; physics: S; +juggle: 4; velset: 0, 0; anim: 3050; +ctrl: 0; sprpriority: 2;] + +if animElemTime(4) >= 0 && animElemTime(16) < 0 { + width{value: 5, 0} +} + +if animElem = 2 { + superPause{ + pos: -5, -55; + anim: 100; + sound: 20, 0; + poweradd: -1000 + } + notHitBy{value: , NA, SA, AT; time: 6} +} + +if animElemTime(2) >= 0 { + afterImageTime{time: 2} +} + +if animElem = 4 { + call CSnd(0, 2, 1); +} + +if time = 0 { + hitDef{ + attr: S, HA; + animtype: Up; #Make p2 use "Up" type animation on hit + damage: 155, 12; + getpower: 0; + priority: 5; + guardflag: MA; + pausetime: 30, 30; + sparkno: 3; + sparkxy: 0, -110; + hitsound: 5, 4; + guardsound: 6, 0; + ground.type: Low; + ground.slidetime: 26; + ground.hittime: 28; + ground.velocity: -1.3, -25; + guard.velocity: -11; + air.velocity: -1.3, -25; + airguard.velocity: -4.5, -5; + envshake.time: 25; #Parameters for shaking the screen on hit + envshake.ampl: 7; + envshake.freq: 176; + p2facing: 1; #Force p2 to face p1 on hit + fall: 1; + fall.recover: 0; #Prevent p2 from recovering + fall.damage: 70; #p2 will take 70 damage on hitting the ground + fall.envshake.ampl: 6; #Parameters for shaking the screen on fall + fall.envshake.freq: 178; + fall.envshake.time: 15; + mindist: 50, -100; #Keep p2 a minimum of 50 pixels away from p1, and no higher than 100 pixels up + maxdist: 100, -10; #Keep p2 a maximum of 100 pixels away from p1, and no lower than 10 pixels below + yaccel: .8; #Accelerate p2 downwards rapidly + } +} + +#This controller below makes Kung Fu man change to a success state if he +#successfully hits the Smash Kung Fu Upper. +if moveHit { + changeState{value: 3051} +} + +call EndState(0); + +#------------------------------------------------------------------------------- +# Smash Kung Fu Upper (success) +# Description: This is the state that KFM changes to if he successfully hits +# with Smash Kung Fu Upper. KFM holds his arm high for a short while +# longer, then changes back to his idle stand state. +[StateDef 3051; +type: S; movetype: A; physics: S; +anim: 3051;] + +if animTime < -2 { + afterImageTime{time: 2} +} + +call EndState(0); + +#=============================================================================== +# Override common states (use same number to override): +#=============================================================================== + + +#=============================================================================== +# States that are always executed (use StateDef -2) +#=============================================================================== +[StateDef -2] + + +#=============================================================================== +# States that are executed when in self's state file (use StateDef -3) +#=============================================================================== +[StateDef -3] +#displayToClipboard{text: "p1cp: %f p2cp: %f"; params: p2BodyDist X,map(jug)} + +#Landing Sound +#This controller plays a sound every time KFM lands from a jump, or back-dash. +#The code below is another way to represent the structure of +#triggerall, trigger1, trigger2 +if time = 1 && (stateNo = 52 || stateNo = 106) { #Jump land || Run-back land + call CSnd(40, 0, 1); +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm_zss.def b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm_zss.def new file mode 100644 index 00000000..72524c0c --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/kfm_zss.def @@ -0,0 +1,48 @@ +; Definition file for Kung Fu Man +; Contains all the filenames needed for the character + +; Player information +[Info] +name = "Kung Fu Man" ;Name of character +displayname = "Kung Fu Man" ;Name of character to display +versiondate = 09,30,2009 ;Version date of character (MM-DD-YYYY or X.XX) +mugenversion = 1.0 ;Version of M.U.G.E.N character works on (X.XX) +author = "Elecbyte" ;Character author name +pal.defaults = 1,2,3,4 ;Default palettes in order of preference (up to 4) + ;Numbering starts from 1 +localcoord = 320,240 ;Local coordinate space width and height + +; Files for the player +[Files] +cmd = kfm.cmd ;Command set +cns = kfm.const ;Constants +st = kfm.zss ;States +st2 = hits.zss +st3 = command.zss +st4 = AI.zss +stcommon = common1.cns.zss ;Common states (from data/ or motif) +sprite = kfm.sff ;Sprite +anim = kfm.air ;Animation +sound = kfm.snd ;Sound +ai = kfm.ai ;AI hints data (not used) +movelist = movelist.dat ;Ikemen feature: Movelist + +; Maps character selection buttons to palette numbers. +[Palette Keymap] +x = 1 ;Press button X to select palette 1, etc. +y = 2 +z = 3 +a = 4 +b = 5 +c = 6 +x2 = 7 ;Hold Start and press button X for palette 7, etc. +y2 = 8 +z2 = 9 +a2 = 10 +b2 = 11 +c2 = 12 + +; Arcade mode +[Arcade] +intro.storyboard = intro.def +ending.storyboard = ending.def diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/movelist.dat b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/movelist.dat new file mode 100644 index 00000000..5d756166 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/movelist.dat @@ -0,0 +1,19 @@ +<#f0f000>:Unique Attacks: +High Kung Fu Blocking _F_+^X +Low Kung Fu Blocking _DF_+^X +Air Kung Fu Blocking _AIR_F_+^X + +<#f0f000>:Throws: +Kung Fu Throw [_B/_F]_+^Y + +<#f0f000>:Special Moves: +Kung Fu Palm_EX _QDF^P +Kung Fu Upper_EX _DSF^P +Kung Fu Blow_EX _QDB^P +Kung Fu Zankou_EX _QDF^K +Kung Fu Knee_EX _F_F^K +_!Extra kick ^K + +<#f0f000>:Super Moves: +Triple Kung Fu Palm <#bebebe>(1000) _QDF_QDF^P +Smash Kung Fu Upper <#bebebe>(1000) _QDB_QDB^P \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/readme.txt b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/readme.txt new file mode 100644 index 00000000..667addc9 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/chars/kfm_zss/readme.txt @@ -0,0 +1,154 @@ +=========================== + Kung Fu Man (classic ver) +=========================== + +For M.U.G.E.N 1.0 +(c) 2009 Elecbyte + +This version updated: 15 Sep 2009 + +Kung Fu Man is a sample character that works with M.U.G.E.N. + +KFM's work files are available in the work/kfm720/ directory. + +KFM is licensed under the Creative Commons Noncommercial +License. Attribution is optional. This means you may freely +build upon or use parts of KFM for non-commercial puposes. + + +Controls +======== + +Basic Controls +-------------- + +Kung Fu Man is a 4-button character. Button X is his weak +punch, button Y his strong punch, A for weak kick, and +B for his strong kick. We will use W. to mean weak, and S. +for strong. + +We will use the notation: +D - down +F - forward +U - up +B - back +x - button X (weak punch) +y - button Y (strong punch) +a - button A (weak kick) +b - button B (strong kick) + +DF means diagonally down-forwards, UB diagonally up-back, +etc. If you see ab it means press button A and button B +simultaneously. x/y means hit either x or y, and so on. + +Use the direction keys to move KFM. Press down to crouch, +and up to jump. While in the air, you can press up again to +air-jump. Hold the direction facing away from the opponent +to guard. KFM can guard attacks while jumping. + +When falling in the air, hit buttons X and Y at the same +time to recover. Hold a directional key when recovering to +move a little bit in that direction. If you are near the +ground when you hit xy, you will do a ground-based recovery +instead. + +KFM has a taunt. To do it, press the start button. + + +Standard Movement +----------------- + +U - Jump +UF - Jump forwards +F - Walk forwards +DF - Crouch +D - Crouch +DB - Crouch or low guard +B - Walk backwards or high guard +UB - Jump back +F, F - Forward dash +B, B - Back dash +xy - Recovery (when falling) + +Basic Standing Attacks +---------------------- + +x - W. Punch +y - S. Punch +a - W. Kick +b - S. Kick + +Basic Crouching Attacks +----------------------- + +x - Low W. Punch +y - Low S. Punch +a - Low W. Kick +b - Sweep Kick + +Basic Air Attacks +----------------- + +x - Air W. Punch +y - Air S. Punch +a - Air W. Kick +b - Flying Kick + +Throws +------ + +F/B + y (when close) - Kung Fu Throw + +Special Attacks +--------------- + +D, DF, F, x - W. Kung Fu Palm +D, DF, F, y - S. Kung Fu Palm +D, DF, F, x+y - Fast Kung Fu Palm (uses 1/3 power bar) + +F, D, DF, x - W. Kung Fu Upper +F, D, DF, y - S. Kung Fu Upper +F, D, DF, x+y - Fast Kung Fu Upper (uses 1/3 power bar) + +D, DB, B, x - W. Kung Fu Blow +D, DB, B, y - S. Kung Fu Blow +D, DB, B, x+y - Fast Kung Fu Blow (uses 1/3 power bar) + +D, DF, F, a - W. Kung Fu Zankou +D, DF, F, b - S. Kung Fu Zankou +D, DF, F, a+b - Fast Kung Fu Zankou (uses 1/3 power bar) + +F, F, a - W. Kung Fu Knee +F, F, b - S. Kung Fu Knee +F, F, a+b - Fast Kung Fu Knee (uses 1/3 power bar) +Press button A or B during Kung Fu Knee to add a kick. + +Hyper Attacks (each uses 1 power bar) +------------- + +D, DF, F, D, DF, F, x/y - Triple Kung Fu Palm +D, DB, B, D, DB, B, x/y - Smash Kung Fu Upper + + +Combo notes +=========== + +KFM's strengths lie in his ability to chain moves into each +other. Here are his basic combo rules: + +1. You can combo from weaker basic attacks into stronger ones + eg. light kick -> strong kick + +2. You can combo into special attacks from most basic attacks + eg. stand strong punch -> Kung Fu Palm + +3. You can combo into hyper attacks from all basic and special + attacks + eg. Kung Fu Palm -> Triple Kung Fu Palm + +4. You can combo from hyper attacks into other hyper attacks, + as long as you do not do the same hyper twice in a row + eg. Triple Kung Fu Palm -> Smash Kung Fu Upper + +These rules make it possible for you to do some damaging combos. +Experiment, and perfect your own Kung Fu Combos! diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/action.zss b/bios/Game Engines/Ikemen GO/ikemen/data/action.zss new file mode 100644 index 00000000..705668b0 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/action.zss @@ -0,0 +1,105 @@ +#=============================================================================== +# Global states (not halted by Pause/SuperPause, no helper limitations) +#=============================================================================== +[StateDef -4] + +ignoreHitPause if !const(Default.Enable.Action) || isHelper || teamSide = 0 { + # Do nothing, global code disabled locally or executed by helper or stage +} else if roundState >= 2 { + # First Attack + let ret = call IkSys_FirstAttack(); + if $ret { + lifebarAction{spr: const(MsgFirstAttack), 0; top: 1} + } + # Counter Hit + let ret = call IkSys_CounterHit(); + if $ret { + lifebarAction{spr: const(MsgCounterHit), 0; top: 1} + } + # Technical + let ret = call IkSys_Technical(); + if $ret { + lifebarAction{spr: const(MsgTechnical), 0; top: 1} + } + # Reversal + let ret = call IkSys_Reversal(); + if $ret { + lifebarAction{spr: const(MsgReversal), 0; top: 1} + } + # Parry + let ret = call IkSys_Parry(); + if $ret { + lifebarAction{spr: const(MsgParry), 0; top: 1; redirectId: enemy,id} + } + # Just Defend + let ret = call IkSys_JustDefend(); + if $ret { + lifebarAction{spr: const(MsgJustDefend), 0; top: 1} + } + # Danger + let ret = call IkSys_Danger(); + if $ret { + lifebarAction{spr: const(MsgDanger), 0; timeMul: 2; top: 1} + } + # Dizzy + let ret = call IkSys_Dizzy(); + if $ret { + lifebarAction{spr: const(MsgDizzy), 0; timeMul: 2; top: 1} + } + # Guard Break + let ret = call IkSys_GuardBreak(); + if $ret { + lifebarAction{spr: const(MsgGuardBreak), 0; timeMul: 2; top: 1} + } + # Partner Down + let ret = call IkSys_PartnerDown(); + if $ret { + lifebarAction{spr: const(MsgPartnerDown), 0; timeMul: 2; top: 1} + } + # code executed only by P1 and P2 + if playerNo = teamSide { + # Combo Count + let ret = call IkSys_ComboCount(); + if $ret { + # gdlk combo (mugen) + if $ret >= 25 { + lifebarAction{spr: const(MsgCombo25), 0; top: 1} + # amazing combo (marvelous) + } else if $ret >= 20 { + lifebarAction{spr: const(MsgCombo20), 0; top: 1} + # great combo (fantastic) + } else if $ret >= 15 { + lifebarAction{spr: const(MsgCombo15), 0; top: 1} + # sweet combo (beautiful) + } else if $ret >= 10 { + lifebarAction{spr: const(MsgCombo10), 0; top: 1} + # good combo (great) + } else if $ret >= 5 { + lifebarAction{spr: const(MsgCombo5), 0; top: 1} + # nice combo (good) + } else if $ret >= 3 { + lifebarAction{spr: const(MsgCombo3), 0; top: 1} + } + } + # Win Clutch + let ret = call IkSys_WinClutch(); + if $ret { + lifebarAction{spr: const(MsgWinClutch), 0; timeMul: 3; top: 1} + } + # Win Perfect + let ret = call IkSys_WinPerfect(); + if $ret { + lifebarAction{spr: const(MsgWinPerfect), 0; timeMul: 3; top: 1} + } + # Win Hyper + let ret = call IkSys_WinHyper(); + if $ret { + lifebarAction{spr: const(MsgWinHyper), 0; timeMul: 3; top: 1} + } + # Win Special + let ret = call IkSys_WinSpecial(); + if $ret { + lifebarAction{spr: const(MsgWinSpecial), 0; timeMul: 3; top: 1} + } + } +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/common.air b/bios/Game Engines/Ikemen GO/ikemen/data/common.air new file mode 100644 index 00000000..0baa0883 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/common.air @@ -0,0 +1,22 @@ +; Common Animations +; The actions defined in this file will be compiled as if they belonged to each character +; They will not overwrite the character's own actions + +; If character doesn't have the required "Run Forward" animation, copy "Walk Forward" +[Begin Action 100] +Copy Action 20 + +; If character doesn't have the required "Hop Back" animation, copy "Jump Back" +[Begin Action 105] +Copy Action 43 + +; If character doesn't have the required "Dizzy" animation, use one made out of required sprites +[Begin Action 5300] +Clsn2Default: 1 + Clsn2[0] = -16, 0, 16, -80 +5000,0, 0,0, 6 +5000,10, 0,0, 6 +5000,0, 0,0, 6 +5000,0, 0,0, 6, H +5000,10, 0,0, 6, H +5000,0, 0,0, 6, H diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/common.cmd b/bios/Game Engines/Ikemen GO/ikemen/data/common.cmd new file mode 100644 index 00000000..a110f8af --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/common.cmd @@ -0,0 +1,151 @@ +; Common Commands +; The commands defined in this file will be appended to every character's command list. +; Commands used by common states should be placed here to prevent crashing due to missing commands. +; Most of these are kept blank so that they won't interfere with a character trying to remap them. + +[Command] +name = "recovery" +command = +time = 1 +buffer.time = 1 +buffer.hitpause = 1 +buffer.pauseend = 1 + +[Command] +name = "TagShiftBack" +command = d +time = 1 +buffer.time = 1 +buffer.hitpause = 1 +buffer.pauseend = 1 + +[Command] +name = "TagShiftFwd" +command = w +time = 1 +buffer.time = 1 +buffer.hitpause = 1 +buffer.pauseend = 1 + +[Command] +name = "holdfwd" +command = +time = 1 +buffer.time = 1 +buffer.hitpause = 1 +buffer.pauseend = 1 + +[Command] +name = "holdback" +command = +time = 1 +buffer.time = 1 +buffer.hitpause = 1 +buffer.pauseend = 1 + +[Command] +name = "holdup" +command = +time = 1 +buffer.time = 1 +buffer.hitpause = 1 +buffer.pauseend = 1 + +[Command] +name = "holddown" +command = +time = 1 +buffer.time = 1 +buffer.hitpause = 1 +buffer.pauseend = 1 + +; Every common command below this point is deprecated. +; It is recommended that a character that doesn't need commands for itself but still wishes to use the command trigger should still define the necessary commands in its own command file. + +[Command] +name = "x" +command = +time = 1 +buffer.time = 1 +buffer.hitpause = 1 +buffer.pauseend = 1 + +[Command] +name = "y" +command = +time = 1 +buffer.time = 1 +buffer.hitpause = 1 +buffer.pauseend = 1 + +[Command] +name = "z" +command = +time = 1 +buffer.time = 1 +buffer.hitpause = 1 +buffer.pauseend = 1 + +[Command] +name = "a" +command = +time = 1 +buffer.time = 1 +buffer.hitpause = 1 +buffer.pauseend = 1 + +[Command] +name = "b" +command = +time = 1 +buffer.time = 1 +buffer.hitpause = 1 +buffer.pauseend = 1 + +[Command] +name = "c" +command = +time = 1 +buffer.time = 1 +buffer.hitpause = 1 +buffer.pauseend = 1 + +[Command] +name = "start" +command = +time = 1 +buffer.time = 1 +buffer.hitpause = 1 +buffer.pauseend = 1 + +[Command] +name = "d" +command = +time = 1 +buffer.time = 1 +buffer.hitpause = 1 +buffer.pauseend = 1 + +[Command] +name = "w" +command = +time = 1 +buffer.time = 1 +buffer.hitpause = 1 +buffer.pauseend = 1 + +[Command] +name = "m" +command = +time = 1 +buffer.time = 1 +buffer.hitpause = 1 +buffer.pauseend = 1 + +[Command] +name = "menu" +command = +time = 1 +buffer.time = 1 +buffer.hitpause = 1 +buffer.pauseend = 1 diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/common.const b/bios/Game Engines/Ikemen GO/ikemen/data/common.const new file mode 100644 index 00000000..0f71251e --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/common.const @@ -0,0 +1,310 @@ +; Common Constants +; The constants defined in this file will be loaded by every character +; Characters can override them by defining them in their own constants files + +[Constants] + +; Negative state global code toggle +Default.Enable.Action = 1 +Default.Enable.Dizzy = 1 +Default.Enable.GuardBreak = 1 +Default.Enable.Score = 1 +Default.Enable.Tag = 1 + +; Input toggles +Input.FBFlipEnemyDistance = -1 ; Positive value inverts B and F inputs when an enemy is behind the player by that distance +Input.PauseOnHitPause = 1 ; 1 makes commands be buffered during hit pause. Deprecated. See command parameters + +; Backward compatibility toggles +Legacy.GameDistanceSpec = 1 ; 1 prevents GameWidth/GameHeight from being affected by stage zoom for mugenversion 1.0 chars +Legacy.FallYVelYAccel = 0 ; 1 sets HitDef's fall.yvelocity and yaccel defaults to fixed values, ignoring chars localcoord scaling. +Legacy.CornerPushDefaults = -1 ; 0 for Ikemen GO cornerpush defaults. 1 for Mugen defaults. -1 depending on the character's engine version. + +; Rules +Default.Attack.LifeToPowerMul = 0.7 ; multiplier for power the attacker gets when a normal/special attack successfully hits (overridden by getpower HitDef option) +Super.Attack.LifeToPowerMul = 0 ; multiplier for power the attacker gets when a super attack successfully hits (overridden by getpower HitDef option) +Default.GetHit.LifeToPowerMul = 0.6 ; multiplier for power the receiver gets when a normal/special attack successfully hits (overridden by givepower HitDef option) +Super.GetHit.LifeToPowerMul = 0.6 ; multiplier for power the receiver gets when a super attack successfully hits (overridden by givepower HitDef option) +Super.TargetDefenceMul = 1.5 ; multiplier for how much a SuperPause increases the opponent's defence during combos (ignored if SuperPause p2defmul option is set) +Default.LifeToGuardPointsMul = 1.5 ; multiplier for guard points the receiver loses when a normal/special attack is blocked (overridden by guardpoints HitDef option) +Super.LifeToGuardPointsMul = 0.33 ; multiplier for guard points the receiver loses when a super attack is blocked (overridden by guardpoints HitDef option) +Default.LifeToDizzyPointsMul = 1.8 ; multiplier for dizzy points the receiver loses when a normal/special attack successfully hits (overridden by dizzypoints HitDef option) +Super.LifeToDizzyPointsMul = 0 ; multiplier for dizzy points the receiver loses when a super attack successfully hits (overridden by dizzypoints HitDef option) +Default.LifeToRedLifeMul = 0.75 ; multiplier for red life the receiver loses when a normal/special attack successfully hits (overridden by redlife HitDef option) +Super.LifeToRedLifeMul = 0.75 ; multiplier for red life the receiver loses when a super attack successfully hits (overridden by redlife HitDef option) + +; tag.zss options +TagInTime = 20 ; tag-in total switch time +TagInVelX = 12.5 ; tag-in max Vel X +TagCommandAIChance = 50 ; affects default AI switching probability (range 0-100) +TagCounterSwitchPower = 1000 ; counter switch power cost (used in MvCI ver only) +TagRedLifeRegenFrames = 30 ; red life regeneration interval (in frames) +TagRedLifeRegenPercent = 0.005 ; red life regenerated each interval (percentage of max life) +TagSwitchCooldown = 0 ; number of ticks the tag switch cooldown lasts + +; Character Reserved Action Numbers +AnimStanding = 0 +AnimStandTurning = 5 +AnimCrouchTurning = 6 +AnimStandToCrouch = 10 +AnimCrouching = 11 +AnimCrouchToStand = 12 +AnimWalkingForwards = 20 +AnimWalkingBackwards = 21 +AnimJumpStart_onGround = 40 +AnimJumpNeutral_upwards = 41 +AnimJumpForwards_upwards = 42 +AnimJumpBack_upwards = 43 +AnimJumpNeutral_downwards = 44 ;opt +AnimJumpFwd_downwards = 45 ;opt +AnimJumpBack_downwards = 46 ;opt +AnimJumpLanding = 47 +AnimRunFwdOrHopForward = 100 +AnimHopBack = 105 +AnimRunUp = 110 ;deprecated +AnimRunDown = 115 ;deprecated +AnimStartGuarding_stand = 120 +AnimStartGuarding_crouch = 121 +AnimStartGuarding_air = 122 +AnimGuard_stand = 130 +AnimGuard_crouch = 131 +AnimGuard_air = 132 +AnimStopGuarding_stand = 140 +AnimStopGuarding_crouch = 141 +AnimStopGuarding_air = 142 +AnimGuardingAHit_stand = 150 +AnimGuardingAHit_crouch = 151 +AnimGuardingAHit_air = 152 +AnimLose = 170 ;opt +AnimTimeOverDrawGame = 175 ;opt +AnimWin = 180 ;opt +AnimIntro = 190 ;opt +AnimTaunt = 195 ;opt +AnimStandOrAirHitHigh_light = 5000 +AnimStandOrAirHitHigh_medium = 5001 +AnimStandOrAirHitHigh_hard = 5002 +AnimStandRecoverHigh_light = 5005 +AnimStandRecoverHigh_medium = 5006 +AnimStandRecoverHigh_hard = 5007 +AnimStandOrAirHitLow_light = 5010 +AnimStandOrAirHitLow_medium = 5011 +AnimStandOrAirHitLow_hard = 5012 +AnimStandRecoverLow_light = 5015 +AnimStandRecoverLow_medium = 5016 +AnimStandRecoverLow_hard = 5017 +AnimCrouchHit_light = 5020 +AnimCrouchHit_medium = 5021 +AnimCrouchHit_hard = 5022 +AnimCrouchRecover_light = 5025 +AnimCrouchRecover_medium = 5026 +AnimCrouchRecover_hard = 5027 +AnimStandOrAirHitBack = 5030 +AnimStandOrAirHitTransition = 5035 ;opt +AnimAirRecover = 5040 +AnimAirFall = 5050 +AnimAirFall_hitUp = 5051 ;opt +AnimAirFall_hitUpDiagonal = 5052 ;opt +AnimAirFall_comingDown = 5060 ;opt +AnimAirFall_comingDown_hitUp = 5061 ;opt +AnimAirFall_comingDown_hitUpDiagonal = 5062 ;opt +AnimTripped = 5070 +AnimLieDownHit_stayDown = 5080 +AnimLieDownHit_stayDown_hitUp = 5081 ;opt +AnimLieDownHit_stayDown_hitUpDiagonal = 5082 ;opt +AnimLieDownHit_hitUpIntoAir = 5090 +AnimHittingGroundFromFall = 5100 +AnimBounceFromGroundIntoAir_hitUp = 5101 ;opt +AnimBounceFromGroundIntoAir_hitUpDiagonal = 5102 ;opt +AnimBounceIntoAir = 5160 +AnimBounceIntoAir_hitUp = 5161 ;opt +AnimBounceIntoAir_hitUpDiagonal = 5162 ;opt +AnimHitGroundFromBounce = 5170 +AnimHitGroundFromBounce_hitUp = 5171 ;opt +AnimHitGroundFromBounce_hitUpDiagonal = 5172 ;opt +AnimLieDown = 5110 +AnimLieDown_hitUp = 5111 ;opt +AnimLieDown_hitUpDiagonal = 5112 ;opt +AnimGetUpFromLieDown = 5120 +AnimGetUpFromLieDown_hitUp = 5121 ;opt +AnimGetUpFromLieDown_hitUpDiagonal = 5122 ;opt +AnimLieDead_firstRounds = 5140 ;opt +AnimLieDead_finalRound = 5150 ;opt +AnimLieDead_firstRounds_hitUp = 5151 ;opt +AnimLieDead_firstRounds_hitUpDiagonal = 5152 ;opt +AnimLieDead_finalRound_hitUp = 5156 ;opt +AnimLieDead_finalRound_hitUpDiagonal = 5157 ;opt +AnimFallRecoveryNearGround = 5200 +AnimFallRecoveryInMidAir = 5210 +AnimDizzy = 5300 +AnimContinueScreen = 5500 ;opt +AnimYesToContinue = 5510 ;opt +AnimNoToContinue = 5520 ;opt + +; tag.zss anims +AnimTagEnteringScreen = 100 +AnimTagLeavingScreen = 100 +AnimTagJumpingIn = 42 +AnimTagLanding = 47 + +; common1.cns / common1.cns.zss states +StateStand = 0 +StateStandToCrouch = 10 +StateCrouching = 11 +StateCrouchToStand = 12 +StateWalk = 20 +StateJumpStart = 40 +StateAirJumpStart = 45 +StateJumpUp = 50 +StateJumpDown = 51 +StateJumpLand = 52 +StateRunForward = 100 +StateHopBackwards = 105 +StateHopBackwards_land = 106 +StateRunUp = 110 ;deprecated +StateRunDown = 115 ;deprecated +StateGuard_start = 120 +StateStandGuard_guarding = 130 +StateCrouchGuard_guarding = 131 +StateAirGuard_guarding = 132 +StateGuard_end = 140 +StateStandGuardHit_shaking = 150 +StateStandGuardHit_knockedBack = 151 +StateCrouchGuardHit_shaking = 152 +StateCrouchGuardHit_knockedBack = 153 +StateAirGuardHit_shaking = 154 +StateAirGuardHit_knockedAway = 155 +StateLose_timeOver = 170 +StateDrawGame_timeOver = 175 +StatePreIntro = 190 +StateIntro = 191 +StateStandGetHit_shaking = 5000 +StateStandGetHit_knockedBack = 5001 +StateCrouchGetHit_shaking = 5010 +StateCrouchGetHit_knockedBack = 5011 +StateAirGetHit_shaking = 5020 +StateAirGetHit_knockedAway = 5030 +StateAirGetHit_transition = 5035 +StateAirGetHit_recoveringInAirNotFalling = 5040 +StateAirGetHit_falling = 5050 +StateTrippedGetHit_shaking = 5070 +StateTrippedGetHit_knockedAway = 5071 +StateDownedGetHit_shaking = 5080 +StateDownedGetHit_knockedBack = 5081 +StateDownedGetHit_hitGroundFromFall = 5100 +StateDownedGetHit_bounceOffGround = 5101 +StateDownedGetHit_lyingDown = 5110 +StateDownedGetHit_gettingUp = 5120 +StateDownedGetHit_lyingDefeated = 5150 +StateAirGetHit_fallRecoveryOnGroundStillFalling = 5200 +StateAirGetHit_fallRecoveryOnGround = 5201 +StateAirGetHit_fallRecoveryInAir = 5210 +StateContinueScreenAnimation = 5500 +StateInitialize = 5900 + +; dizzy.zss states +StateDizzy = 6565300 +StateDizzyFallDown_standCrouch = 6565301 ; Deprecated +StateDizzyFallDown_air = 6565302 ; Deprecated +StateDizzyLyingDown = 6565303 ; Deprecated +StateDizzyBirdsHelper = 6565310 + +; guardbreak.zss states +StateGuardBreakHit = 6565400 +StateGuardBreakRecover = 6565401 + +; tag.zss states +StateTagEnteringScreen = 6565600 +StateTagLeavingScreen = 6565610 +StateTagWaitingOutside = 6565611 +StateTagJumpingIn = 6565620 +StateTagLanding = 6565621 + +; fightfx.air +FxLightHitSpark = 0 +FxMediumHitSpark = 1 +FxStrongHitSpark = 2 +FxVeryStrongHitSpark = 3 +FxWeakBloodHitSpark = 10 +FxMediumBloodHitSpark = 11 +FxStrongBloodHitSpark = 12 +FxGuardSpark = 40 +FxSmallGroundShockwave = 60 +FxMediumGroundShockwave = 61 +FxStrongGroundShockwave = 62 +FxLightWallHitShockwave = 70 +FxMediumWallHitShockwave = 71 +FxStrongWallHitShockwave = 72 +FxLevel1SuperEffect = 100 +FxLevel2SuperEffect = 101 +FxLevel3SuperEffect = 102 +FxSmallFloorDust = 120 +FxPowerUpEffect = 130 + +FxDizzyEffect = 5300 +FxGuardBreakSpark = 5400 +FxGuardBreakShockwave = 5410 +FxTagSwitchAI = 5600 +FxTagSwitchP1 = 5601 +FxTagSwitchP2 = 5602 +FxBackgroundColor = 9000 ; Deprecated + +; fight.def +MsgFirstAttack = 401 +MsgCounterHit = 402 +MsgTechnical = 403 +MsgReversal = 404 +MsgDanger = 405 +MsgDizzy = 406 +MsgCombo3 = 407 +MsgCombo5 = 408 +MsgCombo10 = 409 +MsgCombo15 = 410 +MsgCombo20 = 411 +MsgCombo25 = 412 +MsgWinSpecial = 413 +MsgWinHyper = 414 +MsgWinPerfect = 415 +MsgPartnerAssist = 416 ; Not used by default tag system +MsgPartnerChange = 417 +MsgPartnerDown = 418 +MsgPartnerAssistOK = 419 ; Not used by default tag system +MsgActiveSwitch = 420 ; Not used by default tag system +MsgCounterSwitch = 421 ; Not used by default tag system +MsgGuardBreak = 422 +MsgParry = 423 +MsgJustDefend = 424 +MsgWinClutch = 425 + +; Bitwise shifting +Bit1 = 1 +Bit2 = 2 +Bit3 = 4 +Bit4 = 8 +Bit5 = 16 +Bit6 = 32 +Bit7 = 64 +Bit8 = 128 +Bit9 = 256 +Bit10 = 512 +Bit11 = 1024 +Bit12 = 2048 +Bit13 = 4096 +Bit14 = 8192 +Bit15 = 16384 +Bit16 = 32768 +Bit17 = 65536 +Bit18 = 131072 +Bit19 = 262144 +Bit20 = 524288 +Bit21 = 1048576 +Bit22 = 2097152 +Bit23 = 4194304 +Bit24 = 8388608 +Bit25 = 16777216 +Bit26 = 33554432 +Bit27 = 67108864 +Bit28 = 134217728 +Bit29 = 268435456 +Bit30 = 536870912 +Bit31 = 1073741824 +Bit32 = -2147483648 diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/common.snd b/bios/Game Engines/Ikemen GO/ikemen/data/common.snd new file mode 100644 index 00000000..038c75c3 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/data/common.snd differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/common1.cns.zss b/bios/Game Engines/Ikemen GO/ikemen/data/common1.cns.zss new file mode 100644 index 00000000..886d4dc7 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/common1.cns.zss @@ -0,0 +1,998 @@ +# Zantei State Script +# Syntax highlighter for Notepad++: https://github.com/ikemen-engine/zss_npp +#------------------------------------------------------------------------------- +# ZSS code needs to use UTF-8 character encoding system. +# && and || are short-circuit evaluations. +# The part enclosed in ignoreHitPause{} will be executed even during hit pause. +# Ifs prefixed with ignoreHitPause will also be executed. +# explod state controller allows arbitrary specification of ignoreHitPause. +# ignoreHitPause and/or persistent(x) followed by if block affects nested ifs. +# varSet and varAdd assignments should be replaced with :=, followed by value. +# The assignment expression must be followed by a ; sign. +# Local variables can be assigned with 'let variable name = trigger expression;' +# Local variables calls via $variableName can be used in the trigger expression. +# Local variable assignment with := is not possible in the trigger expression. +# Local variable names are [a-z_][0-9a-z_]* and assignment to _ is discarded. +# Local variables are up to 256, including arguments and return values. +# Functions can only call predefined functions, so recursion is not possible. +# In case of repeated function names, the first loaded one overrides others. +# for/while loops (with break and continue) and switch statements are supported. + +#------------------------------------------------------------------------------- +# Stand +[StateDef 0; type: S; physics: S; sprpriority: 0;] + +if cond(anim = 5, animTime = 0, anim != 0) { + changeAnim{value: 0} +} +if time = 0 { + velSet{y: 0} +} +if time = 4 || abs(vel x) < const(movement.stand.friction.threshold) { + velSet{x: 0} +} +if !alive { + changeState{value: 5050; ctrl: 0} +} + +#------------------------------------------------------------------------------- +# Stand to Crouch +[StateDef 10; type: C; physics: C; anim: 10;] + +if time = 0 { + velMul{x: .75} +} +if abs(vel x) < const(movement.crouch.friction.threshold) { + velSet{x: 0} +} +if animTime = 0 { + changeState{value: 11} +} + +#------------------------------------------------------------------------------- +# Crouching +[StateDef 11; type: C; physics: C; anim: 11; sprpriority: 0;] + +if anim = 6 && animTime = 0 { + changeAnim{value: 11} +} +if abs(vel x) < const(movement.crouch.friction.threshold) { + velSet{x: 0} +} + +#------------------------------------------------------------------------------- +# Crouch to Stand +[StateDef 12; type: S; physics: S; anim: 12;] + +if animTime = 0 { + changeState{value: 0} +} + +#------------------------------------------------------------------------------- +# Walk +[StateDef 20; type: S; physics: S; sprpriority: 0;] + +if command = "holdback" { + velSet{x: const(velocity.walk.back.x)} +} else if command = "holdfwd" { + velSet{x: const(velocity.walk.fwd.x)} +} +if vel x > 0 { + if cond(anim = 5, animTime = 0, anim != 20) { + changeAnim{value: 20} + } +} else if vel x < 0 { + if cond(anim = 5, animTime = 0, anim != 21) { + changeAnim{value: 21} + } +} + +#------------------------------------------------------------------------------- +# Jump Start +[StateDef 40; type: S; physics: S; anim: 40; ctrl: 0; sprpriority: 1; facep2: 1;] + +if time = 0 { + sysVar(1) := 0; +} +if command = "holdback" { + sysVar(1) := -1; +} else if command = "holdfwd" { + sysVar(1) := 1; +} +if animTime = 0 { + if sysVar(1) = 0 { + let x = const(velocity.jump.neu.x); + } else if sysVar(1) = 1 { + if prevStateNo = 100 { + let x = const(velocity.runjump.fwd.x); + } else { + let x = const(velocity.jump.fwd.x); + } + } else { + let x = const(velocity.jump.back.x); + } + velSet{x: $x; y: const(velocity.jump.y)} + changeState{value: 50; ctrl: 1} +} + +#------------------------------------------------------------------------------- +# AirJump Start +[StateDef 45; type: A; physics: N; ctrl: 0; velset: 0, 0;] + +changeAnim{value: ifElse(selfAnimExist(44), 44, 41)} +if time = 0 { + sysVar(1) := 0; +} +if command = "holdback" { + sysVar(1) := -1; +} else if command = "holdfwd" { + sysVar(1) := 1; +} +if time = 2 { + if sysVar(1) = 0 { + let x = const(velocity.airjump.neu.x); + } else if sysVar(1) = 1 { + let x = const(velocity.airjump.fwd.x); + } else { + let x = const(velocity.airjump.back.x); + } + velSet{x: $x; y: const(velocity.airjump.y)} + changeState{value: 50; ctrl: 1} +} + +#------------------------------------------------------------------------------- +# Jump Up +[StateDef 50; type: A; physics: A;] + +if time = 0 { + sysVar(1) := 0; + changeAnim{value: cond(vel x = 0, 41, ifElse(vel x > 0, 42, 43))} +} +persistent(0) if vel y > const240p(-2) && selfAnimExist(anim + 3) && anim = [41, 43] { + changeAnim{value: anim + 3} +} + +#------------------------------------------------------------------------------- +# Jump Down (empty state for compatibility) +[StateDef 51; type: A; physics: A;] + +null{} + +#------------------------------------------------------------------------------- +# Jump Land +[StateDef 52; type: S; physics: S; ctrl: 0; anim: 47;] + +if time = 0 { + velSet{y: 0} + posSet{y: 0} +} else if time = 3 { + ctrlSet{value: 1} +} +if abs(vel x) < const(movement.stand.friction.threshold) { + velSet{x: 0} +} +if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#------------------------------------------------------------------------------- +# Run forward +[StateDef 100; type: S; physics: S; anim: 100; sprpriority: 1;] + +velSet{x: const(velocity.run.fwd.x)} +assertSpecial{flag: noWalk; flag2: noAutoTurn} +if command != "holdfwd" { + changeState{value: 0} +} + +#------------------------------------------------------------------------------- +# Hop backwards +[StateDef 105; type: A; physics: A; ctrl: 0; anim: 105; sprpriority: 1;] + +if time = 0 { + velSet{x: const(velocity.run.back.x); y: const(velocity.run.back.y)} +} else if time = 2 { + ctrlSet{value: 1} +} +if vel y > 0 && pos y >= 0 { + changeState{value: 106} +} + +#------------------------------------------------------------------------------- +# Hop backwards (land) +[StateDef 106; type: S; physics: S; ctrl: 0; anim: 47;] + +if abs(vel x) < const(movement.stand.friction.threshold) { + velSet{x: 0} +} +if time = 0 { + velSet{y: 0} + posSet{y: 0} +} else if time = 2 { + makeDust{pos: 0, 0; spacing: 1} +} else if time = 7 { + changeState{value: 0; ctrl: 1} +} + +#------------------------------------------------------------------------------- +# Run up (Deprecated in DosMugen) +# TODO: Make this work now that Z-Axis is back. +[StateDef 110; type: S; physics: N;] + +if time = 0 { + ctrlSet{value: 0} + changeAnim{value: 110} + #hitBy{value: SCA, NT, ST, HT; time: 30} + velSet{x: 0; z: -7} +} +velMul{z: 0.8} +if animTime = -8 { + velSet{z: 0} +} else if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#------------------------------------------------------------------------------- +# Run down (Deprecated in DosMugen) +# TODO: Make this work now that Z-Axis is back. +[StateDef 115; type: S; physics: N;] + +if time = 0 { + ctrlSet{value: 0} + changeAnim{value: 115} + #hitBy{value: SCA, NT, ST, HT; time: 30} + velSet{x: 0; z: 7} +} +velMul{z: 0.8} +if animTime = -8 { + velSet{z: 0} +} else if animTime = 0 { + changeState{value: 0; ctrl: 1} +} + +#------------------------------------------------------------------------------- +[Function IkSys_HiToLoAndLoToHi()] +if command = "holddown" { + if stateType = S { + stateTypeSet{statetype: C; physics: C} + } +} else if stateType = C { + stateTypeSet{statetype: S; physics: S} +} + +#------------------------------------------------------------------------------- +[Function IkSys_StopGuarding()] +if command != "holdback" || !inGuardDist { + changeState{value: 140} +} + +#------------------------------------------------------------------------------- +# GUARD (start) +[StateDef 120; type: U; physics: U;] + +call IkSys_HiToLoAndLoToHi(); +if time = 0 { + changeAnim{value: 120 + (stateType = C) + (stateType = A) * 2} + if stateType = S { + stateTypeSet{physics: S} + } else if stateType = C { + stateTypeSet{physics: C} + } else if stateType = A { + stateTypeSet{physics: A} + } +} +if animTime = 0 { + changeState{value: 130 + (stateType = C) + (stateType = A) * 2} +} +call IkSys_StopGuarding(); + +#------------------------------------------------------------------------------- +# Stand guard (guarding) +[StateDef 130; type: S; physics: S;] + +if anim != 130 { + changeAnim{value: 130} +} +if command = "holddown" { + changeState{value: 131} +} +call IkSys_StopGuarding(); + +#------------------------------------------------------------------------------- +# Crouch guard (guarding) +[StateDef 131; type: C; physics: C;] + +if anim != 131 { + changeAnim{value: 131} +} +if command != "holddown" { + changeState{value: 130} +} +call IkSys_StopGuarding(); + +#------------------------------------------------------------------------------- +[Function IkSys_AirGuardLand()] +velAdd{y: const(movement.yAccel)} +if sysVar(0) := (pos y >= 0 && vel y > 0) { + velSet{y: 0} + posSet{y: 0} + changeState{value: ifElse(command = "holdback" && inGuardDist, 130, 52)} +} + +#------------------------------------------------------------------------------- +# Air guard (guarding) +[StateDef 132; type: A; physics: N;] + +if anim != 132 { + changeAnim{value: 132} +} +call IkSys_AirGuardLand(); +call IkSys_StopGuarding(); + +#------------------------------------------------------------------------------- +# Guard (end) +[StateDef 140; type: U; physics: U; ctrl: 1;] + +call IkSys_HiToLoAndLoToHi(); +if time = 0 { + changeAnim{value: 140 + (stateType = C) + (stateType = A) * 2} + if stateType = S { + stateTypeSet{physics: S} + } else if stateType = C { + stateTypeSet{physics: C} + } else if stateType = A { + stateTypeSet{physics: A} + } +} + +#------------------------------------------------------------------------------- +[Function IkSys_GuardShaking(anim)] +changeAnim{value: $anim} +if hitShakeOver { + changeState{value: 151 + 2 * (command = "holddown")} +} +call IkSys_HiToLoAndLoToHi(); + +#------------------------------------------------------------------------------- +[Function IkSys_GuardKnockedBack(nextState)] +if time = 0 { + hitVelSet{x: 1} +} +if time = getHitVar(slideTime) || hitOver { + velSet{x: 0} +} +if time = getHitVar(ctrlTime) { + ctrlSet{value: 1} +} +call IkSys_HiToLoAndLoToHi(); +if hitOver { + changeState{value: $nextState; ctrl: 1} +} + +#------------------------------------------------------------------------------- +# Stand guard hit (shaking) +[StateDef 150; type: S; movetype: H; physics: N; velset: 0, 0;] + +call IkSys_GuardShaking(150); +if time = 0 { + forceFeedback{waveform: square; time: 3} +} + +#------------------------------------------------------------------------------- +# Stand guard hit (knocked back) +[StateDef 151; type: S; movetype: H; physics: S; anim: 150;] + +call IkSys_GuardKnockedBack(130); + +#------------------------------------------------------------------------------- +# Crouch guard hit (shaking) +[StateDef 152; type: C; movetype: H; physics: N; velset: 0, 0;] + +call IkSys_GuardShaking(151); +if time = 0 { + forceFeedback{waveform: square; time: 4} +} + +#------------------------------------------------------------------------------- +# Crouch guard hit (knocked back) +[StateDef 153; type: C; movetype: H; physics: C; anim: 151;] + +call IkSys_GuardKnockedBack(131); + +#------------------------------------------------------------------------------- +# Air guard hit (shaking) +[StateDef 154; type: A; movetype: H; physics: N; velset: 0, 0;] + +changeAnim{value: 152} +if hitShakeOver { + changeState{value: 155} +} +if time = 0 { + forceFeedback{waveform: square; time: 4} +} + +#------------------------------------------------------------------------------- +# Air guard hit (knocked away) +[StateDef 155; type: A; movetype: H; physics: N; anim: 152;] + +if time = 0 { + hitVelSet{x: 1; y: 1} +} +if time = getHitVar(ctrlTime) { + ctrlSet{value: 1} +} +call IkSys_AirGuardLand(); + +#------------------------------------------------------------------------------- +# Lose (time over) +[StateDef 170; type: S; ctrl: 0; anim: 170; velset: 0, 0;] + +notHitBy{value: SCA; time: 1} + +#------------------------------------------------------------------------------- +# Draw game (time over) +[StateDef 175; type: S; ctrl: 0; velset: 0, 0;] + +if time = 0 { + if !selfAnimExist(175) { # If anim 170 does not exist, go to SD 170, + changeState{value: 170} + } + changeAnim{value: 175} +} +notHitBy{value: SCA; time: 1} + +#------------------------------------------------------------------------------- +# Pre-intro +[StateDef 190; type: S; ctrl: 0; velset: 0, 0;] + +if selfAnimExist(190) { + changeAnim{value: 190} +} +if time = 0 { + changeState{value: 191} +} + +#------------------------------------------------------------------------------- +# Intro (override this state to give character an intro) +[StateDef 191; type: S; ctrl: 0;] + +if time = 0 { + changeState{value: 0} +} + +#------------------------------------------------------------------------------- +[Function IkSys_GetHitShaking(lAnim)] +if time = 0 { + if getHitVar(animType) = [4, 5] && + selfAnimExist(5051 + getHitVar(animType) - 4) { + changeAnim{value: 5051 + getHitVar(animType) - 4} + } else if getHitVar(animType) = [3, 5] { + changeAnim{value: 5030} + } else { + changeAnim{value: $lAnim + getHitVar(animType)} + } +} else { + changeAnim{value: anim} +} + +#------------------------------------------------------------------------------- +[Function IkSys_GetHitKnockedBack(lAnim, nextState)] +if time = 0 { + hitVelSet{x: 1} +} +if animTime = 0 { + changeAnim{value: $lAnim + getHitVar(animType)} +} +if time >= getHitVar(slideTime) { + velMul{x: .6} +} +if hitOver { + velSet{x: 0} + DefenceMulSet{value: 1} + changeState{value: $nextState; ctrl: 1} +} + +#------------------------------------------------------------------------------- +# Stand get-hit (shaking) +[StateDef 5000; type: S; movetype: H; physics: N; velset: 0, 0;] + +call IkSys_GetHitShaking(ifElse(getHitVar(groundType) = 1, 5000, 5010)); +if (time = 0 && (getHitVar(yVel) || getHitVar(fall))) || pos y != 0 { + stateTypeSet{statetype: A} +} +if anim = 5000 || anim = 5010 { + forceFeedback{time: 6; waveform: square} +} else if anim = 5001 || anim = 5011 { + forceFeedback{time: 8; waveform: sinesquare; ampl: 110,-1,-.3} +} else if anim = 5012 || anim = 5002 || anim = 5030 { + forceFeedback{time: 15; waveform: sinesquare; ampl: 140} +} +if hitShakeOver { + changeState{value: ifElse(getHitVar(yVel) || getHitVar(fall), 5030, 5001)} +} + +#------------------------------------------------------------------------------- +# Stand get-hit (knocked back) +[StateDef 5001; type: S; movetype: H; physics: S;] + +call IkSys_GetHitKnockedBack(5005 + (getHitVar(groundType) = 2) * 10, 0); + +#------------------------------------------------------------------------------- +# Crouch get-hit (shaking) +[StateDef 5010; type: C; movetype: H; physics: N; velset: 0, 0;] + +call IkSys_GetHitShaking(5020); +if (time = 0 && (getHitVar(yVel) || getHitVar(fall))) || pos y != 0 { + stateTypeSet{statetype: A} +} +if hitShakeOver { + changeState{value: ifElse(getHitVar(yVel) || getHitVar(fall), 5030, 5011)} +} +if anim = 5020 { + forceFeedback{time: 6; waveform: square} +} else if anim = 5021 { + forceFeedback{time: 8; waveform: sinesquare; ampl: 110,-1,-.3} +} else if anim = 5022 { + forceFeedback{time: 15; waveform: sinesquare; ampl: 140} +} + +#------------------------------------------------------------------------------- +# Crouch get-hit (knocked back) +[StateDef 5011; type: C; movetype: H; physics: C;] + +call IkSys_GetHitKnockedBack(5025, 11); + +#------------------------------------------------------------------------------- +# Air get-hit (shaking) +[StateDef 5020; type: A; movetype: H; physics: N; velset: 0, 0;] + +call IkSys_GetHitShaking(ifElse(getHitVar(airType) = 1, 5000, 5010)); +if hitShakeOver { + changeState{value: 5030} +} +if anim = 5000 || anim = 5010 { + forceFeedback{time: 6; waveform: square} +} else if anim = 5001 || anim = 5011 { + forceFeedback{time: 8; waveform: sinesquare; ampl: 110,-1,-.3} +} else if anim = 5012 || anim = 5002 || anim = 5030 || anim = [5051,5059] { + forceFeedback{time: 15; waveform: sinesquare; ampl: 140} +} + +#------------------------------------------------------------------------------- +# Air get-hit (knocked away) +[StateDef 5030; type: A; movetype: H; physics: N; ctrl: 0;] + +if anim != [5000, 5199] && selfAnimExist(5030) { + changeAnim{value: 5030} +} +if time = 0 { + hitVelSet{x: 1; y: 1} +} else { + velAdd{y: getHitVar(yAccel)} +} +if hitOver || vel y > 0 && pos y >= const(movement.air.gethit.groundlevel) { + if hitFall { + changeState{value: 5050} + } else { + changeState{value: 5040} + } +} +if animTime = 0 { + changeState{value: 5035} +} + +#------------------------------------------------------------------------------- +# Air get-hit (transition) +[StateDef 5035; type: A; movetype: H; physics: N;] + +if time = 0 && selfAnimExist(5035) && anim != [5051, 5059] && anim != 5090 { + changeAnim{value: 5035} +} +if time > 0 { + velAdd{y: getHitVar(yAccel)} +} +if hitOver || animTime = 0 || + vel y > 0 && pos y >= const(movement.air.gethit.groundlevel) || + time = 0 && anim != 5035 { + if hitFall { + changeState{value: 5050} + } else { + changeState{value: 5040} + } +} + +#------------------------------------------------------------------------------- +# Air get-hit (recovering in air, not falling) +[StateDef 5040; type: A; movetype: H; physics: N;] + +if !alive { + changeState{value: 5050; ctrl: 0} +} +if animTime = 0 && anim != 5040 || time = 0 && anim != 5035 { + changeAnim{value: 5040} +} +if hitOver { + ctrlSet{value: 1} + stateTypeSet{movetype: I} +} +if time > 0 { + velAdd{y: getHitVar(yAccel)} +} +if vel y > 0 && pos y >= 0 { + changeState{value: 52} +} + +#------------------------------------------------------------------------------- +# Air get-hit (falling) +[StateDef 5050; type: A; movetype: H; physics: N;] + +if animTime = 0 && anim = 5035 || time = 0 && anim != 5035 && + anim != [5051, 5059] && anim != [5061, 5069] && anim != 5090 { + changeAnim{value: 5050} +} +persistent(0) if anim = [5050, 5059] && vel y >= ifElse(anim = 5050, + const240p(1), const240p(-2)) && selfAnimExist(anim + 10) { + changeAnim{value: anim + 10} +} +if time > 0 { + velAdd{y: getHitVar(yAccel)} +} +if alive && canRecover && command = "recovery" { + if vel y > 0 && + pos y >= const(movement.air.gethit.groundrecover.ground.threshold) { + changeState{value: 5200} + } + if vel y > const(movement.air.gethit.airrecover.threshold) { + changeState{value: 5210} + } +} +if vel y > 0 && pos y >= cond(anim = [5051, 5059] || anim = [5061, 5069], 0, const(movement.air.gethit.groundlevel)) { + changeState{value: 5100} +} + +#------------------------------------------------------------------------------- +# Tripped get-hit (shaking) +[StateDef 5070; type: A; movetype: H; physics: N; velset: 0, 0;] + +changeAnim{value: 5070} +if hitShakeOver { + changeState{value: 5071} +} +if time = 0 { + forceFeedback{time: 12; waveform: sinesquare; ampl: 140} +} + +#------------------------------------------------------------------------------- +# Tripped get-hit (knocked away) +[StateDef 5071; type: A; movetype: H; physics: N;] + +if time = 0 { + hitVelSet{x: 1; y: 1} +} else { + velAdd{y: getHitVar(yAccel)} +} +if vel y > 0 && pos y >= const(movement.air.gethit.trip.groundlevel) { + changeState{value: 5110} +} + +#------------------------------------------------------------------------------- +[Function IkSys_SelfAnimExistAddMod10(cond, base) ret] +let ret = cond($cond && selfAnimExist($base + anim % 10), + $base + anim % 10, $base); + +#------------------------------------------------------------------------------- +# Downed get-hit (shaking) +[StateDef 5080; type: L; movetype: H; physics: N; velset: 0, 0;] + +if time = 0 { + sysVar(2) := ifElse(getHitVar(yVel) = 0, 5080, 5090); + if (anim = [5081, 5089] || anim = [5111, 5119]) && + selfAnimExist(sysVar(2) + anim % 10) { + sysVar(2) := sysVar(2) + anim % 10; + } + if sysVar(2) = 5090 && !selfAnimExist(5090) { + sysVar(2) := 5030; + } +} +changeAnim{value: sysVar(2)} +if hitShakeOver { + if getHitVar(yVel) = 0 { + changeState{value: 5081} + } else { + changeState{value: 5030} + } +} + +#------------------------------------------------------------------------------- +# Downed get-hit (knocked back) +[StateDef 5081; type: L; movetype: H; physics: C;] + +if time = 0 { + hitVelSet{x: 1} + sysVar(0) := 1; +} +if hitOver { + velSet{x: 0} + changeState{value: 5110} +} + +#------------------------------------------------------------------------------- +[Function IkSys_HitGroundEffect(vely)] +if mugenVersion(major) = 0 { + gameMakeAnim{ + value: 60 + ($vely > 5) + ($vely > 14); + pos: 0, 0; + under: $vely <= 14; + } +} else { + explod{ + anim: F(60 + ($vely > const240p(5)) + ($vely > const240p(14))); + postype: none; #p1 + pos: pos x + cameraPos x, 0, pos z; + facing: facing; + sprpriority: ifElse($vely <= const240p(14), -10, 10); + } +} +playSnd{value: F7, ($vely > const240p(5)) + ($vely > const240p(14))} + +#------------------------------------------------------------------------------- +# Downed get-hit (hit ground from fall) +[StateDef 5100; type: L; movetype: H; physics: N;] + +if time = 0 { + if mugenVersion(major) = 0 && getHitVar(fall.yVel) = 0 && vel x > 1 { + velSet{x: 1} + } + fallEnvShake{} + sysVar(1) := floor(vel y); + let a = call IkSys_SelfAnimExistAddMod10(anim = [5051, 5059] || + anim = [5061, 5069], 5100); + changeAnim{value: $a} + posSet{y: 0} + velSet{y: 0} + velMul{x: .75} + if getHitVar(fall.yVel) = 0 { + changeState{value: 5110} + } +} else if time = 1 { + call IkSys_HitGroundEffect(sysVar(1)); +} else if time = 3 { + hitFallDamage{} +} +posFreeze{} +if animTime = 0 { + changeState{value: 5101} +} +if time = 0 { + forceFeedback{waveform: sinesquare; ampl: 128,-3,-.2,.005; time: 20} +} + +#------------------------------------------------------------------------------- +# Downed get-hit (bounce off ground) +[StateDef 5101; type: L; movetype: H; physics: N;] + +if time = 0 { + let a = call IkSys_SelfAnimExistAddMod10(anim = [5101, 5109], 5160); + changeAnim{value: $a} + hitFallVel{} + posSet{y: const(movement.down.bounce.offset.y)} + posAdd{x: const(movement.down.bounce.offset.x)} +} +if time > 0 { + velAdd{y: const(movement.down.bounce.yAccel)} +} +if vel y > 0 && pos y >= const(movement.down.bounce.groundlevel) { + changeState{value: 5110} +} + +#------------------------------------------------------------------------------- +# Downed get-hit (lying down) +[StateDef 5110; type: L; movetype: H; physics: N;] + +persistent(0) if selfAnimExist(5110 + anim % 10) && anim = [5081, 5089] { + changeAnim{value: 5110 + anim % 10} +} +if time = 0 { + fallEnvShake{} + if anim != [5110, 5119] { + let a = call IkSys_SelfAnimExistAddMod10(anim = [5161, 5169], 5170); + changeAnim{value: $a} + } + hitFallDamage{} + posSet{y: 0} + if getHitVar(fall.yVel) { + sysVar(1) := floor(vel y); + } + if !sysVar(0) { + call IkSys_HitGroundEffect(sysVar(1)); + } + velSet{y: 0} +} +let atEq0OrSv0 = animTime = 0 || sysVar(0); +if $atEq0OrSv0 { + persistent(0) if anim = [5171, 5179] && selfAnimExist(5110 + anim % 10) { + changeAnim{value: 5110 + anim % 10} + } + persistent(0) if anim != [5111, 5119] { + changeAnim{value: 5110} + } +} +if !alive && ($atEq0OrSv0 || anim = [5110, 5119]) { + changeState{value: 5150} +} +if time = 0 { + sysVar(0) := 0; +} +velMul{x: .85} +if abs(vel x) < const(movement.down.friction.threshold) { + velSet{x: 0} +} +if time = 0 { + if alive { + forceFeedback{time: 8; ampl: 240; waveform: sine} + } else { + forceFeedback{time: 30; ampl: 200, 7, -.467; waveform: sine} + } +} + +#------------------------------------------------------------------------------- +# Downed get-hit (getting up) +[StateDef 5120; type: L; movetype: I; physics: N;] + +if time = 0 { + let a = call IkSys_SelfAnimExistAddMod10(anim = [5111, 5119], 5120); + changeAnim{value: $a} + velSet{x: 0} +} +notHitBy{value: SCA; time: 1} +if animTime = 0 { + hitFallSet{value: 1} # This seems to have been a typo in the original common1.cns, but it is harmless anyway + notHitBy{value: , NT,ST,HT; time: 12} + notHitBy{value2: SCA; time: 3} + changeState{value: 0; ctrl: 1} +} + +#------------------------------------------------------------------------------- +# Downed get-hit (lying defeated) +[StateDef 5150; type: L; movetype: H; physics: N; sprpriority: -3; ctrl: 0;] + +if time = 0 { + let a = call IkSys_SelfAnimExistAddMod10(anim = [5111, 5119] || + anim = [5171, 5179], 5140); + if selfAnimExist($a) { + changeAnim{value: $a} + } + if anim != [5140, 5159] && anim != [5110, 5119] { + changeAnim{value: 5110} + } +} +persistent(0) if MatchOver = 1 && anim = [5140, 5149] && + selfAnimExist(anim + 10) { + changeAnim{value: anim + 10} +} +velMul{x: .85} +persistent(0) if abs(vel x) < const(movement.down.friction.threshold) { + velSet{x: 0} +} +notHitBy{value: SCA; time: 1} + +#------------------------------------------------------------------------------- +# Air get-hit (fall recovery on ground; still falling) +[StateDef 5200; type: A; movetype: H; physics: N;] + +if anim = 5035 && animTime = 0 { + changeAnim{value: 5050} +} +if time > 0 { + velAdd{y: getHitVar(yAccel)} +} +if vel y > 0 && pos y >= const(movement.air.gethit.groundrecover.groundlevel) { + selfState{value: 5201} +} + +#------------------------------------------------------------------------------- +# Air get-hit (fall recovery on ground) +[StateDef 5201; type: A; movetype: H; physics: A; anim: 5200;] + +if time = 0 { + if p2Dist x < const240p(-5) { + turn{} + } + velSet{ + x: const(velocity.air.gethit.groundrecover.x); + y: const(velocity.air.gethit.groundrecover.y); + } + posSet{y: 0} + palFx{time: 3; add: 128, 128, 128} + if mugenVersion(major) = 1 { + explod{ + anim: F60; + postype: none; + pos: pos x + cameraPos x, pos y - floor(vel y), pos z; + facing: facing; + sprpriority: -10 + } + } +} else if time = 1 && mugenVersion(major) = 0 { + gameMakeAnim{value: 60; pos: 0, 0; under: 1} +} +notHitBy{value: SCA; time: 1} + +#------------------------------------------------------------------------------- +# Air get-hit (fall recovery in air) +[StateDef 5210; type: A; movetype: I; physics: N; anim: 5210; ctrl: 0;] + +if time = 0 { + palFx{time: 3; add: 128, 128, 128} + posFreeze{} + if p2Dist x < const240p(-20) { + turn{} + } + notHitBy{value: SCA; time: 15} +} else if time < 4 { + if mugenVersion(major) = 1 { + posFreeze{} + } +} else { + if time = 4 { + velMul{ + x: const(velocity.air.gethit.airrecover.mul.x); + y: const(velocity.air.gethit.airrecover.mul.y); + } + velAdd{ + x: const(velocity.air.gethit.airrecover.add.x); + y: const(velocity.air.gethit.airrecover.add.y); + } + if mugenVersion(major) = 0 { + if vel y > 0 { + velMul{y: .5} + } + if vel y > -3 { + velAdd{y: -2} + } + if vel y > -2 { + velAdd{y: -1} + } + } + if command = "holdup" { + velAdd{y: const(velocity.air.gethit.airrecover.up)} + } + if command = "holddown" { + velAdd{y: const(velocity.air.gethit.airrecover.down)} + } + if command = "holdfwd" { + velAdd{x: const(velocity.air.gethit.airrecover.fwd)} + } + if command = "holdback" { + velAdd{x: const(velocity.air.gethit.airrecover.back)} + } + } else if time = 20 { + ctrlSet{value: 1} + } + velAdd{y: const(movement.air.gethit.airrecover.yAccel)} +} +if vel y > 0 && pos y >= 0 { + changeState{value: 52; ctrl: 1} +} + +#------------------------------------------------------------------------------- +# Continue screen animation +[StateDef 5500; type: S; ctrl: 0; anim: 5300; velset: 0, 0;] + +if time = 0 && selfAnimExist(5500) { + changeAnim{value: 5500} +} + +#------------------------------------------------------------------------------- +# Initialize (at the start of the round) +[StateDef 5900; type: S;] + +if roundsExisted = 0 { + varRangeSet{value: 0} + varRangeSet{fvalue: 0} +} +remapPal{source: 1, 1; dest: 1, palNo} +if roundNo = 1 { + changeState{value: 190} +} +changeState{value: 0} diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/demo.zss b/bios/Game Engines/Ikemen GO/ikemen/data/demo.zss new file mode 100644 index 00000000..1e3ae2c4 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/demo.zss @@ -0,0 +1,28 @@ +#=============================================================================== +# Global states (not halted by Pause/SuperPause, no helper limitations) +#=============================================================================== +[Statedef +1] + +# Execute the following code during demo mode +# See motif [Demo] section for more options +ignoreHitPause if gameMode = "demo" && !isHelper { + assertSpecial{ + flag: globalNoKO; # Players cannot be KO'd + flag2: roundNotSkip; # Cannot skip character intros + flag3: skipFightDisplay; # Do not show "Fight" screen + flag4: skipRoundDisplay; # Do not show "Round" screen + flag5: noLifeBarAction; # Hide lifebar actions + } + # Print text from the first player only + if playerNo = 1 { + text{ + removetime: 1; # Refresh every frame + layerno: 2; # Draw on top of everything + text: "https://ikemen-engine.github.io"; # Message to print + font: -1; # Use the debug font since it exists everywhere + align: 0; # Center alignment + pos: screenWidth * 0.5, screenHeight * 0.95; # Centered horizontally. Near bottom of screen + scale: 0.5, 0.5; + } + } +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/dizzy.zss b/bios/Game Engines/Ikemen GO/ikemen/data/dizzy.zss new file mode 100644 index 00000000..7f9801b2 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/dizzy.zss @@ -0,0 +1,307 @@ +# Dizzy code originally adapted from Shiyo Kakuge's add004 +#=============================================================================== +# StateDizzyBirdsHelper [helper] +#=============================================================================== +[StateDef const(StateDizzyBirdsHelper); type: A; physics: N; anim: -2; velset: 0, 0; ctrl: 0;] + +# Destroy helper +# 32 ticks after conditions are met so that it may fade out the effects +if map(birdState) >= 32 { + stopSnd{channel: 2} + removeExplod{} + destroySelf{} +} + +# Check if helper should destroy itself +if parent,alive = 0 || parent,dizzy = 0 || parent,ctrl || parent,standby { + map(birdState) := map(birdState) + 1; +} else { + map(birdState) := 0; +} + +# Set Explod parameters +if time = 0 { + map(birdType) := randomRange(0, 8); # Bird type. Currently has no effect on gameplay + map(birdRadius) := parent,const(size.ground.back) + parent,const(size.ground.front); # Circling effect radius +} + +# Play effects before and during the dizzy state +if map(birdState) <= 0 { + + # Set destination binding position + if parent,stateType = C || (parent,stateType = L && parent,pos y != 0) { + map(bindPosY) := parent,pos y + parent,const(size.head.pos.y) * 0.67 - const240p(20); + } else if parent,stateType = L && parent,anim != const(AnimGetUpFromLieDown) { + map(bindPosY) := parent,pos y + parent,const(size.head.pos.y) * 0.33 - const240p(20); + } else { + map(bindPosY) := parent,pos y + parent,const(size.head.pos.y) - const240p(20); + } + + # Update binding position + if time = 0 { + map(posY) := map(bindPosY); + } else { + map(posY) := map(posY) + (map(bindPosY) - map(posY)) / 20.0; + } + + # Track parent + posSet{x: parent,pos x; y: min(0, map(posY))} + + # Create dizzy bird explods + # Do note that dizzy bird anims and sounds are called from gofx.def, not fightfx.air/common.snd + if numExplod < 4 { + explod{ + anim: GO const(FxDizzyEffect) + map(birdType); + postype: p1; + ownpal: 1; + vel: 0, 0; + facing: 1; + removetime: 600; + } + } + + # Play sound again as soon as it stops + # Volume goes down as character recovers from dizzy + # Sound could be random or match the explod animations + playSnd{ + value: GO 5300, 0; + channel: 2; + lowpriority: 1; + } +} + +# Update dizzy bird explods +for i = 0; numExplod-1; 1 { + let circleTime = ((gameTime % 90) + 22.5 * $i) / 45.0 * pi; + let circleHeight = cos($circleTime) * map(birdRadius) * 0.25; + let birdScale = (cos($circleTime) + 3) * 0.12 * ifElse($circleHeight < 0, -1, 1); + let fadeTime = ifElse(map(birdState) <= 0, 0, ifElse(map(birdState) >= 32, 32, map(birdState))); # Effects are faded out by code rather than animation + # Musical notes and Bells don't flip + if map(birdType) = 5 || map(birdType) = 6 { + let birdScale = abs($birdScale) * facing; + } + modifyExplod{ + id: -1; + index: $i; + anim: GO const(FxDizzyEffect) + map(birdType); + postype: p1; + pos: sin($circleTime) * map(birdRadius), $circleHeight + $fadeTime * const240p(-1); + angle: 15 * cos($circleTime * 3); + sprpriority: ifElse($circleHeight > 0, 10, -10); + scale: $birdScale, abs($birdScale); + trans: addAlpha; + alpha: 256 - $fadeTime * 8, $fadeTime * 8; + } +} + +# Fade out bird sound +if parent, stateNo = const(StateDizzy) { + modifySnd{ + channel: 2; + volumescale: 100.0 * (240.0 - min(120, parent, time)) / 240.0; # Fade to 50% + } +} + +#=============================================================================== +# StateDizzyFallDown_standCrouch +# StateDizzyFallDown_air +# StateDizzyLyingDown +#=============================================================================== + +# These states are deprecated in Ikemen 1.0. They are currently only kept to prevent older characters from entering invalid states + +[StateDef const(StateDizzyFallDown_standCrouch); type: U; movetype: H; physics: N; velset: 0, 0; ctrl: 0;] + +if time > 0 { # Avoid ChangeState loops + selfState{value: const(StateStandGetHit_knockedBack)} +} + +[StateDef const(StateDizzyFallDown_air); type: A; movetype: H; physics: N; anim: const(AnimAirFall); ctrl: 0;] + +if time > 0 { + selfState{value: const(StateAirGetHit_falling)} +} + +[StateDef const(StateDizzyLyingDown); type: L; movetype: H; physics: N; ctrl: 0;] + +if time > 0 { + selfState{value: const(StateDownedGetHit_gettingUp)} +} + +#=============================================================================== +# StateDizzy +#=============================================================================== +[StateDef const(StateDizzy); type: S; movetype: I; physics: S; anim: const(AnimDizzy); velset: 0, 0; ctrl: 0;] + +# This flag prevents the char from becoming dizzy more than once in the same combo +map(_iksys_dizzyLimit) := 1; + +if time = 0 { + mapSet{map: "_iksys_dizzyRecoveryTime"; value: 180} + posSet{y: 0} + hitFallSet{value: 0} + dizzySet{value: 1} +} + +# Play dizzy sound if there's no helper +if !numHelper(const(StateDizzyBirdsHelper)) { + if (time % 42) = 0 { + playSnd{value: GO 5300, 0; channel: 2} + } +} + +if time > 0 { + mapAdd{map: "_iksys_dizzyRecoveryTime"; value: -1} + # Mash buttons to recover faster + if aiLevel = 0 { + if inputTime(U) = 1 || inputTime(D) = 1 || inputTime(B) = 1 || inputTime(F) = 1 || + inputTime(a) = 1 || inputTime(b) = 1 || inputTime(c) = 1 || inputTime(x) = 1 || inputTime(y) = 1 || inputTime(z) = 1 { + mapAdd{map: "_iksys_dizzyRecoveryTime"; value: -3} + palFx{add: 32, 32, 32; time: 1} + } + } else if max(4, aiLevel) >= randomRange(1, 12) { # 33% - 66,67% chance, depending on aiLevel + mapAdd{map: "_iksys_dizzyRecoveryTime"; value: -3} + palFx{add: 32, 32, 32; time: 1} + } +} + +# Must stay dizzy for at least 60 frames +if time >= 60 { + if map(_iksys_dizzyRecoveryTime) <= 0 || roundState > 2 { + dizzySet{value: 0} + selfState{value: const(StateStand); ctrl: 1} + } +} + +# Failsafe +if !dizzy || time > 300 { + selfState{value: const(StateStand); ctrl: 1} +} + +#=============================================================================== +# Global states +#=============================================================================== +[StateDef -2] + +if !const(Default.Enable.Dizzy) || isHelper || teamSide = 0 { + # Do nothing, global code disabled locally or executed by helper/stage +} else if roundState = 0 { + # Initialize points and variables + dizzyPointsSet{value: dizzyPointsMax} + map(_iksys_dizzyPointsTimer) := 0; + map(_iksys_dizzyLimit) := 0; +} else if alive { + # Decrease cooldown timer + if map(_iksys_dizzyPointsTimer) > 0 { + mapAdd{map: "_iksys_dizzyPointsTimer"; value: -1} + } + # Set cooldown timer while getting hit + if dizzy || moveType = H && !getHitVar(guarded) || stateNo = const(StateDownedGetHit_gettingUp) { + map(_iksys_dizzyPointsTimer) := 60; + } + + # Freeze dizzy points if character was already dizzied once in the combo + if map(_iksys_dizzyLimit) { + if stateNo != const(StateDizzy) { + dizzyPointsSet{value: dizzyPointsMax} + dizzySet{value: 0} + } + assertSpecial{flag: noDizzyPointsDamage} + } + + # Set dizzy flag + if !dizzy && dizzyPoints = 0 && !getHitVar(guarded) { + # Prevent dizzy if current attack does no dizzy damage + # Similar to using kill = 0 in LifeAdd + if getHitVar(frame) && getHitVar(dizzyPoints) <= 0 { + dizzyPointsSet{value: 1} + } else if (moveType = H || stateNo = const(StateDownedGetHit_gettingUp)) && !inCustomState { + # Change get hit properties when becoming dizzy + dizzySet{value: 1} + getHitVarSet{ + xvel: getHitVar(air.velocity.x) + const(velocity.air.gethit.ko.add.y) * facing; + yvel: min(getHitVar(air.velocity.y), const(velocity.air.gethit.ko.ymin)); + fall.recover: 0; + down.recover: 0; + down.recovertime: 30; + } + if !hitfall { + hitFallSet{value: 1} + if anim = [const(AnimCrouchHit_light), const(AnimCrouchHit_hard)] { + changeAnim{value: const(AnimStandOrAirHitBack)} + } + } + } + } + + # Start dizzy behavior + if dizzy { + + # Compatibility safeguard + if stateNo != const(StateDizzy) { + assertSpecial{flag: noInput; flag2: noAIlevel} + } + + # Become invulnerable until moving into Dizzy state for the first time + if stateNo != const(StateDizzy) && !map(_iksys_dizzyLimit) { + notHitBy{value: SCA} + } + + # Enter Dizzy state + # Only allowed once per combo + if !map(_iksys_dizzyLimit) && !inCustomState { + if stateNo = [const(StateStand), const(StateGuard_end)] || + (stateType = S || stateType = C) && hitShakeOver && hitOver || + stateNo = const(StateDownedGetHit_gettingUp) && animTime = 0 { + selfState{value: const(StateDizzy)} + } + } + + # Reset dizzy points and remove dizzy flag if the player is no longer being hit + if moveType != H && stateType != L && stateNo != const(StateDizzy) { + dizzyPointsSet{value: dizzyPointsMax} + dizzySet{value: 0} + } + + # Special effects + if !numHelper(const(StateDizzyBirdsHelper)) { + # Red screen + if palFxVar(bg.time) = 0 { + bgPalFx{ + time: 30; + sincolor: -255, 60; + sinmul: 0, -255, -255, 60; + } + } + # Dizzy birds + helper{ + id: const(StateDizzyBirdsHelper); + stateno: const(StateDizzyBirdsHelper); + name: "Dizzy Birds"; + facing: ifelse(random < 500, -1, 1); + ownpal: 1; + } + } + } + + # Dizzy points recovery after cooldown ends + if !dizzy && dizzyPoints < dizzyPointsMax && map(_iksys_dizzyPointsTimer) = 0 { + # Fixed value. Characters with a longer dizzy bar take longer to recover + # This property could use a character constant as well instead + dizzyPointsAdd{value: 3; absolute: 1} + } + + # Reset dizzy limit once character can act again + if map(_iksys_dizzyLimit) { + if ctrl || moveType = A { + map(_iksys_dizzyLimit) := 0; + } + } + +# Reset status if char is KO +} else { + dizzySet{value: 0} + if dizzyPoints < 1 { + dizzyPointsSet{value: 1} + } +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/fight.def b/bios/Game Engines/Ikemen GO/ikemen/data/fight.def new file mode 100644 index 00000000..c2ea979d --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/fight.def @@ -0,0 +1,4011 @@ +; Definition of fight screen + +; Motif: IKEMEN1 +; Optimal resolution: 1280x720 +; Requires: IKEMEN GO 1.0 (Ikemen nightly) + +; Notes about fonts: +; - fonts can be specified in the [Files] section (no limit to how many), +; - fonts indexed here do not refer to the ones in system.def +; - fonts are search in directories in the following order: +; 1. system directory +; 2. mugen program directory (not recommended to keep custom fonts here) +; 3. data/ (not recommended to keep custom fonts here) +; 4. font/ +; +; See the section "How to Customize" at the end of this file. + +;----------------------------------------------------------- +; Ikemen feature +[Info] +name = IKEMEN1 ;Name of motif +author = Ohmga Shironeko ;Motif author name +versiondate = 03,14,2026 ;Version date of motif (MM-DD-YYYY) +ikemenversion = 1.0 ;Version of I.K.E.M.E.N motif is compatible with (Ikemen nightly) +localcoord = 1280,720 ;Local coordinate space width and height + +;----------------------------------------------------------- +;Directories are checked in this order: +;1. current directory fight.def is in +;2. data/ +;3. your MUGEN directory +;eg. If you write "spr = system.sff", and this system.def file +; is in ~/ikemen/data/mymotif/, then Ikemen will first look +; for ~/ikemen/data/mymotif/system.sff. If it does not find +; it there, it looks for ~/ikemen/data/system.sff (the default). +; Finally, if that is not found, it will look for +; ~/ikemen/system.sff. + +[Files] +sff = fight.sff +snd = fight.snd +font1 = ikemen1/fonts/Menu2.def +font2 = ikemen1/fonts/Timer.def +font3 = ikemen1/fonts/Menu2Small.def +font4 = ikemen1/fonts/PowerbarNum.def +font5 = ikemen1/fonts/Action.def +font6 = ikemen1/fonts/ComboCounter.def +font7 = ikemen1/fonts/HitNum.def +font8 = ikemen1/fonts/Pixel.def +font9 = ikemen1/fonts/Round.def +fightfx.sff = fightfx.sff ;Legacy Mugen common effects +fightfx.air = fightfx.air ;Legacy Mugen common effects +common.snd = common.snd ;Legacy Mugen common effects +;fx1 = ;Extra common effects .def file + +;----------------------------------------------------------- +[FightFx] +scale = 4 + +;----------------------------------------------------------- +[Lifebar] + +;Player 1 +p1.pos = 595,40 +p1.bg0.spr = 10,0 +p1.bg0.offset = 0,0 +p1.bg0.xshear = 3 +p1.top.spr = 11,0 +p1.top.xshear = 3 +p1.mid.spr = 12, 0 +p1.mid.offset = 0,0 +p1.mid.xshear = 3 +p1.mid.palfx.mul = 200, 200, 200 +p1.mid.palfx.sinmul = 32, 32, 32, 5 +p1.front100.spr = 13,0 +p1.front100.offset = 0,0 +p1.front100.xshear = 3 +p1.front50.spr = 13,1 +p1.front50.offset = 0,0 +p1.front50.xshear = 3 +p1.front25.spr = 13,2 +p1.front25.offset = 0,0 +p1.front25.xshear = 3 +p1.front.spr = 13, 3 +p1.front.offset = 0,0 +p1.front.palfx.sinmul = 128, 128, 128, 15 +p1.front.xshear = 3 +;p1.shift.spr = 13,2 +;p1.shift.offset = 0,0 +;p1.shift.xshear = 3 +p1.range.x = 15,-460 +p1.scalefill = 1 + +;Player 2 +p2.pos = 684,40 +p2.bg0.spr = 10,0 +p2.bg0.offset = 0,0 +p2.bg0.xshear = -3 +p2.bg0.facing = -1 +p2.top.spr = 11,0 +p2.top.facing = -1 +p2.top.xshear = -3 +p2.mid.spr = 12, 0 +p2.mid.offset = 0,0 +p2.mid.facing = -1 +p2.mid.xshear = -3 +p2.mid.palfx.mul = 200, 200, 200 +p2.mid.palfx.sinmul = 32, 32, 32, 5 +p2.front100.spr = 13,0 +p2.front100.offset = 0,0 +p2.front100.xshear = -3 +p2.front100.facing = -1 +p2.front50.spr = 13,1 +p2.front50.offset = 0,0 +p2.front50.xshear = -3 +p2.front50.facing = -1 +p2.front25.spr = 13,2 +p2.front25.offset = 0,0 +p2.front25.xshear = -3 +p2.front25.facing = -1 +p2.front.spr = 13, 3 +p2.front.offset = 0,0 +p2.front.palfx.sinmul = 128, 128, 128, 15 +p2.front.xshear = -3 +p2.front.facing = -1 +;p2.shift.spr = 13,2 +;p2.shift.offset = 0,0 +;p2.shift.xshear = -3 +;p2.shift.facing = -1 +p2.range.x = -15,460 +p2.scalefill = 1 + +[Simul Lifebar] +;Player 1 +p1.pos = 595,46 +p1.bg0.spr = 10,0 +p1.bg0.offset = 0,0 +p1.bg0.xshear = 3 +p1.top.spr = 11,0 +p1.top.xshear = 3 +p1.mid.spr = 12, 0 +p1.mid.offset = 0,0 +p1.mid.xshear = 3 +p1.mid.palfx.mul = 200, 200, 200 +p1.mid.palfx.sinmul = 32, 32, 32, 5 +p1.front100.spr = 13,0 +p1.front100.offset = 0,0 +p1.front100.xshear = 3 +p1.front50.spr = 13,1 +p1.front50.offset = 0,0 +p1.front50.xshear = 3 +p1.front25.spr = 13,2 +p1.front25.offset = 0,0 +p1.front25.xshear = 3 +p1.front.spr = 13, 3 +p1.front.offset = 0,0 +p1.front.palfx.sinmul = 128, 128, 128, 15 +p1.front.xshear = 3 +;p1.shift.spr = 13,2 +;p1.shift.offset = 0,0 +;p1.shift.xshear = 3 +p1.range.x = 15,-460 +p1.scalefill = 1 + +;Player 2 +p2.pos = 684,46 +p2.bg0.spr = 10,0 +p2.bg0.offset = 0,0 +p2.bg0.xshear = -3 +p2.bg0.facing = -1 +p2.top.spr = 11,0 +p2.top.facing = -1 +p2.top.xshear = -3 +p2.mid.spr = 12, 0 +p2.mid.offset = 0,0 +p2.mid.facing = -1 +p2.mid.xshear = -3 +p2.mid.palfx.mul = 200, 200, 200 +p2.mid.palfx.sinmul = 32, 32, 32, 5 +p2.front100.spr = 13,0 +p2.front100.offset = 0,0 +p2.front100.xshear = -3 +p2.front100.facing = -1 +p2.front50.spr = 13,1 +p2.front50.offset = 0,0 +p2.front50.xshear = -3 +p2.front50.facing = -1 +p2.front25.spr = 13,2 +p2.front25.offset = 0,0 +p2.front25.xshear = -3 +p2.front25.facing = -1 +p2.front.spr = 13, 3 +p2.front.offset = 0,0 +p2.front.palfx.sinmul = 128, 128, 128, 15 +p2.front.xshear = -3 +p2.front.facing = -1 +;p2.shift.spr = 13,2 +;p2.shift.offset = 0,0 +;p2.shift.xshear = -3 +;p2.shift.facing = -1 +p2.range.x = -15,460 +p2.scalefill = 1 + +;Player 3 +p3.pos = 607,34 +p3.bg0.spr = 20,0 +p3.bg0.offset = 0,0 +p3.bg0.xshear = 3 +p3.top.spr = 21,0 +p3.top.xshear = 3 +p3.mid.spr = 22, 0 +p3.mid.offset = 0,0 +p3.mid.xshear = 3 +p3.mid.palfx.mul = 200, 200, 200 +p3.mid.palfx.sinmul = 32, 32, 32, 5 +p3.front100.spr = 23,0 +p3.front100.offset = 0,0 +p3.front100.xshear = 3 +p3.front50.spr = 23,1 +p3.front50.offset = 0,0 +p3.front50.xshear = 3 +p3.front25.spr = 23,2 +p3.front25.offset = 0,0 +p3.front25.xshear = 3 +p3.front.spr = 23, 3 +p3.front.offset = 0,0 +p3.front.palfx.sinmul = 128, 128, 128, 15 +p3.front.xshear = 3 +;p3.shift.spr = 23,2 +;p3.shift.offset = 0,0 +;p3.shift.xshear = 3 +p3.range.x = 15,-460 +p3.scalefill = 1 + +;Player 4 +p4.pos = 672,34 +p4.bg0.spr = 20,0 +p4.bg0.offset = 0,0 +p4.bg0.xshear = -3 +p4.bg0.facing = -1 +p4.top.spr = 21,0 +p4.top.facing = -1 +p4.top.xshear = -3 +p4.mid.spr = 22, 0 +p4.mid.offset = 0,0 +p4.mid.facing = -1 +p4.mid.xshear = -3 +p4.mid.palfx.mul = 200, 200, 200 +p4.mid.palfx.sinmul = 32, 32, 32, 5 +p4.front100.spr = 23,0 +p4.front100.offset = 0,0 +p4.front100.xshear = -3 +p4.front100.facing = -1 +p4.front50.spr = 23,1 +p4.front50.offset = 0,0 +p4.front50.xshear = -3 +p4.front50.facing = -1 +p4.front25.spr = 23,2 +p4.front25.offset = 0,0 +p4.front25.xshear = -3 +p4.front25.facing = -1 +p4.front.spr = 23, 3 +p4.front.offset = 0,0 +p4.front.palfx.sinmul = 128, 128, 128, 15 +p4.front.xshear = -3 +p4.front.facing = -1 +;p4.shift.spr = 23,2 +;p4.shift.offset = 0,0 +;p4.shift.xshear = -3 +;p4.shift.facing = -1 +p4.range.x = -15,460 +p4.scalefill = 1 + +[Simul_3P Lifebar] +;Player 1 +p1.pos = 595,50 +p1.bg0.spr = 10,0 +p1.bg0.offset = 0,0 +p1.bg0.xshear = 3 +p1.top.spr = 11,0 +p1.top.xshear = 3 +p1.mid.spr = 12, 0 +p1.mid.offset = 0,0 +p1.mid.xshear = 3 +p1.mid.palfx.mul = 200, 200, 200 +p1.mid.palfx.sinmul = 32, 32, 32, 5 +p1.front100.spr = 13,0 +p1.front100.offset = 0,0 +p1.front100.xshear = 3 +p1.front50.spr = 13,1 +p1.front50.offset = 0,0 +p1.front50.xshear = 3 +p1.front25.spr = 13,2 +p1.front25.offset = 0,0 +p1.front25.xshear = 3 +p1.front.spr = 13, 3 +p1.front.offset = 0,0 +p1.front.palfx.sinmul = 128, 128, 128, 15 +p1.front.xshear = 3 +;p1.shift.spr = 13,2 +;p1.shift.offset = 0,0 +;p1.shift.xshear = 3 +p1.range.x = 15,-460 +p1.scalefill = 1 + +;Player 2 +p2.pos = 684,50 +p2.bg0.spr = 10,0 +p2.bg0.offset = 0,0 +p2.bg0.xshear = -3 +p2.bg0.facing = -1 +p2.top.spr = 11,0 +p2.top.facing = -1 +p2.top.xshear = -3 +p2.mid.spr = 12, 0 +p2.mid.offset = 0,0 +p2.mid.facing = -1 +p2.mid.xshear = -3 +p2.mid.palfx.mul = 200, 200, 200 +p2.mid.palfx.sinmul = 32, 32, 32, 5 +p2.front100.spr = 13,0 +p2.front100.offset = 0,0 +p2.front100.xshear = -3 +p2.front100.facing = -1 +p2.front50.spr = 13,1 +p2.front50.offset = 0,0 +p2.front50.xshear = -3 +p2.front50.facing = -1 +p2.front25.spr = 13,2 +p2.front25.offset = 0,0 +p2.front25.xshear = -3 +p2.front25.facing = -1 +p2.front.spr = 13, 3 +p2.front.offset = 0,0 +p2.front.palfx.sinmul = 128, 128, 128, 15 +p2.front.xshear = -3 +p2.front.facing = -1 +;p2.shift.spr = 13,2 +;p2.shift.offset = 0,0 +;p2.shift.xshear = -3 +;p2.shift.facing = -1 +p2.range.x = -15,460 +p2.scalefill = 1 + +;Player 3 +p3.pos = 607,38 +p3.bg0.spr = 20,0 +p3.bg0.offset = 0,0 +p3.bg0.xshear = 3 +p3.top.spr = 21,0 +p3.top.xshear = 3 +p3.mid.spr = 22, 0 +p3.mid.offset = 0,0 +p3.mid.xshear = 3 +p3.mid.palfx.mul = 200, 200, 200 +p3.mid.palfx.sinmul = 32, 32, 32, 5 +p3.front100.spr = 23,0 +p3.front100.offset = 0,0 +p3.front100.xshear = 3 +p3.front50.spr = 23,1 +p3.front50.offset = 0,0 +p3.front50.xshear = 3 +p3.front25.spr = 23,2 +p3.front25.offset = 0,0 +p3.front25.xshear = 3 +p3.front.spr = 23, 3 +p3.front.offset = 0,0 +p3.front.palfx.sinmul = 128, 128, 128, 15 +p3.front.xshear = 3 +;p3.shift.spr = 23,2 +;p3.shift.offset = 0,0 +;p3.shift.xshear = 3 +p3.range.x = 15,-460 +p3.scalefill = 1 + +;Player 4 +p4.pos = 672,38 +p4.bg0.spr = 20,0 +p4.bg0.offset = 0,0 +p4.bg0.xshear = -3 +p4.bg0.facing = -1 +p4.top.spr = 21,0 +p4.top.facing = -1 +p4.top.xshear = -3 +p4.mid.spr = 22, 0 +p4.mid.offset = 0,0 +p4.mid.facing = -1 +p4.mid.xshear = -3 +p4.mid.palfx.mul = 200, 200, 200 +p4.mid.palfx.sinmul = 32, 32, 32, 5 +p4.front100.spr = 23,0 +p4.front100.offset = 0,0 +p4.front100.xshear = -3 +p4.front100.facing = -1 +p4.front50.spr = 23,1 +p4.front50.offset = 0,0 +p4.front50.xshear = -3 +p4.front50.facing = -1 +p4.front25.spr = 23,2 +p4.front25.offset = 0,0 +p4.front25.xshear = -3 +p4.front25.facing = -1 +p4.front.spr = 23, 3 +p4.front.offset = 0,0 +p4.front.palfx.sinmul = 128, 128, 128, 15 +p4.front.xshear = -3 +p4.front.facing = -1 +;p4.shift.spr = 23,2 +;p4.shift.offset = 0,0 +;p4.shift.xshear = -3 +;p4.shift.facing = -1 +p4.range.x = -15,460 +p4.scalefill = 1 + +;Player 5 +p5.pos = 619,26 +p5.bg0.spr = 20,0 +p5.bg0.offset = 0,0 +p5.bg0.xshear = 3 +p5.top.spr = 21,0 +p5.top.xshear = 3 +p5.mid.spr = 22, 0 +p5.mid.offset = 0,0 +p5.mid.xshear = 3 +p5.mid.palfx.mul = 200, 200, 200 +p5.mid.palfx.sinmul = 32, 32, 32, 5 +p5.front100.spr = 23,0 +p5.front100.offset = 0,0 +p5.front100.xshear = 3 +p5.front50.spr = 23,1 +p5.front50.offset = 0,0 +p5.front50.xshear = 3 +p5.front25.spr = 23,2 +p5.front25.offset = 0,0 +p5.front25.xshear = 3 +p5.front.spr = 23, 3 +p5.front.offset = 0,0 +p5.front.palfx.sinmul = 128, 128, 128, 15 +p5.front.xshear = 3 +;p5.shift.spr = 23,2 +;p5.shift.offset = 0,0 +;p5.shift.xshear = 3 +p5.range.x = 15,-460 +p5.scalefill = 1 + +;Player 6 +p6.pos = 660,26 +p6.bg0.spr = 20,0 +p6.bg0.offset = 0,0 +p6.bg0.xshear = -3 +p6.bg0.facing = -1 +p6.top.spr = 21,0 +p6.top.facing = -1 +p6.top.xshear = -3 +p6.mid.spr = 22, 0 +p6.mid.offset = 0,0 +p6.mid.facing = -1 +p6.mid.xshear = -3 +p6.mid.palfx.mul = 200, 200, 200 +p6.mid.palfx.sinmul = 32, 32, 32, 5 +p6.front100.spr = 23,0 +p6.front100.offset = 0,0 +p6.front100.xshear = -3 +p6.front100.facing = -1 +p6.front50.spr = 23,1 +p6.front50.offset = 0,0 +p6.front50.xshear = -3 +p6.front50.facing = -1 +p6.front25.spr = 23,2 +p6.front25.offset = 0,0 +p6.front25.xshear = -3 +p6.front25.facing = -1 +p6.front.spr = 23, 3 +p6.front.offset = 0,0 +p6.front.palfx.sinmul = 128, 128, 128, 15 +p6.front.xshear = -3 +p6.front.facing = -1 +;p6.shift.spr = 23,2 +;p6.shift.offset = 0,0 +;p6.shift.xshear = -3 +;p6.shift.facing = -1 +p6.range.x = -15,460 +p6.scalefill = 1 + +[Simul_4P Lifebar] +;Player 1 +p1.pos = 583,62 +p1.bg0.spr = 20,0 +p1.bg0.offset = 0,0 +p1.bg0.xshear = 3 +p1.top.spr = 21,0 +p1.top.xshear = 3 +p1.mid.spr = 22, 0 +p1.mid.offset = 0,0 +p1.mid.xshear = 3 +p1.mid.palfx.mul = 200, 200, 200 +p1.mid.palfx.sinmul = 32, 32, 32, 5 +p1.front100.spr = 23,0 +p1.front100.offset = 0,0 +p1.front100.xshear = 3 +p1.front50.spr = 23,1 +p1.front50.offset = 0,0 +p1.front50.xshear = 3 +p1.front25.spr = 23,2 +p1.front25.offset = 0,0 +p1.front25.xshear = 3 +p1.front.spr = 23, 3 +p1.front.offset = 0,0 +p1.front.palfx.sinmul = 128, 128, 128, 15 +p1.front.xshear = 3 +;p1.shift.spr = 23,2 +;p1.shift.offset = 0,0 +;p1.shift.xshear = 3 +p1.range.x = 15,-460 +p1.scalefill = 1 + +;Player 2 +p2.pos = 696,62 +p2.bg0.spr = 20,0 +p2.bg0.offset = 0,0 +p2.bg0.xshear = -3 +p2.bg0.facing = -1 +p2.top.spr = 21,0 +p2.top.facing = -1 +p2.top.xshear = -3 +p2.mid.spr = 22, 0 +p2.mid.offset = 0,0 +p2.mid.facing = -1 +p2.mid.xshear = -3 +p2.mid.palfx.mul = 200, 200, 200 +p2.mid.palfx.sinmul = 32, 32, 32, 5 +p2.front100.spr = 23,0 +p2.front100.offset = 0,0 +p2.front100.xshear = -3 +p2.front100.facing = -1 +p2.front50.spr = 23,1 +p2.front50.offset = 0,0 +p2.front50.xshear = -3 +p2.front50.facing = -1 +p2.front25.spr = 23,2 +p2.front25.offset = 0,0 +p2.front25.xshear = -3 +p2.front25.facing = -1 +p2.front.spr = 23, 3 +p2.front.offset = 0,0 +p2.front.palfx.sinmul = 128, 128, 128, 15 +p2.front.xshear = -3 +p2.front.facing = -1 +;p2.shift.spr = 23,2 +;p2.shift.offset = 0,0 +;p2.shift.xshear = -3 +;p2.shift.facing = -1 +p2.range.x = -15,460 +p2.scalefill = 1 + +;Player 3 +p3.pos = 595,50 +p3.bg0.spr = 20,0 +p3.bg0.offset = 0,0 +p3.bg0.xshear = 3 +p3.top.spr = 21,0 +p3.top.xshear = 3 +p3.mid.spr = 22, 0 +p3.mid.offset = 0,0 +p3.mid.xshear = 3 +p3.mid.palfx.mul = 200, 200, 200 +p3.mid.palfx.sinmul = 32, 32, 32, 5 +p3.front100.spr = 23,0 +p3.front100.offset = 0,0 +p3.front100.xshear = 3 +p3.front50.spr = 23,1 +p3.front50.offset = 0,0 +p3.front50.xshear = 3 +p3.front25.spr = 23,2 +p3.front25.offset = 0,0 +p3.front25.xshear = 3 +p3.front.spr = 23, 3 +p3.front.offset = 0,0 +p3.front.palfx.sinmul = 128, 128, 128, 15 +p3.front.xshear = 3 +;p3.shift.spr = 23,2 +;p3.shift.offset = 0,0 +;p3.shift.xshear = 3 +p3.range.x = 15,-460 +p3.scalefill = 1 + +;Player 4 +p4.pos = 684,50 +p4.bg0.spr = 20,0 +p4.bg0.offset = 0,0 +p4.bg0.xshear = -3 +p4.bg0.facing = -1 +p4.top.spr = 21,0 +p4.top.facing = -1 +p4.top.xshear = -3 +p4.mid.spr = 22, 0 +p4.mid.offset = 0,0 +p4.mid.facing = -1 +p4.mid.xshear = -3 +p4.mid.palfx.mul = 200, 200, 200 +p4.mid.palfx.sinmul = 32, 32, 32, 5 +p4.front100.spr = 23,0 +p4.front100.offset = 0,0 +p4.front100.xshear = -3 +p4.front100.facing = -1 +p4.front50.spr = 23,1 +p4.front50.offset = 0,0 +p4.front50.xshear = -3 +p4.front50.facing = -1 +p4.front25.spr = 23,2 +p4.front25.offset = 0,0 +p4.front25.xshear = -3 +p4.front25.facing = -1 +p4.front.spr = 23, 3 +p4.front.offset = 0,0 +p4.front.palfx.sinmul = 128, 128, 128, 15 +p4.front.xshear = -3 +p4.front.facing = -1 +;p4.shift.spr = 23,2 +;p4.shift.offset = 0,0 +;p4.shift.xshear = -3 +;p4.shift.facing = -1 +p4.range.x = -15,460 +p4.scalefill = 1 + +;Player 5 +p5.pos = 607,38 +p5.bg0.spr = 20,0 +p5.bg0.offset = 0,0 +p5.bg0.xshear = 3 +p5.top.spr = 21,0 +p5.top.xshear = 3 +p5.mid.spr = 22, 0 +p5.mid.offset = 0,0 +p5.mid.xshear = 3 +p5.mid.palfx.mul = 200, 200, 200 +p5.mid.palfx.sinmul = 32, 32, 32, 5 +p5.front100.spr = 23,0 +p5.front100.offset = 0,0 +p5.front100.xshear = 3 +p5.front50.spr = 23,1 +p5.front50.offset = 0,0 +p5.front50.xshear = 3 +p5.front25.spr = 23,2 +p5.front25.offset = 0,0 +p5.front25.xshear = 3 +p5.front.spr = 23, 3 +p5.front.offset = 0,0 +p5.front.palfx.sinmul = 128, 128, 128, 15 +p5.front.xshear = 3 +;p5.shift.spr = 23,2 +;p5.shift.offset = 0,0 +;p5.shift.xshear = 3 +p5.range.x = 15,-460 +p5.scalefill = 1 + +;Player 6 +p6.pos = 672,38 +p6.bg0.spr = 20,0 +p6.bg0.offset = 0,0 +p6.bg0.xshear = -3 +p6.bg0.facing = -1 +p6.top.spr = 21,0 +p6.top.facing = -1 +p6.top.xshear = -3 +p6.mid.spr = 22, 0 +p6.mid.offset = 0,0 +p6.mid.facing = -1 +p6.mid.xshear = -3 +p6.mid.palfx.mul = 200, 200, 200 +p6.mid.palfx.sinmul = 32, 32, 32, 5 +p6.front100.spr = 23,0 +p6.front100.offset = 0,0 +p6.front100.xshear = -3 +p6.front100.facing = -1 +p6.front50.spr = 23,1 +p6.front50.offset = 0,0 +p6.front50.xshear = -3 +p6.front50.facing = -1 +p6.front25.spr = 23,2 +p6.front25.offset = 0,0 +p6.front25.xshear = -3 +p6.front25.facing = -1 +p6.front.spr = 23, 3 +p6.front.offset = 0,0 +p6.front.palfx.sinmul = 128, 128, 128, 15 +p6.front.xshear = -3 +p6.front.facing = -1 +;p6.shift.spr = 23,2 +;p6.shift.offset = 0,0 +;p6.shift.xshear = -3 +;p6.shift.facing = -1 +p6.range.x = -15,460 +p6.scalefill = 1 + +;Player 7 +p7.pos = 619,26 +p7.bg0.spr = 20,0 +p7.bg0.offset = 0,0 +p7.bg0.xshear = 3 +p7.top.spr = 21,0 +p7.top.xshear = 3 +p7.mid.spr = 22, 0 +p7.mid.offset = 0,0 +p7.mid.xshear = 3 +p7.mid.palfx.mul = 200, 200, 200 +p7.mid.palfx.sinmul = 32, 32, 32, 5 +p7.front100.spr = 23,0 +p7.front100.offset = 0,0 +p7.front100.xshear = 3 +p7.front50.spr = 23,1 +p7.front50.offset = 0,0 +p7.front50.xshear = 3 +p7.front25.spr = 23,2 +p7.front25.offset = 0,0 +p7.front25.xshear = 3 +p7.front.spr = 23, 3 +p7.front.offset = 0,0 +p7.front.palfx.sinmul = 128, 128, 128, 15 +p7.front.xshear = 3 +;p7.shift.spr = 23,2 +;p7.shift.offset = 0,0 +;p7.shift.xshear = 3 +p7.range.x = 15,-460 +p7.scalefill = 1 + +;Player 8 +p8.pos = 660,26 +p8.bg0.spr = 20,0 +p8.bg0.offset = 0,0 +p8.bg0.xshear = -3 +p8.bg0.facing = -1 +p8.top.spr = 21,0 +p8.top.facing = -1 +p8.top.xshear = -3 +p8.mid.spr = 22, 0 +p8.mid.offset = 0,0 +p8.mid.facing = -1 +p8.mid.xshear = -3 +p8.mid.palfx.mul = 200, 200, 200 +p8.mid.palfx.sinmul = 32, 32, 32, 5 +p8.front100.spr = 23,0 +p8.front100.offset = 0,0 +p8.front100.xshear = -3 +p8.front100.facing = -1 +p8.front50.spr = 23,1 +p8.front50.offset = 0,0 +p8.front50.xshear = -3 +p8.front50.facing = -1 +p8.front25.spr = 23,2 +p8.front25.offset = 0,0 +p8.front25.xshear = -3 +p8.front25.facing = -1 +p8.front.spr = 23, 3 +p8.front.offset = 0,0 +p8.front.palfx.sinmul = 128, 128, 128, 15 +p8.front.xshear = -3 +p8.front.facing = -1 +;p8.shift.spr = 23,2 +;p8.shift.offset = 0,0 +;p8.shift.xshear = -3 +;p8.shift.facing = -1 +p8.range.x = -15,460 +p8.scalefill = 1 + + +[Tag Lifebar] +mid.shift = 0 ; makes the shift element also affect mid element (default: 0) +mid.freeze = 0 ; controls mid element freezing during gethit/combo (default: 1) +mid.delay = 0 ; frames before mid element starts decreasing (default: 30) +mid.mult = 1.0 ; moving relation between mid value and life (default: 1.0) +mid.steps = 16 ; mid value decreasing steps (default: 8) + +;Player 1 +p1.pos = 595,46 +p1.bg0.spr = 10,0 +p1.bg0.offset = 0,0 +p1.bg0.xshear = 3 +p1.top.spr = 11,0 +p1.top.xshear = 3 +p1.mid.spr = 12, 0 +p1.mid.offset = 0,0 +p1.mid.xshear = 3 +p1.mid.palfx.mul = 200, 200, 200 +p1.mid.palfx.sinmul = 32, 32, 32, 5 +p1.red.spr = 14,0 +p1.red.offset = 0,0 +p1.red.xshear = 3 +p1.front100.spr = 13,0 +p1.front100.offset = 0,0 +p1.front100.xshear = 3 +p1.front50.spr = 13,1 +p1.front50.offset = 0,0 +p1.front50.xshear = 3 +p1.front25.spr = 13,2 +p1.front25.offset = 0,0 +p1.front25.xshear = 3 +p1.front.spr = 13, 3 +p1.front.offset = 0,0 +p1.front.palfx.sinmul = 128, 128, 128, 15 +p1.front.xshear = 3 +;p1.shift.spr = 13,2 +;p1.shift.offset = 0,0 +;p1.shift.xshear = 3 +p1.range.x = 15,-460 +p1.scalefill = 1 + +;Player 2 +p2.pos = 684,46 +p2.bg0.spr = 10,0 +p2.bg0.offset = 0,0 +p2.bg0.xshear = -3 +p2.bg0.facing = -1 +p2.top.spr = 11,0 +p2.top.facing = -1 +p2.top.xshear = -3 +p2.mid.spr = 12, 0 +p2.mid.offset = 0,0 +p2.mid.facing = -1 +p2.mid.xshear = -3 +p2.mid.palfx.mul = 200, 200, 200 +p2.mid.palfx.sinmul = 32, 32, 32, 5 +p2.red.spr = 14,0 +p2.red.offset = 0,0 +p2.red.xshear = -3 +p2.red.facing = -1 +p2.front100.spr = 13,0 +p2.front100.offset = 0,0 +p2.front100.xshear = -3 +p2.front100.facing = -1 +p2.front50.spr = 13,1 +p2.front50.offset = 0,0 +p2.front50.xshear = -3 +p2.front50.facing = -1 +p2.front25.spr = 13,2 +p2.front25.offset = 0,0 +p2.front25.xshear = -3 +p2.front25.facing = -1 +p2.front.spr = 13, 3 +p2.front.offset = 0,0 +p2.front.palfx.sinmul = 128, 128, 128, 15 +p2.front.xshear = -3 +p2.front.facing = -1 +;p2.shift.spr = 13,2 +;p2.shift.offset = 0,0 +;p2.shift.xshear = -3 +;p2.shift.facing = -1 +p2.range.x = -15,460 +p2.scalefill = 1 + +;Player 3 +p3.pos = 607,34 +p3.bg0.spr = 20,0 +p3.bg0.offset = 0,0 +p3.bg0.xshear = 3 +p3.top.spr = 21,0 +p3.top.xshear = 3 +p3.mid.spr = 22, 0 +p3.mid.offset = 0,0 +p3.mid.xshear = 3 +p3.mid.palfx.mul = 200, 200, 200 +p3.mid.palfx.sinmul = 32, 32, 32, 5 +p3.red.spr = 24,1 +p3.red.offset = 0,0 +p3.red.palfx.sinmul = 64, 64, 64, 60 +p3.red.xshear = 3 +p3.front100.spr = 23,0 +p3.front100.offset = 0,0 +p3.front100.xshear = 3 +p3.front50.spr = 23,1 +p3.front50.offset = 0,0 +p3.front50.xshear = 3 +p3.front25.spr = 23,2 +p3.front25.offset = 0,0 +p3.front25.xshear = 3 +p3.front.spr = 23, 3 +p3.front.offset = 0,0 +p3.front.palfx.sinmul = 128, 128, 128, 15 +p3.front.xshear = 3 +;p3.shift.spr = 23,2 +;p3.shift.offset = 0,0 +;p3.shift.xshear = 3 +p3.range.x = 15,-460 +p3.scalefill = 1 + +;Player 4 +p4.pos = 672,34 +p4.bg0.spr = 20,0 +p4.bg0.offset = 0,0 +p4.bg0.xshear = -3 +p4.bg0.facing = -1 +p4.top.spr = 21,0 +p4.top.facing = -1 +p4.top.xshear = -3 +p4.mid.spr = 22, 0 +p4.mid.offset = 0,0 +p4.mid.facing = -1 +p4.mid.xshear = -3 +p4.mid.palfx.mul = 200, 200, 200 +p4.mid.palfx.sinmul = 32, 32, 32, 5 +p4.red.spr = 24,1 +p4.red.offset = 0,0 +p4.red.xshear = -3 +p4.red.facing = -1 +p4.red.palfx.sinmul = 64, 64, 64, 60 +p4.front100.spr = 23,0 +p4.front100.offset = 0,0 +p4.front100.xshear = -3 +p4.front100.facing = -1 +p4.front50.spr = 23,1 +p4.front50.offset = 0,0 +p4.front50.xshear = -3 +p4.front50.facing = -1 +p4.front25.spr = 23,2 +p4.front25.offset = 0,0 +p4.front25.xshear = -3 +p4.front25.facing = -1 +p4.front.spr = 23, 3 +p4.front.offset = 0,0 +p4.front.palfx.sinmul = 128, 128, 128, 15 +p4.front.xshear = -3 +p4.front.facing = -1 +;p4.shift.spr = 23,2 +;p4.shift.offset = 0,0 +;p4.shift.xshear = -3 +;p4.shift.facing = -1 +p4.range.x = -15,460 +p4.scalefill = 1 + +[Tag_3P Lifebar] +mid.shift = 0 ; makes the shift element also affect mid element (default: 0) +mid.freeze = 0 ; controls mid element freezing during gethit/combo (default: 1) +mid.delay = 0 ; frames before mid element starts decreasing (default: 30) +mid.mult = 1.0 ; moving relation between mid value and life (default: 1.0) +mid.steps = 16 ; mid value decreasing steps (default: 8) + +;Player 1 +p1.pos = 595,50 +p1.bg0.spr = 10,0 +p1.bg0.offset = 0,0 +p1.bg0.xshear = 3 +p1.top.spr = 11,0 +p1.top.xshear = 3 +p1.mid.spr = 12, 0 +p1.mid.offset = 0,0 +p1.mid.xshear = 3 +p1.mid.palfx.mul = 200, 200, 200 +p1.mid.palfx.sinmul = 32, 32, 32, 5 +;p1.red200.spr = 14,0 +;p1.red200.offset = 0,0 +;p1.red200.xshear = 3 +;p1.red200.palfx.sinmul = 128, 128, 128, 5 +p1.red.spr = 14,0 +p1.red.offset = 0,0 +p1.red.xshear = 3 +p1.front100.spr = 13,0 +p1.front100.offset = 0,0 +p1.front100.xshear = 3 +p1.front50.spr = 13,1 +p1.front50.offset = 0,0 +p1.front50.xshear = 3 +p1.front25.spr = 13,2 +p1.front25.offset = 0,0 +p1.front25.xshear = 3 +p1.front.spr = 13, 3 +p1.front.offset = 0,0 +p1.front.palfx.sinmul = 128, 128, 128, 15 +p1.front.xshear = 3 +;p1.shift.spr = 13,2 +;p1.shift.offset = 0,0 +;p1.shift.xshear = 3 +p1.range.x = 15,-460 +p1.scalefill = 1 + +;Player 2 +p2.pos = 684,50 +p2.bg0.spr = 10,0 +p2.bg0.offset = 0,0 +p2.bg0.xshear = -3 +p2.bg0.facing = -1 +p2.top.spr = 11,0 +p2.top.facing = -1 +p2.top.xshear = -3 +p2.mid.spr = 12, 0 +p2.mid.offset = 0,0 +p2.mid.facing = -1 +p2.mid.xshear = -3 +p2.mid.palfx.mul = 200, 200, 200 +p2.mid.palfx.sinmul = 32, 32, 32, 5 +;p2.red200.spr = 14,0 +;p2.red200.offset = 0,0 +;p2.red200.xshear = -3 +;p2.red200.facing = -1 +;p2.red200.palfx.sinmul = 128, 128, 128, 15 +p2.red.spr = 14,0 +p2.red.offset = 0,0 +p2.red.xshear = -3 +p2.red.facing = -1 +p2.front100.spr = 13,0 +p2.front100.offset = 0,0 +p2.front100.xshear = -3 +p2.front100.facing = -1 +p2.front50.spr = 13,1 +p2.front50.offset = 0,0 +p2.front50.xshear = -3 +p2.front50.facing = -1 +p2.front25.spr = 13,2 +p2.front25.offset = 0,0 +p2.front25.xshear = -3 +p2.front25.facing = -1 +p2.front.spr = 13, 3 +p2.front.offset = 0,0 +p2.front.palfx.sinmul = 128, 128, 128, 15 +p2.front.xshear = -3 +p2.front.facing = -1 +;p2.shift.spr = 13,2 +;p2.shift.offset = 0,0 +;p2.shift.xshear = -3 +;p2.shift.facing = -1 +p2.range.x = -15,460 +p2.scalefill = 1 + +;Player 3 +p3.pos = 607,38 +p3.bg0.spr = 20,0 +p3.bg0.offset = 0,0 +p3.bg0.xshear = 3 +p3.top.spr = 21,0 +p3.top.xshear = 3 +p3.mid.spr = 22, 0 +p3.mid.offset = 0,0 +p3.mid.xshear = 3 +p3.mid.palfx.mul = 200, 200, 200 +p3.mid.palfx.sinmul = 32, 32, 32, 5 +p3.red.spr = 24,1 +p3.red.offset = 0,0 +p3.red.xshear = 3 +p3.red.palfx.sinmul = 64, 64, 64, 60 +p3.front100.spr = 23,0 +p3.front100.offset = 0,0 +p3.front100.xshear = 3 +p3.front50.spr = 23,1 +p3.front50.offset = 0,0 +p3.front50.xshear = 3 +p3.front25.spr = 23,2 +p3.front25.offset = 0,0 +p3.front25.xshear = 3 +p3.front.spr = 23, 3 +p3.front.offset = 0,0 +p3.front.palfx.sinmul = 128, 128, 128, 15 +p3.front.xshear = 3 +;p3.shift.spr = 23,2 +;p3.shift.offset = 0,0 +;p3.shift.xshear = 3 +p3.range.x = 15,-460 +p3.scalefill = 1 + +;Player 4 +p4.pos = 672,38 +p4.bg0.spr = 20,0 +p4.bg0.offset = 0,0 +p4.bg0.xshear = -3 +p4.bg0.facing = -1 +p4.top.spr = 21,0 +p4.top.facing = -1 +p4.top.xshear = -3 +p4.mid.spr = 22, 0 +p4.mid.offset = 0,0 +p4.mid.facing = -1 +p4.mid.xshear = -3 +p4.mid.palfx.mul = 200, 200, 200 +p4.mid.palfx.sinmul = 32, 32, 32, 5 +p4.red.palfx.sinmul = 64, 64, 64, 60 +p4.red.spr = 24,1 +p4.red.offset = 0,0 +p4.red.xshear = -3 +p4.red.facing = -1 +p4.front100.spr = 23,0 +p4.front100.offset = 0,0 +p4.front100.xshear = -3 +p4.front100.facing = -1 +p4.front50.spr = 23,1 +p4.front50.offset = 0,0 +p4.front50.xshear = -3 +p4.front50.facing = -1 +p4.front25.spr = 23,2 +p4.front25.offset = 0,0 +p4.front25.xshear = -3 +p4.front25.facing = -1 +p4.front.spr = 23, 3 +p4.front.offset = 0,0 +p4.front.palfx.sinmul = 128, 128, 128, 15 +p4.front.xshear = -3 +p4.front.facing = -1 +;p4.shift.spr = 23,2 +;p4.shift.offset = 0,0 +;p4.shift.xshear = -3 +;p4.shift.facing = -1 +p4.range.x = -15,460 +p4.scalefill = 1 + +;Player 5 +p5.pos = 619,26 +p5.bg0.spr = 20,0 +p5.bg0.offset = 0,0 +p5.bg0.xshear = 3 +p5.top.spr = 21,0 +p5.top.xshear = 3 +p5.mid.spr = 22, 0 +p5.mid.offset = 0,0 +p5.mid.xshear = 3 +p5.mid.palfx.mul = 200, 200, 200 +p5.mid.palfx.sinmul = 32, 32, 32, 5 +p5.red.spr = 24,1 +p5.red.offset = 0,0 +p5.red.xshear = 3 +p5.red.palfx.sinmul = 64, 64, 64, 60 +p5.front100.spr = 23,0 +p5.front100.offset = 0,0 +p5.front100.xshear = 3 +p5.front50.spr = 23,1 +p5.front50.offset = 0,0 +p5.front50.xshear = 3 +p5.front25.spr = 23,2 +p5.front25.offset = 0,0 +p5.front25.xshear = 3 +p5.front.spr = 23, 3 +p5.front.offset = 0,0 +p5.front.palfx.sinmul = 128, 128, 128, 15 +p5.front.xshear = 3 +;p5.shift.spr = 23,2 +;p5.shift.offset = 0,0 +;p5.shift.xshear = 3 +p5.range.x = 15,-460 +p5.scalefill = 1 + +;Player 6 +p6.pos = 660,26 +p6.bg0.spr = 20,0 +p6.bg0.offset = 0,0 +p6.bg0.xshear = -3 +p6.bg0.facing = -1 +p6.top.spr = 21,0 +p6.top.facing = -1 +p6.top.xshear = -3 +p6.mid.spr = 22, 0 +p6.mid.offset = 0,0 +p6.mid.facing = -1 +p6.mid.xshear = -3 +p6.mid.palfx.mul = 200, 200, 200 +p6.mid.palfx.sinmul = 32, 32, 32, 5 +p6.red.palfx.sinmul = 64, 64, 64, 60 +p6.red.spr = 24,1 +p6.red.offset = 0,0 +p6.red.xshear = -3 +p6.red.facing = -1 +p6.front100.spr = 23,0 +p6.front100.offset = 0,0 +p6.front100.xshear = -3 +p6.front100.facing = -1 +p6.front50.spr = 23,1 +p6.front50.offset = 0,0 +p6.front50.xshear = -3 +p6.front50.facing = -1 +p6.front25.spr = 23,2 +p6.front25.offset = 0,0 +p6.front25.xshear = -3 +p6.front25.facing = -1 +p6.front.spr = 23, 3 +p6.front.offset = 0,0 +p6.front.palfx.sinmul = 128, 128, 128, 15 +p6.front.xshear = -3 +p6.front.facing = -1 +;p6.shift.spr = 23,2 +;p6.shift.offset = 0,0 +;p6.shift.xshear = -3 +;p6.shift.facing = -1 +p6.range.x = -15,460 +p6.scalefill = 1 + +[Tag_4P Lifebar] +mid.shift = 0 ; makes the shift element also affect mid element (default: 0) +mid.freeze = 0 ; controls mid element freezing during gethit/combo (default: 1) +mid.delay = 0 ; frames before mid element starts decreasing (default: 30) +mid.mult = 1.0 ; moving relation between mid value and life (default: 1.0) +mid.steps = 16 ; mid value decreasing steps (default: 8) + +;Player 1 +p1.pos = 583,62 +p1.bg0.spr = 20,0 +p1.bg0.offset = 0,0 +p1.bg0.xshear = 3 +p1.top.spr = 21,0 +p1.top.xshear = 3 +p1.mid.spr = 22, 0 +p1.mid.offset = 0,0 +p1.mid.xshear = 3 +p1.mid.palfx.mul = 200, 200, 200 +p1.mid.palfx.sinmul = 32, 32, 32, 5 +p1.red.spr = 24,0 +p1.red.offset = 0,0 +p1.red.xshear = 3 +p1.front100.spr = 23,0 +p1.front100.offset = 0,0 +p1.front100.xshear = 3 +p1.front50.spr = 23,1 +p1.front50.offset = 0,0 +p1.front50.xshear = 3 +p1.front25.spr = 23,2 +p1.front25.offset = 0,0 +p1.front25.xshear = 3 +p1.front.spr = 23, 3 +p1.front.offset = 0,0 +p1.front.palfx.sinmul = 128, 128, 128, 15 +p1.front.xshear = 3 +;p1.shift.spr = 23,2 +;p1.shift.offset = 0,0 +;p1.shift.xshear = 3 +p1.range.x = 15,-460 +p1.scalefill = 1 + +;Player 2 +p2.pos = 696,62 +p2.bg0.spr = 20,0 +p2.bg0.offset = 0,0 +p2.bg0.xshear = -3 +p2.bg0.facing = -1 +p2.top.spr = 21,0 +p2.top.facing = -1 +p2.top.xshear = -3 +p2.mid.spr = 22, 0 +p2.mid.offset = 0,0 +p2.mid.facing = -1 +p2.mid.xshear = -3 +p2.mid.palfx.mul = 200, 200, 200 +p2.mid.palfx.sinmul = 32, 32, 32, 5 +p2.red.spr = 24,0 +p2.red.offset = 0,0 +p2.red.xshear = -3 +p2.red.facing = -1 +p2.front100.spr = 23,0 +p2.front100.offset = 0,0 +p2.front100.xshear = -3 +p2.front100.facing = -1 +p2.front50.spr = 23,1 +p2.front50.offset = 0,0 +p2.front50.xshear = -3 +p2.front50.facing = -1 +p2.front25.spr = 23,2 +p2.front25.offset = 0,0 +p2.front25.xshear = -3 +p2.front25.facing = -1 +p2.front.spr = 23, 3 +p2.front.offset = 0,0 +p2.front.palfx.sinmul = 128, 128, 128, 15 +p2.front.xshear = -3 +p2.front.facing = -1 +;p2.shift.spr = 23,2 +;p2.shift.offset = 0,0 +;p2.shift.xshear = -3 +;p2.shift.facing = -1 +p2.range.x = -15,460 +p2.scalefill = 1 + +;Player 3 +p3.pos = 595,50 +p3.bg0.spr = 20,0 +p3.bg0.offset = 0,0 +p3.bg0.xshear = 3 +p3.top.spr = 21,0 +p3.top.xshear = 3 +p3.mid.spr = 22, 0 +p3.mid.offset = 0,0 +p3.mid.xshear = 3 +p3.mid.palfx.mul = 200, 200, 200 +p3.mid.palfx.sinmul = 32, 32, 32, 5 +p3.red.spr = 24,1 +p3.red.offset = 0,0 +p3.red.xshear = 3 +p3|p4|p5|p6|p7|p8.red.palfx.sinmul = 64, 64, 64, 60 +p3.front100.spr = 23,0 +p3.front100.offset = 0,0 +p3.front100.xshear = 3 +p3.front50.spr = 23,1 +p3.front50.offset = 0,0 +p3.front50.xshear = 3 +p3.front25.spr = 23,2 +p3.front25.offset = 0,0 +p3.front25.xshear = 3 +p3.front.spr = 23, 3 +p3.front.offset = 0,0 +p3.front.palfx.sinmul = 128, 128, 128, 15 +p3.front.xshear = 3 +;p3.shift.spr = 23,2 +;p3.shift.offset = 0,0 +;p3.shift.xshear = 3 +p3.range.x = 15,-460 +p3.scalefill = 1 + +;Player 4 +p4.pos = 684,50 +p4.bg0.spr = 20,0 +p4.bg0.offset = 0,0 +p4.bg0.xshear = -3 +p4.bg0.facing = -1 +p4.top.spr = 21,0 +p4.top.facing = -1 +p4.top.xshear = -3 +p4.mid.spr = 22, 0 +p4.mid.offset = 0,0 +p4.mid.facing = -1 +p4.mid.xshear = -3 +p4.mid.palfx.mul = 200, 200, 200 +p4.mid.palfx.sinmul = 32, 32, 32, 5 +p4.red.spr = 24,1 +p4.red.offset = 0,0 +p4.red.xshear = -3 +p4.red.facing = -1 +p4.front100.spr = 23,0 +p4.front100.offset = 0,0 +p4.front100.xshear = -3 +p4.front100.facing = -1 +p4.front50.spr = 23,1 +p4.front50.offset = 0,0 +p4.front50.xshear = -3 +p4.front50.facing = -1 +p4.front25.spr = 23,2 +p4.front25.offset = 0,0 +p4.front25.xshear = -3 +p4.front25.facing = -1 +p4.front.spr = 23, 3 +p4.front.offset = 0,0 +p4.front.palfx.sinmul = 128, 128, 128, 15 +p4.front.xshear = -3 +p4.front.facing = -1 +;p4.shift.spr = 23,2 +;p4.shift.offset = 0,0 +;p4.shift.xshear = -3 +;p4.shift.facing = -1 +p4.range.x = -15,460 +p4.scalefill = 1 + +;Player 5 +p5.pos = 607,38 +p5.bg0.spr = 20,0 +p5.bg0.offset = 0,0 +p5.bg0.xshear = 3 +p5.top.spr = 21,0 +p5.top.xshear = 3 +p5.mid.spr = 22, 0 +p5.mid.offset = 0,0 +p5.mid.xshear = 3 +p5.mid.palfx.mul = 200, 200, 200 +p5.mid.palfx.sinmul = 32, 32, 32, 5 +p5.red.spr = 24,1 +p5.red.offset = 0,0 +p5.red.xshear = 3 +p5.front100.spr = 23,0 +p5.front100.offset = 0,0 +p5.front100.xshear = 3 +p5.front50.spr = 23,1 +p5.front50.offset = 0,0 +p5.front50.xshear = 3 +p5.front25.spr = 23,2 +p5.front25.offset = 0,0 +p5.front25.xshear = 3 +p5.front.spr = 23, 3 +p5.front.offset = 0,0 +p5.front.palfx.sinmul = 128, 128, 128, 15 +p5.front.xshear = 3 +;p5.shift.spr = 23,2 +;p5.shift.offset = 0,0 +;p5.shift.xshear = 3 +p5.range.x = 15,-460 +p5.scalefill = 1 + +;Player 6 +p6.pos = 672,38 +p6.bg0.spr = 20,0 +p6.bg0.offset = 0,0 +p6.bg0.xshear = -3 +p6.bg0.facing = -1 +p6.top.spr = 21,0 +p6.top.facing = -1 +p6.top.xshear = -3 +p6.mid.spr = 22, 0 +p6.mid.offset = 0,0 +p6.mid.facing = -1 +p6.mid.xshear = -3 +p6.mid.palfx.mul = 200, 200, 200 +p6.mid.palfx.sinmul = 32, 32, 32, 5 +p6.red.spr = 24,1 +p6.red.offset = 0,0 +p6.red.xshear = -3 +p6.red.facing = -1 +p6.front100.spr = 23,0 +p6.front100.offset = 0,0 +p6.front100.xshear = -3 +p6.front100.facing = -1 +p6.front50.spr = 23,1 +p6.front50.offset = 0,0 +p6.front50.xshear = -3 +p6.front50.facing = -1 +p6.front25.spr = 23,2 +p6.front25.offset = 0,0 +p6.front25.xshear = -3 +p6.front25.facing = -1 +p6.front.spr = 23, 3 +p6.front.offset = 0,0 +p6.front.palfx.sinmul = 128, 128, 128, 15 +p6.front.xshear = -3 +p6.front.facing = -1 +;p6.shift.spr = 23,2 +;p6.shift.offset = 0,0 +;p6.shift.xshear = -3 +;p6.shift.facing = -1 +p6.range.x = -15,460 +p6.scalefill = 1 + +;Player 7 +p7.pos = 619,26 +p7.bg0.spr = 20,0 +p7.bg0.offset = 0,0 +p7.bg0.xshear = 3 +p7.top.spr = 21,0 +p7.top.xshear = 3 +p7.mid.spr = 22, 0 +p7.mid.offset = 0,0 +p7.mid.xshear = 3 +p7.mid.palfx.mul = 200, 200, 200 +p7.mid.palfx.sinmul = 32, 32, 32, 5 +p7.red.spr = 24,1 +p7.red.offset = 0,0 +p7.red.xshear = 3 +p7.front100.spr = 23,0 +p7.front100.offset = 0,0 +p7.front100.xshear = 3 +p7.front50.spr = 23,1 +p7.front50.offset = 0,0 +p7.front50.xshear = 3 +p7.front25.spr = 23,2 +p7.front25.offset = 0,0 +p7.front25.xshear = 3 +p7.front.spr = 23, 3 +p7.front.offset = 0,0 +p7.front.palfx.sinmul = 128, 128, 128, 15 +p7.front.xshear = 3 +;p7.shift.spr = 23,2 +;p7.shift.offset = 0,0 +;p7.shift.xshear = 3 +p7.range.x = 15,-460 +p7.scalefill = 1 + +;Player 8 +p8.pos = 660,26 +p8.bg0.spr = 20,0 +p8.bg0.offset = 0,0 +p8.bg0.xshear = -3 +p8.bg0.facing = -1 +p8.top.spr = 21,0 +p8.top.facing = -1 +p8.top.xshear = -3 +p8.mid.spr = 22, 0 +p8.mid.offset = 0,0 +p8.mid.facing = -1 +p8.mid.xshear = -3 +p8.mid.palfx.mul = 200, 200, 200 +p8.mid.palfx.sinmul = 32, 32, 32, 5 +p8.red.spr = 24,1 +p8.red.offset = 0,0 +p8.red.xshear = -3 +p8.red.facing = -1 +p8.front100.spr = 23,0 +p8.front100.offset = 0,0 +p8.front100.xshear = -3 +p8.front100.facing = -1 +p8.front50.spr = 23,1 +p8.front50.offset = 0,0 +p8.front50.xshear = -3 +p8.front50.facing = -1 +p8.front25.spr = 23,2 +p8.front25.offset = 0,0 +p8.front25.xshear = -3 +p8.front25.facing = -1 +p8.front.spr = 23, 3 +p8.front.offset = 0,0 +p8.front.palfx.sinmul = 128, 128, 128, 15 +p8.front.xshear = -3 +p8.front.facing = -1 +;p8.shift.spr = 23,2 +;p8.shift.offset = 0,0 +;p8.shift.xshear = -3 +;p8.shift.facing = -1 +p8.range.x = -15,460 +p8.scalefill = 1 + +[Turns Lifebar] +;Player 1 +p1.pos = 595,40 +p1.bg0.spr = 10,0 +p1.bg0.offset = 0,0 +p1.bg0.xshear = 3 +p1.top.spr = 11,0 +p1.top.xshear = 3 +p1.mid.spr = 12, 0 +p1.mid.offset = 0,0 +p1.mid.xshear = 3 +p1.mid.palfx.mul = 200, 200, 200 +p1.mid.palfx.sinmul = 32, 32, 32, 5 +p1.front100.spr = 13,0 +p1.front100.offset = 0,0 +p1.front100.xshear = 3 +p1.front50.spr = 13,1 +p1.front50.offset = 0,0 +p1.front50.xshear = 3 +p1.front25.spr = 13,2 +p1.front25.offset = 0,0 +p1.front25.xshear = 3 +p1.front.spr = 13, 3 +p1.front.offset = 0,0 +p1.front.palfx.sinmul = 128, 128, 128, 15 +p1.front.xshear = 3 +;p1.shift.spr = 13,2 +;p1.shift.offset = 0,0 +;p1.shift.xshear = 3 +p1.range.x = 15,-460 +p1.scalefill = 1 + +;Player 2 +p2.pos = 684,40 +p2.bg0.spr = 10,0 +p2.bg0.offset = 0,0 +p2.bg0.xshear = -3 +p2.bg0.facing = -1 +p2.top.spr = 11,0 +p2.top.facing = -1 +p2.top.xshear = -3 +p2.mid.spr = 12, 0 +p2.mid.offset = 0,0 +p2.mid.facing = -1 +p2.mid.xshear = -3 +p2.mid.palfx.mul = 200, 200, 200 +p2.mid.palfx.sinmul = 32, 32, 32, 5 +p2.front100.spr = 13,0 +p2.front100.offset = 0,0 +p2.front100.xshear = -3 +p2.front100.facing = -1 +p2.front50.spr = 13,1 +p2.front50.offset = 0,0 +p2.front50.xshear = -3 +p2.front50.facing = -1 +p2.front25.spr = 13,2 +p2.front25.offset = 0,0 +p2.front25.xshear = -3 +p2.front25.facing = -1 +p2.front.spr = 13, 3 +p2.front.offset = 0,0 +p2.front.palfx.sinmul = 128, 128, 128, 15 +p2.front.xshear = -3 +p2.front.facing = -1 +;p2.shift.spr = 13,2 +;p2.shift.offset = 0,0 +;p2.shift.xshear = -3 +;p2.shift.facing = -1 +p2.range.x = -15,460 +p2.scalefill = 1 + +;----------------------------------------------------------- +[Powerbar] +;Player 1 +p1.pos = 568,83 +p1.bg0.spr = 40,0 +p1.bg0.offset = 0,3 +p1.bg1.spr = 41,0 +;p1.mid.spr = 42,0 +p1.front.spr = 43,0 +p1.front.offset = -4,4 +p1.front.palfx.mul = 178, 178, 178 +p1.range.x = -4, -206 + +; Multiple Front Elements can be added depending on the amount of power, including maximum power + +p1.front500.spr = 43, 0 +p1.front500.offset = -4,4 +p1.front500.palfx.mul = 178, 178, 178 +p1.front500.palfx.sinmul = 20, 20, 20, 90 + +p1.front1000.spr = 43, 0 +p1.front1000.offset = -4,4 +p1.front1000.palfx.mul = 0, 122, 255 +p1.front1000.palfx.sinmul = 20, 20, 20, 60 + +p1.front2000.spr = 43, 0 +p1.front2000.offset = -4,4 +p1.front2000.palfx.mul = 254, 254, 55 +p1.front2000.palfx.sinmul = 32, 32, 32, 50 + +p1.front3000.spr = 43, 0 +p1.front3000.offset = -4,4 +p1.front3000.palfx.mul = 255, 55, 55 +p1.front3000.palfx.sinmul = 32, 32, 32, 45 + +p1.front4000.spr = 43, 0 +p1.front4000.offset = -4,4 +p1.front4000.palfx.mul = 0, 250, 0 +p1.front4000.palfx.sinmul = 32, 32, 32, 40 + +p1.front5000.spr = 43, 0 +p1.front5000.offset = -4,4 +p1.front5000.palfx.mul = 256, 155, 64 +p1.front5000.palfx.sinmul = 32, 32, 32, 35 + +p1.front6000.spr = 43, 0 +p1.front6000.offset = -4,4 +p1.front6000.palfx.mul = 75, 250, 150 +p1.front6000.palfx.sinmul = 32, 32, 32, 30 + +p1.front7000.spr = 43, 0 +p1.front7000.offset = -4,4 +p1.front7000.palfx.mul = 0, 200, 225 +p1.front7000.palfx.sinmul = 32, 32, 32, 25 + +p1.front8000.spr = 43, 0 +p1.front8000.offset = -4,4 +p1.front8000.palfx.mul = 200, 78, 240 +p1.front8000.palfx.sinmul = 32, 32, 32, 20 + +p1.front9000.spr = 43, 0 +p1.front9000.offset = -4,4 +p1.front9000.palfx.mul = 255, 32, 135 +p1.front9000.palfx.sinmul = 32, 32, 32, 15 + +p1.front10000.spr = 43, 0 +p1.front10000.offset = -4,4 +p1.front10000.palfx.mul = 236, 236, 236 +p1.front10000.palfx.sinmul = 20, 20, 20, 10 + +p1.frontMax.spr = 44, 0 +p1.frontMax.offset = -4,4 +p1.frontMax.palfx.sinmul = 30, 30, 30, 10 + +; Multiple Counter elements can be added depending on the level of the bar, including maximum power + +p1.counterMax.text = M +p1.counterMax.offset = -241,31 +p1.counterMax.font = 4, 0, 0 +p1.counterMax.palfx.mul = 226, 226, 226 +p1.counterMax.palfx.sinmul = 30, 30, 30, 10 + +p1.counter10000.offset = -241,31 +p1.counter10000.font = 4, 0, 0 +p1.counter10000.palfx.mul = 226, 226, 226 +p1.counter10000.palfx.sinmul = 30, 30, 30, 10 + +p1.counter9000.offset = -241,31 +p1.counter9000.font = 4, 0, 0 +p1.counter9000.palfx.mul = 255, 32, 135 + +p1.counter8000.offset = -241,31 +p1.counter8000.font = 4, 0, 0 +p1.counter8000.palfx.mul = 200, 78, 240 + +p1.counter7000.offset = -241,31 +p1.counter7000.font = 4, 0, 0 +p1.counter7000.palfx.mul = 102, 250, 250 + +p1.counter6000.offset = -241,31 +p1.counter6000.font = 4, 0, 0 +p1.counter6000.palfx.mul = 0, 204, 153 + +p1.counter5000.offset = -241,31 +p1.counter5000.font = 4, 0, 0 +p1.counter5000.palfx.mul = 255, 153, 0 + +p1.counter4000.offset = -241,31 +p1.counter4000.font = 4, 0, 0 +p1.counter4000.palfx.mul = 102, 255, 51 + +p1.counter3000.offset = -241,31 +p1.counter3000.font = 4, 0, 0 +p1.counter3000.palfx.mul = 255, 70, 70 + +p1.counter2000.offset = -241,31 +p1.counter2000.font = 4, 0, 0 +p1.counter2000.palfx.mul = 255, 255, 51 + +p1.counter1000.offset = -241,31 +p1.counter1000.font = 4, 0, 0 +p1.counter1000.palfx.mul = 0, 153, 255 + +p1.counter.palfx.mul = 125, 125, 125 +p1.counter.offset = -241,31 +p1.counter.font = 4, 0, 0 +p1.levelbars = 1 + +;Player 2 +p2.pos = 712,83 +p2.bg0.spr = 40,0 +p2.bg0.offset = 0,3 +p2.bg0.facing = -1 +p2.bg1.spr = 41,0 +p2.bg1.facing = -1 +;p2.mid.spr = 42,0 +;p2.mid.facing = -1 +p2.front.spr = 43,0 +p2.front.palfx.mul = 178, 178, 178 +p2.front.offset = 4,4 +p2.front.facing = -1 +p2.range.x = 4,206 + +; Multiple Front Elements can be added depending on the amount of power, including maximum power + +p2.front500.spr = 43, 0 +p2.front500.offset = 4,4 +p2.front500.palfx.mul = 178, 178, 178 +p2.front500.palfx.sinmul = 20, 20, 20, 90 +p2.front500.facing = -1 + +p2.front1000.spr = 43, 0 +p2.front1000.offset = 4,4 +p2.front1000.palfx.mul = 0, 122, 255 +p2.front1000.palfx.sinmul = 20, 20, 20, 60 +p2.front1000.facing = -1 + +p2.front2000.spr = 43, 0 +p2.front2000.offset = 4,4 +p2.front2000.palfx.mul = 254, 254, 55 +p2.front2000.palfx.sinmul = 32, 32, 32, 50 +p2.front2000.facing = -1 + +p2.front3000.spr = 43, 0 +p2.front3000.offset = 4,4 +p2.front3000.palfx.mul = 255, 55, 55 +p2.front3000.palfx.sinmul = 32, 32, 32, 45 +p2.front3000.facing = -1 + +p2.front4000.spr = 43, 0 +p2.front4000.offset = 4,4 +p2.front4000.palfx.mul = 0, 250, 0 +p2.front4000.palfx.sinmul = 32, 32, 32, 40 +p2.front4000.facing = -1 + +p2.front5000.spr = 43, 0 +p2.front5000.offset = 4,4 +p2.front5000.palfx.mul = 256, 155, 64 +p2.front5000.palfx.sinmul = 32, 32, 32, 35 +p2.front5000.facing = -1 + +p2.front6000.spr = 43, 0 +p2.front6000.offset = 4,4 +p2.front6000.palfx.mul = 75, 250, 150 +p2.front6000.palfx.sinmul = 32, 32, 32, 30 +p2.front6000.facing = -1 + +p2.front7000.spr = 43, 0 +p2.front7000.offset = 4,4 +p2.front7000.palfx.mul = 0, 200, 225 +p2.front7000.palfx.sinmul = 32, 32, 32, 25 +p2.front7000.facing = -1 + +p2.front8000.spr = 43, 0 +p2.front8000.offset = 4,4 +p2.front8000.palfx.mul = 200, 78, 240 +p2.front8000.palfx.sinmul = 32, 32, 32, 20 +p2.front8000.facing = -1 + +p2.front9000.spr = 43, 0 +p2.front9000.offset = 4,4 +p2.front9000.palfx.mul = 255, 32, 135 +p2.front9000.palfx.sinmul = 32, 32, 32, 15 +p2.front9000.facing = -1 + +p2.front10000.spr = 43, 0 +p2.front10000.offset = 4,4 +p2.front10000.palfx.mul = 236, 236, 236 +p2.front10000.palfx.sinmul = 20, 20, 20, 10 +p2.front10000.facing = -1 + +p2.frontMax.spr = 44, 0 +p2.frontMax.offset = 208,4 +p2.frontMax.palfx.sinmul = 30, 30, 30, 10 +p2.frontMax.facing = 1 + +; Multiple Counter elements can be added depending on the level of the bar, including maximum power + +p2.counterMax.text = M +p2.counterMax.offset = 241,31 +p2.counterMax.font = 4, 0, 0 +p2.counterMax.palfx.mul = 226, 226, 226 +p2.counterMax.palfx.sinmul = 30, 30, 30, 10 + +p2.counter10000.offset = 243,31 +p2.counter10000.font = 4, 0, 0 +p2.counter10000.palfx.mul = 226, 226, 226 +p2.counter10000.palfx.sinmul = 30, 30, 30, 10 + +p2.counter9000.offset = 243,31 +p2.counter9000.font = 4, 0, 0 +p2.counter9000.palfx.mul = 255, 32, 135 + +p2.counter8000.offset = 243,31 +p2.counter8000.font = 4, 0, 0 +p2.counter8000.palfx.mul = 200, 78, 240 + +p2.counter7000.offset = 243,31 +p2.counter7000.font = 4, 0, 0 +p2.counter7000.palfx.mul = 102, 250, 250 + +p2.counter6000.offset = 243,31 +p2.counter6000.font = 4, 0, 0 +p2.counter6000.palfx.mul = 0, 204, 153 + +p2.counter5000.offset = 243,31 +p2.counter5000.font = 4, 0, 0 +p2.counter5000.palfx.mul = 255, 153, 0 + +p2.counter4000.offset = 243,31 +p2.counter4000.font = 4, 0, 0 +p2.counter4000.palfx.mul = 102, 255, 51 + +p2.counter3000.offset = 243,31 +p2.counter3000.font = 4, 0, 0 +p2.counter3000.palfx.mul = 255, 70, 70 + +p2.counter2000.offset = 243,31 +p2.counter2000.font = 4, 0, 0 +p2.counter2000.palfx.mul = 255, 255, 51 + +p2.counter1000.offset = 243,31 +p2.counter1000.font = 4, 0, 0 +p2.counter1000.palfx.mul = 0, 153, 255 + +p2.counter.offset = 243,31 +p2.counter.font = 4, 0, 0 +p2.counter.palfx.mul = 125, 125, 125 +p2.levelbars = 1 + +; --level sounds--- +level1.snd = 21,0 +level2.snd = 21,0 +level3.snd = 21,0 +level4.snd = 21,0 +level5.snd = 21,0 +level6.snd = 21,0 +level7.snd = 21,0 +level8.snd = 21,0 +level9.snd = 21,0 +level10.snd = 21,0 +levelMax.snd = 21, 1 +;================================================================================================== + +[Guardbar] +;Player 1 +p1.pos = 16, 16 +p1.top.spr = 91, 0 +p1.top.layerno = 0 +p1.bg1.spr = 90, 0 +p1.bg1.offset = -3,5 +p1.bg1.layerno = 0 +p1.front.spr = 92, 0 +p1.front.offset = -4,5 +p1.front.layerno = 0 +p1.range.y = 104, 4 +p1.warn.range = 0, 0 +p1.warn.spr = 93, 0 +p1.warn.palfx.sinadd = 128, 128, 128, 5 +p1.warn.palfx.mul = 256, 128, 128 +p1.warn.palfx.sinmul = 0, 128, 128, 5 +p1.warn.offset = 3,3 +p1.warn.scale = 2,2 +p1.warn.layerno = 1 + +;Player 2 +p2.pos = 1264, 16 +p2.top.spr = 91, 0 +p2.top.layerno = 0 +p2.top.facing = -1 +p2.bg1.spr = 90, 0 +p2.bg1.offset = 4,5 +p2.bg1.layerno = 0 +p2.bg1.facing = -1 +p2.front.spr = 92, 0 +p2.front.offset = 4,5 +p2.front.layerno = 0 +p2.front.facing = -1 +p2.range.y = 102, 4 +p2.warn.range = 0, 0 +p2.warn.spr = 93, 0 +p2.warn.palfx.sinadd = 128, 128, 128, 5 +p2.warn.palfx.mul = 256, 128, 128 +p2.warn.palfx.sinmul = 0, 128, 128, 5 +p2.warn.offset = 16,3 +p2.warn.scale = 2,2 +p2.warn.layerno = 1 + +[Simul Guardbar] +[Simul_3P Guardbar] +[Simul_4P Guardbar] +;Disabled in these modes +[Tag Guardbar] +;Player 1 +p1.pos = 16, 16 +p1.top.spr = 91, 0 +p1.top.layerno = 0 +p1.bg1.spr = 90, 0 +p1.bg1.offset = -3,5 +p1.bg1.layerno = 0 +p1.front.spr = 92, 0 +p1.front.offset = -4,5 +p1.front.layerno = 0 +p1.range.y = 103, 4 +p1.warn.range = 0, 0 +p1.warn.spr = 93, 0 +p1.warn.palfx.sinadd = 128, 128, 128, 5 +p1.warn.palfx.mul = 256, 128, 128 +p1.warn.palfx.sinmul = 0, 128, 128, 5 +p1.warn.offset = 3,3 +p1.warn.scale = 2,2 +p1.warn.layerno = 1 + +;Player 2 +p2.pos = 1264, 16 +p2.top.spr = 91, 0 +p2.top.layerno = 0 +p2.top.facing = -1 +p2.bg1.spr = 90, 0 +p2.bg1.offset = 4,5 +p2.bg1.layerno = 0 +p2.bg1.facing = -1 +p2.front.spr = 92, 0 +p2.front.offset = 4,5 +p2.front.layerno = 0 +p2.front.facing = -1 +p2.range.y = 103, 4 +p2.warn.range = 0, 0 +p2.warn.spr = 93, 0 +p2.warn.palfx.sinadd = 128, 128, 128, 5 +p2.warn.palfx.mul = 256, 128, 128 +p2.warn.palfx.sinmul = 0, 128, 128, 5 +p2.warn.offset = 16,3 +p2.warn.scale = 2,2 +p2.warn.layerno = 1 + +[Tag_3P Guardbar] +;Player 1 +p1.pos = 16, 16 +p1.top.spr = 91, 0 +p1.top.layerno = 0 +p1.bg1.spr = 90, 0 +p1.bg1.offset = -3,5 +p1.bg1.layerno = 0 +p1.front.spr = 92, 0 +p1.front.offset = -4,5 +p1.front.layerno = 0 +p1.range.y = 103, 4 +p1.warn.range = 0, 0 +p1.warn.spr = 93, 0 +p1.warn.palfx.sinadd = 128, 128, 128, 5 +p1.warn.palfx.mul = 256, 128, 128 +p1.warn.palfx.sinmul = 0, 128, 128, 5 +p1.warn.offset = 3,3 +p1.warn.scale = 2,2 +p1.warn.layerno = 1 + +;Player 2 +p2.pos = 1264, 16 +p2.top.spr = 91, 0 +p2.top.layerno = 0 +p2.top.facing = -1 +p2.bg1.spr = 90, 0 +p2.bg1.offset = 4,5 +p2.bg1.layerno = 0 +p2.bg1.facing = -1 +p2.front.spr = 92, 0 +p2.front.offset = 4,5 +p2.front.layerno = 0 +p2.front.facing = -1 +p2.range.y = 103, 4 +p2.warn.range = 0, 0 +p2.warn.spr = 93, 0 +p2.warn.palfx.sinadd = 128, 128, 128, 5 +p2.warn.palfx.mul = 256, 128, 128 +p2.warn.palfx.sinmul = 0, 128, 128, 5 +p2.warn.offset = 16,3 +p2.warn.scale = 2,2 +p2.warn.layerno = 1 + +[Tag_4P Guardbar] +;Player 1 +p1.pos = 16, 16 +p1.top.spr = 91, 0 +p1.top.layerno = 0 +p1.bg1.spr = 90, 0 +p1.bg1.offset = -3,5 +p1.bg1.layerno = 0 +p1.front.spr = 92, 0 +p1.front.offset = -4,5 +p1.front.layerno = 0 +p1.range.y = 103, 4 +p1.warn.range = 0, 0 +p1.warn.spr = 93, 0 +p1.warn.palfx.sinadd = 128, 128, 128, 5 +p1.warn.palfx.mul = 256, 128, 128 +p1.warn.palfx.sinmul = 0, 128, 128, 5 +p1.warn.offset = 3,3 +p1.warn.scale = 2,2 +p1.warn.layerno = 1 + +;Player 2 +p2.pos = 1264, 16 +p2.top.spr = 91, 0 +p2.top.layerno = 0 +p2.top.facing = -1 +p2.bg1.spr = 90, 0 +p2.bg1.offset = 4,5 +p2.bg1.layerno = 0 +p2.bg1.facing = -1 +p2.front.spr = 92, 0 +p2.front.offset = 4,5 +p2.front.layerno = 0 +p2.front.facing = -1 +p2.range.y = 103, 4 +p2.warn.range = 0, 0 +p2.warn.spr = 93, 0 +p2.warn.palfx.sinadd = 128, 128, 128, 5 +p2.warn.palfx.mul = 256, 128, 128 +p2.warn.palfx.sinmul = 0, 128, 128, 5 +p2.warn.offset = 16,3 +p2.warn.scale = 2,2 +p2.warn.layerno = 1 + + +;----------------------------------------------------------- +[Stunbar] +;Player 1 +p1.pos = 123, 3 +p1.top.spr = 96, 0 +p1.top.layerno = 0 +p1.bg1.spr = 95, 0 +p1.bg1.offset = -4, 4 +p1.bg1.layerno = 0 +p1.front.spr = 97, 0 +p1.front.offset = -3, 3 +p1.front.layerno = 0 +p1.warn.range = 0, 0 +p1.warn.spr = 98, 0 +p1.warn.palfx.sinadd = 128, 128, 128, 5 +p1.warn.palfx.mul = 256, 128, 128 +p1.warn.palfx.sinmul = 0, 128, 128, 5 +p1.warn.offset = -15, 0 +p1.warn.layerno = 1 +p1.warn.scale = 2,2 +p1.range.x = -103, -3 + +;Player 2 +p2.pos = 1157, 3 +p2.top.spr = 96, 0 +p2.top.layerno = 0 +p2.top.facing = -1 +p2.bg1.spr = 95, 0 +p2.bg1.offset = 4, 4 +p2.bg1.layerno = 0 +p2.bg1.facing = -1 +p2.front.spr = 97, 0 +p2.front.offset = 4, 3 +p2.front.layerno = 0 +p2.front.facing = -1 +p2.warn.range = 0, 0 +p2.warn.spr = 98, 0 +p2.warn.palfx.sinadd = 128, 128, 128, 5 +p2.warn.palfx.mul = 256, 128, 128 +p2.warn.palfx.sinmul = 0, 128, 128, 5 +p2.warn.offset = 93, 0 +p2.warn.layerno = 1 +p2.warn.scale = 2,2 +p2.range.x = 105, 5 + +[Simul Stunbar] +[Simul_3P Stunbar] +[Simul_4P Stunbar] +;Disabled in these modes +[Tag Stunbar] +;Player 1 +p1.pos = 123, 3 +p1.top.spr = 96, 0 +p1.top.layerno = 0 +p1.bg1.spr = 95, 0 +p1.bg1.offset = -4, 4 +p1.bg1.layerno = 0 +p1.front.spr = 97, 0 +p1.front.offset = -3, 3 +p1.front.layerno = 0 +p1.warn.range = 0, 0 +p1.warn.spr = 98, 0 +p1.warn.palfx.sinadd = 128, 128, 128, 5 +p1.warn.palfx.mul = 256, 128, 128 +p1.warn.palfx.sinmul = 0, 128, 128, 5 +p1.warn.offset = -15, 0 +p1.warn.layerno = 1 +p1.warn.scale = 2,2 +p1.range.x = -103, -3 + +;Player 2 +p2.pos = 1157, 3 +p2.top.spr = 96, 0 +p2.top.layerno = 0 +p2.top.facing = -1 +p2.bg1.spr = 95, 0 +p2.bg1.offset = 4, 4 +p2.bg1.layerno = 0 +p2.bg1.facing = -1 +p2.front.spr = 97, 0 +p2.front.offset = 4, 3 +p2.front.layerno = 0 +p2.front.facing = -1 +p2.warn.range = 0, 0 +p2.warn.spr = 98, 0 +p2.warn.palfx.sinadd = 128, 128, 128, 5 +p2.warn.palfx.mul = 256, 128, 128 +p2.warn.palfx.sinmul = 0, 128, 128, 5 +p2.warn.offset = 93, 0 +p2.warn.layerno = 1 +p2.warn.scale = 2,2 +p2.range.x = 105, 5 + +[Tag_3P Stunbar] +;Player 1 +p1.pos = 123, 3 +p1.top.spr = 96, 0 +p1.top.layerno = 0 +p1.bg1.spr = 95, 0 +p1.bg1.offset = -4, 4 +p1.bg1.layerno = 0 +p1.front.spr = 97, 0 +p1.front.offset = -3, 3 +p1.front.layerno = 0 +p1.warn.range = 0, 0 +p1.warn.spr = 98, 0 +p1.warn.palfx.sinadd = 128, 128, 128, 5 +p1.warn.palfx.mul = 256, 128, 128 +p1.warn.palfx.sinmul = 0, 128, 128, 5 +p1.warn.offset = -15, 0 +p1.warn.layerno = 1 +p1.warn.scale = 2,2 +p1.range.x = -103, -3 + +;Player 2 +p2.pos = 1157, 3 +p2.top.spr = 96, 0 +p2.top.layerno = 0 +p2.top.facing = -1 +p2.bg1.spr = 95, 0 +p2.bg1.offset = 4, 4 +p2.bg1.layerno = 0 +p2.bg1.facing = -1 +p2.front.spr = 97, 0 +p2.front.offset = 4, 3 +p2.front.layerno = 0 +p2.front.facing = -1 +p2.warn.range = 0, 0 +p2.warn.spr = 98, 0 +p2.warn.palfx.sinadd = 128, 128, 128, 5 +p2.warn.palfx.mul = 256, 128, 128 +p2.warn.palfx.sinmul = 0, 128, 128, 5 +p2.warn.offset = 93, 0 +p2.warn.layerno = 1 +p2.warn.scale = 2,2 +p2.range.x = 105, 5 + +[Tag_4P Stunbar] +;Player 1 +p1.pos = 123, 3 +p1.top.spr = 96, 0 +p1.top.layerno = 0 +p1.bg1.spr = 95, 0 +p1.bg1.offset = -4, 4 +p1.bg1.layerno = 0 +p1.front.spr = 97, 0 +p1.front.offset = -3, 3 +p1.front.layerno = 0 +p1.warn.range = 0, 0 +p1.warn.spr = 98, 0 +p1.warn.palfx.sinadd = 128, 128, 128, 5 +p1.warn.palfx.mul = 256, 128, 128 +p1.warn.palfx.sinmul = 0, 128, 128, 5 +p1.warn.offset = -15, 0 +p1.warn.layerno = 1 +p1.warn.scale = 2,2 +p1.range.x = -103, -3 + +;Player 2 +p2.pos = 1157, 3 +p2.top.spr = 96, 0 +p2.top.layerno = 0 +p2.top.facing = -1 +p2.bg1.spr = 95, 0 +p2.bg1.offset = 4, 4 +p2.bg1.layerno = 0 +p2.bg1.facing = -1 +p2.front.spr = 97, 0 +p2.front.offset = 4, 3 +p2.front.layerno = 0 +p2.front.facing = -1 +p2.warn.range = 0, 0 +p2.warn.spr = 98, 0 +p2.warn.palfx.sinadd = 128, 128, 128, 5 +p2.warn.palfx.mul = 256, 128, 128 +p2.warn.palfx.sinmul = 0, 128, 128, 5 +p2.warn.offset = 93, 0 +p2.warn.layerno = 1 +p2.warn.scale = 2,2 +p2.range.x = 105, 5 + + + +;----------------------------------------------------------- +[Face] +;Player 1 +p1.pos = 20,20 +p1.bg0.spr = 50,0 +p1.bg1.spr = 51,0 +p1.face.spr = 9000,0 +p1.face.facing = 1 +p1.face.offset = 0,0 +;Player 2 +p2.pos = 1260,20 +p2.bg0.spr = 50,0 +p2.bg0.facing = -1 +p2.bg1.spr = 51,0 +p2.bg1.facing = -1 +p2.face.spr = 9000,0 +p2.face.facing = -1 +p2.face.offset = 0,0 + +[Simul Face] +;Player 1 +p1.pos = 20,20 +p1.bg0.spr = 50,0 +p1.bg1.spr = 51,0 +p1.face.spr = 9000,0 +p1.face.facing = 1 +p1.face.offset = 0,0 +;Player 2 +p2.pos = 1260,20 +p2.bg0.spr = 50,0 +p2.bg0.facing = -1 +p2.bg1.spr = 51,0 +p2.bg1.facing = -1 +p2.face.spr = 9000,0 +p2.face.facing = -1 +p2.face.offset = 0,0 +;Player 3 +p3.pos = 144,84 +p3.bg0.spr = 70,0 +p3.bg1.spr = 71 +p3.face.spr = 9000,0 +p3.face.scale = 0.35,0.35 +p3.face.facing = 1 +;Player 4 +p4.pos = 1136,84 +p4.bg0.spr = 70,0 +p4.bg0.facing = -1 +p4.bg1.spr = 71,0 +p4.bg1.facing = -1 +p4.face.spr = 9000,0 +p4.face.scale = 0.35,0.35 +p4.face.facing = -1 +;Player 5 +p5.pos = 194,84 +p5.bg0.spr = 70,0 +p5.bg1.spr = 71,0 +p5.face.spr = 9000,0 +p5.face.scale = 0.35,0.35 +p5.face.facing = 1 +;Player 6 +p6.pos = 1086,84 +p6.bg0.spr = 70,0 +p6.bg0.facing = -1 +p6.bg1.spr = 71,0 +p6.bg1.facing = -1 +p6.face.spr = 9000,0 +p6.face.scale = 0.35,0.35 +p6.face.facing = -1 +;Player 7 +p7.pos = 244,84 +p7.bg0.spr = 70,0 +p7.bg1.spr = 71,0 +p7.face.spr = 9000,0 +p7.face.scale = 0.35,0.35 +p7.face.facing = 1 +;Player 8 +p8.pos = 1036,84 +p8.bg0.spr = 70,0 +p8.bg0.facing = -1 +p8.bg1.spr = 71,0 +p8.bg1.facing = -1 +p8.face.spr = 9000,0 +p8.face.scale = 0.35,0.35 +p8.face.facing = -1 + +[Tag Face] +;Player 1 +p1.pos = 20,20 +p1.bg0.spr = 50,0 +p1.bg1.spr = 51,0 +p1.face.spr = 9000,0 +p1.face.facing = 1 +;Player 2 +p2.pos = 1260,20 +p2.bg0.spr = 50,0 +p2.bg0.facing = -1 +p2.bg1.spr = 51,0 +p2.bg1.facing = -1 +p2.face.spr = 9000,0 +p2.face.facing = -1 +;Player 3 +p3.pos = 144,84 +p3.bg0.spr = 70,0 +p3.bg1.spr = 71,0 +p3.ko.spr = 72,0 +p3.face.spr = 9000,0 +p3.face.scale = 0.35,0.35 +p3.face.facing = 1 +;Player 4 +p4.pos = 1136,84 +p4.bg0.spr = 70,0 +p4.bg0.facing = -1 +p4.bg1.spr = 71,0 +p4.bg1.facing = -1 +p4.ko.spr = 72,0 +p4.ko.facing = -1 +p4.face.spr = 9000,0 +p4.face.scale = 0.35,0.35 +p4.face.facing = -1 +;Player 5 +p5.pos = 194,84 +p5.bg0.spr = 70,0 +p5.bg1.spr = 71,0 +p5.ko.spr = 72,0 +p5.face.spr = 9000,0 +p5.face.scale = 0.35,0.35 +p5.face.facing = 1 +;Player 6 +p6.pos = 1086,84 +p6.bg0.spr = 70,0 +p6.bg0.facing = -1 +p6.bg1.spr = 71,0 +p6.bg1.facing = -1 +p6.ko.spr = 72,0 +p6.ko.facing = -1 +p6.face.spr = 9000,0 +p6.face.scale = 0.35,0.35 +p6.face.facing = -1 +;Player 7 +p7.pos = 244,84 +p7.bg0.spr = 70,0 +p7.bg1.spr = 71,0 +p7.ko.spr = 72,0 +p7.face.spr = 9000,0 +p7.face.scale = 0.35,0.35 +p7.face.facing = 1 +;Player 8 +p8.pos = 1036,84 +p8.bg0.spr = 70,0 +p8.bg0.facing = -1 +p8.bg1.spr = 71,0 +p8.bg1.facing = -1 +p8.ko.spr = 72,0 +p8.ko.facing = -1 +p8.face.spr = 9000,0 +p8.face.scale = 0.35,0.35 +p8.face.facing = -1 + +[Turns Face] +;Player 1 +p1.pos = 20,20 +p1.bg0.spr = 50,0 +p1.bg1.spr = 51,0 +p1.face.spr = 9000,0 +p1.face.facing = 1 +;Player 1's teammates +p1.teammate.pos = 144,84 +p1.teammate.spacing = 50,0 +p1.teammate.bg0.spr = 70,0 +p1.teammate.bg1.spr = 71,0 +p1.teammate.ko.spr = 72,0 +p1.teammate.face.spr = 9000,0 +p1.teammate.face.scale = 0.35,0.35 +p1.teammate.face.facing = 1 +;Player 2 +p2.pos = 1260,20 +p2.bg0.spr = 50,0 +p2.bg0.facing = -1 +p2.bg1.spr = 51,0 +p2.bg1.facing = -1 +p2.face.spr = 9000,0 +p2.face.facing = -1 +;Player 2's teammates +p2.teammate.pos = 1136,84 +p2.teammate.spacing = -50,0 +p2.teammate.bg0.spr = 70,0 +p2.teammate.bg0.facing = -1 +p2.teammate.bg1.spr = 71,0 +p2.teammate.bg1.facing = -1 +p2.teammate.ko.spr = 72,0 +p2.teammate.ko.facing = -1 +p2.teammate.face.spr = 9000,0 +p2.teammate.face.scale = 0.35,0.35 +p2.teammate.face.facing = -1 + +;----------------------------------------------------------- +[Name] + +;Player 1 +p1.pos = 13,145 +p1.name.scale = 1,1 +;p1.bg. = +p1.name.font = 3,0, 1 + +;Player 2 +p2.name.scale = 1,1 +p2.pos = 1267,145 +;p2.bg. = +p2.name.font = 3,0, -1 + +[Simul Name] +leaderontop = 1 ; This allows the names to render from top to bottom. + +;Player 1 +p1.pos = 13,145 +;p1.bg. = +p1.name.font = 3,0, 1 + +;Player 2 +p2.pos = 1267,145 +;p2.bg. = +p2.name.font = 3,0, -1 + +;Player 3 +p3.pos = 28,165 +;p3.bg. = +p3.name.font = 3,0, 1 +p3.name.scale = 1,1 +p3.name.palfx.mul = 178, 178, 178 + +;Player 4 +p4.pos = 1252,165 +;p4.bg. = +p4.name.font = 3,0, -1 +p4.name.scale = 1,1 +p4.name.palfx.mul = 178, 178, 178 + + +[Simul_3P Name] +leaderontop = 1 + +;Player 1 +p1.pos = 13,145 +;p1.bg. = +p1.name.font = 3,0, 1 +p1.name.layerno = 0 + +;Player 2 +p2.pos = 1267,145 +;p2.bg. = +p2.name.font = 3,0, -1 + +;Player 3 +p3.pos = 28, 160 +;p3.bg. = +p3.name.font = 3,0, 1 +p3.name.scale = 0.8,0.8 +p3.name.palfx.mul = 178, 178, 178 +p3.name.layerno = 0 + +;Player 4 +p4.pos = 1252, 160 +;p4.bg. = +p4.name.font = 3,0, -1 +p4.name.scale = 0.8,0.8 +p4.name.palfx.mul = 178, 178, 178 + +;Player 5 +p5.pos = 43,175 +;p5.bg. = +p5.name.font = 3,0, 1 +p5.name.scale = 0.8,0.8 +p5.name.palfx.mul = 178, 178, 178 + +;Player 6 +p6.pos = 1237,175 +;p6.bg. = +p6.name.font = 3,0, -1 +p6.name.scale = 0.8,0.8 +p6.name.palfx.mul = 178, 178, 178 + + + +[Simul_4P Name] +leaderontop = 1 + +;Player 1 +p1.pos = 13,145 +;p1.bg. = +p1.name.font = 3,0, 1 +p1.name.layerno = 0 + +;Player 2 +p2.pos = 1267,145 +;p2.bg. = +p2.name.font = 3,0, -1 + +;Player 3 +p3.pos = 28,158 +;p3.bg. = +p3.name.font = 3,0, 1 +p3.name.scale = 0.8,0.8 +p3.name.palfx.mul = 178, 178, 178 + +;Player 4 +p4.pos = 1252,158 +;p4.bg. = +p4.name.font = 3,0, -1 +p4.name.scale = 0.8,0.8 +p4.name.palfx.mul = 178, 178, 178 + +;Player 5 +p5.pos = 43,171 +;p5.bg. = +p5.name.font = 3,0, 1 +p5.name.scale = 0.8,0.8 +p5.name.palfx.mul = 178, 178, 178 + +;Player 6 +p6.pos = 1237,171 +;p6.bg. = +p6.name.font = 3,0, -1 +p6.name.scale = 0.8,0.8 +p6.name.palfx.mul = 178, 178, 178 + +;Player 7 +p7.pos = 58,184 +;p7.bg. = +p7.name.font = 3,0, 1 +p7.name.scale = 0.8,0.8 +p7.name.palfx.mul = 178, 178, 178 + +;Player 8 +p8.pos = 1222,184 +;p8.bg. = +p8.name.font = 3,0, -1 +p8.name.scale = 0.8,0.8 +p8.name.palfx.mul = 178, 178, 178 + +[Tag Name] +leaderontop = 1 + +;Player 1 +p1.pos = 13,145 +;p1.bg. = +p1.name.font = 3,0, 1 + +;Player 2 +p2.pos = 1267,145 +;p2.bg. = +p2.name.font = 3,0, -1 + +;Player 3 +p3.pos = 28,165 +;p3.bg. = +p3.name.font = 3,0, 1 +p3.name.scale = 1,1 +p3.name.palfx.mul = 178, 178, 178 + +;Player 4 +p4.pos = 1252,165 +;p4.bg. = +p4.name.font = 3,0, -1 +p4.name.scale = 1,1 +p4.name.palfx.mul = 178, 178, 178 + +[Tag_3P Name] +leaderontop = 1 + +;Player 1 +p1.pos = 13,145 +;p1.bg. = +p1.name.font = 3,0, 1 +p1.name.layerno = 0 + +;Player 2 +p2.pos = 1267,145 +;p2.bg. = +p2.name.font = 3,0, -1 + +;Player 3 +p3.pos = 28, 160 +;p3.bg. = +p3.name.font = 3,0, 1 +p3.name.scale = 0.8,0.8 +p3.name.palfx.mul = 178, 178, 178 + +;Player 4 +p4.pos = 1252, 160 +;p4.bg. = +p4.name.font = 3,0, -1 +p4.name.scale = 0.8,0.8 +p4.name.palfx.mul = 178, 178, 178 + +;Player 5 +p5.pos = 43,175 +;p5.bg. = +p5.name.font = 3,0, 1 +p5.name.scale = 0.8,0.8 +p5.name.palfx.mul = 178, 178, 178 + +;Player 6 +p6.pos = 1237,175 +;p6.bg. = +p6.name.font = 3,0, -1 +p6.name.scale = 0.8,0.8 +p6.name.palfx.mul = 178, 178, 178 + + +[Tag_4p Name] +leaderontop = 1 + +;Player 1 +p1.pos = 13,145 +;p1.bg. = +p1.name.font = 3,0, 1 +p1.name.layerno = 0 + +;Player 2 +p2.pos = 1267,145 +;p2.bg. = +p2.name.font = 3,0, -1 + +;Player 3 +p3.pos = 28,158 +;p3.bg. = +p3.name.font = 3,0, 1 +p3.name.scale = 0.8,0.8 +p3.name.palfx.mul = 178, 178, 178 + +;Player 4 +p4.pos = 1252,158 +;p4.bg. = +p4.name.font = 3,0, -1 +p4.name.scale = 0.8,0.8 +p4.name.palfx.mul = 178, 178, 178 + +;Player 5 +p5.pos = 43,171 +;p5.bg. = +p5.name.font = 3,0, 1 +p5.name.scale = 0.8,0.8 +p5.name.palfx.mul = 178, 178, 178 + +;Player 6 +p6.pos = 1237,171 +;p6.bg. = +p6.name.font = 3,0, -1 +p6.name.scale = 0.8,0.8 +p6.name.palfx.mul = 178, 178, 178 + +;Player 7 +p7.pos = 58,184 +;p7.bg. = +p7.name.font = 3,0, 1 +p7.name.scale = 0.8,0.8 +p7.name.palfx.mul = 178, 178, 178 + +;Player 8 +p8.pos = 1222,184 +;p8.bg. = +p8.name.font = 3,0, -1 +p8.name.scale = 0.8,0.8 +p8.name.palfx.mul = 178, 178, 178 + + +[Turns Name] +;Player 1 +p1.pos = 13,145 +;p1.bg. = +p1.name.font = 3,3, 1 +;Player 2 +p2.pos = 1267,145 +;p2.bg. = +p2.name.font = 3,1, -1 + +;Player 1 Teammates +p1.teammate.pos = 28,160 +p1.teammate.spacing = 15, 15 +;p1.teammate.bg. = +p1.teammate.name.font = 3,3, 1 +p1.teammate.name.scale = 0.8, 0.8 +p1.teammate.name.palfx.mul = 178, 178, 178 + +;Player 2 Teammates +p2.teammate.pos = 1252,160 +p2.teammate.spacing = -15, 15 +;p2.teammate.bg. = +p2.teammate.name.font = 3,1, -1 +p2.teammate.name.scale = 0.8, 0.8 +p2.teammate.name.palfx.mul = 178, 178, 178 + +p*.teammate.ko.hide = 1 + +;----------------------------------------------------------- +[Time] +pos = 640,105 +; Uncomment the following line to use a bg component +;bg.spr = +; Time count display +counter.offset = 0,30 +counter.font = 2,0, 0 +counter.scale = 2, 2 +counter.palfx.mul = 256, 0, 0 +; Ticks for each count +framespercount = 60 + +counter1.scale = 2, 2 +counter1.offset = 0, 30 +counter1.font = 2, 0, 0 +counter1.palfx.mul = 256, 128, 128 +counter1.palfx.sinmul = 0, 128, 128, 20 +counter1.layerno = 0 + +counter10.font = 2, 0, 0 +counter10.offset = 0, 0 +counter10.scale = 1, 1 +counter10.palfx.mul = 256, 128, 128 +counter10.palfx.sinmul = 0, 128, 128, 20 +counter10.layerno = 0 + +counter11.offset = 0, 0 +counter11.font = 2, 0, 0, 255, 255, 255 +counter11.scale = 1, 1 +;counter11.palfx.mul = 256, 128, 128 +counter11.layerno = 0 +;counter11.palfx.sinmul = 0, 128, 128, 20 + +;----------------------------------------------------------- +[Combo] +team1.pos = 130,260 ;Coords to show +team1.start.x = -240 ;Starting x-coords +team1.counter.layerno = 2 +team1.counter.font = 6,0,0 +team1.counter10.font = 6,0,0 +team1.counter10.palfx.mul = 255, 217, 179 +team1.counter20.font = 6,0,0 +team1.counter20.palfx.mul = 255, 153, 51 +team1.counter30.font = 6,0,0 +team1.counter30.palfx.mul = 255, 255, 77 +team1.counter40.font = 6,0,0 +team1.counter40.palfx.mul = 102, 255, 51 +team1.counter50.font = 6,0,0 +team1.counter50.palfx.mul = 51, 255, 214 +team1.counter60.font = 6,0,0 +team1.counter60.palfx.mul = 0, 153, 255 +team1.counter70.font = 6,0,0 +team1.counter70.palfx.mul = 204, 51, 255 +team1.counter80.font = 6,0,0 +team1.counter80.palfx.mul = 255, 26, 117 +team1.counter90.font = 6,0,0 +team1.counter90.palfx.mul = 255, 26, 26 +team1.counter100.font = 6,0,0 +team1.counter100.palfx.mul = 255, 26, 26 +team1.counter100.palfx.sinmul = 90, 90, 90, 15 +team1.counter.shake = 1 ;Set to 1 to shake count on hit +team1.counter.shake.time = 20 +team1.counter.shake.freq = 90 +team1.counter.shake.ampl = 5 +team1.counter.shake.scale = 1.3 +team1.counter.shake.decay = 1 +team1.counter.shake.dir = 90 +team1.counter.shake.diradd = 0 +team1.text.shake.time = 20 +team1.text.shake.freq = 90 +team1.text.shake.ampl = 10 +team1.text.shake.scale = 1 +team1.text.shake.decay = 1 +team1.text.shake.dir = 90 +team1.text.layerno = 2 +; (text format %i = combo count, %d = combo damage, %p = combo damage percentage) +team1.text.text = "HITS!\n%p%" ;You can use %i to show count in the text, eg "%i Hit!" ; ( %d d for damage, %p% for hit) +team1.text.font = 7,0,0 +team1.text.offset = 6,42 ;Offset of text +team1.text10.text = "HITS!!\n%p%" ;By inputting a number next to text, You can change certain elements of the combo text when a combo reaches a certain point. +team1.text10.font = 7,0,0 +team1.text10.offset = 6,42 +team1.text20.text = "HITS!!!\n%p%" +team1.text20.font = 7,0,0 +team1.text20.offset = 6,42 +team1.text30.text = "HITS!!!!\n%p%" +team1.text30.font = 7,0,0 +team1.text30.offset = 6,42 +team1.text40.text = "HITS!!!!!\n%p%" +team1.text40.font = 7,0,0 +team1.text40.offset = 6,42 +team1.text50.text = "HITS!!!!!!\n%p%" +team1.text50.font = 7,0,0 +team1.text50.offset = 6,42 +team1.text60.text = "HITS!!!!!!!\n%p%" +team1.text60.font = 7,0,0 +team1.text60.offset = 6,42 +team1.text70.text = "HITS!!!!!!!!\n%p%" +team1.text70.font = 7,0,0 +team1.text70.offset = 6,42 +team1.text80.text = "HITS!!!!!!!!!\n%p%" +team1.text80.font = 7,0,0 +team1.text80.offset = 6,42 +team1.text90.text = "HITS!!!!!!!!!!\n%p%" +team1.text90.font = 7,0,0 +team1.text90.offset = 6,42 +team1.text100.text = "HITS!!!!!!!!!!!\n%p%" +team1.text100.font = 7,0,0 +team1.text100.offset = 6,42 +team1.text100.palfx.mul = 256, 256, 256 +team1.text100.palfx.sinmul = 90, 90, 90, 15 +team1.displaytime = 90 ;Time to show text +team1.showspeed = 8 ; text showing up speed (1 = instant) +team1.hidespeed = 4 ; text hiding speed (the larger value, the faster speed) +team1.autoalign = 0 + +team2.pos = 1150,260 ;Coords to show +team2.start.x = 1520 ;Starting x-coords +team2.counter.layerno = 2 +team2.counter.font = 6,0,0 +team2.counter10.font = 6,0,0 +team2.counter10.palfx.mul = 255, 217, 179 +team2.counter20.font = 6,0,0 +team2.counter20.palfx.mul = 255, 153, 51 +team2.counter30.font = 6,0,0 +team2.counter30.palfx.mul = 255, 255, 77 +team2.counter40.font = 6,0,0 +team2.counter40.palfx.mul = 102, 255, 51 +team2.counter50.font = 6,0,0 +team2.counter50.palfx.mul = 51, 255, 214 +team2.counter60.font = 6,0,0 +team2.counter60.palfx.mul = 0, 153, 255 +team2.counter70.font = 6,0,0 +team2.counter70.palfx.mul = 204, 51, 255 +team2.counter80.font = 6,0,0 +team2.counter80.palfx.mul = 255, 26, 117 +team2.counter90.font = 6,0,0 +team2.counter90.palfx.mul = 255, 26, 26 +team2.counter100.font = 6,0,0 +team2.counter100.palfx.mul = 255, 26, 26 +team2.counter100.palfx.sinmul = 90, 90, 90, 15 +team2.counter.shake = 1 ;Set to 1 to shake count on hit +team2.counter.shake.time = 20 +team2.counter.shake.freq = 90 +team2.counter.shake.ampl = 5 +team2.counter.shake.scale = 1.3 +team2.counter.shake.decay = 1 +team2.counter.shake.dir = 90 +team2.counter.shake.diradd = 0 +team2.text.shake.time = 20 +team2.text.shake.freq = 90 +team2.text.shake.ampl = 10 +team2.text.shake.scale = 1 +team2.text.shake.decay = 1 +team2.text.shake.dir = 90 +team2.text.layerno = 2 +;(text format %i = combo count, %d = combo damage, %p = combo damage percentage) +team2.text.text = "HITS!\n%p%" ;You can use %i to show count in the text, eg "%i Hit!" +team2.text.font = 7,0,0 +team2.text.offset = 6,42 ;Offset of text +team2.text10.text = "HITS!!\n%p%" ;By inputting a number next to text, You can change certain elements of the combo text when a combo reaches a certain point. +team2.text10.font = 7,0,0 +team2.text10.offset = 6,42 +team2.text20.text = "HITS!!!\n%p%" +team2.text20.font = 7,0,0 +team2.text20.offset = 6,42 +team2.text30.text = "HITS!!!!\n%p%" +team2.text30.font = 7,0,0 +team2.text30.offset = 6,42 +team2.text40.text = "HITS!!!!!\n%p%" +team2.text40.font = 7,0,0 +team2.text40.offset = 6,42 +team2.text50.text = "HITS!!!!!!\n%p%" +team2.text50.font = 7,0,0 +team2.text50.offset = 6,42 +team2.text60.text = "HITS!!!!!!!\n%p%" +team2.text60.font = 7,0,0 +team2.text60.offset = 6,42 +team2.text70.text = "HITS!!!!!!!!\n%p%" +team2.text70.font = 7,0,0 +team2.text70.offset = 6,42 +team2.text80.text = "HITS!!!!!!!!!\n%p%" +team2.text80.font = 7,0,0 +team2.text80.offset = 6,42 +team2.text90.text = "HITS!!!!!!!!!!\n%p%" +team2.text90.font = 7,0,0 +team2.text90.offset = 6,42 +team2.text100.text = "HITS!!!!!!!!!!!\n%p%" +team2.text100.font = 7,0,0 +team2.text100.offset = 6,42 +team2.text100.palfx.mul = 256, 256, 256 +team2.text100.palfx.sinmul = 90, 90, 90, 15 +team2.displaytime = 90 ;Time to show text +team2.showspeed = 8 ;text showing up speed (1 = instant) +team2.hidespeed = 4 ;text hiding speed (the larger value, the faster speed) +team2.autoalign = 0 + +; (format combo damage percentage presentation) +format.decimal.places = 0 +format.decimal.separator = . + +;----------------------------------------------------------- +[Action] +team1.pos = 30,377 ;Coords to show +team1.max = 8 ;Maximum simultaneous messages +team1.spacing = 0,32 ;Spacing between messages +team1.start.x = -240 ;Starting x-coords +team1.bg.layerno = 2 +team1.bg.offset = 75,0 +team1.bg.anim = 400 +team1.bg.scale = 1.0,1.0 +team1.bg.spr = +team1.front.layerno = 2 +team1.front.offset = 75,0 +team1.front.scale = 1.0,1.0 +team1.text.layerno = 2 +team1.text.font = 5,0,0 +team1.text.offset = 80,20 ;Offset of text +team1.text.scale = 0.85,0.95 +team1.displaytime = 60 ;Time to show message +team1.showspeed = 2 ;Message showing up speed (1 = instant) +team1.hidespeed = 8 ;Message hiding speed (the larger value, the faster speed) + +team2.pos = 1250,377 +team2.max = 8 +team2.spacing = 0,32 +team2.start.x = 1520 +team2.bg.layerno = 2 +team2.bg.offset = -75,0 +team2.bg.anim = 400 +team2.bg.scale = 1.0,1.0 +team2.bg.spr = +team2.front.layerno = 2 +team2.front.offset = -75,0 +team2.front.scale = 1.0,1\\ +team2.text.layerno = 2 +team2.text.font = 5,0,0 +team2.text.offset = -80,20 +team2.text.scale = 0.85,0.95 +team2.displaytime = 60 +team2.showspeed = 2 +team2.hidespeed = 8 + +[Begin Action 400] +400,0, 0,0, -1, , AS80D128 + +;----------------------------------------------------------- +[Round] +match.wins = 2 ;Rounds needed to win a match (Depreciated, this setting can be configured in in-game options) +match.maxdrawgames = 1 ;Max number of drawgames allowed (-1 for infinite) +start.waittime = 30 ;Time to wait before starting intro + +; Default position for all components +pos = 0,0 + +; ROUND X +round.time = 0 ;Time to show round display +;round.default.offset = 680, 380 ;Offset for anim +round.default.offset = 630, 480 +; Default component to show for each round. Text can include a %i to +; the round number. Use "round.default.anim" for animation instead of +; text. +round.default.text = "R %i" +;round.default.anim = 500 +round.default.font = 9,0,0 +round.default.displaytime = 55 +round.default.scale = 1,1 +round.default.snd = 0, 11 +; Sounds to play for each round (optional, specify up to round 9) +round1.snd = 0,1 +round2.snd = 0,2 +round3.snd = 0,3 +round4.snd = 0,4 +round5.snd = 0,5 +round6.snd = 0,6 +round7.snd = 0,7 +round8.snd = 0,8 +round9.snd = 0,9 +round.sndtime = 0 ;Time to play the sounds +; Components to show for each round (optional, specify up to round 9) +; Uncomment to use +round1.offset = 640, 380 +;round1.anim = 501 +round2.offset = 640, 380 +;round2.anim = 502 +round3.offset = 640, 380 +;round3.anim = 503 +round4.offset = 640, 380 +;round4.anim = 504 +round5.offset = 640, 380 +;round5.anim = 505 +round6.offset = 640, 380 +;round6.anim = 506 +round7.offset = 640, 380 +;round7.anim = 507 +round8.offset = 640, 380 +;round8.anim = 508 +round9.offset = 640, 380 +;round9.anim = 509 + + +round.single.offset = 640, 480 +round.single.font = 9, 0, 0 +round.single.text = "G r" +round.single.displaytime = 55 +round.single.scale = 1, 1 +round.single.snd = 0, 11 + +round.final.offset = 640, 480 +round.final.font = 9, 0, 0 +round.final.text = "F R" +round.final.text = " " +;round.final.anim = 510 +;round.final.bg0.anim = 511 +;round.final.bg0.offset = 640, 380 +round.final.displaytime = 55 +round.final.scale = 1, 1 +round.final.snd = 0, 10 + +; FIGHT +fight.time = 0 ;Time to show FIGHT component +fight.offset = 640, 400 ;Component for FIGHT display +fight.anim = 520 +fight.bg1.offset = 640, 400 +fight.bg1.anim = 521 +fight.bg2.offset = 640, 400 +fight.bg2.anim = 522 +fight.bg3.offset = 640, 400 +fight.bg3.anim = 523 +fight.snd = 1,0 ;Sound to play +fight.sndtime = 5 ;Time to play sound + +callfight.time = 60 ;Time to wait before starting fight +ctrl.time = 50 ;Time players get control after starting fight + +; KO +KO.time = 0 ;Time to show KO component +KO.offset = 540, 400 ;Component for KO display +KO.anim = 529 ;Dummy Animation to let bg play out +KO.bg0.anim = 533 +KO.bg0.offset = 830, 400 +KO.bg1.anim = 532 +KO.bg1.offset = 430, 400 +KO.bg2.anim = 531 +KO.bg2.offset = 830, 400 +KO.bg3.anim = 530 +KO.bg3.offset = 430, 400 +KO.snd = 2,0 ;Sound to play for KO announcement + +; Double KO +DKO.offset = 640, 400 +DKO.anim = 534 ;Dummy animation to let bg play out +DKO.bg0.anim = 535 +DKO.bg0.offset = 640, 400 +DKO.bg1.anim = 536 +DKO.bg1.offset = 640, 400 +DKO.displaytime = 120 +DKO.snd = 2,1 + +; Time Over +TO.offset = 640, 400 +TO.anim = 540 +TO.bg1.anim = 541 +TO.bg1.offset = 640, 400 +TO.displaytime = 70 +TO.snd = 2,2 +KO.sndtime = 0 ;Time to play sound for KO, DKO and TO. + +slow.time = 60 ;Total KO slowdown length (in ticks) +slow.fadetime = 45 ;KO slowdown fade length (default: 75% of slow.time) +slow.speed = 0.25 ;KO slowdown game speed adjustment (default: 0.25) + +over.hittime = 10 ;Time after KO that players can still damage each other (for double KO) +over.waittime = 45 ;Time to wait after KO before player control is stopped +over.wintime = 45 ;Time to wait before players change to win states +over.forcewintime = 900 ;Time to wait before forcing win states if any player is frozen +over.time = 300 ;Time to wait before round ends + +; Win text +win.time = 60 ;Time to wait before showing win/draw message +p1.win.offset = 80, 705 +p1.win.bg1.anim = 580 +p1.win.bg1.offset = 540, 610 +p1.win.bg0.anim = 586 +p1.win.bg0.offset = 640, 690 +p1.win.font = 1,0,1 +p1.win.text = "%s" +p1.win.displaytime = 180 +p1.win.snd = 2,3 + +p2.win.offset = 1200, 705 +p2.win.bg1.anim = 581 +p2.win.bg1.offset = 740, 610 +p2.win.bg0.anim = 586 +p2.win.bg0.offset = 640, 690 +p2.win.font = 1,0,-1 +p2.win.text = "%s" +p2.win.displaytime = 180 +p2.win.snd = 2,3 + +; 2-player win text +p1.win2.offset = 80, 705 +p1.win2.bg1.anim = 580 +p1.win2.bg1.offset = 540, 610 +p1.win2.bg0.anim = 586 +p1.win2.bg0.offset = 640, 690 +p1.win2.font = 1,0,1 +p1.win2.text = "%s and %s" +p1.win2.displaytime = 180 +p1.win2.snd = 2,3 + +p2.win2.offset = 1200, 705 +p2.win2.bg1.anim = 581 +p2.win2.bg1.offset = 740, 610 +p2.win2.bg0.anim = 586 +p2.win2.bg0.offset = 640, 690 +p2.win2.font = 1,0,-1 +p2.win2.text = "%s and %s" +p2.win2.displaytime = 180 +p2.win2.snd = 2,3 + +; 3-player win text +p1.win3.offset = 80, 705 +p1.win3.bg1.anim = 580 +p1.win3.bg1.offset = 540, 610 +p1.win3.bg0.anim = 586 +p1.win3.bg0.offset = 640, 690 +p1.win3.font = 1,0,1 +p1.win3.text = "Team %s" +p1.win3.displaytime = 180 +p1.win3.snd = 2,3 + +p2.win3.offset = 1200, 705 +p2.win3.bg1.anim = 581 +p2.win3.bg1.offset = 740, 610 +p2.win3.bg0.anim = 586 +p2.win3.bg0.offset = 640, 690 +p2.win3.font = 1,0,-1 +p2.win3.text = "Team %s" +p2.win3.displaytime = 180 +p2.win3.snd = 2,3 + +; 4-player win text +p1.win4.offset = 80, 705 +p1.win4.bg1.anim = 580 +p1.win4.bg1.offset = 540, 610 +p1.win4.bg0.anim = 586 +p1.win4.bg0.offset = 640, 690 +p1.win4.font = 1,0,1 +p1.win4.text = "Team %s" +p1.win4.displaytime = 180 +p1.win4.snd = 2,3 + +p2.win4.offset = 1200, 705 +p2.win4.bg1.anim = 581 +p2.win4.bg1.offset = 740, 610 +p2.win4.bg0.anim = 586 +p2.win4.bg0.offset = 640, 690 +p2.win4.font = 1,0,-1 +p2.win4.text = "Team %s" +p2.win4.displaytime = 180 +p2.win4.snd = 2,3 + +; AI Win +ai.win.displaytime = 170 +ai.win.offset = 640, 610 +ai.win.font = 4,0 +ai.win.scale = 1, 1 +ai.win.anim = 583 +ai.win.snd = 2,4 + +ai.win2.displaytime = 170 +ai.win2.offset = 640, 610 +ai.win2.font = 4,0 +ai.win2.scale = 1, 1 +ai.win2.anim = 583 +ai.win2.snd = 2,4 + +ai.win3.displaytime = 170 +ai.win3.offset = 640, 610 +ai.win3.font = 4,0 +ai.win3.scale = 1, 1 +ai.win3.anim = 583 +ai.win3.snd = 2,4 + +ai.win4.displaytime = 170 +ai.win4.offset = 640, 610 +ai.win4.font = 4,0 +ai.win4.scale = 1, 1 +ai.win4.anim = 583 +ai.win4.snd = 2,4 + +; AI Lose +ai.lose.displaytime = 170 +ai.lose.offset = 640, 610 +ai.lose.font = 4,0 +ai.lose.scale = 1, 1 +ai.lose.anim = 582 +ai.lose.snd = 2,3 + +ai.lose2.displaytime = 170 +ai.lose2.offset = 640, 610 +ai.lose2.font = 4,0 +ai.lose2.scale = 1, 1 +ai.lose2.anim = 582 +ai.lose2.snd = 2,3 + +ai.lose3.displaytime = 170 +ai.lose3.offset = 640, 610 +ai.lose3.font = 4,0 +ai.lose3.scale = 1, 1 +ai.lose3.anim = 582 +ai.lose3.snd = 2,3 + +ai.lose4.displaytime = 170 +ai.lose4.offset = 640, 610 +ai.lose4.font = 4,0 +ai.lose4.scale = 1, 1 +ai.lose4.anim = 582 +ai.lose4.snd = 2,3 + +; Draw text +draw.offset = 640, 400 +draw.anim = 544 +draw.bg0.anim = 545 +draw.bg0.offset = 640, 400 +draw.bg1.anim = 546 +draw.bg1.offset = 640, 400 +draw.displaytime = 80 +draw.snd = 2,5 +; Perfect text +p1.perfect.pos = 640, 380 +p1.perfect.bg.anim = 550 +p1.perfect.bg.layerno = 1 +p1.perfect.time = 86 +p1.perfect.displaytime = 125 +p1.perfect.snd = 2, 6 +p1.perfect.sndtime = 125 + +p2.perfect.pos = 640, 380 +p2.perfect.bg.anim = 550 +p2.perfect.bg.layerno = 1 +p2.perfect.time = 86 +p2.perfect.displaytime = 125 +p2.perfect.snd = 2, 6 +p2.perfect.sndtime = 125 + +p1.clutch.pos = 640, 380 +p1.clutch.bg.anim = 551 +p1.clutch.bg.layerno = 1 +p1.clutch.time = 125 +p1.clutch.displaytime = 110 +p1.clutch.snd = 2, 7 +p1.clutch.sndtime = 125 + +p2.clutch.pos = 640, 380 +p2.clutch.bg.anim = 551 +p2.clutch.bg.layerno = 1 +p2.clutch.time = 125 +p2.clutch.displaytime = 110 +p2.clutch.snd = 2, 7 +p2.clutch.sndtime = 125 + +; Fade +fadein.time = 30 ;round start fade time (default: 30) +fadein.col = 0, 0, 0 ;round start fade color (default: 0,0,0) +fadeout.time = 30 ;round end fade time (default: 30, extends over.time if fadeout.time is longer) +fadeout.col = 0, 0, 0 ;round end fade color (default: 0,0,0) +shutter.time = 15 ;skip intro fade time (default: 15, whole anim is twice as long) +shutter.col = 0, 0, 0 ;skip intro fade color (default: 0,0,0) + +; Animations + +; ROUND +[Begin Action 500] +Interpolate Offset +500,0, -1200,0, 10 +Interpolate Offset +500,0, -200,0, 45 +Interpolate Offset +500,0, -150,0, 10 +Interpolate Offset +500,0, 1000,0, 1 + +; 1 +[Begin Action 501] +Interpolate Offset +500,1, 1000,0, 10 +Interpolate Offset +500,1, 200,0, 45 +Interpolate Offset +500,1, 150,0, 10 +Interpolate Offset +500,1, -1000,0, 1 + +; 2 +[Begin Action 502] +Interpolate Offset +500,2, 1000,0, 10 +Interpolate Offset +500,2, 200,0, 45 +Interpolate Offset +500,2, 150,0, 10 +Interpolate Offset +500,2, -1000,0, 1 + +; 3 +[Begin Action 503] +Interpolate Offset +500,3, 1000,0, 10 +Interpolate Offset +500,3, 200,0, 45 +Interpolate Offset +500,3, 150,0, 10 +Interpolate Offset +500,3, -1000,0, 1 + + +; 4 +[Begin Action 504] +Interpolate Offset +500,4, 1000,0, 10 +Interpolate Offset +500,4, 200,0, 45 +Interpolate Offset +500,4, 150,0, 10 +Interpolate Offset +500,4, -1000,0, 1 + +; 5 +[Begin Action 505] +Interpolate Offset +500,5, 1000,0, 10 +Interpolate Offset +500,5, 200,0, 45 +Interpolate Offset +500,5, 150,0, 10 +Interpolate Offset +500,5, -1000,0, 1 + +; 6 +[Begin Action 506] +Interpolate Offset +500,6, 1000,0, 10 +Interpolate Offset +500,6, 200,0, 45 +Interpolate Offset +500,6, 150,0, 10 +Interpolate Offset +500,6, -1000,0, 1 + +; 7 +[Begin Action 507] +Interpolate Offset +500,7, 1000,0, 10 +Interpolate Offset +500,7, 200,0, 45 +Interpolate Offset +500,7, 150,0, 10 +Interpolate Offset +500,7, -1000,0, 1 + +; 8 +[Begin Action 508] +Interpolate Offset +500,8, 1000,0, 10 +Interpolate Offset +500,8, 200,0, 45 +Interpolate Offset +500,8, 150,0, 10 +Interpolate Offset +500,8, -1000,0, 1 + +; 9 +[Begin Action 509] +Interpolate Offset +500,9, 1000,0, 10 +Interpolate Offset +500,9, 200,0, 45 +Interpolate Offset +500,9, 150,0, 10 +Interpolate Offset +500,9, -1000,0, 1 + + + +; FINAL +[Begin Action 510] +Interpolate Offset +500,10, -1200,0, 10 +Interpolate Offset +500,10, -250,0, 45 +Interpolate Offset +500,10, -200,0, 10 +Interpolate Offset +500,10, 1000,0, 1 + +; ROUND (Final) +[Begin Action 511] +Interpolate Offset +500,0, 1000,0, 10 +Interpolate Offset +500,0, 250,0, 45 +Interpolate Offset +500,0, 200,0, 10 +Interpolate Offset +500,0, -1000,0, 1 + +; GET +[Begin Action 512] +Interpolate Offset +501,0, -1200,0, 10 +Interpolate Offset +501,0, -200,0, 45 +Interpolate Offset +501,0, -150,0, 10 +Interpolate Offset +501,0, 1000,0, 1 +; READY +[Begin Action 513] +Interpolate Offset +501,1, 1000,0, 10 +Interpolate Offset +501,1, 250,0, 45 +Interpolate Offset +501,1, 200,0, 10 +Interpolate Offset +501,1, -1000,0, 1 + +; FIG )Top) +[Begin Action 520] +511,0, -640,-640, 10 +Interpolate Offset +510,0, 0,0, 32 +510,0, 0,0, 10 +Interpolate Offset +510,0, -640,0, 1 + +; HT! (Top) +[Begin Action 521] +511,1, 640,-640, 10 +Interpolate Offset +510,1, 0,0, 32 +510,1, 0,0, 10 +Interpolate Offset +510,1, 640,0, 1 + +; FIG (Bottom) +[Begin Action 522] +511,2, -640,640, 10 +Interpolate Offset +510,2, 0,0, 32 +510,2, 0,0, 10 +Interpolate Offset +510,2, -640,0, 1 + +; HT! (Bottom) +[Begin Action 523] +511,3, 640,640, 10 +Interpolate Offset +510,3, 0,0, 32 +510,3, 0,0, 10 +Interpolate Offset +510,3, 640,0, 1 + +; Dummy Anim for KO +[Begin Action 529] +-1,0, 0,0, 141 + +; K +[Begin Action 530] +-1,0, 0,0, 40 +Interpolate Blend +Interpolate Scale +522,0, 0,0, 10, , AS0D256, 1.25,1.25 +Interpolate Blend +Interpolate Scale +520,0, 0,0, 20 +520,0, 0,0, 10 +Interpolate Offset +520,0, -10,-10, 50 +Interpolate Offset +520,0, -10,-10, 10 +Interpolate Offset +520,0, -640,-10, 1 + +; O +[Begin Action 531] +-1,0, 0,0, 40 +Interpolate Blend +Interpolate Scale +522,1, 0,0, 10, , AS0D256, 1.25,1.25 +Interpolate Blend +Interpolate Scale +520,1, 0,0, 20 +520,1, 0,0, 10 +Interpolate Offset +520,1, -10,-10, 50 +Interpolate Offset +520,1, -10,-10, 10 +Interpolate Offset +520,1, 640,-10, 1 + +; K (Shadow) +[Begin Action 532] +-1,0, 0,0, 20 +Interpolate Blend +Interpolate Scale +-1,1, 0,0, 30, , AS0D256, 1.25,1.25 +Interpolate Blend +Interpolate Scale +521,0, 0,0, 20 +521,0, 0,0, 10 +Interpolate Offset +521,0, 10,10, 50 +Interpolate Offset +521,0, 10,10, 10 +Interpolate Offset +521,0, -640,10, 1 + +; O (Shadow) +[Begin Action 533] +-1,0, 0,0, 20 +Interpolate Blend +Interpolate Scale +-1,1, 0,0, 30, , AS0D256, 1.25,1.25 +Interpolate Blend +Interpolate Scale +521,1, 0,0, 20 +521,1, 0,0, 10 +Interpolate Offset +521,1, 10,10, 50 +Interpolate Offset +521,1, 10,10, 10 +Interpolate Offset +521,1, 640,10, 1 +; DOUBLE +[Begin Action 535] +523,0, 0,-640, 40 +523,0, 0,-640, 10 +Interpolate Offset +523,0, 0,0, 50 +Interpolate Offset +523,0, 0,0, 10 +Interpolate Offset +523,0, -960,0, 10 + +; KO (Double) +[Begin Action 536] +523,1, 0,640, 40 +Interpolate Offset +523,1, 0,640, 10 +Interpolate Offset +523,1, 0,0, 50 +523,1, 0,0, 10 +Interpolate Offset +523,1, 960,0, 10 + +; TIME +[Begin Action 540] +Interpolate Offset +525,0, -1200,-60, 10 +Interpolate Offset +525,0, -100,-60, 50 +Interpolate Offset +525,0, -90,-60, 10 +Interpolate Offset +525,0, -90,-660, 10 + +; UP +[Begin Action 541] +Interpolate Offset +525,1, 1200,60, 10 +Interpolate Offset +525,1, 100,60, 50 +Interpolate Offset +525,1, 90,60, 10 +Interpolate Offset +525,1, 90,660, 10 + +; Dummy for Draw Game +[Begin Action 544] +-1,0, 0,0, 80 + +; DRAW +[Begin Action 545] +-1,0, 0,0, 60 +526,0, -732,0, 10 +Interpolate Offset +526,0, -232,0, 50 +Interpolate Blend +526,0, -232,0, 10, , AS256D0 +Interpolate Blend +Interpolate Offset +526,0, -232,60, 10, , AS0D256 + +; GAME +[Begin Action 546] +-1,0, 0,0, 60 +526,1, 732,0, 10 +Interpolate Offset +526,1, 232,0, 50 +526,1, 232,0, 10, , AS256D0 +Interpolate Blend +Interpolate Offset +526,1, 232,60, 10, , AS0D256 + +; PERFECT +[Begin Action 550] +-1,0, 0,0, 10 +527,1, 1080,0, 10 +Interpolate Offset +527,1, 0,0, 20 +Interpolate Blend +527,2, 0,0, 10, , AS0D128 +Interpolate Blend +527,2, 0,0, 3, , A +527,0, 0,0, 50 +527,0, 0,0, 10, , AS256D0 +Interpolate Blend +527,0, 0,0, -1, , AS0D256 + +; CLOSE ONE +[Begin Action 551] +528,0, 0,-60, 30, , AS0D256 +Interpolate Offset +Interpolate Blend +528,0, 0,0, 10 +528,0, 0,0, 10 +Interpolate Offset +Interpolate Angle +528,0, 0,30, 40, , AS256D0,, , -4 +528,0, 0,30, 10, , AS256D0,, , -4 +Interpolate Blend +528,0, 0,30, 10, , AS0D256,, , -4 + + +; WINNER P1 +[Begin Action 580] +530,0, -1200,0, 60 +Interpolate Offset +530,0, -1200,0, 10 +Interpolate Offset +530,0, -200,0, 150 +Interpolate Offset +530,0, -160,0, 10 +Interpolate Offset +530,0, 1200,0, -1 + +; WINNER P2 +[Begin Action 581] +-1,0, 0,0, 60 +Interpolate Offset +530,0, 1200,0, 10 +Interpolate Offset +530,0, 200,0, 150 +Interpolate Offset +530,0, 160,0, 10 +Interpolate Offset +530,0, -1200,0, -1 + +; YOU WIN +[Begin Action 582] +Interpolate Offset +530,1, -1200,0, 10 +Interpolate Offset +530,1, -20,0, 150 +Interpolate Offset +530,1, 20,0, 10 +Interpolate Offset +530,1, 1200,0, -1 + +; YOU LOSE +[Begin Action 583] +Interpolate Offset +530,2, 1200,0, 10 +Interpolate Offset +530,2, 20,0, 150 +Interpolate Offset +530,2, -20,0, 10 +Interpolate Offset +530,2, -1200,0, -1 + +; Name Banner +[Begin Action 586] +551,0, 0,0, 60, , AS0D256 +551,0, 0,0, 10, , AS0D256 +Interpolate Blend +551,0, 0,0, 160, , AS256D0 +551,0, 0,0, 10, , AS256D0 +Interpolate Blend +551,0, 0,0, -1, , AS0D256 + +;----------------------------------------------------------- +[WinIcon] +p1.pos = 544,120 +p2.pos = 736,120 +; Background icon +p1.bg0.spr = 120,0 +p2.bg0.spr = 120,0 +; Offset for next icon (x,y) +p1.iconoffset = -32,0 +p2.iconoffset = 32,0 +; Counter text font and offset for representing wins +p1.counter.offset = 0,5 +p1.counter.font = 4,0,0, 230,255,242 +p2.counter.offset = 0,5 +p2.counter.font = 4,0,0, 255,242,242 +; Win by normal +p1.n.spr = 100,0 +p2.n.spr = 100,0 +; Win by special +p1.s.spr = 101,0 +p2.s.spr = 101,0 +; Win by hyper (super) +p1.h.spr = 102,0 +p2.h.spr = 102,0 +; Win by normal throw +p1.throw.spr = 103,0 +p2.throw.spr = 103,0 +; Win by cheese +p1.c.spr = 104,0 +p2.c.spr = 104,0 +; Win by time over +p1.t.spr = 105,0 +p2.t.spr = 105,0 +; Win by suicide +p1.suicide.spr = 106,0 +p2.suicide.spr = 106,0 +; Opponent beaten by his own teammate +p1.teammate.spr = 107,0 +p2.teammate.spr = 107,0 +; Win by perfect (overlay icon) +p1.perfect.spr = 110,0 +p2.perfect.spr = 110,0 +; Win by clutch (overlay icon) +p1.clutch.spr = 111,0 +p2.clutch.spr = 111,0 +; Use icons up until this number of wins +useiconupto = 4 + +;----------------------------------------------------------- +[WinCount] +p1.pos = 586,24 +;p1.bg.spr = +p1.text.font = 8,0, -1 +p1.text.text = WINS %s + +p2.pos = 696,24 +;p2.bg.spr = +p2.text.font = 8,0, 1 +p2.text.text = WINS %s + +p1.enabled.netplayversus = 1 +p1.enabled.versus = 1 +p1.enabled.versuscoop = 1 + +p2.enabled.netplayversus = 1 +p2.enabled.versus = 1 +p2.enabled.versuscoop = 1 + +;----------------------------------------------------------- +[Timer] +pos = 1080,24 +;bg.spr = +text.font = 8,0, -1 +; Time format: %m = minutes, %s = seconds, %x = milliseconds +text.text = TIME: %m:%s.%x + +enabled.bossrush = 1 +enabled.timeattack = 1 +enabled.timechallenge = 1 + +;----------------------------------------------------------- +[Score] +p1.pos = 586,24 +;p1.bg.spr = +p1.text.font = 8,0, -1 +p1.text.text = %s + +p2.pos = 696,24 +;p2.bg.spr = +p2.text.font = 8,0, 1 +p2.text.text = %s + +score.min = 0 +score.max = 999999999 +format.integer.pad = 1 +format.integer.separator = +format.decimal.places = 0 +format.decimal.separator = . + +p1.enabled.arcade = 1 +p1.enabled.bossrush = 1 +p1.enabled.freebattle = 1 +p1.enabled.netplayteamcoop = 1 +p1.enabled.scorechallenge = 1 +p1.enabled.teamcoop = 1 +p1.enabled.training = 1 + +;----------------------------------------------------------- +[Match] +pos = 200,24 +;bg.spr = +text.font = 8,0, 1 +text.text = STAGE %s + +enabled.arcade = 1 +enabled.bossrush = 1 +enabled.netplayteamcoop = 1 +enabled.scorechallenge = 1 +enabled.teamcoop = 1 +enabled.timeattack = 1 +enabled.timechallenge = 1 +enabled.netplaysurvivalcoop = 1 +enabled.survival = 1 +enabled.survivalcoop = 1 +enabled.vs100kumite = 1 + +;----------------------------------------------------------- +[AILevel] +p1.pos = 586,24 +;p1.bg.spr = +p1.text.font = 8,0, -1 +; %s = integer value, %p = percentage +p1.text.text = CPU-%s + +p2.pos = 696,24 +;p2.bg.spr = +p2.text.font = 8,0, 1 +p2.text.text = CPU-%s + +format.decimal.places = 0 +format.decimal.separator = . + +p1.enabled.watch = 1 + +p2.enabled.arcade = 1 +p2.enabled.bossrush = 1 +p2.enabled.freebattle = 1 +p2.enabled.netplaysurvivalcoop = 1 +p2.enabled.netplayteamcoop = 1 +p2.enabled.scorechallenge = 1 +p2.enabled.survival = 1 +p2.enabled.survivalcoop = 1 +p2.enabled.teamcoop = 1 +p2.enabled.timeattack = 1 +p2.enabled.timechallenge = 1 +p2.enabled.training = 1 +p2.enabled.vs100kumite = 1 +p2.enabled.watch = 1 + +;----------------------------------------------------------- +[Mode] +demo.pos = 1138,35 +;demo.bg.spr = +demo.text.font = 8,0, -1 +demo.text.text = Demo Mode + +;----------------------------------------------------------- +; How to customize +;----------------------------------------------------------- +; First of all, set filenames under [Files]. +; +; Next, you can customize each component of the fight screen. A component can be +; anything from a piece of the lifebar, to the text that signals a K.O. +; +; Each component starts with its name, followed by a period, and then the names +; of its elements. For example, a component named "bg" with an element of "anim" +; looks like "bg.anim". +; +; There are several main element types: +; 1. anim (animation) +; 2. spr (sprite) +; 3. font (text) +; 4. snd (sound) +; +; 1. anim +; Format: anim = actionno +; actionno is the number of the action to use. You must specify a valid +; action that is defined within this file. The sprites for the animation come +; from the file given for the "sff" parameter in the [Files] group below. You +; can define your animation actions anywhere in this file, as long as it does +; not come in the middle of a group (an example of a group is the block of +; text starting with [Files], and ending on the next group [Lifebar]). +; For example, to use action 5 for the p1.bg0 component: +; p1.bg0.anim = 5 +; +; 2. spr +; Format: spr = spritegrp, spriteno +; This is the identifier pair for the sprite you to display. +; For example, to show sprite 103,0 for a component named p1.throw: +; p1.throw.spr = 103,0 +; +; 3. font +; Format: font = fontno, fontbank, alignmnt, R, G, B +; text = text +; This lets you set the font (and optionally the content text). +; - fontno is the number of the font defined under [Files]. For instance, for +; the line "font2 = font/num1.fnt", the fontno is 2. +; - fontbank is the color bank of the font to use. Refer to the font for what +; color banks it has. +; - alignmt is a number representing the text alignment. 1 is left, 0 means +; center, and -1 is for right-alignment. +; - R, G, B are the color adjustment values for the font. RGB values default +; to 256,256,256 (no color adjustment). +; All font values are optional. If fontno is omitted, no text will be drawn. +; +; The "text" element should accompany the "font" element wherever necessary. +; The following example will display "FIGHT!" using font 1, bank 1, with +; center-alignment. +; fight.font = 1,1, 0 +; fight.text = FIGHT! +; +; 4. snd +; Format: snd = sndgrp, sndno +; This is the identifier pair for the sound effect to play. The .snd file +; that the sound is played from is given in the "snd" parameter in the +; [Files] group. This plays sound 21,0 for the "level1" component. +; level1.snd = 21,0 +; +; Take note that the anim, spr and font element types are mutually exclusive; +; you can only use one of them per component. +; +; The types of elements supported vary with the component. Usually the anim, spr +; and font elements are interchangeable for a component. However, in some cases +; only one element type may be used. An example of this is found under [Combo]: +; counter.font = 2,4 ;Font for combo counter +; You cannot use an animation or a sprite to represent a numeric counter, so it +; only makes sense to define a font for use. +; +; There are other element types that do nothing on their own. They can be used +; with display element types (spr, anim and font) to gain more control. These +; have no meaning when used with the snd element. +; 5. offset +; 6. displaytime +; 7. facing +; 8. vfacing +; 9. layerno +; 10. scale +; 11. angle +; 12. window +; +; 5. offset +; Format: offset = x, y +; Displaces the display element horizontally by x pixels, and vertically by y +; pixels. If this element is omitted, the offset is assumed to be 0,0. +; +; 6. displaytime +; Format: displaytime = time_in_ticks +; This element defines the time to display the component. If omitted, the +; default display time varies with element type. For spr and font elements, +; the default displaytime is 1. For anim, it is the looptime of the animation. +; This example displays the text "FIGHT!" for 45 game ticks: +; fight.font = 1,1, 0 +; fight.text = FIGHT! +; fight.displaytime = 45 +; +; 7. facing +; Format: facing = dir +; Sets the horizontal flipping of the display element. 1 means no flipping, +; and -1 means flip horizontally. Does not affect "font" elements. Defaults to +; 1 if omitted. +; +; 8. vfacing +; Format: vfacing = dir +; Sets the vertical flipping of the display element. 1 means no flipping, and +; -1 means flip vertically. Does not affect "font" elements. Defaults to 1 if +; omitted. +; +; 9. layerno +; Format: layerno = no +; This element lets you set the layer to which the display element will be +; drawn on. 0 is in front of the background, but behind the players. 1 is in +; front of the players, but behind the foreground. 2 is in front of the +; foreground. The default is 0 in most cases. +; An example of where this might be useful is when you want to have the life +; or power bars appear on top. In that case, set all the components to have +; layerno = 2. +; +; 10. scale +; Format: scale = xscale, yscale +; Scales the display element by a horizontal scale factor of xscale, and +; vertically by a factor of yscale. Defaults to 1,1 if omitted. +; +; 11. angle +; Format: angle = degrees +; Draws the element rotated by the specified angle. +; Currently does not affect "font" elements. +; +; 12. window +; Format: window = x1, y1, x2, y2 +; Specify window with four coordinates x1, y1, x2, and y2 respectively. +; Considering the upper left corner of the screen as (0,0), these coordinates +; are taken to form a rectangular box with (x1,y1) and (x2,y2) at opposite +; corners. Only the part of the display element type that comes within this +; box (the "window") will be drawn. If you do not need the windowing effect, +; omit this line entirely. +; +; Some components have additional elements specific +; to themselves. diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/fight.sff b/bios/Game Engines/Ikemen GO/ikemen/data/fight.sff new file mode 100644 index 00000000..d15c87b6 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/data/fight.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/fight.snd b/bios/Game Engines/Ikemen GO/ikemen/data/fight.snd new file mode 100644 index 00000000..e9d6f0dd Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/data/fight.snd differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/fightfx.air b/bios/Game Engines/Ikemen GO/ikemen/data/fightfx.air new file mode 100644 index 00000000..6fbbfaa6 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/fightfx.air @@ -0,0 +1,378 @@ +; Animation data for Fight Effects + +; groupno, imageno, offx, offy, duration [, [flipflags] [, drawtype]] +; if duration is -1, then frame is displayed indefinitely. +; for flipflags (optional), H - horizonal flip, V - vertical flip. +; for drawtypes (optional), A - trans_add, S - trans_sub. + +;--------------------------------------------------------------------------- +; Light hit spark +[Begin Action 0] +0,0, 0,0, 1, , A +0,1, 0,0, 1, , A +0,2, 0,0, 1, , A +0,3, 0,0, 1, , A +0,4, 0,0, 1, , A +0,5, 0,0, 1, , A +0,6, 0,0, 1, , A +0,7, 0,0, 1, , A +0,8, 0,0, 1, , A +0,9, 0,0, 1, , A +0,10, 0,0, 1, , A +0,11, 0,0, 1, , A +0,12, 0,0, 1, , A +0,13, 0,0, 1, , A + +; Medium hit spark +[Begin Action 1] +1,0, 0,0, 1, , A +1,1, 0,0, 1, , A +1,2, 0,0, 1, , A +1,3, 0,0, 1, , A +1,4, 0,0, 1, , A +1,5, 0,0, 1, , A +1,6, 0,0, 1, , A +1,7, 0,0, 1, , A +1,8, 0,0, 1, , A +1,9, 0,0, 1, , A +1,10, 0,0, 1, , A +1,11, 0,0, 1, , A +1,12, 0,0, 1, , A +1,13, 0,0, 1, , A + +; Strong hit spark +[Begin Action 2] +2,0, 0,0, 1, ,A +2,1, 0,0, 1, , A +2,2, 0,0, 1, , A +2,3, 0,0, 1, , A +2,4, 0,0, 1, , A +2,5, 0,0, 1, , A +2,6, 0,0, 1, , A +2,7, 0,0, 1, , A +2,8, 0,0, 1, , A +2,9, 0,0, 1, , A +2,10, 0,0, 1, , A +2,11, 0,0, 1, , A +2,12, 0,0, 1, , A +2,13, 0,0, 1, , A + +; Very strong hit spark +[Begin Action 3] +3,0, 0,0, 1, , A +3,1, 0,0, 1, , A +3,2, 0,0, 1, , A +3,3, 0,0, 1, , A +3,4, 0,0, 1, , A +3,5, 0,0, 1, , A +3,6, 0,0, 1, , A +3,7, 0,0, 1, , A +3,8, 0,0, 1, , A +3,9, 0,0, 1, , A +3,10, 0,0, 1, , A +3,11, 0,0, 1, , A +3,12, 0,0, 1, , A +3,13, 0,0, 1, , A +3,14, 0,0, 1, , A +3,15, 0,0, 1, , A +3,16, 0,0, 1, , A + +; Weak blood hit spark +[Begin Action 10] +10,0, 0,0, 2 +10,1, 0,0, 2 +10,2, 0,0, 2 +10,3, 0,0, 2 +10,4, 0,0, 2 +10,5, 0,0, 2 +10,6, 0,0, 2 +10,7, 0,0, 2 +10,8, 0,0, 2 +10,9, 0,0, 2 + +; Medium blood hit spark +[Begin Action 11] +11,1, 0,0, 1 +11,2, 0,0, 2 +11,3, 0,0, 1 +11,4, 0,0, 2 +11,5, 0,0, 1 +11,6, 0,0, 2 +11,7, 0,0, 1 +11,8, 0,0, 2 +11,9, 0,0, 1 +11,10, 0,0, 2 +11,11, 0,0, 1 +11,12, 0,0, 2 + +; Strong blood hit spark +[Begin Action 12] +12,1, 0,0, 1 +12,2, 0,0, 2 +12,3, 0,0, 1 +12,4, 0,0, 2 +12,5, 0,0, 1 +12,6, 0,0, 2 +12,7, 0,0, 1 +12,8, 0,0, 2 +12,9, 0,0, 1 +12,10, 0,0, 2 +12,11, 0,0, 1 +12,12, 0,0, 2 + +; Guard spark +[Begin Action 40] +40,0, 0,0, 1, , A +40,1, 0,0, 1, , A +40,2, 0,0, 1, , A +40,3, 0,0, 1, , A +40,4, 0,0, 1, , A +40,5, 0,0, 1, , A +40,6, 0,0, 1, , A +40,7, 0,0, 1, , A +40,8, 0,0, 1, , A +40,9, 0,0, 1, , A +40,10, 0,0, 1, , A +40,11, 0,0, 1, , A + +; Small ground shockwave +[Begin Action 60] +60,0, 0,0, 1 +60,1, 0,0, 1 +60,2, 0,0, 1 +60,3, 0,0, 1 +60,4, 0,0, 1 +60,5, 0,0, 1 +60,6, 0,0, 1 +60,7, 0,0, 1 +60,8, 0,0, 1 +60,9, 0,0, 1 + +; Medium ground shockwave +[Begin Action 61] +61,0, 0,0, 1 +61,1, 0,0, 1 +61,2, 0,0, 1 +61,3, 0,0, 1 +61,4, 0,0, 1 +61,5, 0,0, 1 +61,6, 0,0, 1 +61,7, 0,0, 1 +61,8, 0,0, 1 +61,9, 0,0, 1 + +; Strong ground shockwave +[Begin Action 62] +62,0, 0,0, 1 +62,1, 0,0, 1 +62,2, 0,0, 1 +62,3, 0,0, 1 +62,4, 0,0, 1 +62,5, 0,0, 1 +62,6, 0,0, 1 +62,7, 0,0, 1 +62,8, 0,0, 1 +62,9, 0,0, 1 +62,10, 0,0, 1 +62,11, 0,0, 1 +62,12, 0,0, 1 +62,13, 0,0, 1 +62,14, 0,0, 1 +62,15, 0,0, 1 +62,16, 0,0, 1 + +;Light wall-hit shockwave +[Begin Action 70] +70,0, 0,0, 1 +70,1, 0,0, 1 +70,2, 0,0, 1 +70,3, 0,0, 1 +70,4, 0,0, 1 +70,5, 0,0, 1 +70,6, 0,0, 1 +70,9, 0,0, 1 +70,8, 0,0, 1 +70,9, 0,0, 1 +70,10, 0,0, 1 +70,11, 0,0, 1 +70,12, 0,0, 1 +70,13, 0,0, 1 +70,14, 0,0, 1 + +;Medium wall-hit shockwave +[Begin Action 71] +71,0, 0,0, 1 +71,1, 0,0, 1 +71,2, 0,0, 1 +71,3, 0,0, 1 +71,4, 0,0, 1 +71,5, 0,0, 1 +71,6, 0,0, 1 +71,7, 0,0, 1 +71,8, 0,0, 1 +71,9, 0,0, 1 +71,10, 0,0, 1 +71,11, 0,0, 1 +71,12, 0,0, 1 +71,13, 0,0, 1 +71,14, 0,0, 1 + +;Strong wall-hit shockwave +[Begin Action 72] +72,0, 0,0, 1 +72,1, 0,0, 1 +72,2, 0,0, 1 +72,3, 0,0, 1 +72,4, 0,0, 1 +72,5, 0,0, 1 +72,6, 0,0, 1 +72,7, 0,0, 1 +72,8, 0,0, 1 +72,9, 0,0, 1 +72,10, 0,0, 1 +72,11, 0,0, 1 +72,12, 0,0, 1 +72,13, 0,0, 1 +72,14, 0,0, 1 + +; Level 1 super effect +[Begin Action 100] +100,0, 0,0, 1, ,A +100,1, 0,0, 1, , A +100,2, 0,0, 1, , A +100,3, 0,0, 1, , A +100,4, 0,0, 1, , A +100,5, 0,0, 1, , A +100,6, 0,0, 1, , A +100,7, 0,0, 1, , A +100,8, 0,0, 1, , A +100,9, 0,0, 1, , A +100,10, 0,0, 1, , A +100,11, 0,0, 1, , A +100,12, 0,0, 1, , A +100,13, 0,0, 1, , A +100,14, 0,0, 1, , A +100,15, 0,0, 1, , A +100,16, 0,0, 1, , A +100,17, 0,0, 1, , A +100,18, 0,0, 1, , A +100,19, 0,0, 1, , A +100,20, 0,0, 1, , A +100,21, 0,0, 1, , A +100,22, 0,0, 1, , A +100,23, 0,0, 1, , A +100,24, 0,0, 1, , A +100,25, 0,0, 1, , A +100,26, 0,0, 1, , A +100,27, 0,0, 1, , A +100,28, 0,0, 1, , A +100,29, 0,0, 1, , A + +; Level 2 super effect +[Begin Action 101] +101,0, 0,0, 1, , A +101,0, 0,0, 1, , A +101,1, 0,0, 1, , A +101,2, 0,0, 1, , A +101,3, 0,0, 1, , A +101,4, 0,0, 1, , A +101,5, 0,0, 1, , A +101,6, 0,0, 1, , A +101,7, 0,0, 1, , A +101,8, 0,0, 1, , A +101,9, 0,0, 1, , A +101,10, 0,0, 1, , A +101,11, 0,0, 1, , A +101,12, 0,0, 1, , A +101,13, 0,0, 1, , A +101,14, 0,0, 1, , A +101,15, 0,0, 1, , A +101,16, 0,0, 1, , A +101,17, 0,0, 1, , A +101,18, 0,0, 1, , A +101,19, 0,0, 1, , A +101,20, 0,0, 1, , A +101,21, 0,0, 1, , A +101,22, 0,0, 1, , A +101,23, 0,0, 1, , A +101,24, 0,0, 1, , A +101,25, 0,0, 1, , A +101,26, 0,0, 1, , A +101,27, 0,0, 1, , A +101,28, 0,0, 1, , A +101,29, 0,0, 1, , A + +; Level 3 super effect +[Begin Action 102] +102,0, 0,0, 1, ,A +102,1, 0,0, 1, , A +102,2, 0,0, 1, , A +102,3, 0,0, 1, , A +102,4, 0,0, 1, , A +102,5, 0,0, 1, , A +102,6, 0,0, 1, , A +102,7, 0,0, 1, , A +102,8, 0,0, 1, , A +102,9, 0,0, 1, , A +102,10, 0,0, 1, , A +102,11, 0,0, 1, , A +102,12, 0,0, 1, , A +102,13, 0,0, 1, , A +102,14, 0,0, 1, , A +102,15, 0,0, 1, , A +102,16, 0,0, 1, , A +102,17, 0,0, 1, , A +102,18, 0,0, 1, , A +102,19, 0,0, 1, , A +102,20, 0,0, 1, , A +102,21, 0,0, 1, , A +102,22, 0,0, 1, , A +102,23, 0,0, 1, , A +102,24, 0,0, 1, , A +102,25, 0,0, 1, , A +102,26, 0,0, 1, , A +102,27, 0,0, 1, , A +102,28, 0,0, 1, , A +102,29, 0,0, 1, , A +102,30, 0,0, 1, , A + +; Small floor dust +[Begin Action 120] +120,0, 0,0, 1 +120,1, 0,0, 1 +120,2, 0,0, 2 +120,3, 0,0, 2 +120,4, 0,0, 3 +120,5, 0,0, 3 +120,6, 0,0, 3 +120,7, 0,0, 3 +120,8, 0,0, 3 +120,9, 0,0, 3 +120,10, 0,0, 3 + +; Power up effect +[Begin Action 130] +LoopStart +130,0, 0,0, 1, , A1 +130,1, 0,0, 1, , A1 +130,2, 0,0, 1, , A1 +130,3, 0,0, 1, , A1 +130,4, 0,0, 1, , A1 +130,5, 0,0, 1, , A1 +130,6, 0,0, 1, , A1 +130,7, 0,0, 1, , A1 +130,8, 0,0, 1, , A1 +130,9, 0,0, 1, , A1 +130,10, 0,0, 1, , A1 +130,11, 0,0, 1, , A1 +130,12, 0,0, 1, , A1 +130,13, 0,0, 1, , A1 +130,14, 0,0, 1, , A1 +LoopStart +130,15, 0,0, 1, , A1 +130,16, 0,0, 1, , A1 +130,17, 0,0, 1, , A1 +130,18, 0,0, 1, , A1 +130,19, 0,0, 1, , A1 +130,20, 0,0, 1, , A1 +130,21, 0,0, 1, , A1 diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/fightfx.sff b/bios/Game Engines/Ikemen GO/ikemen/data/fightfx.sff new file mode 100644 index 00000000..51df53f3 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/data/fightfx.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/functions.zss b/bios/Game Engines/Ikemen GO/ikemen/data/functions.zss new file mode 100644 index 00000000..1c1b87a7 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/functions.zss @@ -0,0 +1,243 @@ +#=============================================================================== +# Functions +#=============================================================================== +# FirstAttack +[Function IkSys_FirstAttack() ret] +let ret = 0; +if firstAttack && (map(_iksys_firstAttackFlag) = 0 || map(_iksys_firstAttackFlag) = gameTime) { + let ret = 1; + map(_iksys_firstAttackFlag) := gameTime; +} + +# CounterHit +[Function IkSys_CounterHit() ret] +let ret = 0; +if moveCountered = 1 && (map(_iksys_counterHitFlag) = 0 || map(_iksys_counterHitFlag) = gameTime) { + let ret = 1; + map(_iksys_counterHitFlag) := gameTime; +} else if moveCountered = 0 { + map(_iksys_counterHitFlag) := 0; +} + +# Technical +[Function IkSys_Technical() ret] +let ret = 0; +if (stateNo = const(StateAirGetHit_fallRecoveryOnGround) || stateNo = const(StateAirGetHit_fallRecoveryInAir)) + && (map(_iksys_technicalFlag) = 0 || map(_iksys_technicalFlag) = gameTime) { + let ret = 1; + map(_iksys_technicalFlag) := gameTime; +} else if moveType = H && stateNo != const(StateAirGetHit_fallRecoveryOnGround) && stateNo != const(StateAirGetHit_fallRecoveryInAir) { + map(_iksys_technicalFlag) := 0; +} + +# Reversal +[Function IkSys_Reversal() ret] +let ret = 0; +if map(_iksys_reversalLastCall) != gameTime { + map(_iksys_reversalFrame1) := map(_iksys_reversalFrame0); + if (moveType = H && !hitOverridden) || stateNo = const(StateDownedGetHit_gettingUp) { + # Is in a hit state + map(_iksys_reversalFrame0) := 2; + } else if stateNo = [1000, 4999] && moveType != H && !inCustomState { + # Is performing a special or hyper move + map(_iksys_reversalFrame0) := 1; + } else { + # Reset + map(_iksys_reversalFrame0) := 0; + } + map(_iksys_reversalLastCall) := gameTime; +} +if map(_iksys_reversalFrame1) = 2 && map(_iksys_reversalFrame0) = 1 { + # Was in a hit state last frame, but is attacking this frame + let ret = 1; +} + +# Parry +[Function IkSys_Parry() ret] +let ret = 0; +if moveReversed = 1 && (map(_iksys_parryFlag) = 0 || map(_iksys_parryFlag) = gameTime) { + if !inCustomState && numEnemy { + let ret = 1; + map(_iksys_parryFlag) := gameTime; + } +} else if moveReversed = 0 { + map(_iksys_parryFlag) := 0; +} + +# Just Defend +[Function IkSys_JustDefend() ret] +let ret = 0; +if (command = "holdback" || map(_iksys_trainingGuardMode) || stateNo = [const(StateGuard_start), const(StateAirGuardHit_knockedAway)]) + && (map(_iksys_justDefendFlag) = 0 || map(_iksys_justDefendFlag) = gameTime) { + if map(_iksys_justDefendTimer) = 0 { + map(_iksys_justDefendTimer) := gameTime + 3; + } + if stateNo = [const(StateStandGuardHit_shaking), const(StateAirGuardHit_knockedAway)] && map(_iksys_justDefendTimer) > gameTime { + let ret = 1; + map(_iksys_justDefendFlag) := gameTime; + } +} else if stateNo != [const(StateGuard_start), const(StateAirGuardHit_knockedAway)] { + map(_iksys_justDefendFlag) := 0; + map(_iksys_justDefendTimer) := 0; +} + +# Danger +[Function IkSys_Danger() ret] +let ret = 0; +if life > 0 && float(life) / lifeMax <= 0.25 + && (map(_iksys_dangerFlag) = 0 || map(_iksys_dangerFlag) = gameTime) { + let ret = 1; + map(_iksys_dangerFlag) := gameTime; +} + +# Dizzy +[Function IkSys_Dizzy() ret] +let ret = 0; +if dizzy { + if map(_iksys_dizzyFlag) = 0 || map(_iksys_dizzyFlag) = gameTime { + let ret = 1; + map(_iksys_dizzyFlag) := gameTime; + } +} else { + map(_iksys_dizzyFlag) := 0; +} + +# Guard Break +[Function IkSys_GuardBreak() ret] +let ret = 0; +if guardBreak { + if map(_iksys_guardBreakFlag) = 0 || map(_iksys_guardBreakFlag) = gameTime { + let ret = 1; + map(_iksys_guardBreakFlag) := gameTime; + } +} else { + map(_iksys_guardBreakFlag) := 0; +} + +# Partner Down +[Function IkSys_PartnerDown() ret] +let ret = 0; +if numPartner > 0 && !alive + && (map(_iksys_partnerDownFlag) = 0 || map(_iksys_partnerDownFlag) = gameTime) { + let ret = 1; + map(_iksys_partnerDownFlag) := gameTime; +} + +# Win Clutch +[Function IkSys_WinClutch() ret] +let ret = 0; +if winClutch && (map(_iksys_winFlag) = 0 || map(_iksys_winFlag) = gameTime) { + let ret = 1; + map(_iksys_winFlag) := gameTime; +} + +# Win Perfect +[Function IkSys_WinPerfect() ret] +let ret = 0; +if winPerfect && (map(_iksys_winFlag) = 0 || map(_iksys_winFlag) = gameTime) { + let ret = 1; + map(_iksys_winFlag) := gameTime; +} + +# Win Special +[Function IkSys_WinSpecial() ret] +let ret = 0; +if winSpecial && (map(_iksys_winFlag) = 0 || map(_iksys_winFlag) = gameTime) { + let ret = 1; + map(_iksys_winFlag) := gameTime; +} + +# Win Hyper +[Function IkSys_WinHyper() ret] +let ret = 0; +if winHyper && (map(_iksys_winFlag) = 0 || map(_iksys_winFlag) = gameTime) { + let ret = 1; + map(_iksys_winFlag) := gameTime; +} + +# Win Streak +[Function IkSys_WinStreak() ret] +let ret = 0; +if roundState = 4 && win && matchOver && consecutiveWins > 0 && (roundNo > 1 || matchNo > 1) + && (map(_iksys_winStreakFlag) = 0 || map(_iksys_winStreakFlag) = gameTime) + && !isHomeTeam && enemy,aiLevel > 0 { + let ret = consecutiveWins; + map(_iksys_winStreakFlag) := gameTime; +} + +# Combo Count +[Function IkSys_ComboCount() ret] +let ret = 0; +if comboCount != map(_iksys_comboCountCurr) { + if comboCount < map(_iksys_comboCountCurr) && map(_iksys_comboCountCurr) >= 2 { + map(_iksys_comboCountRet) := map(_iksys_comboCountCurr); + map(_iksys_comboCountFlag) := gameTime; + } + map(_iksys_comboCountCurr) := comboCount; +} +if map(_iksys_comboCountFlag) = gameTime { + let ret = map(_iksys_comboCountRet); +} + +# Received Damage +[Function IkSys_ReceivedDamage() ret] +let ret = 0; +if receivedDamage != map(_iksys_receivedDamageCurr) { + if receivedDamage > 0 && getHitVar(teamSide) != teamSide { + map(_iksys_receivedDamageRet) := receivedDamage - map(_iksys_receivedDamageCurr); + map(_iksys_receivedDamageFlag) := gameTime; + } + map(_iksys_receivedDamageCurr) := receivedDamage; +} +if map(_iksys_receivedDamageFlag) = gameTime { + let ret = map(_iksys_receivedDamageRet); +} + +#=============================================================================== +# Global states (not halted by Pause/SuperPause, no helper limitations) +#=============================================================================== +[StateDef -4] + +ignoreHitPause if teamSide = 0 { + # Do nothing, global code executed by stage +} else if roundState = 0 { + map(_iksys_firstAttackFlag) := 0; + map(_iksys_counterHitFlag) := 0; + map(_iksys_technicalFlag) := 0; + map(_iksys_reversalFlag) := 0; + map(_iksys_reversalFrame0) := 0; + map(_iksys_reversalFrame1) := 0; + map(_iksys_reversalFrame2) := 0; + map(_iksys_parryFlag) := 0; + map(_iksys_justDefendFlag) := 0; + map(_iksys_justDefendTimer) := 0; + map(_iksys_dangerFlag) := 0; + map(_iksys_dizzyFlag) := 0; + map(_iksys_guardBreakFlag) := 0; + map(_iksys_partnerDownFlag) := 0; + map(_iksys_winFlag) := 0; + map(_iksys_winStreakFlag) := 0; + map(_iksys_comboCountFlag) := 0; + map(_iksys_comboCountCurr) := 0; + map(_iksys_comboCountRet) := 0; + map(_iksys_receivedDamageFlag) := 0; + map(_iksys_receivedDamageCurr) := 0; + map(_iksys_receivedDamageRet) := 0; +} else if roundState >= 2 { + call IkSys_FirstAttack(); + call IkSys_CounterHit(); + call IkSys_Technical(); + call IkSys_Reversal(); + call IkSys_Parry(); + call IkSys_JustDefend(); + call IkSys_Danger(); + call IkSys_Dizzy(); + call IkSys_GuardBreak(); + call IkSys_PartnerDown(); + call IkSys_WinPerfect(); + call IkSys_WinSpecial(); + call IkSys_WinHyper(); + call IkSys_WinStreak(); + call IkSys_ComboCount(); + call IkSys_ReceivedDamage(); +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/glyphs.sff b/bios/Game Engines/Ikemen GO/ikemen/data/glyphs.sff new file mode 100644 index 00000000..b8c93671 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/data/glyphs.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/gofx/gofx.air b/bios/Game Engines/Ikemen GO/ikemen/data/gofx/gofx.air new file mode 100644 index 00000000..72964d75 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/gofx/gofx.air @@ -0,0 +1,120 @@ +; Animation data for specific Ikemen GO fight effects + +;-------------------------- +; Dizzy Birds +[Begin Action 5300] +5300, 0, 0, 0, 1 + +[Begin Action 5301] +5301, 0, 0, 0, 1 + +[Begin Action 5302] +5302, 0, 0, 0, 1 + +[Begin Action 5303] +5303, 0, 0, 0, 1 + +[Begin Action 5304] +5304, 0, 0, 0, 1 + +[Begin Action 5305] +5305, 0, 0, 0, 1 + +[Begin Action 5306] +5306,0, 0,0, 1 + +[Begin Action 5307] +5307,0, 0,0, 1 + +[Begin Action 5308] +5308,0, 0,0, 1 + +;-------------------------- +; Guard Break Sparks +[Begin Action 5400] +5400, 0, 0, 0, 31, , AS256D0 +Interpolate Blend +5400, 0, 0, 0, 1, , AS8D248 + +[Begin Action 5401] +5401, 0, 0, 0, 31, , AS256D0 +Interpolate Blend +5401, 0, 0, 0, 1, , AS8D248 + +[Begin Action 5402] +5402, 0, 0, 0, 31, , AS256D0 +Interpolate Blend +5402, 0, 0, 0, 1, , AS8D248 + +; Guard Break shockwave +[Begin Action 5410] +5410, 0, 0, 0, 15, , AS256D256, 1.0, 1.0 +Interpolate Blend +Interpolate Scale +5410, 0, 0, 0, 1, , AS16D256, 1.5, 1.5 + + +;-------------------------- +; Tag Switch icons +;"AI" +[Begin Action 5600] +5600, 0, 0, 0, 60, , AS256D0 +5600, 0, 0, 0, 15, , AS256D0 +Interpolate Blend +5600, 0, 0, 0, 1, , AS16D240 + +;"P1" +[Begin Action 5601] +5601, 0, 0, 0, 60, , AS256D0 +5601, 0, 0, 0, 15, , AS256D0 +Interpolate Blend +5601, 0, 0, 0, 1, , AS16D240 + +;"P2" +[Begin Action 5602] +5602, 0, 0, 0, 60, , AS256D0 +5602, 0, 0, 0, 15, , AS256D0 +Interpolate Blend +5602, 0, 0, 0, 1, , AS16D240 + +;"P3" +[Begin Action 5603] +5603, 0, 0, 0, 60, , AS256D0 +5603, 0, 0, 0, 15, , AS256D0 +Interpolate Blend +5603, 0, 0, 0, 1, , AS16D240 + +;"P4" +[Begin Action 5604] +5604, 0, 0, 0, 60, , AS256D0 +5604, 0, 0, 0, 15, , AS256D0 +Interpolate Blend +5604, 0, 0, 0, 1, , AS16D240 + +;"P5" +[Begin Action 5605] +5605, 0, 0, 0, 60, , AS256D0 +5605, 0, 0, 0, 15, , AS256D0 +Interpolate Blend +5605, 0, 0, 0, 1, , AS16D240 + +;"P6" +[Begin Action 5606] +5606, 0, 0, 0, 60, , AS256D0 +5606, 0, 0, 0, 15, , AS256D0 +Interpolate Blend +5606, 0, 0, 0, 1, , AS16D240 + +;"P7" +[Begin Action 5607] +5607, 0, 0, 0, 60, , AS256D0 +5607, 0, 0, 0, 15, , AS256D0 +Interpolate Blend +5607, 0, 0, 0, 1, , AS16D240 + +;"P8" +[Begin Action 5608] +5608, 0, 0, 0, 60, , AS256D0 +5608, 0, 0, 0, 15, , AS256D0 +Interpolate Blend +5608, 0, 0, 0, 1, , AS16D240 diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/gofx/gofx.def b/bios/Game Engines/Ikemen GO/ikemen/data/gofx/gofx.def new file mode 100644 index 00000000..9a0471da --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/gofx/gofx.def @@ -0,0 +1,13 @@ +; This is a CommonFx file for ikemen. +; It's meant to handle some system fx and sfx (dizzy, guardbreak) outside of the default fightfx and common.snd to ensure backwards compatibility with preexisting Mugen hitsparks. +; If you're installing or developing your own fightfx, and it already includes custom animations for Ikemen's functions, you can disable this file from config.json. + +[Info] +prefix = GO ; This prefix is to be used instead of "F" when calling animations or sounds from this file +fx.scale = 1 ; For quick adjustment of effects scale +localcoord = 320, 240 ; For automatic adjustment between effect and lifebar scale + +[Files] +sff = gofx.sff ; Complementary to fightfx.sff +air = gofx.air ; Complementary to fighfx.air +snd = gofx.snd ; Complementary to common.snd diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/gofx/gofx.sff b/bios/Game Engines/Ikemen GO/ikemen/data/gofx/gofx.sff new file mode 100644 index 00000000..b11a769f Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/data/gofx/gofx.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/gofx/gofx.snd b/bios/Game Engines/Ikemen GO/ikemen/data/gofx/gofx.snd new file mode 100644 index 00000000..db074fe4 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/data/gofx/gofx.snd differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/guardbreak.zss b/bios/Game Engines/Ikemen GO/ikemen/data/guardbreak.zss new file mode 100644 index 00000000..95de4f27 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/guardbreak.zss @@ -0,0 +1,185 @@ +# Guard Break code adapted from Shiyo Kakuge's add004 +#=============================================================================== +# StateGuardBreakHit +#=============================================================================== +[StateDef const(StateGuardBreakHit); type: U; movetype: I; physics: N; velset: 0, 0; ctrl: 0;] + +if !guardBreak { + guardBreakSet{value: 1} +} + +if time = 0 { + if pos y < 0 { + stateTypeSet{statetype: A} # Just in case + } + # Decide animation type + # These could perhaps use common guard break constants later + if stateType = S { + changeAnim{value: const(AnimStandOrAirHitHigh_hard)} + } else if stateType = C { + changeAnim{value: const(AnimCrouchHit_hard)} + } else { + changeAnim{value: const(AnimStandOrAirHitHigh_hard)} # High hit makes the character look more open than low hit + } +} else { + changeAnim{value: anim} +} + +# Special effects +if time < 13 { + let center = Min(const(size.mid.pos.y), 0.5 * const(size.head.pos.y)) * ifElse(stateType = C, 0.5, 1.0); + if time = 0 { + # Guard break sound + playSnd{value: GO 5400, 0} + # Blue screen + if palFxVar(bg.time) = 0 { + bgPalFx{ + time: 30; + sincolor: -255, 60; + sinmul: -255, -255, 0, 60; + } + } + # Shockwave + explod{ + # Do note all anims and playsnds on this file are called from gofx.def, not fightfx.air/common.snd + anim: GO const(FxGuardBreakShockwave); + postype: p1; + pos: 0, $center; + sprpriority: 7; + ownpal: 1; + scale: 0.25, 0.25; + vfacing: ifElse(random < 500, 1, -1); + pausemovetime: -1; + ignorehitpause: 1; + } + } + # Glass shards + let direction = random / 1000.0; # The higher the shard, the more vertical velocity it will have + explod{ + anim: GO const(FxGuardBreakSpark) + randomRange(0, 2); + postype: p1; + pos: 0, (0.5 * $center) + ($center * $direction); + sprpriority: 6; + ownpal: 1; + scale: 0.20 + (random / 5000.0), 0.20 + (random / 5000.0); + angle: (random % 360); + vel: const240p(-6.0 - (random / 333.3)), const240p(-6.0) * $direction; + accel: 0, const240p(0.1); + friction: 0.95, 0.95; + facing: ifElse(random < 500, 1, -1); + vfacing: ifElse(random < 500, 1, -1); + pausemovetime: -1; + ignorehitpause: 1; + } +} + +# Every character stays in these states the same time, regardless of animation timing +if time >= 20 { + if vel y >= 0 && pos y >= -vel y { # If at ground level now or in the next frame + selfState{value: const(StateGuardBreakRecover)} + } else { + velAdd{y: const240p(1.0)} # Characters fall down fast regardless of their own acceleration constants + } +} + +#=============================================================================== +# StateGuardBreakRecover +#=============================================================================== +[StateDef const(StateGuardBreakRecover); type: U; movetype: I; physics: N; velset: 0, 0; ctrl: 0;] + +if time = 0 { + posSet{y: 0} + if stateType = A { + stateTypeSet{statetype: S; physics: S} + if anim != const(AnimStandOrAirHitHigh_hard) { + changeAnim{value: const(AnimStandOrAirHitHigh_hard)} # If using actual guard break animations the character would have a transition here + } + } else if stateType = C { + stateTypeSet{statetype: C; physics: C} + } else { + stateTypeSet{statetype: S; physics: S} + } +} + +if time < 45 { + if anim = [const(AnimStandOrAirHitHigh_light), const(AnimCrouchRecover_hard)] { + if animTime = -1 { + changeAnim{value: anim; elem: animElemNo(-1)} # Freeze last frame if reusing one of the required hit animations + } + } + if (time % 2) = 0 { + if (time % 4) { + offset{x: -const240p(1)} + } else { + offset{x: const240p(1)} + } + } +} + +# Change to recovery animation +if time = 45 { + if stateType = S { + changeAnim{value: const(AnimStandRecoverHigh_hard)} + } else if stateType = C { + changeAnim{value: const(AnimCrouchRecover_hard)} + } else { + changeAnim{value: const(AnimStandRecoverHigh_hard)} + } +} + +# Return to neutral +if time >= 60 { + if stateType = S { + selfState{value: const(StateStand); ctrl: 1} + } else if stateType = C { + selfState{value: const(StateCrouching); ctrl: 1} + } else { + selfState{value: const(StateAirGetHit_recoveringInAirNotFalling); ctrl: 1} + } +} + +#=============================================================================== +# Global states +#=============================================================================== +[StateDef -2] + +if !const(Default.Enable.GuardBreak) || isHelper || teamSide = 0 { + # Do nothing, global code disabled locally or executed by helper/stage +} else if roundState = 0 { + # Initialize points and variables + guardPointsSet{value: guardPointsMax} + map(_iksys_guardPointsTimer) := 0; +} else if roundState = 2 && alive { + # Decrease cooldown timer + if map(_iksys_guardPointsTimer) > 0 { + mapAdd{map: "_iksys_guardPointsTimer"; value: -1} + } + # Upon block + if stateNo = const(StateStandGuardHit_shaking) || stateNo = const(StateCrouchGuardHit_shaking) || stateNo = const(StateAirGuardHit_shaking) { + # Start cooldown timer + map(_iksys_guardPointsTimer) := 60; + # Warning if guard points left are under 333 or 50% for characters with a small guard bar + if getHitVar(frame) && guardPoints <= min((0.5 * guardPointsMax), 333) { + palFx{time: 20; add: 64, 0, 0; sinadd: 64, 0, 0, 4} + } + # Enter guard break state + if !guardBreak && guardPoints = 0 { + selfState{value: const(StateGuardBreakHit)} + } + } + # Reset guard points and remove guard break flag if player is no longer in one of guard break states + if guardBreak && stateNo != [const(StateGuardBreakHit), const(StateGuardBreakRecover)] { + guardPointsSet{value: guardPointsMax} + guardBreakSet{value: 0} + } + # Guard points recovery + if !guardBreak && guardPoints < guardPointsMax && map(_iksys_guardPointsTimer) <= 0 { + guardPointsAdd{value: 2; absolute: 1} + } +# Reset status if char is KO +} else { + guardBreakSet{value: 0} + if guardPoints < 1 { + guardPointsSet{value: 1} + } +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/credits.def b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/credits.def new file mode 100644 index 00000000..34c9cf26 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/credits.def @@ -0,0 +1,379 @@ + +[Info] +localcoord = 1280,720 + +[SceneDef] +spr = ikemen1/system.sff +font0 = ikemen1/fonts/Menu1.def +font1 = ikemen1/fonts/Menu2.def + +[Scene 0] +end.time = 100 +bgm = credits.mp3 + +[BG0] +type = video +path = ik_credits.webm + +[Scene 1] +end.time = 300 +layerall.pos = 640,720 + + +layer1.text = "IKEMEN Go 1.0\nDevelopment Team" +layer1.font = 1 +layer1.offset = 0,-400 +layer1.textdelay = 2 +layer1.font.scale = 2, 2 + + +[Scene 2] +layerall.pos = 640,720 +bg.name = BG0 +fadeout.time = 60 + +layer0.text = "IKEMEN Go 1.0\nDevelopment Team" +layer0.font = 1 +layer0.offset = 0,-400 +layer0.velocity = 0,-2 +layer0.textdelay = 0 +layer0.font.scale = 2, 2 + +layer1.text = "CREATOR" +layer1.starttime = 0 +layer1.font = 0 +layer1.offset = 0,20 +layer1.velocity = 0,-2 +layer1.textdelay = 3 + +layer2.text = "Suehiro" +layer2.starttime = 40 +layer2.font = 1 +layer2.offset = 0,20 +layer2.velocity = 0,-2 +layer2.textdelay = 2 + +layer3.text = "DEVELOPMENT LEAD" +layer3.starttime = 120 +layer3.font = 0 +layer3.offset = 0,20 +layer3.velocity = 0,-2 +layer3.textdelay = 3 + +layer4.text = "K4thos" +layer4.starttime = 160 +layer4.font = 1 +layer4.offset = 0,20 +layer4.velocity = 0,-2 +layer4.textdelay = 2 + +layer5.text = "DEVELOPERS" +layer5.starttime = 240 +layer5.font = 0 +layer5.offset = 0,20 +layer5.velocity = 0,-2 +layer5.textdelay = 3 + +layer6.text = "PotS" +layer6.starttime = 280 +layer6.font = 1 +layer6.offset = 0,20 +layer6.velocity = 0,-2 +layer6.textdelay = 2 + +layer7.text = "NeatUnsou" +layer7.starttime = 310 +layer7.font = 1 +layer7.offset = 0,20 +layer7.velocity = 0,-2 +layer7.textdelay = 2 + +layer8.text = "Gacel" +layer8.starttime = 340 +layer8.font = 1 +layer8.offset = 0,20 +layer8.velocity = 0,-2 +layer8.textdelay = 2 + +layer9.text = "Eiton" +layer9.starttime = 370 +layer9.font = 1 +layer9.offset = 0,20 +layer9.velocity = 0,-2 +layer9.textdelay = 2 + +layer10.text = "Jesuszilla" +layer10.starttime = 400 +layer10.font = 1 +layer10.offset = 0,20 +layer10.velocity = 0,-2 +layer10.textdelay = 2 + +layer11.text = "Rakíel" +layer11.starttime = 430 +layer11.font = 1 +layer11.offset = 0,20 +layer11.velocity = 0,-2 +layer11.textdelay = 2 + +layer12.text = "fantasma" +layer12.starttime = 460 +layer12.font = 1 +layer12.offset = 0,20 +layer12.velocity = 0,-2 +layer12.textdelay = 2 + +layer13.text = "Sam Hocevar" +layer13.starttime = 490 +layer13.font = 1 +layer13.offset = 0,20 +layer13.velocity = 0,-2 +layer13.textdelay = 2 + +layer14.text = "Wreq!" +layer14.starttime = 520 +layer14.font = 1 +layer14.offset = 0,20 +layer14.velocity = 0,-2 +layer14.textdelay = 2 + +layer15.text = "Wftk" +layer15.starttime = 550 +layer15.font = 1 +layer15.offset = 0,20 +layer15.velocity = 0,-2 +layer15.textdelay = 2 + +layer16.text = "wily-coyote" +layer16.starttime = 580 +layer16.font = 1 +layer16.offset = 0,20 +layer16.velocity = 0,-2 +layer16.textdelay = 2 + +layer17.text = "Amavect" +layer17.starttime = 610 +layer17.font = 1 +layer17.offset = 0,20 +layer17.velocity = 0,-2 +layer17.textdelay = 2 + +layer18.text = "two4teezee" +layer18.starttime = 640 +layer18.font = 1 +layer18.offset = 0,20 +layer18.velocity = 0,-2 +layer18.textdelay = 2 + +layer19.text = "Orange-Dolphin" +layer19.starttime = 670 +layer19.font = 1 +layer19.offset = 0,20 +layer19.velocity = 0,-2 +layer19.textdelay = 2 + +layer20.text = "Nikolay Griva" +layer20.starttime = 700 +layer20.font = 1 +layer20.offset = 0,20 +layer20.velocity = 0,-2 +layer20.textdelay = 2 + +layer21.text = "Daniel Porto" +layer21.starttime = 730 +layer21.font = 1 +layer21.offset = 0,20 +layer21.velocity = 0,-2 +layer21.textdelay = 2 + +layer22.text = "Alceris" +layer22.starttime = 760 +layer22.font = 1 +layer22.offset = 0,20 +layer22.velocity = 0,-2 +layer22.textdelay = 2 + +layer23.text = "Kase" +layer23.starttime = 790 +layer23.font = 1 +layer23.offset = 0,20 +layer23.velocity = 0,-2 +layer23.textdelay = 2 + +layer24.text = "Wintermourn" +layer24.starttime = 820 +layer24.font = 1 +layer24.offset = 0,20 +layer24.velocity = 0,-2 +layer24.textdelay = 2 + +layer25.text = "Kokorz" +layer25.starttime = 850 +layer25.font = 1 +layer25.offset = 0,20 +layer25.velocity = 0,-2 +layer25.textdelay = 2 + +layer26.text = "Super" +layer26.starttime = 880 +layer26.font = 1 +layer26.offset = 0,20 +layer26.velocity = 0,-2 +layer26.textdelay = 2 + +layer27.text = "Foobs" +layer27.starttime = 910 +layer27.font = 1 +layer27.offset = 0,20 +layer27.velocity = 0,-2 +layer27.textdelay = 2 + +layer28.text = "ShinLucho" +layer28.starttime = 940 +layer28.font = 1 +layer28.offset = 0,20 +layer28.velocity = 0,-2 +layer28.textdelay = 2 + +layer29.text = "BwdYeti" +layer29.starttime = 970 +layer29.font = 1 +layer29.offset = 0,20 +layer29.velocity = 0,-2 +layer29.textdelay = 2 + +layer30.text = "GaryCXJk" +layer30.starttime = 1000 +layer30.font = 1 +layer30.offset = 0,20 +layer30.velocity = 0,-2 +layer30.textdelay = 2 + +layer31.text = "Kasasagi" +layer31.starttime = 1030 +layer31.font = 1 +layer31.offset = 0,20 +layer31.velocity = 0,-2 +layer31.textdelay = 2 + +layer32.text = "RollinJay" +layer32.starttime = 1060 +layer32.font = 1 +layer32.offset = 0,20 +layer32.velocity = 0,-2 +layer32.textdelay = 2 + +layer33.text = "Leon Kasovan" +layer33.starttime = 1090 +layer33.font = 1 +layer33.offset = 0,20 +layer33.velocity = 0,-2 +layer33.textdelay = 2 + +layer34.text = "Among many other Ikemen GO engine contributors" +layer34.starttime = 1120 +layer34.font = 1 +layer34.offset = 0,20 +layer34.velocity = 0,-2 +layer34.textdelay = 2 + +layer35.text = "MOTIF AUTHOR" +layer35.starttime = 1280 +layer35.font = 0 +layer35.offset = 0,20 +layer35.velocity = 0,-2 +layer35.textdelay = 3 + +layer36.text = "Ohmga Shironeko" +layer36.starttime = 1320 +layer36.font = 1 +layer36.offset = 0,20 +layer36.velocity = 0,-2 +layer36.textdelay = 2 + +layer37.text = "MISC. CONTRIBUTORS" +layer37.starttime = 1400 +layer37.font = 0 +layer37.offset = 0,20 +layer37.velocity = 0,-2 +layer37.textdelay = 3 + +layer39.text = "President Devon" +layer39.starttime = 1440 +layer39.font = 1 +layer39.offset = 0,20 +layer39.velocity = 0,-2 +layer39.textdelay = 2 + +layer40.text = "Rurouni" +layer40.starttime = 1470 +layer40.font = 1 +layer40.offset = 0,20 +layer40.velocity = 0,-2 +layer40.textdelay = 2 + +layer41.text = "Shiyo Kakuge" +layer41.starttime = 1500 +layer41.font = 1 +layer41.offset = 0,20 +layer41.velocity = 0,-2 +layer41.textdelay = 2 + +layer42.text = "CrystalizedSun" +layer42.starttime = 1530 +layer42.font = 1 +layer42.offset = 0,20 +layer42.velocity = 0,-2 +layer42.textdelay = 2 + +layer43.text = "Miguel Young" +layer43.starttime = 1560 +layer43.font = 1 +layer43.offset = 0,20 +layer43.velocity = 0,-2 +layer43.textdelay = 2 + +layer44.text = "Kamekaze" +layer44.starttime = 1590 +layer44.font = 1 +layer44.offset = 0,20 +layer44.velocity = 0,-2 +layer44.textdelay = 2 + +layer45.text = "Lasombra Demon" +layer45.starttime = 1620 +layer45.font = 1 +layer45.offset = 0,20 +layer45.velocity = 0,-2 +layer45.textdelay = 2 + +layer46.text = "KUNG FU MAN" +layer46.starttime = 1700 +layer46.font = 0 +layer46.offset = 0,20 +layer46.velocity = 0,-2 +layer46.textdelay = 3 + +layer47.text = "Elecbyte" +layer47.starttime = 1740 +layer47.font = 1 +layer47.offset = 0,20 +layer47.velocity = 0,-2 +layer47.textdelay = 2 + +end.time = 2190 + + +[Scene 3] +end.time = 300 + +layer1.text = "Thank you for playing and testing!\n\nSee you next version!" +layer1.font = 1 +layer1.offset = 0,-400 + +[BG0] +type = video +path = ik_credits.webm + +[Scene 4] +end.time = 100 diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Action.def b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Action.def new file mode 100644 index 00000000..c43a9e01 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Action.def @@ -0,0 +1,32 @@ +; Action - 16 Point Font +; Indexed 8-bank +; Bank 0 - mono +; Bank 1 - blue +; Bank 2 - green +; Bank 3 - purple +; Bank 4 - red +; Bank 5 - yellow + +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "Action" + +[Def] +; This is a bitmap font +Type = bitmap +; Bank numbers are mapped to sprite group numbers (required for RGBA fonts). +BankType = sprite +; Size of font: width, height. Width is used for spaces. +Size = 8,16 +; Spacing between font glyphs: width, height. +Spacing = 0,4 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the sff containing the glyphs. Use sff v2 only. +File = Action.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. +; See files in work/font for information on creating the sff. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Action.sff b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Action.sff new file mode 100644 index 00000000..20a03443 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Action.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/ComboCounter.def b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/ComboCounter.def new file mode 100644 index 00000000..f4c410a0 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/ComboCounter.def @@ -0,0 +1,35 @@ +; Enter 48 - 48 point font +; Indexed 8-bank +; Bank 0 - mono +; Bank 1 - red +; Bank 2 - green +; Bank 3 - blue +; Bank 4 - brown +; Bank 5 - cyan +; Bank 6 - purple +; Bank 7 - yellow + +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "ComboCounter" +; This font contains the full ANSI character set. + +[Def] +; This is a bitmap font +Type = bitmap +; Bank numbers are mapped to palette numbers (0, bank). +BankType = palette +; Size of font: width, height. Width is used for spaces. +Size = 36,60 +; Spacing between font glyphs: width, height. +Spacing = 0,6 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the sff containing the glyphs. Use sff v2 only. +File = ComboCounter.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. +; See files in work/font for information on creating the sff. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/ComboCounter.sff b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/ComboCounter.sff new file mode 100644 index 00000000..705ad8ba Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/ComboCounter.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/HitNum.def b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/HitNum.def new file mode 100644 index 00000000..989036fb --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/HitNum.def @@ -0,0 +1,35 @@ +; Enter 48 - 48 point font +; Indexed 8-bank +; Bank 0 - mono +; Bank 1 - red +; Bank 2 - green +; Bank 3 - blue +; Bank 4 - brown +; Bank 5 - cyan +; Bank 6 - purple +; Bank 7 - yellow + +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "HitNum" +; This font contains the full ANSI character set. + +[Def] +; This is a bitmap font +Type = bitmap +; Bank numbers are mapped to palette numbers (0, bank). +BankType = palette +; Size of font: width, height. Width is used for spaces. +Size = 12,38 +; Spacing between font glyphs: width, height. +Spacing = -2, 4 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the sff containing the glyphs. Use sff v2 only. +File = HitNum.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. +; See files in work/font for information on creating the sff. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/HitNum.sff b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/HitNum.sff new file mode 100644 index 00000000..e13c0604 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/HitNum.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Menu1.def b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Menu1.def new file mode 100644 index 00000000..1e026f94 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Menu1.def @@ -0,0 +1,34 @@ +; Arcade - 38 point font +; Indexed 8-bank +; Bank 0 - mono +; Bank 1 - red +; Bank 2 - green +; Bank 3 - blue +; Bank 4 - brown +; Bank 5 - cyan +; Bank 6 - purple +; Bank 7 - yellow + +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "Menu1" + +[Def] +; This is a bitmap font +Type = bitmap +; Bank numbers are mapped to palette numbers (0, bank). +BankType = palette +; Size of font: width, height. Width is used for spaces. +Size = 61,42 +; Spacing between font glyphs: width, height. +Spacing = -7,7 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the sff containing the glyphs. Use sff v2 only. +File = Menu1.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. +; See files in work/font for information on creating the sff. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Menu1.sff b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Menu1.sff new file mode 100644 index 00000000..e522c9d1 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Menu1.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Menu2.def b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Menu2.def new file mode 100644 index 00000000..83a72b21 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Menu2.def @@ -0,0 +1,35 @@ +; Enter 48 - 48 point font +; Indexed 8-bank +; Bank 0 - mono +; Bank 1 - red +; Bank 2 - green +; Bank 3 - blue +; Bank 4 - brown +; Bank 5 - cyan +; Bank 6 - purple +; Bank 7 - yellow + +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "Menu2" +; This font contains the full ANSI character set. + +[Def] +; This is a bitmap font +Type = bitmap +; Bank numbers are mapped to palette numbers (0, bank). +BankType = palette +; Size of font: width, height. Width is used for spaces. +Size = 36,38 +; Spacing between font glyphs: width, height. +Spacing = 0,6 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the sff containing the glyphs. Use sff v2 only. +File = Menu2.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. +; See files in work/font for information on creating the sff. diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Menu2.sff b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Menu2.sff new file mode 100644 index 00000000..be70eb3e Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Menu2.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Menu2Small.def b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Menu2Small.def new file mode 100644 index 00000000..4efaaf9e --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Menu2Small.def @@ -0,0 +1,35 @@ +; Enter 48 - 48 point font +; Indexed 8-bank +; Bank 0 - mono +; Bank 1 - red +; Bank 2 - green +; Bank 3 - blue +; Bank 4 - brown +; Bank 5 - cyan +; Bank 6 - purple +; Bank 7 - yellow + +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "Menu2Small" +; This font contains the full ANSI character set. + +[Def] +; This is a bitmap font +Type = bitmap +; Bank numbers are mapped to palette numbers (0, bank). +BankType = palette +; Size of font: width, height. Width is used for spaces. +Size = 12,20 +; Spacing between font glyphs: width, height. +Spacing = 0,4 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the sff containing the glyphs. Use sff v2 only. +File = Menu2Small.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. +; See files in work/font for information on creating the sff. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Menu2Small.sff b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Menu2Small.sff new file mode 100644 index 00000000..a7623206 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Menu2Small.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Pixel.def b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Pixel.def new file mode 100644 index 00000000..25c8195d --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Pixel.def @@ -0,0 +1,34 @@ +; Arcade - 38 point font +; Indexed 8-bank +; Bank 0 - mono +; Bank 1 - red +; Bank 2 - green +; Bank 3 - blue +; Bank 4 - brown +; Bank 5 - cyan +; Bank 6 - purple +; Bank 7 - yellow + +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "Pixel" + +[Def] +; This is a bitmap font +Type = bitmap +; Bank numbers are mapped to palette numbers (0, bank). +BankType = palette +; Size of font: width, height. Width is used for spaces. +Size = 18,18 +; Spacing between font glyphs: width, height. +Spacing = 0,4 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the sff containing the glyphs. Use sff v2 only. +File = pixel.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. +; See files in work/font for information on creating the sff. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Pixel.sff b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Pixel.sff new file mode 100644 index 00000000..6831455b Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Pixel.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/PixelFlat.def b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/PixelFlat.def new file mode 100644 index 00000000..ed7589a5 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/PixelFlat.def @@ -0,0 +1,24 @@ +; Font used for the debug menu. +; Licensed under CC BY 3.0 with attribution to Gacel. + +[FNT v2] +; FNT v2 version number. +fntversion = 2,00 +; Name of the font. +name = "PixelFlat" +; This font contains the full ANSI character set. + +[Def] +; This is a bitmap font +Type = bitmap +; Size of font: width, height. Width is used for spaces. +Size = 14,14 +; Spacing between font glyphs: width, height. +Spacing = 4,0 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the sff containing the glyphs. +File = PixelFlat.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/PixelFlat.sff b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/PixelFlat.sff new file mode 100644 index 00000000..3749718e Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/PixelFlat.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/PowerbarNum.def b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/PowerbarNum.def new file mode 100644 index 00000000..80ac207c --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/PowerbarNum.def @@ -0,0 +1,35 @@ +; Enter 48 - 48 point font +; Indexed 8-bank +; Bank 0 - mono +; Bank 1 - red +; Bank 2 - green +; Bank 3 - blue +; Bank 4 - brown +; Bank 5 - cyan +; Bank 6 - purple +; Bank 7 - yellow + +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "PowerbarNum" +; This font contains the full ANSI character set. + +[Def] +; This is a bitmap font +Type = bitmap +; Bank numbers are mapped to palette numbers (0, bank). +BankType = palette +; Size of font: width, height. Width is used for spaces. +Size = 16,30 +; Spacing between font glyphs: width, height. +Spacing = 0,0 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the sff containing the glyphs. Use sff v2 only. +File = PowerbarNum.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. +; See files in work/font for information on creating the sff. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/PowerbarNum.sff b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/PowerbarNum.sff new file mode 100644 index 00000000..108feb7d Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/PowerbarNum.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Round.def b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Round.def new file mode 100644 index 00000000..f1193333 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Round.def @@ -0,0 +1,24 @@ +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "ComboCounter" +; This font contains the full ANSI character set. + +[Def] +; This is a bitmap font +Type = bitmap +; Bank numbers are mapped to palette numbers (0, bank). +BankType = palette +; Size of font: width, height. Width is used for spaces. +Size = 45,180 +; Spacing between font glyphs: width, height. +Spacing = -25,9 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the sff containing the glyphs. Use sff v2 only. +File = Round.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. +; See files in work/font for information on creating the sff. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Round.sff b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Round.sff new file mode 100644 index 00000000..224dbeed Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Round.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Timer.def b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Timer.def new file mode 100644 index 00000000..654615d8 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Timer.def @@ -0,0 +1,35 @@ +; Enter 48 - 48 point font +; Indexed 8-bank +; Bank 0 - mono +; Bank 1 - red +; Bank 2 - green +; Bank 3 - blue +; Bank 4 - brown +; Bank 5 - cyan +; Bank 6 - purple +; Bank 7 - yellow + +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "Timer" +; This font contains the full ANSI character set. + +[Def] +; This is a bitmap font +Type = bitmap +; Bank numbers are mapped to palette numbers (0, bank). +BankType = palette +; Size of font: width, height. Width is used for spaces. +Size = 35,49 +; Spacing between font glyphs: width, height. +Spacing = 5,6 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the sff containing the glyphs. Use sff v2 only. +File = Timer.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. +; See files in work/font for information on creating the sff. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Timer.sff b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Timer.sff new file mode 100644 index 00000000..b2c4a003 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/fonts/Timer.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/logo.def b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/logo.def new file mode 100644 index 00000000..238c6c77 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/logo.def @@ -0,0 +1,14 @@ +[Info] +localcoord = 1280,720 + +;------------------------------------ +[Scene 0] +; Fade +bg.name = BG0 ;Name of BG to show (no spaces allowed) +fadein.time = 30 +fadeout.time = 60 +end.time = 200 + +[BG0 Ikemen Logo] +type = video +path = ik_logo.webm diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/system.def b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/system.def new file mode 100644 index 00000000..2f62ec6a --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/system.def @@ -0,0 +1,2754 @@ +; Definitions of system screens + +; Motif: IKEMEN1 with 24 Slots +; Optimal resolution: 1280x720 +; Supported languages: en, ja + +; Notes about fonts: +; - fonts can be specified in the [Files] section (no limit to how many), +; alternatively, you can point directly to the file path in the parameter: +; i.e: menu.item.font = font/menu1.def, 0, -1 +; - fonts indexed here do not refer to the ones in fight.def +; - fonts are search in directories in the following order: +; 1. system directory +; 2. ikemen program directory (not recommended to keep custom fonts here) +; 3. data/ (not recommended to keep custom fonts here) +; 4. font/ + +;---------------------------- +[Info] +name = IKEMEN1 ;Name of motif +author = Ohmga Shironeko ;Motif author name +versiondate = 03,06,2026 ;Version date of motif (MM-DD-YYYY) (new in MUGEN 1.0) +ikemenversion = 1.0 ;Version of I.K.E.M.E.N motif is compatible with (Ikemen nightly) +localcoord = 1280,720 ;Local coordinate space width and height (new in MUGEN 1.0) + +;---------------------------- +;Directories are checked in this order: +;1. current directory system.def is in +;2. data/ +;3. your Ikemen directory +;eg. If you write "spr = system.sff", and this system.def file +; is in ~/ikemen/data/mymotif/, then Ikemen will first look +; for ~/ikemen/data/mymotif/system.sff. If it does not find +; it there, it looks for ~/ikemen/data/system.sff (the default). +; Finally, if that is not found, it will look for +; ~/ikemen/system.sff. + +[Files] +spr = system.sff ;Filename of sprite data +snd = system.snd ;Filename of sound data +logo.storyboard = logo.def ;Logo storyboard definition (optional) +;intro.storyboard = ;Intro storyboard definition (optional) +select = select.def ;Character and stage selection list +fight = fight.def ;Fight definition filename +font1 = f-4x6.def +font2 = ikemen1/fonts/Pixel.def +font3 = ikemen1/fonts/Menu2.def +font4 = ikemen1/fonts/Menu1.def +font5 = Open_Sans.def +;font5.height = 36 ;Uncomment to override the size of the font (Truetype fonts only) +font6 = infofont.def +font7 = Open_Sans.def +font8 = ikemen1/fonts/Timer.def +font9 = ikemen1/fonts/PixelFlat.def +module = ;External Lua code + +;---------------------------- +[Music] + ;Put a filename for a MOD, MP3 or MIDI here, or just leave it + ;blank if you do not want music. If an invalid filename is + ;given, then no music will play. + ;To play mymusic.mp3 from the sound/ directory, put: + ; title.bgm = sound/mymusic.mp3 + ;Music will continue to play between screens if the files names + ;are the same, and both BGMs are specified to loop. + ;Music to play at title screen. +title.bgm = sound/Title.mp3 +title.bgm.volume = 100 ;volume scaling factor in percent. 100 is default +title.bgm.loop = 1 ;Set to 0 to prevent looping +title.bgm.loopstart = +title.bgm.loopend = + ;Music to play at char select screen. +select.bgm = sound/Select.mp3 +select.bgm.volume = 100 +select.bgm.loop = 1 +select.bgm.loopstart = +select.bgm.loopend = + ;Music to play at versus screen. +vs.bgm = sound/Versus.mp3 +vs.bgm.volume = 100 +vs.bgm.loop = 0 +vs.bgm.loopstart = +vs.bgm.loopend = + ;Music to play at victory screen. +victory.bgm = sound/Winner.mp3 +victory.bgm.volume = 100 +victory.bgm.loop = 0 +victory.bgm.loopstart = +victory.bgm.loopend = + ;Music to play at option screen. +option.bgm = +option.bgm.volume = 100 +option.bgm.loop = 1 +option.bgm.loopstart = +option.bgm.loopend = + ;Music to play at replay screen. +replay.bgm = +replay.bgm.volume = 100 +replay.bgm.loop = 1 +replay.bgm.loopstart = +replay.bgm.loopend = + ;Music to play at continue screen. +continue.bgm = sound/Continue.mp3 +continue.bgm.volume = 100 +continue.bgm.loop = 0 +continue.bgm.loopstart = +continue.bgm.loopend = + ;Music to play at results screen. +results.bgm = +results.bgm.volume = 100 +results.bgm.loop = 1 +results.bgm.loopstart = +results.bgm.loopend = + ;Music to play at hiscore screen. +hiscore.bgm = +hiscore.bgm.volume = 100 +hiscore.bgm.loop = 1 +hiscore.bgm.loopstart = +hiscore.bgm.loopend = + +;------------------------------------------------------------------- +;Title screen definition +[Title Info] +fadein.time = 10 +fadeout.time = 10 +menu.pos = 1240,330 +menu.tween.factor = 0.5 +menu.item.font = 4,0,-1 +menu.item.active.font = 4,0,-1, 123,206,255 +menu.item.spacing = 0, 54 +menu.item.layerno = 2 +menu.item.active.layerno = 2 + +loading.font = 9, 0, -1, 191, 191, 191, 255, -1 +loading.offset = 1200, 680 +loading.scale = 1.5, 1.5 +loading.xshear = 0.25 +loading.text = NOW LOADING... + +footer.title.font = default-3x5.def, 0, 1, 191, 191, 191, 255, -1 +footer.title.offset = 5, 721 +footer.title.scale = 3,3 + +footer.info.font = default-3x5.def, 0, 0, 191, 191, 191, 255, -1 +footer.info.offset = 640, 721 +footer.info.scale = 3,3 + +footer.version.font = default-3x5.def, 0, -1, 191, 191, 191, 255, -1 +footer.version.offset = 1275, 721 +footer.version.scale = 3,3 + +footer.overlay.col = 0, 0, 64 +footer.overlay.alpha = 255, 100 +footer.overlay.window = 0, 700, 1280, 720 + +;Network menu +connecting.offset = 640, 393 +connecting.font = 7,0,0 +connecting.scale = 1.0, 1.0 +connecting.text = Waiting for player 2... (%s) +connecting.join.text = Now connecting to %s... (%s) +;connecting.overlay.window = 0, 0, 1280, 720 +connecting.overlay.col = 0, 0, 0 +connecting.overlay.alpha = 0, 128 +textinput.offset = 189, 393 +textinput.font = 7,0,1 +textinput.scale = 1.0, 1.0 +textinput.name.text = Enter Host display name, e.g. John.\nExisting entries can be removed with DELETE button. +textinput.address.text = Enter Host IP address, e.g. 127.0.0.1\nCopied text can be pasted with INSERT button. +;textinput.overlay.window = 0, 0, 1280, 720 +textinput.overlay.col = 0, 0, 0 +textinput.overlay.alpha = 0, 128 + +; These parameters define the window in which the items are visible +; in. +menu.window.margins.y = 40, 30 +menu.window.visibleitems = 6 +menu.boxcursor.visible = 0 ;Set to 1 to enable default cursor display +menu.boxcursor.tween.snap = 1 ;Set to 0 to disable cursor snap on menu section change +menu.boxcursor.tween.factor = 0.5 +menu.boxcursor.coords = -646,-45,45,6 +; These are the sounds for cursor movement +cursor.move.snd = 100,0 +cursor.done.snd = 100,1 +cancel.snd = 100,2 + +; Flexible submenu grouping. +;Full documentation of this feature is available on Ikemen GO features wiki + +; Submenu: Arcade +menu.itemname.menuarcade = ARCADE +menu.itemname.menuarcade.arcade = SINGLE MODE +menu.itemname.menuarcade.teamarcade = TEAM ARCADE +menu.itemname.menuarcade.teamcoop = TEAM CO-OP +menu.itemname.menuarcade.back = BACK + +; Submenu: Versus +menu.itemname.menuversus = VS MODE +menu.itemname.menuversus.versus = 1P VS 2P +menu.itemname.menuversus.teamversus = TEAM VERSUS +menu.itemname.menuversus.versuscoop = VERSUS CO-OP +menu.itemname.menuversus.freebattle = QUICK MATCH +menu.itemname.menuversus.back = BACK + +; Submenu: Story Mode +menu.itemname.storymode = STORY MODE +; story arcs menu items are automatically added before storymode.back +menu.itemname.storymode.back = BACK + +; Submenu: Network +menu.itemname.menunetwork = NETWORK +menu.itemname.menunetwork.serverhost = HOST GAME +menu.itemname.menunetwork.serverjoin = JOIN GAME +menu.itemname.menunetwork.back = BACK + +; known IP addresses show up before serverjoin.back item +menu.itemname.menunetwork.serverjoin.joinadd = NEW ADDRESS +menu.itemname.menunetwork.serverjoin.back = BACK + +; This group is hidden and should not be moved to other menus. +; It's opened automatically, after synchronization with online player. +menu.itemname.server.netplayversus = VERSUS 2P +menu.itemname.server.netplayteamcoop = ARCADE CO-OP +menu.itemname.server.netplaysurvivalcoop = SURVIVAL CO-OP +menu.itemname.server.back = EXIT + +; Submenu: Practice +menu.itemname.menupractice = PRACTICE +menu.itemname.menupractice.training = TRAINING +menu.itemname.menupractice.back = BACK + +; Submenu: Mission +menu.itemname.menumission = MISSION +menu.itemname.menumission.survival = SURVIVAL +menu.itemname.menumission.survivalcoop = SURVIVAL CO-OP +menu.itemname.menumission.timeattack = TIME ATTACK +menu.itemname.menumission.bonusgames = BONUS GAMES +menu.itemname.menumission.back = BACK + +; Submenu: Mission => Bonus Games +; bonus characters menu items are automatically added before bonusgames.back +menu.itemname.menumission.bonusgames.back = BACK + +; Submenu: Watch Mode +menu.itemname.menuwatch = WATCH MODE +menu.itemname.menuwatch.watch = CPU MATCH +menu.itemname.menuwatch.randomtest = RANDOMTEST +menu.itemname.menuwatch.replay = REPLAY +menu.itemname.menuwatch.back = BACK + +; Options +menu.itemname.options = OPTIONS + +; Exit Game +menu.itemname.exit = EXIT + +;---------------------------- +;Title background definition +[TitleBGdef] +bgclearcolor = 255,255,255 + +[TitleBG Background Sky] +type = normal +spriteno = 100,0 +layerno = 0 +start = -640,0 + +[TitleBG Background Clouds Top] +type = normal +spriteno = 100,2 +layerno = 0 +start = -640, -50 +tile = 1,0 +velocity = -0.1, 0 +window = 0,0, 1279,959 +mask = 1 + +[TitleBG Background Clouds Bottom] +type = normal +spriteno = 100,3 +layerno = 0 +start = -640, 0 +tile = 1,0 +velocity = -0.7, 0 +window = 0,0, 1279,959 +mask = 1 + + +[TitleBG Background Black Bars] +type = normal +spriteno = 100,1 +layerno = 0 +start = -640,0 +trans = add1 +mask = 1 + + +[TitleBG Background Black Menu Bars] +type = normal +spriteno = 98,0 +layerno = 0 +start = 640,282 +trans = add1 +mask = 1 + +[TitleBG Title LogoShadow] +type = normal +spriteno = 0, 2 +layerno = 1 +start = -250,155 +mask = 1 +alpha = 256,96 +trans = add +sin.y = 15, 264, 2 + +[TitleBG Title LogoShadow] +type = normal +spriteno = 0, 3 +layerno = 1 +start = -250,155 +mask = 1 +alpha = 256,96 +trans = add +sin.y = 15, 264, 32 + +[TitleBG Title Logo] +type = normal +spriteno = 0, 0 +layerno = 1 +start = -250,155 +mask = 1 +sin.y = 15, 264, 2 + +[TitleBG Title Logo 2] +type = normal +spriteno = 0, 1 +layerno = 1 +start = -250,155 +mask = 1 +sin.y = 15, 264, 32 + +;---------------------------- +[Infobox] ;(new in MUGEN 1.0) +title.offset = 640,38 +title.font = 4,0,0 +title.scale = 1.0, 1.0 +title.text = +text.offset = 189, 393 +text.font = 7,0,1 +text.scale = 1.0, 1.0 +;overlay.window = 0, 0, 1280, 720 +overlay.col = 0, 0, 0 +overlay.alpha = 0, 128 + +;---------------------------- +[Infobox Text] +Welcome to I.K.E.M.E.N GO engine! (%s - %s) + +* This is a public development release, for testing purposes. +* This build may contain bugs and incomplete features. +* Your help and cooperation are appreciated! +* Source code: https://github.com/ikemen-engine/Ikemen-GO +* Bug reports: https://github.com/ikemen-engine/Ikemen-GO/issues +* Docs: https://github.com/ikemen-engine/Ikemen-GO/wiki + +;------------------------------------------------------------------- +;Character select definition +[Select Info] +fadein.time = 10 +fadeout.time = 10 +rows = 10 +columns = 8 +wrapping = 1 ;1 to let cursor wrap around +pos = 525,195 ;Position to draw to +showemptyboxes = 1 ;1 to show empty boxes +moveoveremptyboxes = 1 ;1 to allow cursor to move over empty boxes +coopqueue = 1 ;1 to allow character selection queuing in coop modes +cell.size = 24,24 ;x,y size of each cell (in pixels) +cell.spacing = 4 ;Space between each cell +cell.bg.spr = 150,0 ;Note: Don't use animation for cells +cell.bg.scale = .25,.25 +cell.random.spr = 151,0 ;Icon for random select (don't use animation) +cell.random.switchtime = 4 ;Time to wait before changing to another random portrait +cell.random.scale = .25,.25 +p1.cursor.tween.factor = 0.5, 0.5 +p1.cursor.startcell = 0,0 +p1.cursor.active.anim = 160 +p1.cursor.active.scale = .25,.25 +p1.cursor.done.spr = 161,0 +p1.cursor.done.scale = .25,.25 +p1.cursor.move.snd = 100,0 +p1.cursor.done.snd = 100,1 +p1.random.move.snd = 100,0 +p2.cursor.tween.factor = 0.25, 0.25 +p2.cursor.startcell = 0,0 +p2.cursor.active.anim = 170 +p2.cursor.active.scale = .25,.25 +p2.cursor.done.spr = 171,0 +p2.cursor.done.scale = .25,.25 +p2.cursor.blink = 0 ;1 to blink p2's cursor if overlapping p1's +p2.cursor.move.snd = 100,0 +p2.cursor.done.snd = 100,1 +p2.random.move.snd = 100,0 +p3.cursor.startcell = 3,0 +p3.cursor.active.anim = 172 +p3.cursor.active.scale = .25,.25 +p3.cursor.done.spr = 173,0 +p3.cursor.done.scale = .25,.25 +p3.cursor.move.snd = 100,0 +p3.cursor.done.snd = 100,1 +p3.random.move.snd = 100,0 +p4.cursor.startcell = 3,2 +p4.cursor.active.anim = 174 +p4.cursor.active.scale = .25,.25 +p4.cursor.done.spr = 175,0 +p4.cursor.done.scale = .25,.25 +p4.cursor.move.snd = 100,0 +p4.cursor.done.snd = 100,1 +p4.random.move.snd = 100,0 +random.move.snd.cancel = 0 ;1 to have random move sound cancel itself when played repeatedly +stage.move.snd = 100,0 +stage.done.snd = 100,1 +cancel.snd = 100,2 +portrait.spr = 9000,0 +portrait.offset = 0,0 +portrait.scale = .25,.25 +portrait.loading.spr = 1000,0 +portrait.loading.offset = 0,0 +portrait.loading.scale = .25,.25 +title.offset = 640,48 ;Position of title (Arcade Mode, etc) +title.font = 4,0,0 ;Font of title (-1 for none) +title.layerno = 2 + +; Text rendered using title element (hardcoded in Mugen) +;title..text = +title.arcade.text = ARCADE +title.teamarcade.text = TEAM ARCADE +title.teamcoop.text = TEAM CO-OP +title.versus.text = VERSUS +title.teamversus.text = TEAM VERSUS +title.versuscoop.text = VERSUS CO-OP +title.freebattle.text = QUICK MATCH +title.storymode.text = STORY MODE +title.netplayversus.text = ONLINE VERSUS +title.netplayteamcoop.text = ONLINE CO-OP +title.netplaysurvivalcoop.text = ONLINE SURVIVAL +title.training.text = TRAINING +title.timeattack.text = TIME ATTACK +title.survival.text = SURVIVAL +title.survivalcoop.text = SURVIVAL CO-OP +title.bonus.text = BONUS +title.watch.text = WATCH MODE +title.replay.text = REPLAY + +; Cell Projection + +cell.*-0.xangle = 10 +cell.*-0.projection = perspective +cell.*-0.focallength = 50 +cell.*-0.spacing = 7.5, 0 +cell.*-0.scale = 0.3,0.3 +cell.*-0.offset = -11, -46 + +cell.*-1.xangle = 10 +cell.*-1.projection = perspective +cell.*-1.focallength = 50 +cell.*-1.spacing = 8.75, -46 +cell.*-1.scale = 0.315,0.315 +cell.*-1.offset = -16, 0 + +cell.*-2.xangle = 10 +cell.*-2.projection = perspective +cell.*-2.focallength = 50 +cell.*-2.spacing = 10, -22 +cell.*-2.scale = 0.325,0.325 +cell.*-2.offset = -21, 0 + +cell.*-3.xangle = 10 +cell.*-3.projection = perspective +cell.*-3.focallength = 50 +cell.*-3.spacing = 11.5, -13.5 +cell.*-3.scale = 0.34,0.34 +cell.*-3.offset = -27, 0 + +cell.*-4.xangle = 10 +cell.*-4.projection = perspective +cell.*-4.focallength = 50 +cell.*-4.spacing = 13, -8.5 +cell.*-4.scale = 0.355,0.355 +cell.*-4.offset = -33, 0 + +cell.*-5.xangle = 10 +cell.*-5.projection = perspective +cell.*-5.focallength = 50 +cell.*-5.spacing = 14.5, -5 +cell.*-5.scale = 0.37,0.37 +cell.*-5.offset = -39, 0 + +cell.*-6.xangle = 10 +cell.*-6.projection = perspective +cell.*-6.focallength = 50 +cell.*-6.spacing = 16.25, -2.2 +cell.*-6.scale = 0.39,0.39 +cell.*-6.offset = -46, 0 + +cell.*-7.xangle = 10 +cell.*-7.projection = perspective +cell.*-7.focallength = 50 +cell.*-7.spacing = 18.375, 0.3 +cell.*-7.scale = 0.405,0.405 +cell.*-7.offset = -54, 0 + +cell.*-8.xangle = 10 +cell.*-8.projection = perspective +cell.*-8.focallength = 50 +cell.*-8.spacing = 20.7, 2.7 +cell.*-8.scale = 0.422,0.422 +cell.*-8.offset = -63, 0 + +cell.*-9.xangle = 10 +cell.*-9.projection = perspective +cell.*-9.focallength = 50 +cell.*-9.spacing = 23, 5 +cell.*-9.scale = 0.46,0.46 +cell.*-9.offset = -73, 0 + +; If defined draws a sprite or anim from the screenpack on cells using the slot parameter in select.def. +cell.slot.anim = 158 +;cell.slot.spr = -1, 0 +cell.slot.offset = 0, 0 +cell.slot.facing = 1 +cell.slot.scale = .25,.25 +cell.slot.layerno = 2 + +;Main big portraits +p1.face.anim = 0 ;Animated portraits +p1.face.offset = 280, 560 ;Position to place the portrait +p1.face.scale = 0.75,0.75 +p1.face.facing = 1 +p1.face.window = 0,46, 476,629 +p1.face.applypal = 1 ;Display portrait with selected palette (requires shared palette) +p1.face.layerno = 2 + +p1.face.random.anim = 151 +p1.face.random.offset = 300, 360 +p1.face.random.facing = 1 +p1.face.random.scale = 2, 2 +p1.face.random.layerno = 2 + +p1.face.loading.anim = 151 +p1.face.loading.offset = 300, 360 +p1.face.loading.facing = 1 +p1.face.loading.scale = 2, 2 +p1.face.loading.layerno = 2 + +p1.face.slot.anim = 156 +;p1.face.slot.spr = 155, 0 +p1.face.slot.offset = 320, 300 +p1.face.slot.facing = 1 +p1.face.slot.angle = 0 +p1.face.slot.scale = 0.2,0.2 +p1.face.slot.layerno = 2 + +p2.face.anim = 0 +p2.face.offset = 1000, 560 +p2.face.scale = 0.75,0.75 +p2.face.facing = -1 +p2.face.window = 802,46, 1280,629 +p2.face.applypal = 1 +p2.face.layerno = 2 + +p2.face.random.anim = 151 +p2.face.random.offset = 960, 360 +p2.face.random.facing = 1 +p2.face.random.scale = 2, 2 +p2.face.random.layerno = 2 + +p2.face.loading.anim = 151 +p2.face.loading.offset = 960, 360 +p2.face.loading.facing = 1 +p2.face.loading.scale = 1, 1 +p2.face.loading.layerno = 2 + +p2.face.slot.anim = 156 +;p2.face.slot.spr = 155, 0 +p2.face.slot.offset = 960, 300 +p2.face.slot.facing = -1 +p2.face.slot.angle = 0 +p2.face.slot.scale = 0.2,0.2 +p2.face.slot.layerno = 2 + +p1.face.done.anim = 181 ;Portrait to use when selection is confirmed +p2.face.done.anim = 181 + +;Secondary big portraits +p1.face2.spr = 9000,1 ;Secondary portrait +p1.face2.projection = perspective +p1.face2.yangle = 70 +p1.face2.layerno = 2 +p1.face2.focallength = 400 +p1.face2.offset = 0, 94 +p1.face2.scale = 1, 1 +p1.face2.facing = 1 +p1.face2.window = 0,46, 476,629 +p1.face2.applypal = 1 + +p2.face2.spr = 9000,1 +p2.face2.projection = perspective +p2.face2.yangle = -70 +p2.face2.layerno = 2 +p2.face2.focallength = 400 +p2.face2.offset = 1279, 94 +p2.face2.scale = 1, 1 +p2.face2.facing = -1 +p2.face2.window = 802,46, 1280,629 +p2.face2.applypal = 1 + +p1.face2.random.spr = 151,0 +p1.face2.random.offset = 0, 94 +p1.face2.random.facing = 1 +p1.face2.random.scale = 5, 5 +p1.face2.random.layerno = 2 +p1.face2.random.projection = perspective +p1.face2.random.yangle = 70 +p1.face2.random.layerno = 2 +p1.face2.random.focallength = 400 +p1.face2.random.window = 0,46, 476,629 + +p2.face2.random.spr = 151, 1 +p2.face2.random.offset = 1280, 94 +p2.face2.random.facing = -1 +p2.face2.random.scale = 5, 5 +p2.face2.random.layerno = 2 +p2.face2.random.window = 802,46, 1280,629 +p2.face2.random.projection = perspective +p2.face2.random.yangle = -70 +p2.face2.random.focallength = 400 + +p1.face2.loading.spr = 1000, 1 +p1.face2.loading.offset = 0, 94 +p1.face2.loading.facing = 1 +p1.face2.loading.scale = 1, 1 +p1.face2.loading.layerno = 2 +p1.face2.loading.projection = perspective +p1.face2.loading.yangle = 70 +p1.face2.loading.layerno = 2 +p1.face2.loading.focallength = 400 +p1.face2.loading.window = 0,46, 476,629 + +p2.face2.loading.spr = 1000, 1 +p2.face2.loading.offset = 1280, 94 +p2.face2.loading.facing = -1 +p2.face2.loading.scale = 1, 1 +p2.face2.loading.layerno = 2 +p2.face2.loading.window = 802,46, 1280,629 +p2.face2.loading.projection = perspective +p2.face2.loading.yangle = -70 +p2.face2.loading.focallength = 400 + +;Name +p1.name.offset = 50,620 ;Position to put name +p1.name.font = 3,0,1, 210,210,255 ;Set to -1 for no display +p1.name.spacing = 15,25 ;Space between each name for players on the same team +p1.name.layerno = 2 +p2.name.offset = 1230,620 +p2.name.font = 3,0,-1, 255,210,239 +p2.name.spacing = -15,25 +p2.name.layerno = 2 + +;Stage select +stage.pos = 640,707 +stage.font = 3,0,0 +stage.active.font = 3,0,0 +stage.active2.font = 3,0,0, 200,256,200 ;Second font color for blinking +stage.done.font = 3,0 +stage.layerno = 2 + +;Stage portraits +;stage.portrait.anim = +stage.portrait.spr = 9000,1 +stage.portrait.offset = -121, -141 +stage.portrait.scale = 0.25, 0.25 +stage.portrait.bg.anim = 110 +;stage.portrait.bg.spr = +stage.portrait.bg.offset = -163, -144 +stage.portrait.bg.scale = 1.0, 1.0 +stage.portrait.bg.layerno = 2 +;stage.portrait.random.anim = 113 +stage.portrait.random.spr = 111,0 +stage.portrait.random.offset = -163, -144 +stage.portrait.random.scale = 1.0, 1.0 +stage.portrait.random.layerno = 2 +; stage.portrait.loading.spr = +stage.portrait.loading.anim = 113 +stage.portrait.loading.offset = -163, -144 +stage.portrait.loading.scale = 1.0, 1.0 +stage.portrait.loading.layerno = 2 +stage.portrait.window = 521, 567, 759, 665 +stage.portrait.layerno = 2 + +;Record +record.font = 3,0,0 +record.offset = 640, 672 +record.scale = 0.6, 0.6 +record.layerno = 2 +;record..text = +record.window = + +;P1 Team menu +teammenu.move.wrapping = 1 +p1.teammenu.pos = 80, 160 +;p1.teammenu.bg.spr = +p1.teammenu.selftitle.font = 3,0,0, 210,210,255 +p1.teammenu.selftitle.text = TEAM MODE ;\n can create a line break here. +p1.teammenu.selftitle.scale = 0.75,0.75 +p1.teammenu.selftitle.offset = 130, 15 +p1.teammenu.selftitle.layerno = 2 +p1.teammenu.selftitle.projection = perspective +p1.teammenu.selftitle.yangle = 52.5 +p1.teammenu.selftitle.focallength = 200 +p1.teammenu.enemytitle.font = 3,0,0, 210,210,255 +p1.teammenu.enemytitle.text = TEAM MODE +p1.teammenu.enemytitle.layerno = 2 +p1.teammenu.enemytitle.scale = 0.75,0.75 +p1.teammenu.enemytitle.offset = 130, 15 +p1.teammenu.enemytitle.projection = perspective +p1.teammenu.enemytitle.yangle = 52.5 +p1.teammenu.enemytitle.focallength = 200 +p1.teammenu.move.snd = 100,0 +p1.teammenu.value.snd = 100,0 +p1.teammenu.done.snd = 100,1 +p1.teammenu.item.offset = 0,90 +p1.teammenu.item.spacing = 0,60 +p1.teammenu.item.font = 3,0,1 +p1.teammenu.item.layerno = 2 +p1.teammenu.item.active.font = 3,0,1, 210,210,255 +p1.teammenu.item.active2.font = 3,0,1, 175,175,255 ;Second font color for blinking +p1.teammenu.item.active.layerno = 2 +p1.teammenu.item.cursor.offset = -30, 0 +p1.teammenu.item.cursor.anim = 180 +p1.teammenu.item.cursor.layerno = 2 +p1.teammenu.value.icon.offset = 210,0 +p1.teammenu.value.icon.spr = 181,0 +p1.teammenu.value.icon.layerno = 2 +p1.teammenu.value.empty.icon.offset = 210,0 +p1.teammenu.value.empty.icon.spr = 182,0 +p1.teammenu.value.empty.icon.layerno = 2 +p1.teammenu.value.spacing = 30,0 + +;P2 Team menu +p2.teammenu.pos = 1197, 160 +;p2.teammenu.bg.spr = +p2.teammenu.selftitle.font = 3,1,0, 255,210,239 +p2.teammenu.selftitle.text = TEAM MODE +p2.teammenu.selftitle.scale = 0.75,0.75 +p2.teammenu.selftitle.layerno = 2 +p2.teammenu.selftitle.offset = -130, 15 +p2.teammenu.selftitle.projection = perspective +p2.teammenu.selftitle.yangle = -52.5 +p2.teammenu.selftitle.focallength = 200 +p2.teammenu.enemytitle.font = 3,1,0, 255,210,239 +p2.teammenu.enemytitle.text = TEAM MODE +p2.teammenu.enemytitle.scale = 0.75,0.75 +p2.teammenu.enemytitle.layerno = 2 +p2.teammenu.enemytitle.offset = -130, 15 +p2.teammenu.enemytitle.projection = perspective +p2.teammenu.enemytitle.yangle = -52.5 +p2.teammenu.enemytitle.focallength = 200 +p2.teammenu.move.snd = 100,0 +p2.teammenu.value.snd = 100,0 +p2.teammenu.done.snd = 100,1 +p2.teammenu.item.offset = 0,90 +p2.teammenu.item.spacing = 0,60 +p2.teammenu.item.font = 3,0,-1 +p2.teammenu.item.layerno = 2 +p2.teammenu.item.active.font = 3,1,-1, 255,210,239 +p2.teammenu.item.active2.font = 3,1,-1, 255,175,207 ;Second font color for blinking +p2.teammenu.item.active.layerno = 2 +p2.teammenu.item.cursor.offset = 30, 0 +p2.teammenu.item.cursor.anim = 190 +p2.teammenu.item.cursor.layerno = 2 +p2.teammenu.value.icon.offset = -211,1 +p2.teammenu.value.icon.spr = 191,0 +p2.teammenu.value.icon.layerno = 2 +p2.teammenu.value.empty.icon.offset = -211,1 +p2.teammenu.value.empty.icon.spr = 192,0 +p2.teammenu.value.empty.icon.layerno = 2 +p2.teammenu.value.spacing = -30,0 + + +teammenu.itemname.single = Single +teammenu.itemname.simul = Simul +teammenu.itemname.tag = Tag +teammenu.itemname.turns = Turns + +paletteselect = 3 +; Enables or disables palette selection menu in select screen. Accepted values: +; 0 - Palette menu disabled. Palette corresponds to key pressed when selecting character +; 1 - Palette menu enabled. Initial selected palette is 1 +; 2 - Palette menu enabled. Initial selected palette corresponds to key pressed (a = 1, b = 2, etc) +; 3 - Palette menu enabled. Initial selected palette corresponds to key pressed + keymap (a = 4, x = 1, etc for Kung Fu Man) + +p1.palmenu.pos = 220, 140 +p2.palmenu.pos = 1060, 140 + +p1.palmenu.bg.anim = 180 +p1.palmenu.bg.facing = 1 +p1.palmenu.bg.offset = 100, 50 +p1.palmenu.bg.layerno = 2 +p2.palmenu.bg.anim = 190 +p2.palmenu.bg.facing = 1 +p2.palmenu.bg.offset = -100, 50 +p2.palmenu.bg.layerno = 2 + +p1.palmenu.text.text = Color +p1.palmenu.text.offset = 100, 0 +p1.palmenu.text.font = 3, 0, 1, 210,210,255 +p1.palmenu.text.scale = 1,1 +p1.palmenu.text.layerno = 2 +p2.palmenu.text.text = Color +p2.palmenu.text.offset = -100, 0 +p2.palmenu.text.font = 3, 0, -1, 255,210,239 +p2.palmenu.text.scale = 1,1 +p2.palmenu.text.layerno = 2 + +p1.palmenu.number.offset = 170, 50 +p1.palmenu.number.font = 3, 0, 0, 210,210,255 +p1.palmenu.number.scale = 1,1 +p1.palmenu.number.layerno = 2 +p2.palmenu.number.offset = -170, 50 +p2.palmenu.number.font = 3, 0, 0, 255,210,239 +p2.palmenu.number.scale = 1,1 +p2.palmenu.number.layerno = 2 + +p1.palmenu.next.key = U, R +p1.palmenu.previous.key = D, L +p1.palmenu.done.key = a, b, c, x, y, z +p1.palmenu.cancel.key = m +p1.palmenu.random.key = s +p1.palmenu.random.text = ? +p2.palmenu.next.key = U, R +p2.palmenu.previous.key = D, L +p2.palmenu.done.key = a, b, c, x, y, z +p2.palmenu.cancel.key = m +p2.palmenu.random.key = s +p2.palmenu.random.text = ? + +p1.palmenu.value.snd = 100, 0 +p1.palmenu.done.snd = 100, 1 +p1.palmenu.cancel.snd = 100, 2 +p2.palmenu.value.snd = 100, 0 +p2.palmenu.done.snd = 100, 1 +p2.palmenu.cancel.snd = 100, 2 + +[Begin Action 110] +110,0, 0,0, 8 +110,1, 0,0, 8 +110,2, 0,0, 8 + +[Begin Action 113] +113,0, 0,0, 4 +113,1, 0,0, 4 +113,2, 0,0, 4 +113,3, 0,0, 4 +113,4, 0,0, 4 +113,5, 0,0, 4 +113,6, 0,0, 4 +113,7, 0,0, 4 + +[Begin Action 151] +LoopStart +151,2, 0,0, 20 +Interpolate Scale +151,2, 0,0, 20, , , 0.75 +Interpolate Scale +151,2, 0,0, 1, , , 0.001 +151,3, 0,0, 20, , , 0.001 +Interpolate Scale +151,3, 0,0, 20, , , 0.75 +Interpolate Scale +151,3, 0,0, 3 +151,3, 0,0, 20 +Interpolate Scale +151,3, 0,0, 20, , , 0.75 +Interpolate Scale +151,3, 0,0, 1, , , 0.001 +151,2, 0,0, 20, , , 0.001 +Interpolate Scale +151,2, 0,0, 20, , , 0.75 +Interpolate Scale +151,2, 0,0, 3 + +[Begin Action 155] +155,0, 0,0, 8 +155,1, 0,0, 8 +155,2, 0,0, 8 + +[Begin Action 156] +156,0, 0,0, 3, , S +156,1, 0,0, 3, , S +156,2, 0,0, 3, , S +156,3, 0,0, 3, , S +156,4, 0,0, 3, , S +156,5, 0,0, 3, , S +156,6, 0,0, 3, , S +156,7, 0,0, 3, , S +156,8, 0,0, 3, , S +156,9, 0,0, 3, , S +156,10, 0,0, 3, , S +156,11, 0,0, 3, , S +156,12, 0,0, 3, , S +156,13, 0,0, 3, , S +156,14, 0,0, 3, , S +156,15, 0,0, 3, , S + +[Begin Action 158] +158,0, 0,0, 4, , AS255D0 +158,0, 0,1, 3, , AS157D56 +158,0, 0,2, 3, , AS73D255 +158,0, 0,3, 120, , AS0D255 +158,0, 0,2, 8, , AS73D255 +158,0, 0,1, 6, , AS157D56 +158,0, 0,0, 34, , AS256D0 + +[Begin Action 159] +159,0, 0,0, 3 +159,1, 0,0, 3 +159,2, 0,0, 3 +159,3, 0,0, 3 +159,4, 0,0, 3 +159,5, 0,0, 3 +159,6, 0,0, 3 +159,7, 0,0, 3 + +[Begin Action 160] ;P1 active cursor +160,0, 0,0, 3 +160,1, 0,0, 3 +160,2, 0,0, 3 +160,3, 0,0, 3 +160,4, 0,0, 3 +160,5, 0,0, 3 +160,6, 0,0, 3 +160,7, 0,0, 3 + +[Begin Action 170] ;P2 active cursor +170,4, 0,0, 3 +170,5, 0,0, 3 +170,6, 0,0, 3 +170,7, 0,0, 3 +170,0, 0,0, 3 +170,1, 0,0, 3 +170,2, 0,0, 3 +170,3, 0,0, 3 + +[Begin Action 172] ;P3 active cursor +172,2, 0,0, 3 +172,3, 0,0, 3 +172,4, 0,0, 3 +172,5, 0,0, 3 +172,6, 0,0, 3 +172,7, 0,0, 3 +172,0, 0,0, 3 +172,1, 0,0, 3 + +[Begin Action 174] ;P4 active cursor +174,6, 0,0, 3 +174,7, 0,0, 3 +174,0, 0,0, 3 +174,1, 0,0, 3 +174,2, 0,0, 3 +174,3, 0,0, 3 +174,4, 0,0, 3 +174,5, 0,0, 3 + +[Begin Action 180] ;P1 Team mode cursor +180,0, 21,0, 3 +180,1, 21,0, 3 +180,2, 21,0, 3 +180,1, 21,0, 3 + +[Begin Action 190] ;P2 Team mode cursor +190,0, -21,0, 3 +190,1, -21,0, 3 +190,2, -21,0, 3 +190,1, -21,0, 3 + +;----------------------- +;Character select screen background +[SelectBGdef] +;spr = graphics/selectbg.sff ;Filename of sprite data + +[SelectBG Background Sky] +type = normal +spriteno = 101,0 +layerno = 0 +start = -640,0 + +[SelectBG Background Black Bars] +type = normal +spriteno = 100,1 +layerno = 1 +start = -640,0 +trans = add1 +mask = 1 + +[SelectBG Background PortraitGradient] +type = normal +spriteno = 102,0 +layerno = 1 +start = -640,94 +trans = add1 +mask = 1 + +[SelectBG Background PortraitGradient 2] +type = normal +spriteno = 102,1 +layerno = 1 +start = 116,94 +trans = add1 +mask = 1 + +[SelectBG Background Clouds Top] +type = normal +spriteno = 101,2 +layerno = 0 +start = -640, -50 +tile = 1,0 +velocity = -0.1, 0 +window = 0,0, 1279,959 +mask = 1 + +[SelectBG Background Clouds Bottom] +type = normal +spriteno = 101,3 +layerno = 0 +start = -640, 0 +tile = 1,0 +velocity = -0.7, 0 +window = 0,0, 1279,959 +mask = 1 + + +;------------------------------------------------------------------- +[VS Screen] +time = 390 ;Time to show screen +fadein.time = 20 +fadeout.time = 25 + +;Match text in arcade modes +match.text = Match %i ;%i can be used for the match number +match.offset = 640, 85 +match.font = 2,0,0 +match.scale = 1.5,1.5 + +;Big portraits +p1.num = 4 +p1.anim = 0 +;p1.spr = 9000, 1 +p1.offset = 444, 540 +p1.facing = 1 +p1.scale = 0.75,0.75 +p1.window = 0,30, 539,589 +p1.spacing = -100,0 +p1.padding = 1 +p1.applypal = 1 + +p2.num = 4 +p2.anim = 0 +;p2.spr = 9000, 1 +p2.offset = 836, 540 +p2.facing = -1 +p2.scale = 0.75,0.75 +p2.window = 741,30, 1280,589 +p2.spacing = 100,0 +p2.padding = 1 +p2.applypal = 1 + +p1.done.anim = 181 +p2.done.anim = 181 + +;Names +p1.name.num = 1 ;Not used for co-op +p1.name.offset = 20,615 ;Position to put name +p1.name.font = 3,0,1 ;Set to -1 for no display +p1.name.spacing = 15,25 ;Space between each name for players on the same team +p2.name.num = 1 ;Not used for co-op +p2.name.offset = 1260,615 +p2.name.font = 3,0,-1 +p2.name.spacing = -15,25 + +orderselect.enabled = 1 + +;Keys +; By default all action buttons confirm currently selected order. +; Assign keys to 'p.member.key' parameters to enable order +; selection on per team member basis. +p1.key = a +p2.key = a +p3.key = b +p4.key = b +p5.key = x +p6.key = x +p7.key = y +p8.key = y +done.key = a, b, c, x, y, z, s +skip.key = s + +;Order icons +; Icon elements are rendered on top of portraits, with positioning affected +; by portrait num, offset, spacing, and padding. Done variants replace +; spr/anim once order selection is completed. +;p1.icon.anim = -1 +p1.icon.spr = 800, 0 +p1.icon.offset = 0, 0 +p1.icon.facing = 1 +p1.icon.scale = 1.0, 1.0 +;p1.icon.done.anim = -1 +;p1.icon.done.spr = +p1.icon.done.offset = 0, 0 +p1.icon.done.facing = 1 +p1.icon.done.scale = 1.0, 1.0 + +;p2.icon.anim = -1 +p2.icon.spr = 800, 0 +p2.icon.offset = 0, 0 +p2.icon.facing = 1 +p2.icon.scale = 1.0, 1.0 +;p2.icon.done.anim = -1 +;p2.icon.done.spr = +p2.icon.done.offset = 0, 0 +p2.icon.done.facing = 1 +p2.icon.done.scale = 1.0, 1.0 + +;p3.icon.anim = -1 +p3.icon.spr = 800, 1 +p3.icon.offset = 0, 0 +p3.icon.facing = 1 +p3.icon.scale = 1.0, 1.0 +;p3.icon.done.anim = -1 +;p3.icon.done.spr = +p3.icon.done.offset = 0, 0 +p3.icon.done.facing = 1 +p3.icon.done.scale = 1.0, 1.0 + +;p4.icon.anim = -1 +p4.icon.spr = 800, 1 +p4.icon.offset = 0, 0 +p4.icon.facing = 1 +p4.icon.scale = 1.0, 1.0 +;p4.icon.done.anim = -1 +;p4.icon.done.spr = +p4.icon.done.offset = 0, 0 +p4.icon.done.facing = 1 +p4.icon.done.scale = 1.0, 1.0 + +;p5.icon.anim = -1 +p5.icon.spr = 800, 2 +p5.icon.offset = 0, 0 +p5.icon.facing = 1 +p5.icon.scale = 1.0, 1.0 +;p5.icon.done.anim = -1 +;p5.icon.done.spr = +p5.icon.done.offset = 0, 0 +p5.icon.done.facing = 1 +p5.icon.done.scale = 1.0, 1.0 + +;p6.icon.anim = -1 +p6.icon.spr = 800, 2 +p6.icon.offset = 0, 0 +p6.icon.facing = 1 +p6.icon.scale = 1.0, 1.0 +;p6.icon.done.anim = -1 +;p6.icon.done.spr = +p6.icon.done.offset = 0, 0 +p6.icon.done.facing = 1 +p6.icon.done.scale = 1.0, 1.0 + +;p7.icon.anim = -1 +p7.icon.spr = 800, 3 +p7.icon.offset = 0, 0 +p7.icon.facing = 1 +p7.icon.scale = 1.0, 1.0 +;p7.icon.done.anim = -1 +;p7.icon.done.spr = +p7.icon.done.offset = 0, 0 +p7.icon.done.facing = 1 +p7.icon.done.scale = 1.0, 1.0 + +;p8.icon.anim = -1 +p8.icon.spr = 800, 3 +p8.icon.offset = 0, 0 +p8.icon.facing = 1 +p8.icon.scale = 1.0, 1.0 +;p8.icon.done.anim = -1 +;p8.icon.done.spr = +p8.icon.done.offset = 0, 0 +p8.icon.done.facing = 1 +p8.icon.done.scale = 1.0, 1.0 + +;Order value icons +; Value icons are rendered on top of portraits, with positioning starting at +; 0, 0. empty.icon elements are replaced with icon upon order selection. +; If present, p.value. parameters replace defaults inherited by p1/p2.value. +; on per team member basis (team 1: p1-p3-p5-p7, team 2: p2-p4-p6-p8). + +;Player 1 +;p1.value.icon.anim = -1 +p1.value.icon.spr = 810, 0 +p1.value.icon.offset = 377, 635 +p1.value.icon.facing = 1 +p1.value.icon.scale = 1.0, 0.8 +;p1.value.empty.icon.anim = -1 +p1.value.empty.icon.spr = 810, 1 +p1.value.empty.icon.offset = 377, 635 +p1.value.empty.icon.facing = 1 +p1.value.empty.icon.scale = 1.0, 0.8 +p1.value.icon.spacing = -125, 0 +p1.value.snd = 100, 1 + +;Player 2 +;p2.value.icon.anim = -1 +p2.value.icon.spr = 810, 5 +p2.value.icon.offset = 763, 635 +p2.value.icon.facing = 1 +p2.value.icon.scale = 1.0, 0.8 +;p2.value.empty.icon.anim = -1 +p2.value.empty.icon.spr = 810, 6 +p2.value.empty.icon.offset = 763, 635 +p2.value.empty.icon.facing = 1 +p2.value.empty.icon.scale = 1.0, 0.8 +p2.value.icon.spacing = 125, 0 +p2.value.snd = 100, 1 + +;Player 3 +p3.value.icon.spr = 810, 0 +p3.value.empty.icon.spr = 810, 2 + +;Player 4 +p4.value.icon.spr = 810, 5 +p4.value.empty.icon.spr = 810, 7 + +;Player 5 +p5.value.icon.spr = 810, 0 +p5.value.empty.icon.spr = 810, 3 + +;Player 6 +p6.value.icon.spr = 810, 5 +p6.value.empty.icon.spr = 810, 8 + +;Player 7 +p7.value.icon.spr = 810, 0 +p7.value.empty.icon.spr = 810, 4 + +;Player 8 +p8.value.icon.spr = 810, 5 +p8.value.empty.icon.spr = 810, 9 + +;Stage preview +stage.pos = 640,707 +stage.text = Next Stage: %s +stage.offset = 0, -10 +stage.font = 3,0,0 +stage.scale = 0.6, 0.6 +;stage.portrait.anim = +stage.portrait.spr = 9000,1 +stage.portrait.offset = -121, -141 +stage.portrait.scale = 0.25, 0.25 +stage.portrait.bg.spr = 112,0 +;stage.portrait.bg.spr = +stage.portrait.bg.offset = -163, -144 +stage.portrait.bg.scale = 1.0, 1.0 +stage.portrait.window = 521, 567, 759, 665 + +;Order timer +; Change timer.count to positive number to enable order selection timer +timer.offset = 639,550 +timer.font = 8,0, 0, 255,255,242 +timer.scale = 1.0, 1.0 +timer.text = %i +timer.count = 40 +timer.framespercount = 6 +timer.displaytime = 0 + +; Time to maintain versus screen after both sides confirm their order +; (in which order parameters are rendered using optional done variants) +done.time = 180 + +; Anim/text rendered during background loading +loading.anim = 600 +loading.offset = 1222, 46 +loading.scale = 1.0, 1.0 + +; Anim/text rendered after background loading finishes +loading.done.anim = 610 +loading.done.offset = 1222, 46 +loading.done.scale = 1.0, 1.0 + +; Anim/text rendered during background loading when vs screen is disabled +loading.wait.anim = 600 +loading.wait.offset = 1222, 674 +loading.wait.scale = 1.0, 1.0 + +; Optional storyboard used when vs screen is disabled instead of loading.wait +loading.storyboard = + +; Loading +[Begin Action 600] +600,0, 0,0, 3 +600,1, 0,0, 3 +600,2, 0,0, 3 +600,3, 0,0, 3 +600,4, 0,0, 3 +600,5, 0,0, 3 +600,6, 0,0, 3 +600,7, 0,0, 3 +600,8, 0,0, 3 +600,9, 0,0, 3 +600,10, 0,0, 3 +600,11, 0,0, 3 +600,12, 0,0, 3 +600,13, 0,0, 3 +600,14, 0,0, 3 +600,15, 0,0, 3 + +; LoadingDone +[Begin Action 610] +610,0, 0,0, 3 +610,1, 0,0, 3 +610,2, 0,0, 3 +610,1, 0,0, 3 +610,0, 0,0, 3 +610,1, 0,0, 3 +610,2, 0,0, 3 +610,1, 0,0, 3 +610,0, 0,0, 3 +610,1, 0,0, 3 +610,2, 0,0, 3 +610,1, 0,0, 3 +610,0, 0,0, -1 + +;----------------------- +;VS Match up screen background +[VersusBGdef] + +[VersusBG Background Sky] +type = normal +spriteno = 204,0 +layerno = 0 +start = -640,0 + +[VersusBG Background Clouds Top] +type = normal +spriteno = 102,2 +layerno = 0 +start = -640, -50 +tile = 1,0 +velocity = -0.05, 0 +trans = add1 +window = 0,0, 1279,959 +mask = 1 + +[VersusBG Background Clouds Bottom] +type = normal +spriteno = 102,3 +layerno = 0 +start = -640, 0 +tile = 1,0 +velocity = -0.7, 0 +window = 0,0, 1279,959 +mask = 1 + +[VersusBG Background Black Bars] +type = normal +spriteno = 100,1 +layerno = 0 +start = -640,0 +trans = add1 +mask = 1 + +[VersusBG 5] ;VS Logo +type = anim +actionno = 200 +layerno = 1 ;Front +start = 0,300 + +[VersusBG 6] ;Next Match +type = anim +actionno = 202 +layerno = 1 ;Front +start = 18,38 +velocity = -.125,0 + +[Begin Action 200] +Interpolate Scale +Interpolate Scale +200,0, 0,30, 10, , , 2,0.1 +Interpolate Scale +200,0, 0,30, 50 +200,0, 0,30, 10 +200,1, 0,30, 1 +200,2, 0,30, 1 +200,3, 0,30, 1 +200,4, 0,30, 1 +200,5, 0,30, 1 +200,6, 0,30, 1 +200,7, 0,30, 1 +200,8, 0,30, 1 +200,0, 0,30, -1 + +[Begin Action 202] +202,0,70,0, 1 +202,0,60,0, 1 +202,0,50,0, 1 +202,0,40,0, 1 +202,0,30,0, 1 +202,0,20,0, 1 +202,0,13,0, 1 +202,0, 8,0, 1 +202,0, 5,0, 1 +202,0, 2,0, 1 +202,0, 1,0, 1 +202,0, 0,0,-1 + +;------------------------------------------------------------------- +;Demo mode definition +[Demo Mode] +enabled = 1 ;Set to 1 to enable demo mode, 0 to disable +select.enabled = 0 ;Set to 1 to display select screen, 0 to disable +vsscreen.enabled = 0 ;Set to 1 to display versus screen, 0 to disable +fadein.time = 50 ;Duration of the fade-in effect +fadein.col = 0, 0, 0 ;Color of the fade-in +fadeout.time = 50 ;Duration of the fade-out effect +fadeout.col = 0, 0, 0 ;Color of the fade-out +title.waittime = 600 ;Time to wait at title before starting demo mode +fight.endtime = 1500 ;Time to display the fight before returning to title +fight.playbgm = 0 ;Set to 1 to enable in-fight BGM, 0 to disable +fight.stopbgm = 1 ;Set to 1 to stop title BGM (only if playbgm = 0) +fight.bars.display = 0 ;Set to 1 to display lifebar, 0 to disable +intro.waitcycles = 1 ;Cycles to wait before intro cutscene is played again +debuginfo = 0 ;Set to 0 to hide debugging info (debug mode only) + +;------------------------------------------------------------------- +;Continue screen definition +[Continue Screen] +enabled = 1 +legacymode.enabled = 0 +gameover.enabled = 0 + +;legacy continue screen (legacymode.enabled = 1) +pos = 640,240 +continue.text = CONTINUE? +continue.font = 3,0,0 +continue.scale = 1.0, 1.0 +yes.text = YES +yes.font = 3,0,0, 128,128,128 +yes.scale = 1.0, 1.0 +yes.offset = -80, 60 +yes.active.text = YES +yes.active.font = 3,3,0 +yes.active.scale = 1.0, 1.0 +yes.active.offset = -80, 60 +no.text = NO +no.font = 3,0,0, 128,128,128 +no.scale = 1.0, 1.0 +no.offset = 80, 60 +no.active.text = NO +no.active.font = 3,3,0 +no.active.scale = 1.0, 1.0 +no.active.offset = 80, 60 +move.snd = 100, 0 +done.snd = 100, 1 +cancel.snd = 100, 2 + +;parameters used by both legacy and extended continue +fadein.time = 8 +fadein.col = 0, 0, 0 +fadeout.time = 120 +fadeout.col = 0, 0, 0 +;overlay.window = 0, 0, 1280, 720 +overlay.col = 0, 0, 0 +overlay.alpha = 0, 128 +p1.state = 5500, 5300 +p1.yes.state = 5510, 180 +p1.no.state = 5520, 170 +p2.state = +p2.yes.state = +p2.no.state = +credits.text = CREDITS: %d +credits.offset = 40, 40 +credits.font = 2,0,1 +credits.scale = 1.0, 1.0 + +;extended continue screen (legacymode.enabled = 0) +counter.endtime = 2000 +counter.starttime = 0 +counter.anim = 900 +counter.offset = 640, 360 +counter.scale = 1,1 +counter.default.snd = -1, 0 +counter.skipstart = 71 +counter.9.skiptime = 124 +counter.9.snd = 900, 9 +counter.8.skiptime = 291 +counter.8.snd = 900, 8 +counter.7.skiptime = 458 +counter.7.snd = 900, 7 +counter.6.skiptime = 625 +counter.6.snd = 900, 6 +counter.5.skiptime = 792 +counter.5.snd = 900, 5 +counter.4.skiptime = 959 +counter.4.snd = 900, 4 +counter.3.skiptime = 1126 +counter.3.snd = 900, 3 +counter.2.skiptime = 1293 +counter.2.snd = 900, 2 +counter.1.skiptime = 1460 +counter.1.snd = 900, 1 +counter.0.skiptime = 1627 +counter.0.snd = 900, 0 +counter.end.skiptime = 1733 +counter.end.snd = 900, 10 + +; Countdown +[Begin Action 900] +-1, -1, 0,60, 60 ;initial lag +;9 +922, 9, 0,60, 20, , , 1, 0.1 +Interpolate Scale +922, 9, 0,60, 10, , , 1, 0.825 +Interpolate Scale +922,9, 0,60, 30 +922,38, 0,60, 4 +922,37, 0,60, 4 +922,38, 0,60, 4 +922,39, 0,60, 4 +922, 9, 0,60, 60, , , 1, 1 +922, 9, 0,60, 10, , , 1, 1 +Interpolate Scale +922, 9, 0,60, 20, , , 1, 0.825 +Interpolate Scale +922, 9, 0,60, 1, , , 1, 0.1 +;8 +922, 8, 0,60, 20, , , 1, 0.1 +Interpolate Scale +922, 8, 0,60, 10, , , 1, 0.825 +Interpolate Scale +922,8, 0,60, 30 +922,35, 0,60, 4 +922,34, 0,60, 4 +922,35, 0,60, 4 +922,36, 0,60, 4 +922, 8, 0,60, 60, , , 1, 1 +922, 8, 0,60, 10, , , 1, 1 +Interpolate Scale +922, 8, 0,60, 20, , , 1, 0.825 +Interpolate Scale +922, 8, 0,60, 1, , , 1, 0.1 +;7 +922, 7, 0,60, 20, , , 1, 0.1 +Interpolate Scale +922, 7, 0,60, 10, , , 1, 0.825 +Interpolate Scale +922,7, 0,60, 30 +922,32, 0,60, 4 +922,31, 0,60, 4 +922,32, 0,60, 4 +922,33, 0,60, 4 +922, 7, 0,60, 60, , , 1, 1 +922,7, 0,60, 10, , , 1, 1 +Interpolate Scale +922, 7, 0,60, 20, , , 1, 0.825 +Interpolate Scale +922, 7, 0,60, 1, , , 1, 0.1 +;6 +922, 6, 0,60, 20, , , 1, 0.1 +Interpolate Scale +922, 6, 0,60, 10, , , 1, 0.825 +Interpolate Scale +922,6, 0,60, 30 +922,29, 0,60, 4 +922,28, 0,60, 4 +922,29, 0,60, 4 +922,30, 0,60, 4 +922, 6, 0,60, 60, , , 1, 1 +922, 6, 0,60, 10, , , 1, 1 +Interpolate Scale +922, 6, 0,60, 20, , , 1, 0.825 +Interpolate Scale +922, 6, 0,60, 1, , , 1, 0.1 +;5 +922, 5, 0,60, 20, , , 1, 0.1 +Interpolate Scale +922, 5, 0,60, 10, , , 1, 0.825 +Interpolate Scale +922,5, 0,60, 30 +922,26, 0,60, 4 +922,25, 0,60, 4 +922,26, 0,60, 4 +922,27, 0,60, 4 +922, 5, 0,60, 60, , , 1, 1 +922, 5, 0,60, 10, , , 1, 1 +Interpolate Scale +922, 5, 0,60, 20, , , 1, 0.825 +Interpolate Scale +922, 5, 0,60, 1, , , 1, 0.1 +;4 +922, 4, 0,60, 20, , , 1, 0.1 +Interpolate Scale +922, 4, 0,60, 10, , , 1, 0.825 +Interpolate Scale +922,4, 0,60, 30 +922,23, 0,60, 4 +922,22, 0,60, 4 +922,23, 0,60, 4 +922,24, 0,60, 4 +922, 4, 0,60, 60, , , 1, 1 +922, 4, 0,60, 10, , , 1, 1 +Interpolate Scale +922, 4, 0,60, 20, , , 1, 0.825 +Interpolate Scale +922, 4, 0,60, 1, , , 1, 0.1 +;3 +922, 3, 0,60, 20, , , 1, 0.1 +Interpolate Scale +922, 3, 0,60, 10, , , 1, 0.825 +Interpolate Scale +922,3, 0,60, 30 +922,20, 0,60, 4 +922,19, 0,60, 4 +922,20, 0,60, 4 +922,21, 0,60, 4 +922, 3, 0,60, 60, , , 1, 1 +922, 3, 0,60, 10, , , 1, 1 +Interpolate Scale +922, 3, 0,60, 20, , , 1, 0.825 +Interpolate Scale +922, 3, 0,60, 1, , , 1, 0.1 +;2 +922, 2, 0,60, 20, , , 1, 0.1 +Interpolate Scale +922, 2, 0,60, 10, , , 1, 0.825 +Interpolate Scale +922,2, 0,60, 30 +922,17, 0,60, 4 +922,16, 0,60, 4 +922,17, 0,60, 4 +922,18, 0,60, 4 +922, 2, 0,60, 60, , , 1, 1 +922, 2, 0,60, 10, , , 1, 1 +Interpolate Scale +922, 2, 0,60, 20, , , 1, 0.825 +Interpolate Scale +922, 2, 0,60, 1, , , 1, 0.1 +;1 +922, 1, 0,60, 20, , , 1, 0.1 +Interpolate Scale +922, 1, 0,60, 10, , , 1, 0.825 +Interpolate Scale +922,1, 0,60, 30 +922,14, 0,60, 4 +922,13, 0,60, 4 +922,14, 0,60, 4 +922,15, 0,60, 4 +922, 1, 0,60, 60, , , 1, 1 +922, 1, 0,60, 10, , , 1, 1 +Interpolate Scale +922, 1, 0,60, 20, , , 1, 0.825 +Interpolate Scale +922, 1, 0,60, 1, , , 1, 0.1 +;0 +922, 0, 0,60, 20, , , 1, 0.1 +Interpolate Scale +922, 0, 0,60, 10, , , 1, 0.825 +Interpolate Scale +922,0, 0,60, 30 +922,11, 0,60, 4 +922,10, 0,60, 4 +922,11, 0,60, 4 +922,12, 0,60, 4 +922, 0, 0,60, 60, , , 1, 1 +922, 0, 0,60, 10, , , 1, 1 +Interpolate Scale +922, 0, 0,60, 20, , , 1, 0.825 +Interpolate Scale +922, 0, 0,60, 1, , , 1, 0 +;Game Over +-1,0, 0,0, 1 +923,1, 0,0, 2 +923,2, 0,0, 2 +923,3, 0,0, 2 +923,4, 0,0, 2 +923,5, 0,0, 2 +923,6, 0,0, 5 +923,7, 0,0, 5 +923,8, 0,0, 5 +923,9, 0,0, 5 +923,10, 0,0, 5 +923,11, 0,0, 5 +923,12, 0,0, 5 +923,13, 0,0, 2 +923,14, 0,0, 2 +923,15, 0,0, 2 +923,16, 0,0, 2 +923,17, 0,0, 2 +923,18, 0,0, 2 +923,19, 0,0, 2 +923,20, 0,0, 2 +923,22, 0,0, 2 +923,20, 0,0, 2 +923,22, 0,0, 2 +923,20, 0,0, 2 +923,22, 0,0, 2 +923,21, 0,0, 46 +923,23, 0,0, 2 +923,24, 0,0, 2 +923,25, 0,0, 2 +923,26, 0,0, 2 +923,27, 0,0, 2 +923,28, 0,0, 2 +923,29, 0,0, 2 +923,30, 0,0, 2 +923,31, 0,0, 2 +923,32, 0,0, 2 +923,33, 0,0, 2 +923,34, 0,0, 2 +923,35, 0,0, 2 +923,36, 0,0, 2 +923,37, 0,0, 2 +923,38, 0,0, 2 +923,39, 0,0, 2 +923,40, 0,0, 2 +923,41, 0,0, 2 +923,42, 0,0, 2 +923,43, 0,0, 2 +923,44, 0,0, 2 +923,45, 0,0, 2 +923,46, 0,0, 2 +923,47, 0,0, 2 +923,48, 0,0, 2 +923,49, 0,0, 2 +923,50, 0,0, 2 +923,51, 0,0, 2 +923,52, 0,0, 2 +923,53, 0,0, 2 +923,54, 0,0, 2 +923,55, 0,0, 2 +923,56, 0,0, 2 +923,57, 0,0, 2 +923,58, 0,0, 2 +923,59, 0,0, 2 +923,60, 0,0, 2 +923,61, 0,0, 2 +923,62, 0,0, 2 +923,63, 0,0, 2 +923,64, 0,0, 2 +923,65, 0,0, 2 +923,66, 0,0, 2 +923,67, 0,0, 2 +923,68, 0,0, 2 +923,69, 0,0, 2 +923,70, 0,0, 2 +923,71, 0,0, 2 +923,72, 0,0, 2 +923,73, 0,0, 2 +923,74, 0,0, 2 +923,75, 0,0, 2 +923,76, 0,0, 2 +923,77, 0,0, 2 +923,78, 0,0, 2 +923,79, 0,0, 2 +923,80, 0,0, -1 + +;----------------------- +;Continue screen background +[Continuebgdef] + +[ContinueBG Text] +type = anim +actionno = 901 +start = 0, 150 +mask = 1 + +[Begin Action 901] +921,0, 0,-30, 60, , AS0D256 +Interpolate Blend +921,0, 0,-30, 1660, , AS256D0 +921,0, 0,-30, -1, , AS256D0 + +;------------------------------------------------------------------- +;Game over screen definition +[Game Over Screen] +enabled = 1 ;Set to 1 to show game over screen, 0 to disable +storyboard = gameover.def ;Game over storyboard filename + +;------------------------------------------------------------------- +;Victory screen definition +;This is the screen that is shown when you win a match in arcade mode. +;It will not be displayed on the last match of arcade mode. +[Victory Screen] +enabled = 1 +sounds.enabled = 0 ;Set to 0 to disable char sounds during Victory Screen +time = 360 ;Time to show screen +fadein.time = 8 +fadeout.time = 15 +;Winner's portrait and name +p1.offset = 150, 80 +p1.spr = 9000,2 +p1.layerno = 2 +p1.facing = 1 +p1.scale = 0.8,0.8 +p1.window = 0,94, 1279,500 +p1.name.offset = 40,570 +p1.name.font = 3,3,1 +p1.name.layerno = 2 +p1.applypal = 1 +;Loser's Portrait +p2.offset = 1130, 80 +p2.spr = 9000,2 +p2.layerno = 1 +p2.facing = -1 +p2.scale = 0.8,0.8 +p2.window = 0,94, 1279,500 +p2.applypal = 1 +p2.lose.brightness = 75 +;Win quote text +winquote.text = Winner! ;Default win quote text to show +winquote.layerno = 2 +winquote.offset = 40,615 +winquote.textspacing = 0 +winquote.font = 5,0,1 +winquote.window = 38,521, 1241,708 +winquote.textwrap = w ;Word wrap +winquote.textdelay = 2 + +;----------------------- +;Victory screen background +[VictoryBGdef] + +[VictoryBG Background Sky] +type = normal +spriteno = 204,0 +layerno = 0 +start = -640,0 + +[VictoryBG Background Clouds Top] +type = normal +spriteno = 102,2 +layerno = 0 +start = -640, -50 +tile = 1,0 +velocity = -0.05, 0 +trans = add1 +window = 0,0, 1279,959 +mask = 1 + +[VictoryBG Background Clouds Bottom] +type = normal +spriteno = 102,3 +layerno = 0 +start = -640, 0 +tile = 1,0 +velocity = -0.7, 0 +window = 0,0, 1279,959 +mask = 1 + +[VictoryBG Background Black Bars] +type = normal +spriteno = 100,10 +layerno = 0 +start = -640,0 +trans = add1 +mask = 1 + +[VictoryBG Background RedGradient] +type = normal +spriteno = 100,11 +layerno = 1 +start = -640,0 +trans = add1 +mask = 1 + +[VictoryBG Text] ;Victory +type = anim +actionno = 203 +layerno = 1 ;Front +start = -330,56 +velocity = -.125,0 + +[Begin Action 203] +202,1, 70,0, 1 +202,1, 60,0, 1 +202,1, 50,0, 1 +202,1, 40,0, 1 +202,1, 30,0, 1 +202,1, 20,0, 1 +202,1, 13,0, 1 +202,1, 8,0, 1 +202,1, 5,0, 1 +202,1, 2,0, 1 +202,1, 1,0, 1 +202,1, 0,0, -1 + +;------------------------------------------------------------------- +;Win screen definition +;This is the screen that is shown when you win in arcade mode. +;It will not be displayed if the winning character has an ending. +[Win Screen] +enabled = 1 ;Set to 1 to show win screen, 0 to disable +fadein.time = 32 +fadeout.time = 64 +pose.time = 300 +wintext.text = Congratulations! +wintext.font = 3,0,0 +wintext.offset = 640,240 +wintext.displaytime = -1 +wintext.layerno = 2 + +;----------------------- +;Win screen background +[WinBGdef] +; results screens variants reuse WinBgDef if dedicated ResultsBgDef is not set + +;------------------------------------------------------------------- +;Game ending screen definition +;This screen shows up after the Win Screen. +;It will not be displayed if the winning character has an ending. +[Default Ending] +enabled = 0 ;Set to 1 to show default ending, 0 to disable +storyboard = ;Default ending storyboard filename + +;------------------------------------------------------------------- +;Ending credits screen definition +;This screen shows up after the Win Screen and Ending +[End Credits] +enabled = 1 ;Set to 1 to show credits, 0 to disable +storyboard = credits.def ;Credits storyboard filename + +;------------------------------------------------------------------- +;Survival mode results screen definition +;This is the screen that is shown when you win in survival mode. +;It will not be displayed if the winning character has an ending. +[Survival Results Screen] +enabled = 1 +fadein.time = 32 +fadeout.time = 64 +show.time = 300 +winstext.text = Rounds survived: %i ;Use %i for win counter +winstext.font = 3,0,0 +winstext.offset = 640,240 +winstext.displaytime = -1 +winstext.layerno = 2 +roundstowin = 5 ;Number of rounds to get win pose (lose pose otherwise) + +;----------------------- +;Survival mode results screen background +[SurvivalResultsBGdef] + + +;------------------------------------------------------------------- +[Time Attack Results Screen] +enabled = 1 +fadein.time = 0 +fadeout.time = 64 +show.time = 300 +winstext.text = Clear Time: %m:%s.%x +winstext.font = 3,0,0 +winstext.offset = 640,240 +winstext.displaytime = -1 +winstext.layerno = 2 + +;----------------------- +;Time Attack results screen background +[TimeAttackResultsBGdef] + + +;------------------------------------------------------------------- +;Options screen definition +[Option Info] +fadein.time = 10 +fadein.col = 0, 0, 0 +;fadein.anim = +fadeout.time = 10 +fadeout.col = 0, 0, 0 +;fadeout.anim = +title.offset = 640,48 +title.font = 4,0,0 +title.scale = 1.0, 1.0 +title.text = OPTIONS +menu.pos = 414, 99 +menu.item.offset = 0, 0 +menu.item.font = 7,0,1, 191,191,191 +menu.item.scale = 1.0, 1.0 +menu.item.active.offset = 0, 0 +menu.item.active.font = 7,0,1 +menu.item.active.scale = 1.0, 1.0 +menu.item.selected.offset = 0, 0 +menu.item.selected.font = 7,0,1, 0,247,247 +menu.item.selected.scale = 1.0, 1.0 +menu.item.selected.active.offset = 0, 0 +menu.item.selected.active.font = 7,0,1, 0,247,247 +menu.item.selected.active.scale = 1.0, 1.0 +menu.item.value.offset = 450, 0 +menu.item.value.font = 7,0,-1, 191,191,191 +menu.item.value.scale = 1.0, 1.0 +menu.item.value.active.offset = 450, 0 +menu.item.value.active.font = 7,0,-1 +menu.item.value.active.scale = 1.0, 1.0 +menu.item.value.conflict.offset = 450, 0 +menu.item.value.conflict.font = 7,0,-1, 247,0,0 +menu.item.value.conflict.scale = 1.0, 1.0 +menu.item.info.offset = 450, 0 +menu.item.info.font = 7,0,-1, 247,247,0 +menu.item.info.scale = 1.0, 1.0 +menu.item.info.active.offset = 450, 0 +menu.item.info.active.font = 7,0,-1, 247,247,0 +menu.item.info.active.scale = 1.0, 1.0 +menu.item.spacing = 0, 42 +menu.window.margins.y = 21, 2 +menu.window.visibleitems = 13 +menu.boxcursor.visible = 1 +menu.boxcursor.coords = -15, -30, 462, 11 +menu.boxcursor.col = 255, 255, 255 +menu.boxcursor.pulse = 30, 20, 30 +menu.boxbg.visible = 1 +menu.boxbg.col = 0, 0, 0 +menu.boxbg.alpha = 0, 128 +;menu.arrow.up.anim = +menu.arrow.up.spr = 400, 0 +menu.arrow.up.offset = 428, -51 +menu.arrow.up.facing = 1 +menu.arrow.up.scale = 1.0, 1.0 +;menu.arrow.down.anim = +menu.arrow.down.spr = 401, 0 +menu.arrow.down.offset = 428, 525 +menu.arrow.down.facing = 1 +menu.arrow.down.scale = 1.0, 1.0 +menu.title.uppercase = 1 +menu.valuename.none = None +menu.valuename.random = Random +menu.valuename.default = Default +menu.valuename.f = (F%i) +menu.valuename.esc = (Esc) +menu.valuename.page = (Tab) +menu.valuename.nokey = Not used +menu.valuename.yes = Yes +menu.valuename.no = No +menu.valuename.enabled = Enabled +menu.valuename.disabled = Disabled + +cursor.move.snd = 100, 0 +cursor.done.snd = 100, 1 +cancel.snd = 100, 2 + +textinput.font = 7,0,1 +textinput.offset = 75, 96 +textinput.scale = 1.0, 1.0 +textinput.port.text = Type in Host Port, e.g. 7500.\nPress ENTER to accept.\nPress ESC to cancel. +textinput.reswidth.text = Type in screen width.\nPress ENTER to accept.\nPress ESC to cancel. +textinput.resheight.text = Type in screen height.\nPress ENTER to accept.\nPress ESC to cancel. +textinput.aspectwidth.text = Type in aspect width.\nPress ENTER to accept.\nPress ESC to cancel. +textinput.aspectheight.text = Type in aspect height.\nPress ENTER to accept.\nPress ESC to cancel. +;textinput.overlay.window = 0, 0, 1280, 720 +textinput.overlay.col = 0, 0, 0 +textinput.overlay.alpha = 0, 128 + +;P1 Key menu +keymenu.p1.menuoffset = 276, 99 +keymenu.p1.playerno.offset = 156, 0 +keymenu.p1.playerno.font = 7,0,0, 0,247,247 +keymenu.p1.playerno.scale = 1.0, 1.0 +;P2 Key menu +keymenu.p2.menuoffset = 693, 99 +keymenu.p2.playerno.offset = 156, 0 +keymenu.p2.playerno.font = 7,0,0, 247,0,0 +keymenu.p2.playerno.scale = 1.0, 1.0 + +; unassigned 'keymenu' parameters use corresponding 'menu' values + +keymenu.pos = 0, 0 + +keymenu.item.spacing = 0, 36 +keymenu.item.value.offset = 303, 0 +keymenu.item.value.active.offset = 303, 0 +keymenu.item.value.conflict.offset = 303, 0 +keymenu.item.info.offset = 303, 0 +keymenu.item.info.active.offset = 303, 0 + +keymenu.window.margins.y = 0, 0 +keymenu.window.visibleitems = 0 + +keymenu.boxcursor.coords = -15, -27, 318, 8 + +keymenu.itemname.configall = Config all +keymenu.itemname.up = Up +keymenu.itemname.down = Down +keymenu.itemname.left = Left +keymenu.itemname.right = Right +keymenu.itemname.a = A +keymenu.itemname.b = B +keymenu.itemname.c = C +keymenu.itemname.x = X +keymenu.itemname.y = Y +keymenu.itemname.z = Z +keymenu.itemname.start = Start +keymenu.itemname.d = D +keymenu.itemname.w = W +keymenu.itemname.menu = Menu +keymenu.itemname.back = Back +keymenu.itemname.page = Page + +; If custom menus are not declared, default option screen layout is loaded. +; Refer to system.base.def for an example how to modify option screen menus. + +;------------------- +;Options screen background +[OptionBGdef] + +[OptionBG Background Sky] +type = normal +spriteno = 100,0 +layerno = 0 +start = -640,0 + +[OptionBG Background Clouds Top] +type = normal +spriteno = 100,2 +layerno = 0 +start = -640, -50 +tile = 1,0 +velocity = -0.1, 0 +window = 0,0, 1279,959 +mask = 1 + +[OptionBG Background Clouds Bottom] +type = normal +spriteno = 100,3 +layerno = 0 +start = -640, 0 +tile = 1,0 +velocity = -0.7, 0 +window = 0,0, 1279,959 +mask = 1 + +;------------------------------------------------------------------- +;Replay select screen definition +[Replay Info] +fadein.time = 10 +fadein.col = 0, 0, 0 +fadeout.time = 10 +fadeout.col = 0, 0, 0 +title.offset = 640,48 +title.font = 4,0,0 +title.scale = 1.0, 1.0 +title.text = REPLAY SELECT +menu.pos = 414, 99 +menu.item.offset = 0, 0 +menu.item.font = 7,0,1, 191,191,191 +menu.item.scale = 1.0, 1.0 +menu.item.active.offset = 0, 0 +menu.item.active.font = 7,0,1 +menu.item.active.scale = 1.0, 1.0 +menu.item.spacing = 0, 42 +menu.window.margins.y = 21, 2 +menu.window.visibleitems = 13 +menu.boxcursor.visible = 1 +menu.boxcursor.coords = -15, -30, 462, 11 +menu.boxcursor.col = 255, 255, 255 +menu.boxcursor.pulse = 30, 20, 30 +menu.boxbg.visible = 1 +menu.boxbg.col = 0, 0, 0 +menu.boxbg.alpha = 0, 128 +;menu.arrow.up.anim = +menu.arrow.up.spr = 400, 0 +menu.arrow.up.offset = 428, -51 +menu.arrow.up.facing = 1 +menu.arrow.up.scale = 1.0, 1.0 +;menu.arrow.down.anim = +menu.arrow.down.spr = 401, 0 +menu.arrow.down.offset = 428, 525 +menu.arrow.down.facing = 1 +menu.arrow.down.scale = 1.0, 1.0 +menu.title.uppercase = 1 +cursor.move.snd = 100, 0 +cursor.done.snd = 100, 1 +cancel.snd = 100, 2 +menu.itemname.back = Back + +;------------------- +;Replay select screen background +[ReplayBGdef] + +[ReplayBG Background Sky] +type = normal +spriteno = 204,0 +layerno = 0 +start = -640,0 + +[ReplayBG Background Clouds Top] +type = normal +spriteno = 102,2 +layerno = 0 +start = -640, -50 +tile = 1,0 +velocity = -0.05, 0 +trans = add1 +window = 0,0, 1279,959 +mask = 1 + +[ReplayBG Background Clouds Bottom] +type = normal +spriteno = 102,3 +layerno = 0 +start = -640, 0 +tile = 1,0 +velocity = -0.7, 0 +window = 0,0, 1279,959 +mask = 1 +--------------------------------------------- +;Pause menu screen definition +[Pause Menu] +fadein.time = 0 +fadein.col = 0, 0, 0 +fadeout.time = 0 +fadeout.col = 0, 0, 0 +title.offset = 640,48 +title.font = 4,0,0 +title.scale = 1.0, 1.0 +title.text = PAUSE +menu.pos = 414, 99 +menu.item.offset = 0, 0 +menu.item.font = 7,0,1, 191,191,191 +menu.item.scale = 1.0, 1.0 +menu.item.active.offset = 0, 0 +menu.item.active.font = 7,0,1 +menu.item.active.scale = 1.0, 1.0 +menu.item.selected.offset = 0, 0 +menu.item.selected.font = 7,0,1, 0,247,247 +menu.item.selected.scale = 1.0, 1.0 +menu.item.selected.active.offset = 0, 0 +menu.item.selected.active.font = 7,0,1, 0,247,247 +menu.item.selected.active.scale = 1.0, 1.0 +menu.item.value.offset = 450, 0 +menu.item.value.font = 7,0,-1, 191,191,191 +menu.item.value.scale = 1.0, 1.0 +menu.item.value.active.offset = 450, 0 +menu.item.value.active.font = 7,0,-1 +menu.item.value.active.scale = 1.0, 1.0 +menu.item.spacing = 0, 42 +;menu.window.margins.y = 0, 0 +menu.window.visibleitems = 13 +menu.boxcursor.visible = 1 +menu.boxcursor.coords = -15, -30, 462, 11 +menu.boxcursor.col = 255, 255, 255 +menu.boxcursor.pulse = 30, 20, 30 +menu.boxbg.visible = 1 +menu.boxbg.col = 0, 0, 0 +menu.boxbg.alpha = 0, 128 +;menu.arrow.up.anim = +menu.arrow.up.spr = 400, 0 +menu.arrow.up.offset = 428, -51 +menu.arrow.up.facing = 1 +menu.arrow.up.scale = 1.0, 1.0 +;menu.arrow.down.anim = +menu.arrow.down.spr = 401, 0 +menu.arrow.down.offset = 428, 525 +menu.arrow.down.facing = 1 +menu.arrow.down.scale = 1.0, 1.0 +menu.title.uppercase = 1 +hidebars = 1 ;Set to 0 to show lifebars during the pause menu +;overlay.window = 0, 0, 1280, 720 +overlay.col = 0, 0, 0 +overlay.alpha = 0, 128 +cursor.move.snd = 100, 0 +cursor.done.snd = 100, 1 +cancel.snd = 100, 2 +enter.snd = 100, 1 +exit.snd = 100, 2 +movelist.pos = 189, 60 +movelist.title.offset = 451, -12 +movelist.title.font = 4,0,0 +movelist.title.scale = 1.0, 1.0 +movelist.title.text = %s +movelist.title.uppercase = 1 +movelist.text.offset = 0, 36 +movelist.text.font = 7,0,1 +movelist.text.scale = 1.0, 1.0 +movelist.text.spacing = 3, 3 +movelist.text.text = Command List not found. +movelist.glyphs.offset = 0, 6 +movelist.glyphs.scale = 1.0, 1.0 +movelist.glyphs.spacing = 6 +movelist.window.width = 900 +movelist.window.margins.y = 60, 3 +movelist.window.visibleitems = 20 +;movelist.overlay.window = 0, 0, 1280, 720 +movelist.overlay.col = 0, 0, 0 +movelist.overlay.alpha = 0, 128 +;movelist.arrow.up.anim = +;movelist.arrow.up.spr = +movelist.arrow.up.offset = 0, 0 +movelist.arrow.up.facing = 1 +movelist.arrow.up.scale = 1.0, 1.0 +;movelist.arrow.down.anim = +;movelist.arrow.down.spr = +movelist.arrow.down.offset = 0, 0 +movelist.arrow.down.facing = 1 +movelist.arrow.down.scale = 1.0, 1.0 + +; If custom menus are not declared, default menu screen layout is loaded. +; Refer to system.base.def for an example how to modify pause screen menus. + +;------------------- +;Pause menu screen background +[PauseBGdef] + +;------------------------------------------------------------------- +;Training menu screen definition +[Training Pause Menu] + +; If not overridden, values used for [Menu Info] are shared with this group. +; Refer to system.base.def for an example how to modify pause screen menus. + +;------------------- +;Training menu screen background +;[TrainingPauseBGdef] + +; If commented out defaults to [PauseBGdef] + +;------------------------------------------------------------------- +;Attract mode definition +[Attract Mode] +enabled = 0 +fadein.time = 10 +fadein.col = 0, 0, 0 +fadeout.time = 10 +fadeout.col = 0, 0, 0 +credits.snd = 400, 0 +logo.storyboard = logo.def +intro.storyboard = intro.def +start.storyboard = +start.time = 600 +start.insert.text = Insert Coin +start.insert.offset = 640, 551 +start.insert.font = 3,0,0 +start.insert.scale = 1.0, 1.0 +start.insert.blinktime = 30 +start.press.text = Press Start +start.press.offset = 640, 551 +start.press.font = 3,0,0 +start.press.scale = 1.0, 1.0 +start.press.blinktime = 30 +start.timer.offset = 1080, 680 +start.timer.font = 2,0,-1 +start.timer.scale = 1.0, 1.0 +start.timer.text = %i +start.timer.count = 60 +start.timer.framespercount = 60 +start.timer.displaytime = 10 +start.done.snd = 100, 1 +credits.text = CREDITS: %02d +credits.offset = 200, 680 +credits.font = 2,0,1 +credits.scale = 1.0, 1.0 + +; Flexible submenu grouping. +;Full documentation of this feature is available on Ikemen GO features wiki + +menu.itemname.arcade = ARCADE + +;------------------- +;Attract mode screen background +[AttractBGdef] +bgclearcolor = 255,255,255 + +[AttractBG Background Sky] +type = normal +spriteno = 100,0 +layerno = 0 +start = -640,0 + +[AttractBG Background Clouds Top] +type = normal +spriteno = 100,2 +layerno = 0 +start = -640, -50 +tile = 1,0 +velocity = -0.1, 0 +window = 0,0, 1279,959 +mask = 1 + +[AttractBG Background Clouds Bottom] +type = normal +spriteno = 100,3 +layerno = 0 +start = -640, 0 +tile = 1,0 +velocity = -0.7, 0 +window = 0,0, 1279,959 +mask = 1 + + +[AttractBG Background Black Bars] +type = normal +spriteno = 100,1 +layerno = 0 +start = -640,0 +trans = add1 +mask = 1 + +[AttractBG Title LogoShadow] +type = normal +spriteno = 0, 2 +layerno = 1 +start = 0,255 +scalestart = 1.5,1.5 +mask = 1 +alpha = 256,96 +trans = add +sin.y = 15, 264, 2 + +[AttractBG Title LogoShadow] +type = normal +spriteno = 0, 3 +layerno = 1 +start = 0,255 +scalestart = 1.5,1.5 +mask = 1 +alpha = 256,96 +trans = add +sin.y = 15, 264, 32 + +[AttractBG Title Logo] +type = normal +spriteno = 0, 0 +layerno = 1 +start = 0,255 +scalestart = 1.5,1.5 +mask = 1 +sin.y = 15, 264, 2 + +[AttractBG Title Logo 2] +type = normal +spriteno = 0, 1 +layerno = 1 +start = 0,255 +scalestart = 1.5,1.5 +mask = 1 +sin.y = 15, 264, 32 + + +;------------------------------------------------------------------- +;Challenger definition +[Challenger Info] +enabled = 1 +fadein.time = 0 +fadein.col = 0, 0, 0 +;fadein.anim = +fadeout.time = 15 +fadeout.col = 0, 0, 0 +;fadeout.anim = +time = 85 +pause.time = 0 ;Time to wait before pausing characters and background +snd.time = 0 +snd = 500,0 +bg.anim = 500 +;bg.spr = +bg.offset = 234, 298 +bg.facing = 1 +bg.scale = 1.0, 1.0 +bg.displaytime = 0 +;text.text = Here Comes A New Challenger!! +text.offset = 213, 120 +text.font = 2,5,0 +text.scale = 3.0, 3.0 +text.displaytime = 0 +text.layerno = 2 +;overlay.window = 0, 0, 1280, 720 +overlay.col = 0, 0, 0 +overlay.alpha = 0, 128 + +;"Here Comes A New Challenger!!" Animation +[Begin Action 500] +500,0, 0,0, 4 +500,1, 0,0, 4 +500,2, 0,0, 4 +500,3, 0,0, 4 +500,4, 0,0, 4 +500,5, 0,0, 4 +500,6, 0,0, 4 +500,7, 0,0, 4 +500,8, 0,0, 4 +500,9, 0,0, 4 +500,9, 0,0, 1,, AS240D16 +500,9, 0,0, 1,, AS224D32 +500,9, 0,0, 1,, AS208D48 +500,9, 0,0, 1,, AS192D64 +500,9, 0,0, 1,, AS176D80 +500,9, 0,0, 1,, AS160D96 +500,9, 0,0, 1,, AS144D112 +500,9, 0,0, 1,, AS128D128 +500,9, 0,0, 1,, AS112D144 +500,9, 0,0, 1,, AS96D160 +500,9, 0,0, 1,, AS80D176 +500,9, 0,0, 1,, AS64D192 +500,9, 0,0, 1,, AS48D208 +500,9, 0,0, 1,, AS32D224 +500,9, 0,0, 1,, AS16D240 +-1,0, 0,0, -1 + +;------------------- +;Challenger background +[ChallengerBGdef] + + +;------------------------------------------------------------------- +;Dialogue definition +[Dialogue Info] +enabled = 1 +starttime = 30 +endtime = 60 +switchtime = 30 +skiptime = 30 +skip.key = a +cancel.key = b, c, x, y, z, s +p1.bg.anim = 700 +p1.bg.offset = 0, 96 +p1.bg.facing = 1 +p1.bg.scale = 3.0, 3.0 +p2.bg.anim = 701 +p2.bg.offset = 0, 432 +p2.bg.facing = 1 +p2.bg.scale = 3.0, 3.0 +p1.face.spr = 9000,3 +p1.face.offset = 2, 1 +p1.face.facing = 1 +p1.face.scale = 0.51, 0.51 +;p1.face.window = 0, 0, 1280, 720 +p2.face.spr = 9000,3 +p2.face.offset = 1280, 337 +p2.face.facing = -1 +p2.face.scale = 0.51, 0.51 +;p2.face.window = 0, 0, 1280, 720 +p1.name.offset = 270, 85 +p1.name.font = 3,0,1, 210,210,255 +p1.name.scale = 1.0, 1.0 +p2.name.offset = 30, 421 +p2.name.font = 3,0,1, 255,210,239 +p2.name.scale = 1.0, 1.0 +p1.text.offset = 270, 147 +p1.text.font = 7,0,1 +p1.text.scale = 1.0, 1.0 +p1.text.textspacing = 0 +p1.text.textdelay = 3 +p1.text.textwrap = w +p1.text.window = 270,96, 1200,288 +p2.text.offset = 30, 483 +p2.text.font = 7,0,1 +p2.text.scale = 1.0, 1.0 +p2.text.textspacing = 0 +p2.text.textdelay = 3 +p2.text.textwrap = w +p2.text.window = 30,432, 930,624 + +[Begin Action 700] +700,0, -425,0, 1, ,AS192D64 +700,0, -400,0, 1, ,AS192D64 +700,0, -375,0, 1, ,AS192D64 +700,0, -350,0, 1, ,AS192D64 +700,0, -325,0, 1, ,AS192D64 +700,0, -300,0, 1, ,AS192D64 +700,0, -275,0, 1, ,AS192D64 +700,0, -250,0, 1, ,AS192D64 +700,0, -225,0, 1, ,AS192D64 +700,0, -200,0, 1, ,AS192D64 +700,0, -175,0, 1, ,AS192D64 +700,0, -150,0, 1, ,AS192D64 +700,0, -125,0, 1, ,AS192D64 +700,0, -100,0, 1, ,AS192D64 +700,0, -75,0, 1, ,AS192D64 +700,0, -50,0, 1, ,AS192D64 +700,0, -25,0, 1, ,AS192D64 +700,0, 0,0, -1, ,AS192D64 + +[Begin Action 701] +700,0, 425,0, 1, ,AS192D64 +700,0, 400,0, 1, ,AS192D64 +700,0, 375,0, 1, ,AS192D64 +700,0, 350,0, 1, ,AS192D64 +700,0, 325,0, 1, ,AS192D64 +700,0, 300,0, 1, ,AS192D64 +700,0, 275,0, 1, ,AS192D64 +700,0, 250,0, 1, ,AS192D64 +700,0, 225,0, 1, ,AS192D64 +700,0, 200,0, 1, ,AS192D64 +700,0, 175,0, 1, ,AS192D64 +700,0, 150,0, 1, ,AS192D64 +700,0, 125,0, 1, ,AS192D64 +700,0, 100,0, 1, ,AS192D64 +700,0, 75,0, 1, ,AS192D64 +700,0, 50,0, 1, ,AS192D64 +700,0, 25,0, 1, ,AS192D64 +700,0, 0,0, -1, ,AS192D64 + +;------------------------------------------------------------------- +;Hiscore definition +[Hiscore Info] +enabled = 1 +fadein.time = 50 +fadein.col = 0, 0, 0 +;fadein.anim = +fadeout.time = 50 +fadeout.col = 0, 0, 0 +;fadeout.anim = +time = 360 +pos = 159, 0 +title.offset = 480, 74 +title.font = 4,0,0 +title.scale = 1.0, 1.0 +title.arcade.text = Ranking Arcade +title.teamarcade.text = Ranking Team Arcade +title.teamcoop.text = Ranking Team Cooperative +title.timeattack.text = Ranking Time Attack +title.survival.text = Ranking Survival +title.survivalcoop.text = Ranking Survival Cooperative +title.uppercase = 1 +title.rank.offset = 105, 140 +title.rank.font = 3,0,0 +title.rank.scale = 0.66,0.66 +title.rank.text = Rank +title.result.offset = 336, 140 +title.result.font = 3,0,0 +title.result.scale = 0.66,0.66 +title.result.text = Result +title.name.offset = 558, 140 +title.name.font = 3,0,0 +title.name.scale = 0.66,0.66 +title.name.text = Name +title.face.offset = 774, 140 +title.face.font = 3,0,0 +title.face.scale = 0.66,0.66 +title.face.text = Character +item.offset = 0, 0 +item.spacing = 0, 0 +item.rank.offset = 126, 190 +item.rank.font = 2,0,-1 +item.rank.scale = 1.0, 1.0 +item.rank.spacing = 0, 26 +item.rank.text = %dth +item.rank.1.text = %dst +item.rank.2.text = %dnd +item.rank.3.text = %drd +item.rank.active.font = 2,0,-1, 191,191,191 +item.rank.active.switchtime = 4 +item.rank.active2.font = 2,0,-1 +item.result.offset = 399, 190 +item.result.font = 2,0,-1 +item.result.scale = 1.0, 1.0 +item.result.spacing = 0, 26 +item.result.score.text = %08d +item.result.time.text = %m'%s''%x +item.result.win.text = Stage %d +item.result.active.font = 2,0,-1, 191,191,191 +item.result.active.switchtime = 4 +item.result.active2.font = 2,0,-1 +item.name.offset = 531, 190 +item.name.font = 2,0,1 +item.name.scale = 1.0, 1.0 +item.name.spacing = 0, 26 +item.name.text = %s +item.name.active.font = 2,0,1, 191,191,191 +item.name.active.switchtime = 4 +item.name.active2.font = 2,0,1 +item.name.uppercase = 1 +;item.face.anim = +item.face.spr = 9000, 0 +item.face.offset = 700, 164 +item.face.facing = 1 +item.face.scale = 0.36, 0.36 +;item.face.window = 0, 0, 1280, 720 +item.face.num = 4 +item.face.spacing = 38, 48 +;item.face.bg.anim = +item.face.bg.spr = 150,0 +item.face.bg.offset = 0, 0 +item.face.bg.facing = 1 +item.face.bg.scale = 0.36, 0.36 +;item.face.unknown.anim = +item.face.unknown.spr = 151,0 +item.face.unknown.offset = 0, 0 +item.face.unknown.facing = 1 +item.face.unknown.scale = 0.33, 0.33 +timer.offset = 480, 676 +timer.font = 2,0,0 +timer.scale = 2, 2 +timer.text = %i +timer.count = 30 +timer.framespercount = 60 +timer.displaytime = 10 +window.width = 900 +window.margins.y = 60, 3 +window.visibleitems = 10 +;overlay.window = 0, 0, 1280, 720 +overlay.col = 0, 0, 0 +overlay.alpha = 0, 128 +move.snd = 100, 0 +done.snd = 100, 1 +cancel.snd = 100, 2 +glyphs = A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, !, ?, ., <, > + +;------------------- +;Hiscore screen background +[HiscoreBGdef] + +[HiscoreBG Background Sky] +type = normal +spriteno = 100,0 +layerno = 0 +start = -640,0 + +[HiscoreBG Background Clouds Top] +type = normal +spriteno = 100,2 +layerno = 0 +start = -640, -50 +tile = 1,0 +velocity = -0.1, 0 +window = 0,0, 1279,959 +mask = 1 + +[HiscoreBG Background Clouds Bottom] +type = normal +spriteno = 100,3 +layerno = 0 +start = -640, 0 +tile = 1,0 +velocity = -0.7, 0 +window = 0,0, 1279,959 +mask = 1 + +;------------------------------------------------------------------- +;Warning screen definition +[Warning Info] +title.offset = 640, 48 +title.font = 4,0,0 +title.scale = 1.0, 1.0 +text.offset = 189, 393 +text.font = 7,0,1 +text.scale = 1.0, 1.0 +;overlay.window = 0, 0, 1280, 720 +overlay.col = 0, 0, 0 +overlay.alpha = 0, 128 +done.snd = 100, 0 +cancel.snd = 100, 2 diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/system.sff b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/system.sff new file mode 100644 index 00000000..a6d25ee5 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/data/ikemen1/system.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/score.zss b/bios/Game Engines/Ikemen GO/ikemen/data/score.zss new file mode 100644 index 00000000..00c7eb11 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/score.zss @@ -0,0 +1,149 @@ +#=============================================================================== +# Global states (not halted by Pause/SuperPause, no helper limitations) +#=============================================================================== +[StateDef -4] + +ignoreHitPause if !const(Default.Enable.Score) || teamSide = 0 { + # do nothing, global code disabled locally or executed by stage +} else if roundState = 0 { + map(_iksys_scoreTimeVitalFlag) := 0; +} else if roundState = 4 && !isHelper { + # score: time vital bonus + if win && map(_iksys_scoreTimeVitalFlag) = 0 && alive { + if teamMode = Turns && roundsExisted = 0 && enemy,roundsExisted > 0 { + # skip time ratio multiplier, adjust vital bonus depending on how many rounds it took turns team to beat the enemy + scoreAdd{value: round(float(life) / lifeMax / (numPartner + 1) * 10000 / (enemy,roundsExisted + 1), -2)} + } else { + let p1TagNum = 1; + let p2TagNum = 1; + if teamMode = Tag { + let p1TagNum = numPartner + 1; + } + if enemy,teamMode = Tag { + let p2TagNum = enemy,numPartner + 1; + } + let timeRatio = 100 * timeRemaining / (timeRemaining + timeElapsed); + if $p1TagNum > $p2TagNum { + # time ratio penalty in case of Tag adjusted FramesPerCount value and not equal team sizes + let timeRatio = $timeRatio * $p2TagNum / $p1TagNum; + } + let timeMul = 1; + if $timeRatio > 90 { + let timeMul = 5; + } else if $timeRatio > 85 { + let timeMul = 4; + } else if $timeRatio > 80 { + let timeMul = 2.5; + } else if $timeRatio > 70 { + let timeMul = 2; + } else if $timeRatio > 60 { + let timeMul = 1.5; + } + scoreAdd{value: round(float(life) / lifeMax / (numPartner + 1) * 10000 * $timeMul, -2)} + } + map(_iksys_scoreTimeVitalFlag) := 1; + } +} else if roundState >= 2 { + # score: first attack bonus + if !isHelper { + let ret = call IkSys_FirstAttack(); + if $ret { + scoreAdd{value: 1500} + } + } + # score: counter bonus + let ret = call IkSys_CounterHit(); + if $ret { + scoreAdd{value: 100} + } + # score: damage bonus + let ret = call IkSys_ReceivedDamage(); + if $ret && getHitVar(score) = 0 { + let dmgMul = 0; + # normal attacks + if getHitVar(attr) = SCA, HA { + let dmgMul = 10; + } else if getHitVar(attr) = SCA, SA { + let dmgMul = 9; + } else if getHitVar(attr) = SCA, NA { + let dmgMul = 8; + # throws + } else if getHitVar(attr) = SCA, HT { + let dmgMul = 10; + } else if getHitVar(attr) = SCA, ST { + let dmgMul = 9; + } else if getHitVar(attr) = SCA, NT { + let dmgMul = 8; + # projectiles + } else if getHitVar(attr) = SCA, HP { + let dmgMul = 10; + } else if getHitVar(attr) = SCA, SP { + let dmgMul = 9; + } else if getHitVar(attr) = SCA, NP { + let dmgMul = 8; + } + if $dmgMul > 0 { + scoreAdd{ + value: round($ret * $dmgMul, -2); + redirectid: cond(playerIdExist(getHitVar(playerId)), getHitVar(playerId), player(getHitVar(playerNo)), ID); + } + } + } + # code executed only by P1 and P2 + if playerNo = teamSide && !isHelper { + # score: combo count bonus + let ret = call IkSys_ComboCount(); + if $ret { + switch $ret { + case 2: + scoreAdd{value: 300} + case 3: + scoreAdd{value: 500} + case 4: + scoreAdd{value: 1000} + case 5: + scoreAdd{value: 1200} + case 6: + scoreAdd{value: 1500} + case 7: + scoreAdd{value: 2000} + case 8: + scoreAdd{value: 2300} + case 9: + scoreAdd{value: 2600} + case 10: + scoreAdd{value: 3000} + case 11: + scoreAdd{value: 3300} + case 12: + scoreAdd{value: 3600} + case 13: + scoreAdd{value: 4000} + case 14: + scoreAdd{value: 4500} + default: + scoreAdd{value: min(10000, 5000 + ($ret - 15) * 1000)} + } + } + # score: win perfect bonus + let ret = call IkSys_WinPerfect(); + if $ret { + scoreAdd{value: 15000} + } + # score: win hyper bonus + let ret = call IkSys_WinHyper(); + if $ret { + scoreAdd{value: 10000} + } + # score: win special bonus + let ret = call IkSys_WinSpecial(); + if $ret { + scoreAdd{value: 3000} + } + # score: win streak bonus + let ret = call IkSys_WinStreak(); + if $ret { + scoreAdd{value: 30000 + ($ret - 1) * 10000} + } + } +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/select.def b/bios/Game Engines/Ikemen GO/ikemen/data/select.def new file mode 100644 index 00000000..c2254194 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/select.def @@ -0,0 +1,347 @@ +;------------------------------------------------------------------------------- +[Characters] + ;How to add characters + ;--------------------- + ;Use the format: + ; charname, stagefilename1, stagefilename2, ... + ; + ;e.g. For a player with filename "kfm", and stage filename + ;"stages/mybg.def" type (without the semicolon): + ; kfm, stages/mybg.def + ;IKEMEN feature: There can be more than 1 stage assigned to character. In such + ;case stage will be chosen randomly. + ; + ;If you want to load a different def file, you can enter it as a directory plus + ;the def file. This example loads chars/kfm/alt-kfm.def: + ; kfm/alt-kfm.def, stages/mybg.def + ; + ;If you put "random" as the stagefilename, then a random stage will be selected + ;for that player. e.g. + ; kfm, random + ;IKEMEN feature: Unlike mugen, stage declaration (including random, which is + ;default assignment) can be skipped without affecting other parameters. + ; + ;Zipped characters are also supported. + ;Place the ZIP file in the chars/ directory. The syntax is as + ;follows: + ; zipname.zip/defname.def, stages/mybg.def + ;For example, if you have newsuave.def in suave.zip, the syntax is: + ; suave.zip/newsuave.def, stages/mybg.def + ;If your def file has the same name as the zip file (eg. suave.def + ;in suave.zip), you can just put the name of the zip file alone: + ; suave.zip, stages/mybg.def + ; + ;Optional parameters should follow on the same line (except 'slot' parameter), + ;separated by commas. Each parameter has the form: + ; paramname = paramvalue + ;where paramname is the name of the parameter type, and paramvalue is the value + ;(data) that should be assigned to that parameter. + ;With the exception of 'unlock' (which always has to be last parameter in line) + ;parameters can be assigned in any order (after char and stage declaration). + ; + ;The optional parameters are: + ; + ; - music + ; Set the paramvalue to the music file path that should be used at the start + ; of the first round when facing this character. Paramvalue can be followed + ; by optional space-separated int values: volume, loopstart and loopend. + ; This overrides the stage DEF bgmusic (and related bgmusic.*) assignment so + ; you can re-use the same stage with unique music for multiple characters. + ; Multiple parameters of the same type may be defined; one will be chosen + ; at random. Unless stated otherwise, these rules also apply to other *.music + ; parameters. + + ; - round.music + ; IKEMEN feature: Music used at the start of the chosen round when facing this + ; character. + + ; - final.music + ; IKEMEN feature: Music used at the start of the final round. + + ; - life.music + ; IKEMEN feature: Music used when the player-controlled character has + ; (by default) less than 30% life during the deciding round (only affects + ; the side that is at risk of being defeated). Further adjustments are + ; available via the stage DEF file. + + ; - victory.music + ; IKEMEN feature: Music that starts right after this character scores the + ; final round K.O. and continues throughout the victory screen. Unlike other + ; music character parameters, victory.music also works in Versus-type modes. + ; + ; - ai + ; IKEMEN feature: Set the paramvalue between 1 and 8 to force AI Level + ; regardless of difficulty and AI ramping settings. + ; + ; - vsscreen + ; IKEMEN feature: Set the paramvalue to 0 to avoid displaying versus screen + ; when facing this character. + ; + ; - victoryscreen + ; IKEMEN feature: Set the paramvalue to 0 to avoid displaying victory screen + ; when this character wins a match. + ; + ; - rounds + ; IKEMEN feature: Set the paramvalue to the number of rounds in order to + ; overwrite rounds number chosen in the settings. + ; + ; - time + ; IKEMEN feature: Set the paramvalue to the time (in seconds) in order to + ; overwrite round time chosen in the settings. + ; + ; - single + ; IKEMEN feature: Set the paramvalue to 1 to force facing this character + ; individually in team modes. + ; + ; - includestage + ; Set the paramvalue to 0 to avoid including this stage in the stage select + ; list (in VS, training modes, etc). The stage is also blocked from being + ; randomly selected for a match. + ; IKEMEN feature: Setting paramvalue to -1 prevents stage from being randomly + ; selected for a match, while still allowing you to choose it from the stage + ; select list. + ; + ; - bonus + ; IKEMEN feature: Set the paramvalue to 1 to include this character in "Bonus + ; Games" mode. At least 1 character needs this parameter for the mode to show + ; up in modes selection menu. + ; + ; - exclude + ; IKEMEN feature: Set the paramvalue to 1 to avoid including this character + ; in 'rows' and 'columns' screenpack selection grid. (similar result as + ; hiding unselectable AI only characters in mugen without need to create tons + ; of unnecessary select.def slots to do so). Excluded characters are not + ; added to randomselect pool and won't show up in VS 100 Kumite mode. + ; + ; - hidden + ; IKEMEN feature: Set the paramvalue to hide a character: + ; 1: cursor can move to this cell, cursor, face and face background are not + ; rendered (same result as hiding selectable characters in mugen by + ; placing them outside visible grid, but without need to create lots of + ; unnecessary select.def slots to do so), + ; 2: cell can't be selected, art is not rendered (slot is ignored until + ; character is unlocked). + ; 3: cell behaves like randomselect slot until character is unlocked + ; + ; - order + ; Set the paramvalue to the default ordering priority to give the + ; character in roster-building modes. A smaller value means you will fight + ; the character sooner. The default order value is 1, if you omit this + ; param. Edit *.maxmatches settings under [Options] to customize amount of + ; matches per order priority. + ; IKEMEN feature: Max 30 orders mugen limitation is lifted. Negative order + ; is reversed if character becomes unlocked (see 'unlock' parameter) + ; + ; - order + ; IKEMEN feature: Set the paramvalue to the ordering priority to give the + ; character in a specific game mode, for example ordersurvival or + ; ordertimeattack. Roster generation checks order, then + ; order, then order. If none is found, default order value is 1. + ; Base modes are used by aliases, for example survivalcoop uses survival. + ; To exclude a character from a mode, set it to an order group outside the + ; configured .maxmatches range, for example ordersurvival=0. + ; Negative order is reversed if character becomes unlocked (see 'unlock' + ; parameter) + ; + ; - arcadepath + ; IKEMEN feature: Set the paramvalue to the lua file (file path relative to + ; game directory) containing custom arcade path. This parameter makes the + ; character ignore default *.maxmatches settings under [Options] section and + ; use arcade path coded entirely in lua, which allows implementing + ; functionality normally not possible in mugen (rival matches, branching + ; paths, secret bosses etc.) + ; https://github.com/ikemen-engine/Ikemen-GO/wiki/Miscellaneous-Info#arcs + ; + ; - slot + ; IKEMEN feature: Assigns multiple characters to a single select screen slot. + ; Enclose character declarations in 'slot = { ... }'. Braces may share lines + ; with character declarations. Use '|' to separate multiple character + ; declarations on the same physical line. Characters added this way can use + ; extra parameters: + ; - select: Set the paramvalue to the command that selects this character. + ; If multiple chars in this slot have the same paramvalue assigned, they + ; will be selected randomly. + ; - next: Set the paramvalue to the command that swaps the current slot + ; character with the next character that shares the same paramvalue. + ; - previous: Set the paramvalue to the command that swaps the current slot + ; character with the previous character that shares the same paramvalue. + ; Commands use the same syntax as mugen CMD files (comma is permitted) + ; + ; - unlock + ; IKEMEN feature: paramvalue is executed as Lua code condition, right after + ; new game mode is initiated and upon returning to main menu. If it evaluates + ; to boolean 'true' the character locked via 'hidden' parameter will become + ; selectable. On 'false' it will be hidden. Due to parameters syntax, + ; 'unlock' has to be the very last parameter used in line (everything that + ; follows is treated as a pure Lua code). Default: true (if character is not + ; hidden, otherwise: false) + ; https://github.com/ikemen-engine/Ikemen-GO/wiki/Miscellaneous-Info#lua_unlock + ; + ;You can also add a randomize icon to the select screen. To do this, put the + ;word "randomselect" on a line of its own, with no extra parameters. + ; + ;Examples: + ; kfm, stages/mybg.def, includestage=0 + ; kfm, stages/mybg.def, arcadepath=data/arcade.lua + ; kfm, stages/mybg.def, music=sound/song.mp3, order=3, ai=8, hidden=2 + ; slot = {kfm, previous=d, next=w | SuaveDude, previous=d, next=w} + ; slot = { + ; kfm, stages/mybg.def, previous=d, next=w + ; SuaveDude, previous=d, next=w, select=/s+a + ; } + ; + ;Insert your characters below. + +kfm_zss, stages/kfm.def +kfm720, stages/kfm.def, order=0 +kfm_zaxis, stages/kfm.def, order=0 +randomselect + +;------------------------------------------------------------------------------- +[ExtraStages] + ;Put extra stages here. They will be available in modes that allow selecting + ;stage manually. For example, you can insert "stages/mybg.def". + ; + ;Zipped stages are also supported. + ;Place the ZIP file in the stages/ directory. The syntax is as + ;follows: + ; zipname.zip/defname.def + ;For example, if you have suavestage.def in suave.zip, the syntax is: + ; suave.zip/suavestage.def + ;If your def file has the same name as the zip file (eg. suave.def + ;in suave.zip), you can just put the name of the zip file alone: + ; suave.zip + ; + ;Optional parameters may follow on the same line, separated by commas. + ;Each parameter has the form: + ; paramname = paramvalue + ;where paramname is the name of the parameter type, and paramvalue is the value + ;to assign that parameter. The optional parameters are: + ; + ; - music + ; Set the paramvalue to the music file path that should be used at the start + ; of the first round. Paramvalue can be followed by optional space-separated + ; int values: volume, loopstart and loopend. + ; This appends the stage DEF bgmusic (and related bgmusic.*) assignment. + ; Multiple parameters of the same type may be defined; one will be chosen + ; at random. Unless stated otherwise, these rules also apply to other *.music + ; parameters. + + ; - round.music + ; IKEMEN feature: Music used at the start of the chosen round. + + ; - final.music + ; IKEMEN feature: Music used at the start of the final round. + + ; - life.music + ; IKEMEN feature: Music used when the player-controlled character has + ; (by default) less than 30% life during the deciding round (only affects + ; the side that is at risk of being defeated). Further adjustments are + ; available via the stage DEF file. + + ; - victory.music + ; IKEMEN feature: Music that starts right after winner character scores the + ; final round K.O. and continues throughout the victory screen. Unlike other + ; music parameters, victory.music also works in Versus-type modes. + ; + ; - order + ; IKEMEN feature: Set the paramvalue to the ordering priority to give the + ; stage in modes where stage order is enabled. If there is at least 1 stage + ; with assigned order, facing opponent with the exact order paramvalue will + ; result in stage being randomly chosen from stages with the matching order. + ; Stages can have multiple order parameters assigned at the same time. + ; + ; - unlock + ; IKEMEN feature: paramvalue is executed as Lua code condition, right after + ; new game mode is initiated and upon returning to main menu. If it evaluates + ; to boolean 'true' the stage will become manually selectable. On 'false' it + ; will be hidden. Due to parameters syntax, 'unlock' has to be the very last + ; parameter used in line (everything that follows is treated as a pure Lua + ; code). Default: true. + ; https://github.com/ikemen-engine/Ikemen-GO/wiki/Miscellaneous-Info#lua_unlock + ; + ;Examples: + ; stages/mybg.def, music=sound/song.mp3, music=sound/song2.mp3 + ; stages/mybg.def, order=3 + ; + ;Insert your stages below. + +stages/stage1.def +stages/stage3d.def +stages/stage3d_outline.def +stages/stageZ.def +stages/interactivestage.def +stages/kfm.def +stages/stage0.def +stages/stage0-720.def + +;------------------------------------------------------------------------------- +[Options] + ;Here you set the maximum number of matches to fight before the game ends in + ;roster-building modes. Each value maps to an order priority from the order + ;table selected for the active mode. For example, for 4,3,1 you will fight up + ;to 4 randomly-picked characters with order=1, followed by 3 with order=2 and + ;1 with order=3. + ;IKEMEN feature: Max 30 orders mugen limitation is lifted. + ;IKEMEN feature: Characters can use mode-specific order parameters. + ;Roster generation checks order, then order, then + ;order. If no mode-specific order exists, the default order parameter is used. + ;IKEMEN feature: Characters can use individual maxmatches settings (see + ;'maxmatches' parameter in [Characters] section) + + ;Maximum number of matches to fight before game ends in Arcade single mode. +arcade.maxmatches = 6,1,1,0,0,0,0,0,0,0 + + ;Like arcade.maxmatches, but applies to Arcade team modes. +team.maxmatches = 4,1,1,0,0,0,0,0,0,0 + + ;Maximum number of matches to fight before game ends in Time Attack mode. + ;Uses ordertimeattack if defined, otherwise falls back to order. +timeattack.maxmatches = 6,1,1,0,0,0,0,0,0,0 + + ;IKEMEN feature: Similar to arcade.maxmatches, but applies to Survival modes. + ;Uses ordersurvival if defined, otherwise falls back to order. + ;Use -1 value to choose which order number should have unlimited matches. + ;By omitting -1 survival mode will end after particular amount of matches set + ;below (in such case you can actually "complete" the mode). +survival.maxmatches = -1,0,0,0,0,0,0,0,0,0 + +;------------------------------------------------------------------------------- +[StoryMode] + ;Story Mode arcs declaration. Assigned arcs are selectable via Story Mode + ;submenu ('menu.itemname.storymode' parameter in screenpack DEF file) + ; + ;Declaring arcs consists of setting up following parameters: + ; - name + ; IKEMEN feature: Set to name that should be returned by GameMode trigger. + ; This parameter also initiates new story arc declaration, so it has to be + ; assigned before any other parameter used by the same arc. All arcs should + ; have unique names. + ; + ; - displayname + ; IKEMEN feature: Set to name that should be displayed in Story Mode submenu. + ; + ; - path + ; IKEMEN feature: Path to file with lua extension (relative to game + ; directory), containing story mode arc coded in Lua language. + ; https://github.com/ikemen-engine/Ikemen-GO/wiki/Miscellaneous-Info#arcs + ; + ; - unlock + ; IKEMEN feature: Pure Lua code, executed exactly as is, each time upon + ; loading main menu. If it evaluates to boolean 'true' the story arc will be + ; selectable from story mode submenu, or hidden on 'false'. Default: true. + ; https://github.com/ikemen-engine/Ikemen-GO/wiki/Miscellaneous-Info#lua_unlock + ; + ;Examples: + ; name = arc1 + ; displayname = Kung Fu Story Part I + ; path = data/story/arc1.lua + ; unlock = true + ; + ; name = arc2 + ; displayname = Kung Fu Story Part II + ; path = data/story/arc2.lua + ; unlock = true + ; + ;Declare your Story Mode arcs below. + diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/system.snd b/bios/Game Engines/Ikemen GO/ikemen/data/system.snd new file mode 100644 index 00000000..6e4387d6 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/data/system.snd differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/system.zss b/bios/Game Engines/Ikemen GO/ikemen/data/system.zss new file mode 100644 index 00000000..b7d7380f --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/system.zss @@ -0,0 +1,89 @@ +#=============================================================================== +# Global states (not halted by Pause/SuperPause, no helper limitations) +#=============================================================================== +[StateDef -4] + +if pauseTime = 0 { + # For backward compatibility, x and z-axis get hit acceleration must be handled here + # TODO: These cases should maybe use the state number constants + # TODO: These patches could be done by appending sctrl's to the common1.cns states + if time > 0 && (stateNo = 5030 || stateNo = 5035 || stateNo = 5040 || stateNo = 5050 || stateNo = 5071 || stateNo = 5200) { + velAdd{x: getHitVar(xAccel); z: getHitVar(zAccel)} + } + # When keepstate attack, pause at hitshaketime are handled here + # TODO: will change the pause process from hitpause to a new pause SCTRL + if gethitvar(keepstate) && gethitvar(hitshaketime) > 0 && hitpausetime = 0 && !hitOverridden { + modifyPlayer{hitpausetime: gethitvar(hitshaketime)} + ignoreHitPause{ + getHitVarSet{hitshaketime: 0} + } + } +} + +[StateDef +1] + +# Reversal frame handling +# If a player just got out of a hit state and regained control, execute their state -1 code again +# This allows them to counter attack on the first possible frame +if !isHelper && pauseTime = 0 { + if !inCustomState { + if !inRunState && time = 0 && ctrl && moveType = I && !map(_iksys_reversal_prevctrl) && map(_iksys_reversal_gothit) { + runState{value: -1} + } + } + # Update flags to compare them in the next frame + map(_iksys_reversal_gothit) := moveType = H || stateNo = const(StateDownedGetHit_gettingUp); + map(_iksys_reversal_prevctrl) := ctrl; +} + +# For backward compatibility, z-axis get hit velocity must be handled here +if time = 0 && pauseTime = 0 { + if stateNo = 151 || stateNo = 153 || stateNo = 155 || stateNo = 5001 || stateNo = 5011 || stateNo = 5030 || stateNo = 5071 || stateNo = 5081 { + hitVelSet{z: 1} + } +} + +# Ground dust effects +if gameVar(pausetime) = 0 && gameVar(superpausetime) = 0 { + if (moveType = H && (stateType = S || stateType = C)) || stateNo = 52 { + if pos y = 0 && (Abs(pos x + cameraPos x - map(_iksys_dustposx)) >= 1 || Abs(pos z - map(_iksys_dustposz)) >= 1) { + makeDust{spacing: 3} + } + } +} +mapSet{map: "_iksys_dustposx"; value: pos x + cameraPos x} +mapSet{map: "_iksys_dustposz"; value: pos z} + +# Round start maps reset +if !isHelper && roundTime = 0 { + map(_iksys_lifeRecoveryValue) := 0; + map(_iksys_lifeRecoveryFlag) := 0; +} + +# Turns/Survival life recovery +# TODO: There's a bug here where the enemy also recovers life when you lose in Survival +if !isHelper && win && roundState = 4 { + # Determine how much to recover + if map(_iksys_lifeRecoveryFlag) = 0 + && (((teamMode = Turns || enemy,teamMode = Turns) && !matchOver) || gameVar(persistlife)) { + let base = lifeMax * gameOption(options.turns.recovery.base) / 100; + let bonus = lifeMax * gameOption(options.turns.recovery.bonus) / 100; + let timeRatio = float(timeRemaining) / (timeRemaining + timeElapsed); + if timeRemaining < 0 { + let timeRatio = 1; + } + map(_iksys_lifeRecoveryValue) := round($base + $bonus * $timeRatio, 0); + map(_iksys_lifeRecoveryFlag) := 1; + } + # Recover gradually + if map(_iksys_lifeRecoveryValue) > 0 { + assertSpecial{flag: roundNotOver; flag2: roundNotSkip} + let lifeStep = Min(3, map(_iksys_lifeRecoveryValue)); + lifeAdd{value: $lifeStep} + mapAdd{map: "_iksys_lifeRecoveryValue"; value: -$lifeStep} + } + # No need to delay round further if life is full + if life >= lifeMax { + map(_iksys_lifeRecoveryValue) := 0; + } +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/tag.zss b/bios/Game Engines/Ikemen GO/ikemen/data/tag.zss new file mode 100644 index 00000000..6e21193f --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/tag.zss @@ -0,0 +1,378 @@ +# Basic tag code that can be used as base for more advanced tag implementations +#=============================================================================== +# Functions +#=============================================================================== +# Returns tagged in char id +[Function TagGetPartnerId(add) partnerId] +let rootId = player(teamSide), id; +let partnerCnt = 0; +let partnerId = id + $add; +for i = 0; numPartner; 1 { + if $partnerId > $rootId + numPartner { + let partnerId = $rootId; + } else if $partnerId < $rootId { + let partnerId = $rootId + numPartner; + } + if playerId($partnerId),alive = 0 && $partnerCnt < numPartner { + let partnerCnt = $partnerCnt + 1; + let partnerId = $partnerId + $add; + } else { + break; + } +} +if $partnerCnt >= numPartner { + let partnerId = 0; +} + +# Decides if AI switch should happen, returns tagged in char id (function can be overridden locally) +# TODO: Balance default AI switch scaling. +[Function TagAISwitch(nextPartnerId, previousPartnerId) partnerId] +let partnerId = 0; +if const(TagCommandAIChance) >= randomRange(1, 100) { + if command = "TagShiftFwd" { + let partnerId = $nextPartnerId; + } else if command = "TagShiftBack" { + let partnerId = $previousPartnerId; + } +} + +# tagIn Switch explod +[Function TagSwitchExplod()] +let anim = const(FxTagSwitchAI); +if aiLevel = 0 { + if gameMode = "versuscoop" { + let anim = $anim + playerNo; + } else if gameMode = "netplaysurvivalcoop" || gameMode = "netplayteamcoop" || gameMode = "survivalcoop" || gameMode = "teamcoop" { + if teamSide = 1 { + let anim = $anim + playerNo / 2 + 1; + } else { + let anim = $anim + playerNo / 2; + } + } else { + let anim = $anim + teamSide; + } +} +explod{ + # Do note all anims and playsnds on this file are called from gofx.def, not fightfx.air/common.snd + anim: GO $anim; + postype: p1; + pos: 0, floor((const(size.head.pos.y) - const(size.ground.front) / 2 - const(size.ground.back) / 2)); + sprpriority: 5; + ownpal: 1; + facing: facing; + scale: 0.5, 0.5; + bindtime: -1; + supermovetime: -1; + pausemovetime: -1; + removeongethit: 1; + ignorehitpause: 1; +} + +#=============================================================================== +# StateTagEnteringScreen +#=============================================================================== +[StateDef const(StateTagEnteringScreen); + type: S; movetype: I; physics: N; + anim: const(AnimTagEnteringScreen); + sprpriority: 2; ctrl: 0; +] + +screenBound{value: 0; movecamera: 1, 1; stagebound: 0} + +if time = 0 { + if facing != player(teamLeader),facing { + turn{} + } + # set starting pos + posAdd{x: -backEdgeDist - const240p(90)} + posSet{y: 0} + # store distance to switch initiation position + map(_iksys_tagSwitchDist) := abs(pos x - player(teamLeader),pos x); + # set movement + velSet{x: min(const240p(const(TagInVelX)), map(_iksys_tagSwitchDist) / const(TagInTime)); y: 0} + # change active player assignment + map(_iksys_tagLastId) := player(teamLeader),id; + tagIn{leader: playerNo} + call TagSwitchExplod(); +} else { + mapAdd{map: "_iksys_tagSwitchDist"; value: -vel x} +} + +# continue until reaching place where the switch was initiated, but stop in front of enemy +if backEdgeDist >= 0 && (floor(map(_iksys_tagSwitchDist)) <= 0 || p2BodyDist X < const240p(30)) { + velSet{x: 0; y: 0} + selfState{value: const(StateStand); ctrl: 1} +} + +#=============================================================================== +# StateTagLeavingScreen +#=============================================================================== +[StateDef const(StateTagLeavingScreen); + type: S; movetype: I; physics: N; + anim: const(AnimTagLeavingScreen); sprpriority: -2; + velset: 0, 0; facep2: 1; + ctrl: 0; +] + +screenBound{value: 0; movecamera: 0, 0; stagebound: 0} +assertSpecial{flag: noTurnTarget} + +if time = 0 { + turn{} +} + +velSet{x: min(max(ifElse(const(velocity.run.fwd.x) != 0, const(velocity.run.fwd.x), const(velocity.walk.fwd.x) * 2),5), const240p(const(TagInVelX)));y: 0} + +if backEdgeDist < -const240p(160) || frontEdgeDist < -const240p(160) { + selfState{value: const(StateTagWaitingOutside)} +} + +#=============================================================================== +# StateTagWaitingOutside +#=============================================================================== +[StateDef const(StateTagWaitingOutside); + type: A; movetype: I; physics: N; + anim: const(AnimStanding); + velset: 0, 0; ctrl: 0; +] + +screenBound{value: 0; movecamera: 0, 0; stagebound: 0} +assertSpecial{flag: invisible; flag2: noTurnTarget} + +# Face towards center of screen +if pos x * facing > 0 { + turn{} +} + +# Force standby character to always stay outside visible area +posSet{x: const240p(-480) * facing / min(camerazoom, 1); y: 0} + +#=============================================================================== +# StateTagJumpingIn +#=============================================================================== +[StateDef const(StateTagJumpingIn); + type: A; movetype: I; physics: N; + anim: const(AnimTagJumpingIn); + sprpriority: 2; ctrl: 0; +] + +if roundState = 3 { + screenBound{value: 0; movecamera: 0, 0; stagebound: 0} + playerPush{value: 0} +} else { + screenBound{value: 0; movecamera: 1, 1; stagebound: 0} +} + +# the character cannot be hit until he has fully entered the stage +if backEdgeDist <= 0 { + notHitBy{value: SCA; time: 2} +} + +# regain control right after entering screen, in case of active player loss +if !ctrl && backEdgeDist >= 0 { + ctrlSet{value: 1} +} + +if time = 0 { + if facing != player(teamLeader),facing { + turn{} + } + # set starting pos + posAdd{x: -backEdgeDist - const240p(90)} + posSet{y: 0} + # change active player assignment if the battle still goes on + if roundState = 2 { + map(_iksys_tagLastId) := player(teamLeader),id; + tagIn{leader: playerNo} + call TagSwitchExplod(); + } + if roundState = 2 { + velSet{x: const240p(4.0); y: -const240p(10.0)} + } else { + velSet{x: const240p(8.0 - 0.75 * (playerno - teamside)); y: -const240p(10.0)} + } +} else { + velAdd{y: const240p(0.5)} + if vel y > 0 && pos y >= 0 { + velSet{x: 0; y: 0} + selfState{value: const(StateTagLanding)} + } +} + +#=============================================================================== +# StateTagLanding +#=============================================================================== +[StateDef const(StateTagLanding); + type: S; movetype: I; physics: N; + anim: const(AnimTagLanding); + sprpriority: 2; ctrl: 0; +] + +if time = 0 { + posSet{y: 0} +} + +if animTime >= 0 { + selfState{value: const(StateStand); ctrl: 1} +} + +#=============================================================================== +# Global states (not halted by Pause/SuperPause, no helper limitations) +#=============================================================================== +[StateDef -4] + +# Make players (any mode) only turn towards enemy Tag team leader +# This benefits assist systems more than it does this native Tag code +ignoreHitPause if roundState = 2 && !isHelper { + if p2, teamMode = Tag && p2, playerNo != p2, teamLeader || + p2, time <= 0 && p2, prevStateNo = p2, const(StateTagWaitingOutside) { # Run order fix + assertSpecial{flag: noAutoTurn; flag2: noFaceP2} + # Run order fix is necessary because when tagging in a player that was already processed in the current frame, they won't be repositioned immediately + # This makes enemies recognize that player as the new leader and turn towards them before the screen side where they should enter from has been decided + # TODO: This fix could be replaced with a function where the previous leader tags out while the next one is simultaneously repositioned + } +} + +#=============================================================================== +# Global states +#=============================================================================== +[StateDef -2] + +ignoreHitPause if !const(Default.Enable.Tag) || isHelper || teamSide = 0 { + # do nothing, global code disabled locally or executed by helper/stage +} else if roundState <= 1 && teamMode = Tag && map(_iksys_tagActive) = 0 { + map(_iksys_tagActive) := 1; + map(_iksys_tagLastId) := 0; + map(_iksys_tagPartnerId) := 0; + if playerNo = teamLeader { + map(_iksys_tagIntroFlag) := 1; + } else { + map(_iksys_tagIntroFlag) := 0; + } + map(_iksys_tagSwitchCooldown) := 0; +} else if map(_iksys_tagActive) = 1 { + # fix characters escaping state 5030 + if !alive { + ctrlSet{value: 0} + assertSpecial{flag: noailevel} + } + # disable tag over win poses + if roundState = 4 { + map(_iksys_tagActive) := 0; + # alive players + } else if alive { + let beingHit = 0; + if moveType = H + || getHitVar(isBound) != 0 + || stateNo = const(StateDownedGetHit_gettingUp) || + stateNo = [const(StateAirGetHit_fallRecoveryOnGroundStillFalling), const(StateAirGetHit_fallRecoveryInAir)] + { + let beingHit = 1; + } + # active player + if playerNo = teamLeader { + # delay next check if cooldown is active + if map(_iksys_tagSwitchCooldown) > 0 { + mapAdd{map: "_iksys_tagSwitchCooldown"; value: -1} + # not being hit; standing idle or at least on the ground + } else if $beingHit = 0 && (stateNo = const(StateStand) || pos y >= 0) { + # last active player has left the screen or died + if map(_iksys_tagLastId) = 0 + || playerId(map(_iksys_tagLastId)),stateNo = playerId(map(_iksys_tagLastId)),const(StateTagWaitingOutside) + || playerId(map(_iksys_tagLastId)),alive = 0 + { + # get partner id in case of tag command + let partnerId = 0; + let nextPartnerId = call TagGetPartnerId(1); + let previousPartnerId = call TagGetPartnerId(-1); + if aiLevel > 0 { + # id is remembered by AI player, switch will happen at first frame that meets switch conditions + if map(_iksys_tagPartnerId) = 0 { + let partnerId = call TagAISwitch($nextPartnerId, $previousPartnerId); + map(_iksys_tagPartnerId) := $partnerId; + } + let partnerId = map(_iksys_tagPartnerId); + } else if command = "TagShiftFwd" { + let partnerId = $nextPartnerId; + } else if command = "TagShiftBack" { + let partnerId = $previousPartnerId; + } + # having control, command buffered, partner standby + if ctrl && $partnerId > 0 && playerId($partnerId),stateNo = playerId($partnerId),const(StateTagWaitingOutside) { + mapSet{map: "_iksys_tagSwitchCooldown"; value: playerId($partnerId),const(TagSwitchCooldown); redirectid: $partnerId} + map(_iksys_tagPartnerId) := 0; + lifebarAction{spr: const(MsgPartnerChange), 0; top: 1} + tagOut{} + ctrlSet{value: 0} + assertSpecial{flag: noHardcodedKeys; flag2: noInput} + tagIn{stateno: playerId($partnerId),const(StateTagEnteringScreen); redirectid: $partnerId} + } + } + } + # partners (not hit) + } else if $beingHit = 0 { + # on screen, at the round start / during round + if roundState = 2 + && (ctrl || standby || map(_iksys_tagIntroFlag) = 0) + && (stateNo = const(StateStand) || + (pos y >= 0 && stateNo != [const(StateTagEnteringScreen), const(StateTagWaitingOutside)])) + { + map(_iksys_tagIntroFlag) := 1; + tagOut{stateno: const(StateTagLeavingScreen)} + # tagged out, at the round end + } else if roundState = 3 { + assertSpecial{flag: noInput} + if stateNo = const(StateTagWaitingOutside) { + tagIn{stateno: const(StateTagJumpingIn)} + } + } + } + # Red Life regeneration + let lifeRegen = 0; + if gameOption(Options.Team.LifeShare) != 0 { + # When sharing life, recover life for team leader using a cooldown timer + if map(_iksys_redLifeTimer) > 0 { + mapAdd{map: "_iksys_redLifeTimer"; value: -1} + } + if moveType = H || stateNo = const(StateDownedGetHit_gettingUp) { + map(_iksys_redLifeTimer) := 60; + } + if playerNo = teamLeader && map(_iksys_redLifeTimer) <= 0 { + let lifeRegen = 1; + } + } else if stateNo = const(StateTagWaitingOutside) { + # Otherwise simply recover life while in waiting state + let lifeRegen = 1; + } + if $lifeRegen && life < redLife && (gameTime % const(TagRedLifeRegenFrames)) = 0 { # every 30 frames (0.5s) by default + lifeAdd{value: min(redLife - life, ceil(lifeMax * const(TagRedLifeRegenPercent))); absolute: 1} # 0.5% lifeMax by default + } + # active player died and hit the ground + } else if playerNo = teamLeader + && stateNo = [const(StateDownedGetHit_hitGroundFromFall), const(StateDownedGetHit_lyingDefeated)] + { + map(_iksys_tagActive) := 0; + # bring next team member + let partnerId = call TagGetPartnerId(1); + if $partnerId > 0 { + mapSet{map: "_iksys_tagSwitchCooldown"; value: playerId($partnerId),const(TagSwitchCooldown); redirectid: $partnerId} + lifebarAction{spr: const(MsgPartnerChange), 0; top: 1} + tagOut{} + tagIn{stateno: playerId($partnerId),const(StateTagJumpingIn); redirectid: $partnerId} + } + } +} + +#=============================================================================== +# Global states (not halted by Pause/SuperPause, no helper limitations) +#=============================================================================== +[StateDef +1] + +# fix erratic camera during intros +if cond(isHelper, root, map(_iksys_tagActive), map(_iksys_tagActive)) { + if roundstate = [0, 1] + && playerno != teamleader + && numenemy != (numpartner + 1) { + screenbound{value: 0; movecamera: 0, 0; stagebound: 0} + } +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/data/training.zss b/bios/Game Engines/Ikemen GO/ikemen/data/training.zss new file mode 100644 index 00000000..d983f9d5 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/data/training.zss @@ -0,0 +1,268 @@ +# Mugen style Training Mode global code +# maps set via Pause Menu (menu.lua) +# _iksys_trainingDummyControl: 0 - cooperative, 1 - ai, 2 - manual +# _iksys_trainingGuardMode: 0 - none, 1 - auto, 2 - all, 3 - random +# _iksys_trainingFallRecovery: 0 - none, 1 - ground, 2 - air, 3 - random +# _iksys_trainingDummyMode: 0 - stand, 1 - crouch, 2 - jump, 3 - wjump +# _iksys_trainingDistance: 0 - any, 1 - close, 2 - medium, 3 - far +# _iksys_trainingButtonJam: 0 - none, 1-9 - a/b/c/x/y/z/s/d/w + +#=============================================================================== +# Global states (not halted by Pause/SuperPause, no helper limitations) +#=============================================================================== +[StateDef -4] + +ignoreHitPause if gameMode = "training" { + # Round start reset + if roundState = 0 { + powerSet{value: powerMax} + map(_iksys_trainingLifeTimer) := 0; + map(_iksys_trainingPowerTimer) := 0; + } + # Life and Power recovery + if !isHelper { + # Life + if moveType = H || dizzy { + mapSet{map: "_iksys_trainingLifeTimer"; value: 0} + } else { + mapAdd{map: "_iksys_trainingLifeTimer"; value: 1} + } + if map(_iksys_trainingLifeTimer) >= 60 { + lifeSet{value: lifeMax} + redLifeSet{value: lifeMax} + mapSet{map: "_iksys_trainingLifeTimer"; value: 0} + } + # Power + if ctrl = 0 { + mapSet{map: "_iksys_trainingPowerTimer"; value: 0} + } else { + mapAdd{map: "_iksys_trainingPowerTimer"; value: 1} + } + if map(_iksys_trainingPowerTimer) >= 60 { + powerSet{value: powerMax} + mapSet{map: "_iksys_trainingPowerTimer"; value: 0} + } + } + # Disable normal KO behavior + assertSpecial{ + flag: globalNoKo; + flag2: noKoFall; + flag3: noKoVelocity; + } + # Force players out of KO state + if stateNo = 5150 && time >= 90 && alive { + selfState{value: 5120} + } + # Skip round and fight calls + if roundState < 2 { + assertSpecial{flag: skipRoundDisplay; flag2: skipFightDisplay} + } + # Dummy code + if teamSide = 2 && !isHelper { + if roundState = 0 { + # Round start reset + map(_iksys_trainingAirJumpNum) := 0; + map(_iksys_trainingDirection) := 0; + } + if roundState = 2 { + # Dummy Control: Cooperative + if aiLevel = 0 && map(_iksys_trainingDummyControl) = 0 { + # Guard mode: Random + if map(_iksys_trainingGuardMode) = 3 { + if random < 500 { + assertSpecial{flag: autoGuard} + } + # Guard mode: All + } else if map(_iksys_trainingGuardMode) = 2 { + assertSpecial{flag: autoGuard} + # Guard mode: Auto + } else if map(_iksys_trainingGuardMode) = 1 { + if moveType = H || stateNo = const(StateDownedGetHit_gettingUp) { + map(_iksys_trainingAutoGuardTimer) := 15; + } else { + map(_iksys_trainingAutoGuardTimer) := (map(_iksys_trainingAutoGuardTimer) - 1); + } + if map(_iksys_trainingAutoGuardTimer) > 0 { + assertSpecial{flag: autoGuard} + } + } + # Fall Recovery + if map(_iksys_trainingFallRecovery) { + if stateNo != [const(StateAirGetHit_fallRecoveryOnGroundStillFalling), const(StateAirGetHit_fallRecoveryInAir)] { + if moveType = H && stateType = A && hitFall && !getHitVar(isbound) && (pos y || vel y) { + # Ground recovery. Attempt only if common1 conditions are met + if vel y > 0 && pos y >= const(movement.air.gethit.groundrecover.ground.threshold) { + if map(_iksys_trainingFallRecovery) = 1 { + let rcv = 1; + } + # Air recovery. Attempt only if conditions for ground recovery are not met + } else if map(_iksys_trainingFallRecovery) = 2 { + let rcv = 1; + } + # Random recovery. Attempt regardless of conditions + if map(_iksys_trainingFallRecovery) = 3 && random < 100 { + let rcv = 1; + } + if $rcv { + # WinMugen characters assert inputs because asserting commands directly may trigger their AI activation codes + if mugenVersion(major) = 0 { + if gametime % 2 { + assertInput{flag: x; flag2: y; flag3: z} + } else { + assertInput{flag: a; flag2: b; flag3: c} + } + } else { + assertCommand{name: "recovery"; buffer.time: 2} + # Buffered 2 frames because asserting a command instead of inputting it has 1 frame of lag in custom fall recovery systems + } + # Random direction + if map(_iksys_trainingFallRecovery) = 3 { + if random < 333 { + assertInput{flag: L} + } else if random < 500 { + assertInput{flag: R} + } + if random < 333 { + assertInput{flag: U} + } else if random < 500 { + assertInput{flag: D} + } + } + } + } + } + } + # Distance + let dir = 0; + if map(_iksys_trainingDistance) != 0 { + # Close + if map(_iksys_trainingDistance) = 1 { + if p2BodyDist x > const240p(10) { + let dir = 1; + map(_iksys_trainingDirection) := 1; + } else if p2BodyDist x < -(const(size.ground.front) + const(size.ground.back) + const240p(10)) { + let dir = -1; + map(_iksys_trainingDirection) := -1; + } + # Medium + } else if map(_iksys_trainingDistance) = 2 { + if p2BodyDist x > const240p(130) { + let dir = 1; + map(_iksys_trainingDirection) := 1; + } else if p2BodyDist x < const240p(80) && backEdgeBodyDist > const240p(10) { + let dir = -1; + map(_iksys_trainingDirection) := -1; + } + # Far + } else if map(_iksys_trainingDistance) = 3 { + if p2BodyDist x < const240p(260) && backEdgeBodyDist > const240p(10) { + let dir = -1; + map(_iksys_trainingDirection) := -1; + } + } + } + if map(_iksys_trainingDirection) != 0 { + # If adjusting position is no longer needed + if $dir = 0 { + # maintain assertion only if dummy and nearest P1 are moving in the same direction + if vel x * p2,vel x >= 0 || backEdgeBodyDist = 0 || p2,backEdgeBodyDist = 0 { + map(_iksys_trainingDirection) := 0; + } + } + # If dummy should move forward and player is not trying to move dummy manually + if map(_iksys_trainingDirection) = 1 { + if inputTime(B) < 0 && inputTime(D) < 0 && inputTime(U) < 0 { + for i = 0; numHelper; 1 { + assertInput{flag: F; redirectID: helperIndex($i), ID} # Index 0 being the root + } + } + # If dummy should move backward and player is not trying to move dummy manually + } else if map(_iksys_trainingDirection) = -1 { + if inputTime(F) < 0 && inputTime(D) < 0 && inputTime(U) < 0 { + for i = 0; numHelper; 1 { + assertInput{flag: B; redirectID: helperIndex($i), ID} + } + } + } + } else { + # Dummy mode + switch map(_iksys_trainingDummyMode) { + # Crouch + case 1: + if inputTime(L) < 0 && inputTime(R) < 0 && inputTime(U) < 0 { + for i = 0; numHelper; 1 { + assertInput{flag: D; redirectID: helperIndex($i), ID} + } + } + # Jump + case 2: + if inputTime(L) < 0 && inputTime(R) < 0 && inputTime(D) < 0 { + for i = 0; numHelper; 1 { + assertInput{flag: U; redirectID: helperIndex($i), ID} + } + } + # W Jump + case 3: + if inputTime(L) < 0 && inputTime(R) < 0 && inputTime(D) < 0 { + if vel y >= 0 { + for i = 0; numHelper; 1 { + assertInput{flag: U; redirectID: helperIndex($i), ID} + } + } + } + default: + # Do nothing + } + # Button jam + if map(_iksys_trainingButtonJam) > 0 { + if map(_iksys_trainingButtonJamDelay) > 0 { + mapAdd{map: "_iksys_trainingButtonJamDelay"; value: -1} + } else { + map(_iksys_trainingButtonJamDelay) := 11; + switch map(_iksys_trainingButtonJam) { + case 1: + for i = 0; numHelper; 1 { + assertInput{flag: a; redirectID: helperIndex($i), ID} + } + case 2: + for i = 0; numHelper; 1 { + assertInput{flag: b; redirectID: helperIndex($i), ID} + } + case 3: + for i = 0; numHelper; 1 { + assertInput{flag: c; redirectID: helperIndex($i), ID} + } + case 4: + for i = 0; numHelper; 1 { + assertInput{flag: x; redirectID: helperIndex($i), ID} + } + case 5: + for i = 0; numHelper; 1 { + assertInput{flag: y; redirectID: helperIndex($i), ID} + } + case 6: + for i = 0; numHelper; 1 { + assertInput{flag: z; redirectID: helperIndex($i), ID} + } + case 7: + for i = 0; numHelper; 1 { + assertInput{flag: s; redirectID: helperIndex($i), ID} + } + case 8: + for i = 0; numHelper; 1 { + assertInput{flag: d; redirectID: helperIndex($i), ID} + } + case 9: + for i = 0; numHelper; 1 { + assertInput{flag: w; redirectID: helperIndex($i), ID} + } + default: + map(_iksys_trainingButtonJamDelay) := 0; + } + } + } + } + } + } + } +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/gamecontrollerdb.txt b/bios/Game Engines/Ikemen GO/ikemen/external/gamecontrollerdb.txt new file mode 100644 index 00000000..5b2df525 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/external/gamecontrollerdb.txt @@ -0,0 +1,2291 @@ +# Game Controller DB for SDL in 2.0.16 format +# Source: https://github.com/mdqinc/SDL_GameControllerDB + +# Windows +03000000300f00000a01000000000000,3 In 1 Conversion Box,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b8,x:b3,y:b0,platform:Windows, +03000000fa190000918d000000000000,3 In 1 Conversion Box,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b8,x:b3,y:b0,platform:Windows, +03000000fa2d00000100000000000000,3dRudder Foot Motion Controller,leftx:a0,lefty:a1,rightx:a5,righty:a2,platform:Windows, +03000000d0160000040d000000000000,4Play Adapter,a:b1,b:b3,back:b4,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,leftstick:b14,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b15,righttrigger:b9,rightx:a3,righty:a4,start:b5,x:b0,y:b2,platform:Windows, +03000000d0160000050d000000000000,4Play Adapter,a:b1,b:b3,back:b4,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,leftstick:b14,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b15,righttrigger:b9,rightx:a3,righty:a4,start:b5,x:b0,y:b2,platform:Windows, +03000000d0160000060d000000000000,4Play Adapter,a:b1,b:b3,back:b4,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,leftstick:b14,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b15,righttrigger:b9,rightx:a3,righty:a4,start:b5,x:b0,y:b2,platform:Windows, +03000000d0160000070d000000000000,4Play Adapter,a:b1,b:b3,back:b4,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,leftstick:b14,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b15,righttrigger:b9,rightx:a3,righty:a4,start:b5,x:b0,y:b2,platform:Windows, +03000000d0160000600a000000000000,4Play Adapter,a:b1,b:b3,back:b4,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,leftstick:b14,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b15,righttrigger:b9,rightx:a3,righty:a4,start:b5,x:b0,y:b2,platform:Windows, +03000000c82d00001930000000000000,8BitDo 64,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a4,start:b11,platform:Windows, +03000000c82d00000031000000000000,8BitDo Adapter,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00000531000000000000,8BitDo Adapter 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00000951000000000000,8BitDo Dogbone,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a2,rightx:a3,righty:a5,start:b11,platform:Windows, +03000000008000000210000000000000,8BitDo F30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +030000003512000011ab000000000000,8BitDo F30 Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000c82d00001028000000000000,8BitDo F30 Arcade Joystick,a:b0,b:b1,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d000011ab000000000000,8BitDo F30 Arcade Joystick,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000801000000900000000000000,8BitDo F30 Arcade Stick,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001038000000000000,8BitDo F30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000090000000000000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00006a28000000000000,8BitDo GameCube,a:b0,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b9,paddle2:b8,rightshoulder:b10,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b1,y:b4,platform:Windows, +03000000c82d00001251000000000000,8BitDo Lite 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00001151000000000000,8BitDo Lite SE,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000150000000000000,8BitDo M30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a3,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000151000000000000,8BitDo M30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a2,rightshoulder:b6,righttrigger:b7,rightx:a3,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00000650000000000000,8BitDo M30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00005106000000000000,8BitDo M30,a:b0,b:b1,back:b10,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,guide:b2,leftshoulder:b8,lefttrigger:b9,rightshoulder:b6,righttrigger:b7,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00002090000000000000,8BitDo Micro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000310000000000000,8BitDo N30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00000451000000000000,8BitDo N30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a2,rightx:a3,righty:a5,start:b11,platform:Windows, +03000000c82d00002028000000000000,8BitDo N30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00008010000000000000,8BitDo N30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d0000e002000000000000,8BitDo N30,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,start:b6,platform:Windows, +03000000c82d00000190000000000000,8BitDo N30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00001590000000000000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00006528000000000000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000290000000000000,8BitDo N64,+rightx:b9,+righty:b3,-rightx:b4,-righty:b8,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,platform:Windows, +03000000c82d00003038000000000000,8BitDo N64,+rightx:b9,+righty:b3,-rightx:b4,-righty:b8,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,platform:Windows, +03000000c82d00006928000000000000,8BitDo N64,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a4,start:b11,platform:Windows, +03000000c82d00002590000000000000,8BitDo NEOGEO,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +030000003512000012ab000000000000,8BitDo NES30,a:b2,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b0,platform:Windows, +03000000c82d000012ab000000000000,8BitDo NES30,a:b1,b:b0,back:b10,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000022000000090000000000000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000203800000900000000000000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00002038000000000000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000751000000000000,8BitDo P30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a2,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00000851000000000000,8BitDo P30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a2,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00000360000000000000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b2,paddle2:b5,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000361000000000000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000660000000000000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000960000000000000,8BitDo Pro 3,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b17,paddle2:b16,paddle3:b2,paddle4:b5,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000131000000000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000231000000000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000331000000000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000431000000000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00002867000000000000,8BitDo S30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a2,rightshoulder:b6,righttrigger:b7,rightx:a3,righty:a5,start:b10,x:b3,y:b4,platform:Windows, +03000000c82d00000130000000000000,8BitDo SF30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000060000000000000,8BitDo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000061000000000000,8BitDo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +03000000102800000900000000000000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d000021ab000000000000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00003028000000000000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +030000003512000020ab000000000000,8BitDo SN30,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000030000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000351000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a2,rightshoulder:b7,rightx:a3,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00001290000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d000020ab000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00004028000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00006228000000000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000021000000000000,8BitDo SN30 Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00000160000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000161000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000260000000000000,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00000261000000000000,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00001130000000000000,8BitDo Ultimate,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b26,paddle1:b24,paddle2:b25,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001230000000000000,8BitDo Ultimate,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b2,paddle2:b5,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001330000000000000,8BitDo Ultimate,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b23,paddle2:b19,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001260000000000000,8BitDo Ultimate 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b17,paddle2:b16,paddle3:b2,paddle4:b5,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00000a31000000000000,8BitDo Ultimate 2C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b5,paddle2:b2,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001b30000000000000,8BitDo Ultimate 2C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b5,paddle2:b2,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001c30000000000000,8BitDo Ultimate 2C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b2,paddle2:b5,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001d30000000000000,8BitDo Ultimate 2C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b5,paddle2:b2,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001530000000000000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001630000000000000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001730000000000000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00000121000000000000,8BitDo Xbox One SN30 Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000a00500003232000000000000,8BitDo Zero,a:b0,b:b1,back:b10,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Windows, +03000000c82d00001890000000000000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Windows, +03000000c82d00003032000000000000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Windows, +030000008f0e00001200000000000000,Acme GA02,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Windows, +03000000c01100000355000000000000,Acrux,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000fa190000f0ff000000000000,Acteck AGJ 3200,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000d1180000402c000000000000,ADT1,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a3,rightx:a2,righty:a5,x:b3,y:b4,platform:Windows, +030000006f0e00008801000000000000,Afterglow Deluxe Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000341a00003608000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00000263000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001101000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001401000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001402000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001901000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001a01000000000000,Afterglow PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001301000000000000,Afterglow Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006f0e00001302000000000000,Afterglow Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006f0e00001304000000000000,Afterglow Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006f0e00001413000000000000,Afterglow Xbox Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00003901000000000000,Afterglow Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000ab1200000103000000000000,Afterglow Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000ad1b000000f9000000000000,Afterglow Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000100000008200000000000000,Akishop Customs PS360,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000007c1800000006000000000000,Alienware Dual Compatible PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Windows, +03000000491900001904000000000000,Amazon Luna Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b9,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Windows, +03000000710100001904000000000000,Amazon Luna Controller,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b5,leftstick:b8,leftx:a0,lefty:a1,misc1:b9,rightshoulder:b4,rightstick:b7,rightx:a3,righty:a4,start:b6,x:b3,y:b2,platform:Windows, +0300000008100000e501000000000000,Anbernic Game Pad,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000020500000913000000000000,Anbernic RG P01,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000373500000710000000000000,Anbernic RG P01,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000373500004610000000000000,Anbernic RG P01,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000190e00000110000000000000,Aquaplus Piece,a:b1,b:b0,back:b3,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b2,platform:Windows, +03000000830500000160000000000000,Arcade,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b3,x:b4,y:b4,platform:Windows, +03000000120c0000100e000000000000,Armor 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000490b00004406000000000000,ASCII Seamic Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows, +03000000869800002500000000000000,Astro C40 TR PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000a30c00002700000000000000,Astro City Mini,a:b2,b:b1,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Windows, +03000000a30c00002800000000000000,Astro City Mini,a:b2,b:b1,back:b8,leftx:a3,lefty:a4,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Windows, +03000000050b00000579000000000000,ASUS ROG Kunai 3,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000050b00000679000000000000,ASUS ROG Kunai 3,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +030000006a0e00001140000000000000,Atari CX Controller,a:b0,leftx:a0,lefty:a1,platform:Windows, +03000000503200000110000000000000,Atari VCS Classic Controller,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,start:b3,platform:Windows, +03000000503200000210000000000000,Atari VCS Modern Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:Windows, +03000000380800001889000000000000,AtGames Legends Gamer Pro,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b13,lefttrigger:b14,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000008a3500000102000000000000,Backbone One,a:b4,b:b5,back:b14,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b10,leftstick:b17,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b18,righttrigger:b13,rightx:a3,righty:a4,start:b15,x:b7,y:b8,platform:Windows, +030000008a3500000201000000000000,Backbone One,a:b4,b:b5,back:b14,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b10,leftstick:b17,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b18,righttrigger:b13,rightx:a3,righty:a4,start:b15,x:b7,y:b8,platform:Windows, +030000008a3500000302000000000000,Backbone One,a:b4,b:b5,back:b14,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b10,leftstick:b17,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b18,righttrigger:b13,rightx:a3,righty:a4,start:b15,x:b7,y:b8,platform:Windows, +030000008a3500000402000000000000,Backbone One,a:b4,b:b5,back:b14,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b10,leftstick:b17,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b18,righttrigger:b13,rightx:a3,righty:a4,start:b15,x:b7,y:b8,platform:Windows, +03000000e4150000103f000000000000,Batarang,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000d6200000e557000000000000,Batarang PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000c01100001352000000000000,Battalife Joystick,a:b6,b:b7,back:b2,leftshoulder:b0,leftx:a0,lefty:a1,rightshoulder:b1,start:b3,x:b4,y:b5,platform:Windows, +030000006f0e00003201000000000000,Battlefield 4 PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000ad1b000001f9000000000000,BB 070,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000d62000002a79000000000000,BDA PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000bc2000005250000000000000,Beitong G3,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b5,righttrigger:b9,rightx:a3,righty:a4,start:b15,x:b3,y:b4,platform:Windows, +030000000d0500000208000000000000,Belkin Nostromo N40,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Windows, +030000000d0500000308000000000000,Belkin Nostromo N45,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b12,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b10,x:b2,y:b3,platform:Windows, +03000000bc2000006012000000000000,Betop 2126F,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000bc2000000055000000000000,Betop BFM,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000790000000700000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows, +03000000808300000300000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows, +03000000bc2000006312000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000bc2000006321000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000bc2000006412000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000c01100000555000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000c01100000655000000000000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +030000006f0e00006401000000000000,BF One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Windows, +03000000300f00000202000000000000,Bigben,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a5,righty:a2,start:b7,x:b2,y:b3,platform:Windows, +030000006b1400000209000000000000,Bigben,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006b1400000055000000000000,Bigben PS3 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000006b1400000103000000000000,Bigben PS3 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows, +03000000120c0000200e000000000000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000210e000000000000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000f10e000000000000,Brook PS2 Adapter,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000120c0000310c000000000000,Brook Super Converter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Windows, +03000000632500007606000000000000,BSP Y04,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,start:b11,x:b3,y:b4,platform:Windows, +03000000d81d00000b00000000000000,Buffalo BSGP1601 Series,a:b5,b:b3,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b9,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b13,x:b4,y:b2,platform:Windows, +030000005a1c00002400000000000000,Capcom Home Arcade Controller,a:b3,b:b4,back:b7,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b6,x:b0,y:b1,platform:Windows, +030000005b1c00002400000000000000,Capcom Home Arcade Controller,a:b3,b:b4,back:b7,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b6,x:b0,y:b1,platform:Windows, +030000005b1c00002500000000000000,Capcom Home Arcade Controller,a:b3,b:b4,back:b7,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b6,x:b0,y:b1,platform:Windows, +030000006d04000042c2000000000000,ChillStream,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000e82000006058000000000000,Cideko AK08b,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000457500000401000000000000,Cobra,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000b0400003365000000000000,Competition Pro,a:b0,b:b1,back:b2,leftx:a0,lefty:a1,start:b3,platform:Windows, +030000004c050000c505000000000000,CronusMax Adapter,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000d814000007cd000000000000,Cthulhu,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000d8140000cefa000000000000,Cthulhu,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000260900008888000000000000,Cyber Gadget GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a4,rightx:a2,righty:a3~,start:b7,x:b2,y:b3,platform:Windows, +030000003807000002cb000000000000,Cyborg,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000a306000022f6000000000000,Cyborg V.3 Rumble,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000f806000000a3000000000000,DA Leader,a:b7,b:b6,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b0,leftstick:b8,lefttrigger:b1,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:b3,rightx:a2,righty:a3,start:b12,x:b4,y:b5,platform:Windows, +030000001a1c00000001000000000000,Datel Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000451300000830000000000000,Defender Game Racer X7,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000791d00000103000000000000,Dual Box Wii,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000151a00006222000000000000,Dual Plus PlayStation Adapter,a:b2,b:b1,back:b9,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +030000004f040000070f000000000000,Dual Power,a:b8,b:b9,back:b4,dpdown:b1,dpleft:b2,dpright:b3,dpup:b0,leftshoulder:b13,leftstick:b6,lefttrigger:b14,leftx:a0,lefty:a1,rightshoulder:b12,rightstick:b7,righttrigger:b15,start:b5,x:b10,y:b11,platform:Windows, +030000004f04000012b3000000000000,Dual Power 3,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows, +030000004f04000020b3000000000000,Dual Trigger,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows, +03000000bd12000002e0000000000000,Dual Vibration Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a2,start:b11,x:b3,y:b0,platform:Windows, +03000000ff1100003133000000000000,DualForce,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b1,platform:Windows, +030000006f0e00003001000000000000,EA Sports PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000fc0400000250000000000000,Easy Grip,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows, +03000000bc2000000091000000000000,EasySMX Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +030000006e0500000a20000000000000,Elecom DUX60 MMO,a:b2,b:b3,back:b17,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b14,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b15,righttrigger:b13,rightx:a3,righty:a4,start:b20,x:b0,y:b1,platform:Windows, +03000000b80500000410000000000000,Elecom Gamepad,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Windows, +03000000b80500000610000000000000,Elecom Gamepad,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Windows, +03000095090000010000000000000000,Elecom JC-U609,a:b0,b:b1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,start:b8,x:b3,y:b4,platform:Windows, +0300004112000000e500000000000000,Elecom JC-U909Z,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b7,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,start:b8,x:b3,y:b4,platform:Windows, +03000041120000001050000000000000,Elecom JC-U911,a:b1,b:b2,back:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,start:b0,x:b4,y:b5,platform:Windows, +030000006e0500000520000000000000,Elecom P301U PlayStation Adapter,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Windows, +03000000250900000218000000000000,Elecom PlayStation Adapter,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000411200004450000000000000,Elecom U1012,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Windows, +030000006e0500000320000000000000,Elecom U3613M,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Windows, +030000006e0500000e20000000000000,Elecom U3912T,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Windows, +030000006e0500000f20000000000000,Elecom U4013S,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Windows, +030000006e0500001320000000000000,Elecom U4113,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006e0500001020000000000000,Elecom U4113S,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Windows, +030000006e0500000720000000000000,Elecom W01U,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Windows, +030000007d0400000640000000000000,Eliminator AfterShock,a:b1,b:b2,back:b9,dpdown:+a3,dpleft:-a5,dpright:+a5,dpup:-a3,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a4,righty:a2,start:b8,x:b0,y:b3,platform:Windows, +03000000120c0000f61c000000000000,Elite,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000430b00000300000000000000,EMS Production PS2 Adapter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000062000001801000000000000,EMS TrioLinker Plus II,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b2,y:b3,platform:Windows, +03000000242f000000b7000000000000,ESM 9110,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Windows, +03000000101c0000181c000000000000,Essential,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b4,leftx:a1,lefty:a0,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +030000008f0e00000f31000000000000,EXEQ,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows, +03000000341a00000108000000000000,EXEQ RF Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000006f0e00008401000000000000,Faceoff Deluxe Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00008101000000000000,Faceoff Deluxe Pro Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00008001000000000000,Faceoff Pro Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000021000000090000000000000,FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b13,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b9,rightstick:b14,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Windows, +0300000011040000c600000000000000,FC801,a:b0,b:b1,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Windows, +03000000852100000201000000000000,FF GP1,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000ad1b000028f0000000000000,Fightpad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000ad1b00002ef0000000000000,Fightpad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000ad1b000038f0000000000000,Fightpad TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b8,rightshoulder:b5,righttrigger:b9,start:b7,x:b2,y:b3,platform:Windows, +03005036852100000000000000000000,Final Fantasy XIV Online Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000f806000001a3000000000000,Firestorm,a:b9,b:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b0,leftstick:b10,lefttrigger:b1,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b11,righttrigger:b3,start:b12,x:b8,y:b4,platform:Windows, +03000000b50700000399000000000000,Firestorm 2,a:b2,b:b4,back:b10,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b8,righttrigger:b9,start:b11,x:b3,y:b5,platform:Windows, +03000000b50700001302000000000000,Firestorm D3,a:b0,b:b2,leftshoulder:b4,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,x:b1,y:b3,platform:Windows, +03000000b40400001024000000000000,Flydigi Apex,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000151900004000000000000000,Flydigi Vader 2,a:b27,b:b26,back:b19,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b23,leftstick:b17,lefttrigger:b21,leftx:a0,lefty:a1,rightshoulder:b22,rightstick:b16,righttrigger:b20,rightx:a3,righty:a4,start:b18,x:b25,y:b24,platform:Windows, +03000000b40400001124000000000000,Flydigi Vader 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b12,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b14,paddle1:b4,paddle2:b5,paddle3:b16,paddle4:b17,rightshoulder:b7,rightstick:b13,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b2,y:b3,platform:Windows, +03000000b40400001224000000000000,Flydigi Vader 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b12,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b2,paddle1:b16,paddle2:b17,paddle3:b14,paddle4:b15,rightshoulder:b7,rightstick:b13,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +0300000066f700000100000000000000,Game VIB Joystick,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Windows, +03000000790000004618000000000000,GameCube Adapter,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Windows, +03000000260900002625000000000000,GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,lefttrigger:a4,leftx:a0,lefty:a1,righttrigger:a5,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Windows, +03000000341a000005f7000000000000,GameCube Controller,a:b2,b:b3,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b1,y:b0,platform:Windows, +03000000430b00000500000000000000,GameCube Controller,a:b0,b:b2,dpdown:b10,dpleft:b8,dpright:b9,dpup:b11,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a3,rightx:a5,righty:a2,start:b7,x:b1,y:b3,platform:Windows, +03000000790000004718000000000000,GameCube Controller,a:b1,b:b0,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Windows, +030000008f0e00000d31000000000000,Gamepad 3 Turbo,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000ac0500003d03000000000000,GameSir G3,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000ac0500005b05000000000000,GameSir G3w,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000ac0500002d02000000000000,GameSir G4,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000ac0500004d04000000000000,GameSir G4,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000ac0500007a05000000000000,Gamesir G5,a:b16,b:b19,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,misc2:b20,misc3:b21,misc4:b22,misc5:b23,paddle1:b25,paddle2:b24,paddle3:b27,paddle4:b26,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b17,y:b18,platform:Windows, +03000000373500002210000000000000,GameSir G7 Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000ac0500001a06000000000000,GameSir T3 2.02,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000373500000410000000000000,GameSir T4 Kaleid,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000373500009410000000000000,GameSir Tegenaria Lite,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000373500001611000000000000,GameSir X5 Lite,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +030000004c0e00001035000000000000,Gamester,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +030000000d0f00001110000000000000,GameStick Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +0300000047530000616d000000000000,GameStop,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000c01100000140000000000000,GameStop PS4 Fun Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000b62500000100000000000000,Gametel GT004 01,a:b3,b:b0,dpdown:b10,dpleft:b9,dpright:b8,dpup:b11,leftshoulder:b4,rightshoulder:b5,start:b7,x:b1,y:b2,platform:Windows, +030000008f0e00001411000000000000,Gamo2 Divaller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000120c0000a857000000000000,Gator Claw,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000008305000009a0000000000000,Genius,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000008305000031b0000000000000,Genius Maxfire Blaze 3,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000451300000010000000000000,Genius Maxfire Grandias 12,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000005c1a00003330000000000000,Genius MaxFire Grandias 12V,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Windows, +03000000300f00000b01000000000000,GGE909 Recoil,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000f0250000c283000000000000,Gioteck PlayStation Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000f025000021c1000000000000,Gioteck PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000f025000031c1000000000000,Gioteck PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000f0250000c383000000000000,Gioteck VX2 PlayStation Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000f0250000c483000000000000,Gioteck VX2 PlayStation Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000d11800000094000000000000,Google Stadia Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:b11,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:Windows, +030000004f04000026b3000000000000,GP XID,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +0300000079000000d418000000000000,GPD Win,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000c6240000025b000000000000,GPX,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000007d0400000840000000000000,Gravis Destroyer Tilt,+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b1,b:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,x:b0,y:b3,platform:Windows, +030000007d0400000540000000000000,Gravis Eliminator Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +03000000280400000140000000000000,Gravis GamePad Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a3,dpup:-a4,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000008f0e00000610000000000000,GreenAsia,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a5,righty:a2,start:b11,x:b3,y:b0,platform:Windows, +03000000ac0500006b05000000000000,GT2a,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000341a00000302000000000000,Hama Scorpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000008a2e0000dd10000000000000,Hand Held Legend GC Ultimate,a:b0,b:b2,back:b17,dpdown:b5,dpleft:b6,dpright:b7,dpup:b4,guide:b18,leftshoulder:b10,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b19,misc2:b24,paddle1:b13,paddle2:b12,rightshoulder:b11,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b1,y:b3,platform:Windows, +030000008a2e0000df10000000000000,Hand Held Legend ProGCC,a:b1,b:b0,back:b17,dpdown:b5,dpleft:b6,dpright:b7,dpup:b4,guide:b18,leftshoulder:b10,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b19,paddle1:b13,paddle2:b12,rightshoulder:b11,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b3,y:b2,platform:Windows, +030000000d0f00004900000000000000,Hatsune Miku Sho PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000001008000001e1000000000000,Havit HV G60,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b0,platform:Windows, +030000000d0f00000c00000000000000,HEXT,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000d81400000862000000000000,HitBox Edition Cthulhu,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,lefttrigger:b4,rightshoulder:b7,righttrigger:b6,start:b9,x:b0,y:b3,platform:Windows, +03000000632500002605000000000000,HJD X,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +030000000d0f00000a00000000000000,Hori DOA,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000000d0f00008500000000000000,Hori Fighting Commander 2016 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00002500000000000000,Hori Fighting Commander 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00002d00000000000000,Hori Fighting Commander 3 Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00005f00000000000000,Hori Fighting Commander 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00005e00000000000000,Hori Fighting Commander 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000000d0f00008400000000000000,Hori Fighting Commander 5,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00006201000000000000,Hori Fighting Commander Octa,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00006401000000000000,Hori Fighting Commander Octa,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,start:b7,x:b2,y:b3,platform:Windows, +030000000d0f00005100000000000000,Hori Fighting Commander PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00008600000000000000,Hori Fighting Commander Xbox 360,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000000d0f0000ba00000000000000,Hori Fighting Commander Xbox 360,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000000d0f00008800000000000000,Hori Fighting Stick mini 4 PS3,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b8,x:b0,y:b3,platform:Windows, +030000000d0f00008700000000000000,Hori Fighting Stick mini 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000000d0f00001000000000000000,Hori Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00003200000000000000,Hori Fightstick 3W,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f0000c000000000000000,Hori Fightstick 4,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000000d0f00000d00000000000000,Hori Fightstick EX2,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +030000000d0f00003701000000000000,Hori Fightstick Mini,a:b1,b:b0,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Windows, +030000000d0f00004000000000000000,Hori Fightstick Mini 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,lefttrigger:b4,rightshoulder:b7,righttrigger:b6,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00002100000000000000,Hori Fightstick V3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00002700000000000000,Hori Fightstick V3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f0000a000000000000000,Hori Grip TAC4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b13,x:b0,y:b3,platform:Windows, +030000000d0f0000a500000000000000,Hori Miku Project Diva X HD PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000000d0f0000a600000000000000,Hori Miku Project Diva X HD PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000000d0f00000101000000000000,Hori Mini Hatsune Miku FT,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00005400000000000000,Hori Pad 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00000900000000000000,Hori Pad 3 Turbo,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00004d00000000000000,Hori Pad A,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00003801000000000000,Hori PC Engine Mini Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,platform:Windows, +030000000d0f00009200000000000000,Hori Pokken Tournament DX Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00002301000000000000,Hori PS4 Controller Light,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +030000000d0f00001100000000000000,Hori Real Arcade Pro 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00002600000000000000,Hori Real Arcade Pro 3P,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00004b00000000000000,Hori Real Arcade Pro 3W,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00006a00000000000000,Hori Real Arcade Pro 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00006b00000000000000,Hori Real Arcade Pro 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00008a00000000000000,Hori Real Arcade Pro 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00008b00000000000000,Hori Real Arcade Pro 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00006f00000000000000,Hori Real Arcade Pro 4 VLX,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00007000000000000000,Hori Real Arcade Pro 4 VLX,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00003d00000000000000,Hori Real Arcade Pro N3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b10,leftstick:b4,lefttrigger:b11,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b6,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f0000ae00000000000000,Hori Real Arcade Pro N4,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000000d0f00008c00000000000000,Hori Real Arcade Pro P4,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000000d0f0000aa00000000000000,Hori Real Arcade Pro S,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f0000d800000000000000,Hori Real Arcade Pro S,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Windows, +030000000d0f00002200000000000000,Hori Real Arcade Pro V3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00005b00000000000000,Hori Real Arcade Pro V4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00005c00000000000000,Hori Real Arcade Pro V4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f0000af00000000000000,Hori Real Arcade Pro VHS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00001b00000000000000,Hori Real Arcade Pro VX,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000ad1b000002f5000000000000,Hori Real Arcade Pro VX,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b11,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Windows, +030000000d0f00009c00000000000000,Hori TAC Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f0000c900000000000000,Hori Taiko Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00006400000000000000,Horipad 3TP,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00001300000000000000,Horipad 3W,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00005500000000000000,Horipad 4 FPS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00006e00000000000000,Horipad 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f00006600000000000000,Horipad 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000000d0f00004200000000000000,Horipad A,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000ad1b000001f5000000000000,Horipad EXT2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000000d0f0000ee00000000000000,Horipad Mini 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f0000c100000000000000,Horipad Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000000d0f0000f600000000000000,Horipad Nintendo Switch Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000000d0f00000202000000000000,Horipad O Nintendo Switch 2 Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,misc2:b14,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows, +030000000d0f00006700000000000000,Horipad One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000000d0f00009601000000000000,Horipad Steam,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,misc2:b2,paddle1:b5,paddle2:b15,paddle3:b18,paddle4:b19,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +030000000d0f0000dc00000000000000,Horipad Switch,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000242e00000b20000000000000,Hyperkin Admiral N64 Controller,+rightx:b11,+righty:b13,-rightx:b8,-righty:b12,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b14,leftx:a0,lefty:a1,rightshoulder:b5,start:b9,platform:Windows, +03000000242e0000ff0b000000000000,Hyperkin N64 Adapter,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a2,righty:a3,start:b9,platform:Windows, +03000000790000004e95000000000000,Hyperkin N64 Adapter,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b7,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a5,righty:a2,start:b9,platform:Windows, +03000000242e00006a48000000000000,Hyperkin RetroN Sq,a:b3,b:b7,back:b5,dpdown:+a4,dpleft:-a0,dpright:+a0,dpup:-a4,leftshoulder:b0,rightshoulder:b1,start:b4,x:b2,y:b6,platform:Windows, +03000000242f00000a20000000000000,Hyperkin Scout,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Windows, +03000000242e00000a20000000000000,Hyperkin Scout Premium SNES Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Windows, +03000000242e00006a38000000000000,Hyperkin Trooper 2,a:b0,b:b1,back:b4,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b3,start:b5,platform:Windows, +03000000f00300008d04000000000000,HyperX Clutch,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:-a2,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:+a5,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000d81d00000e00000000000000,iBuffalo AC02 Arcade Joystick,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b11,righttrigger:b3,rightx:a2,righty:a5,start:b8,x:b4,y:b5,platform:Windows, +03000000d81d00000f00000000000000,iBuffalo BSGP1204 Series,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000d81d00001000000000000000,iBuffalo BSGP1204P Series,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +030000005c0a00000285000000000000,iDroidCon,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b4,y:b6,platform:Windows, +03000000696400006964000000000000,iDroidCon Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000511d00000230000000000000,iGUGU Gamecore,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b1,leftstick:b4,lefttrigger:b3,leftx:a0,lefty:a1,rightshoulder:b0,righttrigger:b2,platform:Windows, +03000000b50700001403000000000000,Impact Black,a:b2,b:b3,back:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows, +030000006f0e00002401000000000000,Injustice Fightstick PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +03000000830500005130000000000000,InterAct ActionPad,a:b0,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows, +03000000ef0500000300000000000000,InterAct AxisPad,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Windows, +03000000fd0500000230000000000000,InterAct AxisPad,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a5,start:b11,x:b0,y:b1,platform:Windows, +03000000fd0500000030000000000000,Interact GoPad,a:b3,b:b4,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,x:b0,y:b1,platform:Windows, +03000000fd0500003902000000000000,InterAct Hammerhead,a:b3,b:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b2,lefttrigger:b8,rightshoulder:b7,rightstick:b5,righttrigger:b9,start:b10,x:b0,y:b1,platform:Windows, +03000000fd0500002a26000000000000,InterAct Hammerhead FX,a:b3,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b0,y:b1,platform:Windows, +03000000fd0500002f26000000000000,InterAct Hammerhead FX,a:b4,b:b5,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b1,y:b2,platform:Windows, +03000000fd0500005302000000000000,InterAct ProPad,a:b3,b:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,x:b0,y:b1,platform:Windows, +03000000ac0500002c02000000000000,Ipega Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b8,leftstick:b13,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b9,rightstick:b14,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000491900000204000000000000,Ipega PG9023,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000491900000304000000000000,Ipega PG9087,+righty:+a5,-righty:-a4,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,start:b11,x:b3,y:b4,platform:Windows, +03000000250900000017000000000000,Joypad Adapter,a:b2,b:b1,back:b9,leftshoulder:b5,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b6,start:b8,x:b3,y:b0,platform:Windows, +03000000bd12000003c0000000000000,Joypad Alpha Shock,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000008b0100002301000000000000,Joytech JS-112,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a2,lefty:a3,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a0,righty:a1,start:b9,x:b0,y:b1,platform:Windows, +03000000ff1100004033000000000000,JPD FFB,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a2,start:b15,x:b3,y:b0,platform:Windows, +03000000242f00002d00000000000000,JYS Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000242f00008a00000000000000,JYS Adapter,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b0,y:b3,platform:Windows, +03000000c4100000c082000000000000,KADE,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000828200000180000000000000,Keio,a:b4,b:b5,back:b8,leftshoulder:b2,lefttrigger:b3,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,start:b9,x:b0,y:b1,platform:Windows, +03000000c4ac00001c80000000000000,KidzPlay Adventure PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000790000000200000000000000,King PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows, +03000000bd12000001e0000000000000,Leadership,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +030000006f0e00000103000000000000,Logic3,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006f0e00000104000000000000,Logic3,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000008f0e00001300000000000000,Logic3,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +030000006d040000d1ca000000000000,Logitech ChillStream,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006d040000d2ca000000000000,Logitech Cordless Precision,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006d04000016c2000000000000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006d0400001dc2000000000000,Logitech F310,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006d04000018c2000000000000,Logitech F510,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006d0400001ec2000000000000,Logitech F510,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006d04000019c2000000000000,Logitech F710,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006d0400001fc2000000000000,Logitech F710,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006d0400001ac2000000000000,Logitech Precision,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000006d04000009c2000000000000,Logitech WingMan,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Windows, +030000006d0400000bc2000000000000,Logitech WingMan Action Pad,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b8,lefttrigger:a5~,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b5,righttrigger:a2~,start:b8,x:b3,y:b4,platform:Windows, +030000006d04000011c2000000000000,Logitech WingMan Cordless,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b9,leftstick:b5,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b2,righttrigger:b7,rightx:a3,righty:a4,x:b4,platform:Windows, +030000006d0400000ac2000000000000,Logitech WingMan RumblePad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,rightx:a3,righty:a4,x:b3,y:b4,platform:Windows, +03000000380700005645000000000000,Lynx,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000004e3700001101000000000000,M64 Pro Controller,+rightx:b8,+righty:b6,-rightx:b7,-righty:b5,a:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b3,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b4,start:b9,x:b1,platform:Windows, +03000000222200006000000000000000,Macally,a:b1,b:b2,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b33,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700003888000000000000,Mad Catz Arcade Fightstick TE S Plus PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700008532000000000000,Mad Catz Arcade Fightstick TE S PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700006352000000000000,Mad Catz CTRLR,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000380700006652000000000000,Mad Catz CTRLR,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000380700005032000000000000,Mad Catz Fightpad Pro PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700005082000000000000,Mad Catz Fightpad Pro PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000380700008031000000000000,Mad Catz FightStick Alpha PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000003807000038b7000000000000,Mad Catz Fightstick TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b8,rightshoulder:b5,righttrigger:b9,start:b7,x:b2,y:b3,platform:Windows, +03000000380700008433000000000000,Mad Catz Fightstick TE S PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700008483000000000000,Mad Catz Fightstick TE S PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000380700008134000000000000,Mad Catz Fightstick TE2 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b7,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b4,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700008184000000000000,Mad Catz Fightstick TE2 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,leftstick:b10,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000380700006252000000000000,Mad Catz Micro CTRLR,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000380700008232000000000000,Mad Catz PlayStation Brawlpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700008731000000000000,Mad Catz PlayStation Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000003807000056a8000000000000,Mad Catz PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700001888000000000000,Mad Catz SFIV Fightstick PS3,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b5,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b4,righttrigger:b6,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000380700008081000000000000,Mad Catz SFV Arcade Fightstick Alpha PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000380700001847000000000000,Mad Catz Street Fighter 4 Xbox 360 FightStick,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b8,rightshoulder:b5,righttrigger:b9,start:b7,x:b2,y:b3,platform:Windows, +03000000380700008034000000000000,Mad Catz TE2 PS3 Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000380700008084000000000000,Mad Catz TE2 PS4 Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000002a0600001024000000000000,Matricom,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:Windows, +030000009f000000adbb000000000000,MaxJoypad Virtual Controller,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000250900000128000000000000,Mayflash Arcade Stick,a:b1,b:b2,back:b8,leftshoulder:b0,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b3,righttrigger:b7,start:b9,x:b5,y:b6,platform:Windows, +03000000242f00003700000000000000,Mayflash F101,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +03000000790000003018000000000000,Mayflash F300 Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +03000000242f00003900000000000000,Mayflash F300 Elite Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000790000004318000000000000,Mayflash GameCube Adapter,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Windows, +03000000790000004418000000000000,Mayflash GameCube Controller,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Windows, +03000000242f00007300000000000000,Mayflash Magic NS,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b0,y:b3,platform:Windows, +0300000079000000d218000000000000,Mayflash Magic NS,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000d620000010a7000000000000,Mayflash Magic NS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000242f0000f400000000000000,Mayflash N64 Adapter,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a2,righty:a5,start:b9,platform:Windows, +03000000242f0000f500000000000000,Mayflash N64 Adapter,a:b2,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a2,righty:a5,start:b9,platform:Windows, +03000000790000007918000000000000,Mayflash N64 Adapter,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b9,leftx:a0,lefty:a1,righttrigger:b7,rightx:a3,righty:a2,start:b8,platform:Windows, +030000008f0e00001330000000000000,Mayflash N64 Adapter,a:b1,b:b2,back:b8,dpdown:h0.8,dpleft:h0.2,dpright:h0.1,dpup:h0.4,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a3~,righty:a2,start:b9,x:b0,y:b3,platform:Windows, +030000008f0e00001030000000000000,Mayflash Saturn Adapter,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,lefttrigger:b7,rightshoulder:b6,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows, +0300000025090000e803000000000000,Mayflash Wii Classic Adapter,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:a4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:a5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows, +03000000790000000318000000000000,Mayflash Wii DolphinBar,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Windows, +03000000790000000018000000000000,Mayflash Wii U Pro Adapter,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000790000002418000000000000,Mega Drive Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,rightshoulder:b2,start:b9,x:b3,y:b4,platform:Windows, +0300000079000000ae18000000000000,Mega Drive Controller,a:b0,b:b1,back:b7,dpdown:b14,dpleft:b15,dpright:b13,dpup:b2,rightshoulder:b6,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows, +03000000c0160000990a000000000000,Mega Drive Controller,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,righttrigger:b2,start:b3,platform:Windows, +030000005e0400002800000000000000,Microsoft Dual Strike,a:b3,b:b2,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,rightshoulder:b7,rightx:a0,righty:a1~,start:b5,x:b1,y:b0,platform:Windows, +030000005e0400000300000000000000,Microsoft SideWinder,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Windows, +030000005e0400000700000000000000,Microsoft SideWinder,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows, +030000005e0400000e00000000000000,Microsoft SideWinder Freestyle Pro,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,start:b8,x:b3,y:b4,platform:Windows, +030000005e0400002700000000000000,Microsoft SideWinder Plug and Play,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,lefttrigger:b4,righttrigger:b5,x:b2,y:b3,platform:Windows, +03000000280d00000202000000000000,Miller Lite Cantroller,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,start:b5,x:b2,y:b3,platform:Windows, +03000000ad1b000023f0000000000000,MLG,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a6,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +03000000ad1b00003ef0000000000000,MLG Fightstick TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b8,rightshoulder:b5,righttrigger:b9,start:b7,x:b2,y:b3,platform:Windows, +03000000380700006382000000000000,MLG PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000004523000015e0000000000000,Mobapad Chitu HD,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000491900000904000000000000,Mobapad Chitu HD,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000ffff00000000000000000000,Mocute M053,a:b3,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b11,leftstick:b7,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b6,righttrigger:b4,rightx:a3,righty:a4,start:b8,x:b1,y:b0,platform:Windows, +03000000d6200000e589000000000000,Moga 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Windows, +03000000d62000007162000000000000,Moga Pro,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Windows, +03000000d6200000ad0d000000000000,Moga Pro,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000c62400002a89000000000000,Moga XP5A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c62400002b89000000000000,Moga XP5A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c62400001a89000000000000,Moga XP5X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000c62400001b89000000000000,Moga XP5X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000250900006688000000000000,MP-8866 Super Dual Box,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000091200004488000000000000,MUSIA PlayStation 2 Input Display,a:b0,b:b2,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,leftstick:b6,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b9,rightstick:b7,righttrigger:b11,rightx:a2,righty:a3,start:b5,x:b1,y:b3,platform:Windows, +03000000f70600000100000000000000,N64 Adaptoid,+rightx:b2,+righty:b1,-rightx:b4,-righty:b5,a:b0,b:b3,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b7,start:b8,platform:Windows, +03000000c9110000f055000000000000,Nacon GC100XF,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000c21100000791000000000000,Nacon GC101 1.03,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +030000006b140000010c000000000000,Nacon GC400ES,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000006b1400001106000000000000,Nacon Revolution 3 PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +0300000085320000170d000000000000,Nacon Revolution 5 Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +0300000085320000190d000000000000,Nacon Revolution 5 Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000006b140000100d000000000000,Nacon Revolution Infinity PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000006b140000080d000000000000,Nacon Revolution Unlimited Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000bd12000001c0000000000000,Nebular,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a5,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000eb0300000000000000000000,NeGcon Adapter,a:a2,b:b13,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,lefttrigger:a4,leftx:a1,righttrigger:b11,start:b3,x:a3,y:b12,platform:Windows, +0300000038070000efbe000000000000,NEO SE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +0300000092120000474e000000000000,NeoGeo X Arcade Stick,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,x:b3,y:b2,platform:Windows, +03000000921200004b46000000000000,NES Adapter,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b11,platform:Windows, +03000000000f00000100000000000000,NES Controller,a:b1,b:b0,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b3,platform:Windows, +03000000921200004346000000000000,NES Controller,a:b0,b:b1,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b3,platform:Windows, +03000000790000004518000000000000,NEXiLUX GameCube Adapter,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Windows, +030000001008000001e5000000000000,NEXT SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,righttrigger:b6,start:b9,x:b3,y:b0,platform:Windows, +03000000050b00000045000000000000,Nexus,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b10,x:b2,y:b3,platform:Windows, +03000000152000000182000000000000,NGDS,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b3,y:b0,platform:Windows, +03000000ec110000e1a7000000000000,Nintendo Switch,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000007e0500006920000000000000,Nintendo Switch 2 Pro Controller,a:b0,b:b1,back:b14,dpdown:b8,dpleft:b10,dpright:b9,dpup:b11,guide:b16,leftshoulder:b12,leftstick:b15,lefttrigger:b13,leftx:a0,lefty:a1~,misc1:b17,misc2:b20,paddle1:b18,paddle2:b19,rightshoulder:b4,rightstick:b7,righttrigger:b5,rightx:a2,righty:a3~,start:b6,x:b2,y:b3,platform:Windows, +030000007e0500000620000000000000,Nintendo Switch Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b13,leftshoulder:b4,leftstick:b10,rightshoulder:b5,start:b8,x:b2,y:b3,platform:Windows, +030000007e0500000720000000000000,Nintendo Switch Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Windows, +030000007e0500000920000000000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000007e0500007320000000000000,NSO GameCube Controller,a:b1,b:b3,dpdown:b8,dpleft:b10,dpright:b9,dpup:b11,guide:b16,leftshoulder:b13,lefttrigger:b12,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b4,rightx:a2,righty:a3~,start:b6,x:b0,y:b2,platform:Windows, +030000007e0500001920000000000000,NSO N64 Controller,+rightx:b8,+righty:b2,-rightx:b3,-righty:b7,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,righttrigger:b10,start:b9,platform:Windows, +030000007e0500001720000000000000,NSO SNES Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b15,start:b9,x:b2,y:b3,platform:Windows, +03000000550900001472000000000000,NVIDIA Controller,a:b11,b:b10,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b7,leftstick:b5,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b4,righttrigger:a5,rightx:a3,righty:a6,start:b3,x:b9,y:b8,platform:Windows, +03000000550900001072000000000000,NVIDIA Shield,a:b9,b:b8,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b3,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b2,righttrigger:a4,rightx:a2,righty:a5,start:b0,x:b7,y:b6,platform:Windows, +030000005509000000b4000000000000,NVIDIA Virtual,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000004b120000014d000000000000,Nyko Airflo EX,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Windows, +03000000d62000001d57000000000000,Nyko Airflo PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000120c00000288000000000000,Nyko Airflo Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +03000000791d00000900000000000000,Nyko Playpad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000782300000a10000000000000,Onlive Controller,a:b15,b:b14,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b11,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b13,y:b12,platform:Windows, +030000000d0f00000401000000000000,Onyx,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000008916000001fd000000000000,Onza CE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a3,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000008916000000fd000000000000,Onza TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000d62000006d57000000000000,OPP PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006b14000001a1000000000000,Orange Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Windows, +0300000009120000072f000000000000,OrangeFox86 DreamPicoPort,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:-a2,leftx:a0,lefty:a1,righttrigger:-a5,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000362800000100000000000000,OUYA Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b2,platform:Windows, +03000000120c0000f60e000000000000,P4 Gamepad,a:b1,b:b2,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b5,lefttrigger:b7,rightshoulder:b4,righttrigger:b6,start:b9,x:b0,y:b3,platform:Windows, +03000000790000002201000000000000,PC Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +030000006f0e00008501000000000000,PDP Fightpad Pro GameCube Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000006f0e00000901000000000000,PDP PS3 Versus Fighting,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00008901000000000000,PDP Realmz Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000008f0e00004100000000000000,PlaySega,a:b1,b:b0,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,start:b8,x:b4,y:b3,platform:Windows, +03000000d620000020a7000000000000,PowerA Advantage Nintendo Switch 2 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,misc2:b16,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000d620000011a7000000000000,PowerA Core Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000dd62000015a7000000000000,PowerA Fusion Nintendo Switch Arcade Stick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000d620000012a7000000000000,PowerA Fusion Nintendo Switch Fight Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000dd62000016a7000000000000,PowerA Fusion Pro Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000d620000013a7000000000000,PowerA Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000d62000002640000000000000,PowerA OPS Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000d62000003340000000000000,PowerA OPS Pro Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000d62000006dca000000000000,PowerA Pro Ex,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +0300000062060000d570000000000000,PowerA PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000d620000014a7000000000000,PowerA Spectra Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006d04000084ca000000000000,Precision,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +03000000d62000009557000000000000,Pro Elite PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000c62400001a53000000000000,Pro Ex Mini,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000d62000009f31000000000000,Pro Ex mini PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000d6200000c757000000000000,Pro Ex mini PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000120c0000110e000000000000,Pro5,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000100800000100000000000000,PS1 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +030000008f0e00007530000000000000,PS1 Controller,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b1,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000100800000300000000000000,PS2 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a4,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000250900000088000000000000,PS2 Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000250900006888000000000000,PS2 Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b6,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000250900008888000000000000,PS2 Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +030000006b1400000303000000000000,PS2 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000009d0d00001330000000000000,PS2 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000120a00000100000000000000,PS3 Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000120c00001307000000000000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000120c00001cf1000000000000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000120c0000f90e000000000000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000250900000118000000000000,PS3 Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000250900000500000000000000,PS3 Controller,a:b2,b:b1,back:b9,dpdown:h0.8,dpleft:h0.4,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b0,y:b3,platform:Windows, +030000004c0500006802000000000000,PS3 Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b10,lefttrigger:a3~,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:a4~,rightx:a2,righty:a5,start:b8,x:b3,y:b0,platform:Windows, +030000004f1f00000800000000000000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +03000000632500007505000000000000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000888800000803000000000000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b9,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b3,y:b0,platform:Windows, +03000000888800000804000000000000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Windows, +030000008f0e00000300000000000000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b3,y:b0,platform:Windows, +030000008f0e00001431000000000000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000ba2200002010000000000000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a5,righty:a2,start:b9,x:b3,y:b2,platform:Windows, +03000000120c00000807000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000111e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000121e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000130e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000150e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000180e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000181e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000191e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c00001e0e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000a957000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000aa57000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000f21c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000f31c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000f41c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000f51c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120c0000f70e000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000120e0000120c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000160e0000120c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000001a1e0000120c000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000004c050000a00b000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000004c050000c405000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000004c050000cc09000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000004c0500005f0e000000000000,PS5 Access Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000004c050000e60c000000000000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000004c050000f20d000000000000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000830500005020000000000000,PSX,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b2,y:b3,platform:Windows, +03000000300f00000111000000000000,Qanba 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000300f00000211000000000000,Qanba 2P,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000300f00000011000000000000,Qanba Arcade Stick 1008,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b10,x:b0,y:b3,platform:Windows, +03000000300f00001611000000000000,Qanba Arcade Stick 4018,a:b1,b:b2,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b8,x:b0,y:b3,platform:Windows, +03000000222c00000025000000000000,Qanba Dragon Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000222c00000020000000000000,Qanba Drone Arcade Stick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,rightshoulder:b5,righttrigger:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000300f00001211000000000000,Qanba Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000300f00001210000000000000,Qanba Joystick Plus,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Windows, +03000000341a00000104000000000000,Qanba Joystick Q4RAF,a:b5,b:b6,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b0,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b3,righttrigger:b7,start:b9,x:b1,y:b2,platform:Windows, +03000000222c00000223000000000000,Qanba Obsidian Arcade Stick PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000222c00000023000000000000,Qanba Obsidian Arcade Stick PS4,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000008a2400006682000000000000,R1 Mobile Controller,a:b3,b:b1,back:b7,leftx:a0,lefty:a1,start:b6,x:b4,y:b0,platform:Windows, +03000000086700006626000000000000,RadioShack,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b3,y:b0,platform:Windows, +03000000ff1100004733000000000000,Ramox FPS Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b0,platform:Windows, +030000009b2800002300000000000000,Raphnet 3DO Adapter,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b2,start:b3,platform:Windows, +030000009b2800006900000000000000,Raphnet 3DO Adapter,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b2,start:b3,platform:Windows, +030000009b2800000800000000000000,Raphnet Dreamcast Adapter,a:b2,b:b1,dpdown:b5,dpleft:b6,dpright:b7,dpup:b4,lefttrigger:a2,leftx:a0,righttrigger:a3,righty:a1,start:b3,x:b10,y:b9,platform:Windows, +030000009b280000d000000000000000,Raphnet Dreamcast Adapter,a:b1,b:b0,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,lefttrigger:+a5,leftx:a0,lefty:a1,righttrigger:+a2,start:b3,x:b5,y:b4,platform:Windows, +030000009b2800006200000000000000,Raphnet GameCube Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Windows, +030000009b2800003200000000000000,Raphnet GC and N64 Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:+a5,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:+a2,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Windows, +030000009b2800006000000000000000,Raphnet GC and N64 Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:+a5,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:+a2,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Windows, +030000009b2800001800000000000000,Raphnet Jaguar Adapter,a:b2,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b0,righttrigger:b10,start:b3,x:b11,y:b12,platform:Windows, +030000009b2800003c00000000000000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Windows, +030000009b2800006100000000000000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Windows, +030000009b2800006300000000000000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Windows, +030000009b2800006400000000000000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Windows, +030000009b2800000200000000000000,Raphnet NES Adapter,a:b7,b:b6,back:b5,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,start:b4,platform:Windows, +030000009b2800004400000000000000,Raphnet PlayStation Adapter,a:b1,b:b2,back:b5,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b9,rightx:a3,righty:a4,start:b4,x:b0,y:b3,platform:Windows, +030000009b2800004300000000000000,Raphnet Saturn,a:b0,b:b1,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Windows, +030000009b2800000500000000000000,Raphnet Saturn Adapter 2.0,a:b1,b:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,start:b9,x:b0,y:b3,platform:Windows, +030000009b2800000300000000000000,Raphnet SNES Adapter,a:b0,b:b4,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Windows, +030000009b2800002600000000000000,Raphnet SNES Adapter,a:b1,b:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Windows, +030000009b2800002e00000000000000,Raphnet SNES Adapter,a:b1,b:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Windows, +030000009b2800002f00000000000000,Raphnet SNES Adapter,a:b1,b:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Windows, +030000009b2800005600000000000000,Raphnet SNES Adapter,a:b1,b:b4,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Windows, +030000009b2800005700000000000000,Raphnet SNES Adapter,a:b1,b:b4,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Windows, +030000009b2800001e00000000000000,Raphnet Vectrex Adapter,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a1,lefty:a2,x:b2,y:b3,platform:Windows, +030000009b2800002b00000000000000,Raphnet Wii Classic Adapter,a:b1,b:b4,back:b2,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,guide:b10,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a4,start:b3,x:b0,y:b5,platform:Windows, +030000009b2800002c00000000000000,Raphnet Wii Classic Adapter,a:b1,b:b4,back:b2,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,guide:b10,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a4,start:b3,x:b0,y:b5,platform:Windows, +030000009b2800008000000000000000,Raphnet Wii Classic Adapter,a:b1,b:b4,back:b2,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,guide:b10,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a4,start:b3,x:b0,y:b5,platform:Windows, +03000000790000008f18000000000000,Rapoo Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b3,y:b0,platform:Windows, +0300000032150000a602000000000000,Razer Huntsman V3 Pro,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b12,dpright:b13,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000321500000003000000000000,Razer Hydra,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000f8270000bf0b000000000000,Razer Kishi,a:b6,b:b7,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b18,leftshoulder:b12,leftstick:b19,lefttrigger:b14,leftx:a0,lefty:a1,rightshoulder:b13,rightstick:b20,righttrigger:b15,rightx:a3,righty:a4,start:b17,x:b9,y:b10,platform:Windows, +03000000321500000204000000000000,Razer Panthera PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000321500000104000000000000,Razer Panthera PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000321500000010000000000000,Razer Raiju,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000321500000507000000000000,Razer Raiju Mobile,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000321500000707000000000000,Razer Raiju Mobile,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000321500000710000000000000,Razer Raiju TE,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000321500000a10000000000000,Razer Raiju TE,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000321500000410000000000000,Razer Raiju UE,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000321500000910000000000000,Razer Raiju UE,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000321500000011000000000000,Razer Raion PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000321500000009000000000000,Razer Serval,+lefty:+a2,-lefty:-a1,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,leftx:a0,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000921200004547000000000000,Retro Bit Sega Genesis Adapter,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,start:b6,x:b3,y:b4,platform:Windows, +03000000790000001100000000000000,Retro Controller,a:b1,b:b2,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,leftshoulder:b6,lefttrigger:b7,rightshoulder:b4,righttrigger:b5,start:b9,x:b0,y:b3,platform:Windows, +03000000830500006020000000000000,Retro Controller,a:b0,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b5,rightshoulder:b8,righttrigger:b9,start:b7,x:b2,y:b3,platform:Windows, +03000000632500007805000000000000,Retro Fighters D6,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b10,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000790000001600000000000000,Retro Fighters D6,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +0300000003040000c197000000000000,Retrode Adapter,a:b0,b:b4,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Windows, +03000000bd12000013d0000000000000,Retrolink Sega Saturn Classic Controller,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b5,lefttrigger:b6,rightshoulder:b2,righttrigger:b7,start:b8,x:b3,y:b4,platform:Windows, +03000000bd12000015d0000000000000,Retrolink SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Windows, +03000000341200000400000000000000,RetroUSB N64 RetroPort,+rightx:b8,+righty:b10,-rightx:b9,-righty:b11,a:b7,b:b6,dpdown:b2,dpleft:b1,dpright:b0,dpup:b3,leftshoulder:b13,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b12,start:b4,platform:Windows, +0300000000f000000300000000000000,RetroUSB RetroPad,a:b1,b:b5,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Windows, +0300000000f00000f100000000000000,RetroUSB Super RetroPort,a:b1,b:b5,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Windows, +03000000830500000960000000000000,Revenger,a:b0,b:b1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b3,x:b4,y:b5,platform:Windows, +030000006b140000010d000000000000,Revolution Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000006b140000020d000000000000,Revolution Pro Controller 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000006b140000130d000000000000,Revolution Pro Controller 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001f01000000000000,Rock Candy,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006f0e00004601000000000000,Rock Candy,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000c6240000fefa000000000000,Rock Candy Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006f0e00008701000000000000,Rock Candy Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00001e01000000000000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00002801000000000000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00002f01000000000000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000830500000052000000000000,Rockfire CosmoVoyager,a:b0,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b10,leftshoulder:b6,lefttrigger:b7,misc1:b11,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows, +030000008305000000a0000000000000,Rockfire MaxFire G08XU,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,x:b2,y:b3,platform:Windows, +03000000830500007030000000000000,Rockfire Space Ranger,a:b0,b:b1,back:b5,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b9,righttrigger:b8,start:b2,x:b3,y:b4,platform:Windows, +03000000050b0000e318000000000000,ROG Chakram,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows, +03000000050b0000e518000000000000,ROG Chakram,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows, +03000000050b00005819000000000000,ROG Chakram Core,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows, +03000000050b0000181a000000000000,ROG Chakram X,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows, +03000000050b00001a1a000000000000,ROG Chakram X,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows, +03000000050b00001c1a000000000000,ROG Chakram X,a:b1,b:b0,leftx:a0,lefty:a1,x:b2,y:b3,platform:Windows, +030000004f04000001d0000000000000,Rumble Force,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows, +030000000d0f0000ad00000000000000,RX Gamepad,a:b0,b:b4,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b3,rightshoulder:b6,start:b9,x:b2,y:b1,platform:Windows, +030000008916000000fe000000000000,Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000c6240000045d000000000000,Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006f0e00001311000000000000,Saffun Controller,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b0,platform:Windows, +03000000a30600001af5000000000000,Saitek Cyborg,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000a306000023f6000000000000,Saitek Cyborg,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000300f00001201000000000000,Saitek Dual Analog,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows, +03000000a30600000701000000000000,Saitek P220,a:b2,b:b3,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b4,righttrigger:b5,x:b0,y:b1,platform:Windows, +03000000a30600000cff000000000000,Saitek P2500 Force Rumble,a:b2,b:b3,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b0,y:b1,platform:Windows, +03000000a30600000d5f000000000000,Saitek P2600,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a3,righty:a2,start:b8,x:b0,y:b3,platform:Windows, +03000000a30600000dff000000000000,Saitek P2600,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a5,righty:a2,start:b8,x:b0,y:b3,platform:Windows, +03000000a30600000c04000000000000,Saitek P2900,a:b1,b:b2,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Windows, +03000000a306000018f5000000000000,Saitek P3200,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000300f00001001000000000000,Saitek P480 Rumble,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows, +03000000a30600000901000000000000,Saitek P880,a:b2,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b8,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b5,rightx:a3,righty:a2,x:b0,y:b1,platform:Windows, +03000000a30600000b04000000000000,Saitek P990,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Windows, +03000000a30600002106000000000000,Saitek PS1000 PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000a306000020f6000000000000,Saitek PS2700 PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000300f00001101000000000000,Saitek Rumble,a:b2,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows, +03000000e804000000a0000000000000,Samsung EIGP20,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000bd12000010d1000000000000,Sanwa 4Button,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,x:b2,y:b3,platform:Windows, +03000000c01100000252000000000000,Sanwa Easy Grip,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows, +03000000c01100004350000000000000,Sanwa Micro Grip P3,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,x:b3,y:b2,platform:Windows, +03000000411200004550000000000000,Sanwa Micro Grip Pro,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a1,righty:a2,start:b9,x:b1,y:b3,platform:Windows, +03000000c01100004150000000000000,Sanwa Micro Grip Pro,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows, +03000000c01100004450000000000000,Sanwa Online Grip,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b8,rightstick:b11,righttrigger:b9,rightx:a3,righty:a2,start:b14,x:b3,y:b4,platform:Windows, +03000000730700000401000000000000,Sanwa PlayOnline Mobile,a:b0,b:b1,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b3,platform:Windows, +030000009d0d00001130000000000000,Sanwa PlayStation Adapter,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000830500006120000000000000,Sanwa Smart Grip II,a:b0,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,x:b1,y:b3,platform:Windows, +03000000630600000201000000000000,Sanwa Virtua Grip,+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b2,b:b3,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,x:b0,y:b1,platform:Windows, +03000000c01100000051000000000000,Satechi Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +030000004f04000028b3000000000000,Score A,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000952e00002577000000000000,Scuf PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000a30c00002500000000000000,Sega Genesis Mini 3B Controller,a:b2,b:b1,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,righttrigger:b5,start:b9,platform:Windows, +03000000a30c00002400000000000000,Sega Mega Drive Mini 6B Controller,a:b2,b:b1,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,leftshoulder:b6,lefttrigger:b7,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Windows, +03000000d804000086e6000000000000,Sega Multi Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:a2,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Windows, +0300000000050000289b000000000000,Sega Saturn Adapter,a:b1,b:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,start:b9,x:b0,y:b3,platform:Windows, +0300000000f000000800000000000000,Sega Saturn Controller,a:b1,b:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,rightshoulder:b7,righttrigger:b3,start:b0,x:b5,y:b6,platform:Windows, +03000000730700000601000000000000,Sega Saturn Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Windows, +03000000b40400000a01000000000000,Sega Saturn Controller,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Windows, +030000003b07000004a1000000000000,SFX,a:b0,b:b2,back:b7,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b9,righttrigger:b5,start:b8,x:b1,y:b3,platform:Windows, +03000000632500002705000000000000,ShanWan Gamepad,+lefty:+a2,-lefty:-a1,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,rightshoulder:b7,rightstick:b14,righttrigger:b9,start:b11,x:b3,y:b4,platform:Windows, +03000000f82100001900000000000000,Shogun Bros Chameleon X1,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000120c00001c1e000000000000,SnakeByte 4S PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000140300000918000000000000,SNES Controller,a:b0,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Windows, +0300000081170000960a000000000000,SNES Controller,a:b4,b:b0,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b5,y:b1,platform:Windows, +03000000811700009d0a000000000000,SNES Controller,a:b0,b:b4,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Windows, +030000008b2800000300000000000000,SNES Controller,a:b0,b:b4,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Windows, +03000000921200004653000000000000,SNES Controller,a:b0,b:b4,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Windows, +030000008f0e00000910000000000000,Sony DualShock 2,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a2,start:b11,x:b3,y:b0,platform:Windows, +03000000317300000100000000000000,Sony DualShock 3,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000666600006706000000000000,Sony PlayStation Adapter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a2,righty:a3,start:b11,x:b3,y:b0,platform:Windows, +03000000d9040000160f000000000000,Sony PlayStation Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000e30500009605000000000000,Sony PlayStation Adapter,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000fe1400002a23000000000000,Sony PlayStation Adapter,a:b0,b:b1,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,x:b2,y:b3,platform:Windows, +030000004c050000da0c000000000000,Sony PlayStation Classic Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Windows, +03000000632500002306000000000000,Sony PlayStation Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Windows, +03000000f0250000c183000000000000,Sony PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000ff000000cb01000000000000,Sony PlayStation Portable,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Windows, +030000004c0500003713000000000000,Sony PlayStation Vita,a:b1,b:b2,back:b8,dpdown:b13,dpleft:b15,dpright:b14,dpup:b12,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Windows, +03000000341a00000208000000000000,Speedlink 6555,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:-a4,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a4,rightx:a3,righty:a2,start:b7,x:b2,y:b3,platform:Windows, +03000000341a00000908000000000000,Speedlink 6566,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000380700001722000000000000,Speedlink Competition Pro,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,x:b2,y:b3,platform:Windows, +030000008f0e00000800000000000000,Speedlink Strike FX,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000c01100000591000000000000,Speedlink Torid,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000de280000fc11000000000000,Steam Virtual Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000de280000ff11000000000000,Steam Virtual Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000120c0000160e000000000000,Steel Play Metaltech PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +03000000110100001914000000000000,SteelSeries,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftstick:b13,lefttrigger:b6,leftx:a0,lefty:a1,rightstick:b14,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000381000001214000000000000,SteelSeries Free,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Windows, +03000000381000004114000000000000,SteelSeries Nimbus Cloud,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b5,paddle2:b2,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000110100003114000000000000,SteelSeries Stratus Duo,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000381000003014000000000000,SteelSeries Stratus Duo,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000381000003114000000000000,SteelSeries Stratus Duo,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000381000001814000000000000,SteelSeries Stratus XL,a:b0,b:b1,back:b18,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,guide:b19,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b2,y:b3,platform:Windows, +03000000380700003847000000000000,Street Fighter Fightstick TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b11,start:b7,x:b2,y:b3,platform:Windows, +030000001f08000001e4000000000000,Super Famicom Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Windows, +03000000790000000418000000000000,Super Famicom Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b33,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Windows, +03000000341200001300000000000000,Super Racer,a:b2,b:b3,back:b8,leftshoulder:b5,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b4,righttrigger:b7,x:b0,y:b1,platform:Windows, +03000000457500002211000000000000,Szmy Power PC Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +030000004f0400000ab1000000000000,T16000M,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b4,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,start:b10,x:b2,y:b3,platform:Windows, +030000000d0f00007b00000000000000,TAC GEAR,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000e40a00000307000000000000,Taito Egret II Mini Control Panel,a:b4,b:b2,back:b6,guide:b9,leftx:a0,lefty:a1,rightshoulder:b0,righttrigger:b1,start:b7,x:b8,y:b3,platform:Windows, +03000000e40a00000207000000000000,Taito Egret II Mini Controller,a:b4,b:b2,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b9,rightshoulder:b0,righttrigger:b1,start:b7,x:b8,y:b3,platform:Windows, +03000000d814000001a0000000000000,TE Kitty,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000fa1900000706000000000000,Team 5,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000b50700001203000000000000,Techmobility X6-38V,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Windows, +03000000ba2200000701000000000000,Technology Innovation PS2 Adapter,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b2,platform:Windows, +03000000c61100001000000000000000,Tencent Xianyou Gamepad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,x:b3,y:b4,platform:Windows, +03000000790000001c18000000000000,TGZ Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000790000002601000000000000,TGZ Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b3,y:b0,platform:Windows, +03000000591c00002400000000000000,THEC64 Joystick,a:b0,b:b1,back:b6,leftshoulder:b4,leftx:a0,lefty:a4,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Windows, +03000000591c00002600000000000000,THEGamepad,a:b2,b:b1,back:b6,leftx:a0,lefty:a1,start:b7,x:b3,y:b0,platform:Windows, +030000004f04000015b3000000000000,Thrustmaster Dual Analog 4,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows, +030000004f04000023b3000000000000,Thrustmaster Dual Trigger PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000004f0400000ed0000000000000,Thrustmaster eSwap Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000004f04000000b3000000000000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b11,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b1,y:b3,platform:Windows, +030000004f04000004b3000000000000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Windows, +030000004f04000003d0000000000000,Thrustmaster Run N Drive PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:-a3,leftx:a0,lefty:a1,paddle1:b6,paddle2:b7,rightshoulder:b5,rightstick:b11,righttrigger:-a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000004f04000008d0000000000000,Thrustmaster Run N Drive PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3~,leftx:a0,lefty:a1,paddle1:b7,paddle2:b6,rightshoulder:b5,rightstick:b11,righttrigger:a4~,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000004f04000009d0000000000000,Thrustmaster Run N Drive PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000011000000200000000000000,ThundeRobot G30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +030000006d04000088ca000000000000,Thunderpad,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +03000000666600000288000000000000,TigerGame PlayStation Adapter,a:b2,b:b1,back:b9,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +03000000666600000488000000000000,TigerGame PlayStation Adapter,a:b2,b:b1,back:b9,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +030000004f04000007d0000000000000,TMini,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000571d00002100000000000000,Tomee NES Adapter,a:b1,b:b0,back:b2,dpdown:+a4,dpleft:-a0,dpright:+a0,dpup:-a4,start:b3,platform:Windows, +03000000571d00002000000000000000,Tomee SNES Adapter,a:b0,b:b1,back:b6,dpdown:+a4,dpleft:-a0,dpright:+a0,dpup:-a4,leftshoulder:b4,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Windows, +03000000d62000006000000000000000,Tournament PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000c01100000055000000000000,Tronsmart,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000d60600002a00000000000000,Trust 850F,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,x:b3,y:b4,platform:Windows, +030000005f140000c501000000000000,Trust Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000b80500000210000000000000,Trust Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +030000005f1400002a01000000000000,Trust Predator GM1200,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,x:b3,y:b4,platform:Windows, +03000000580400000a10000000000000,Trust Sight Fighter,a:b0,b:b1,back:b5,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,start:b2,x:b3,y:b4,platform:Windows, +030000004f04000087b6000000000000,TWCS Throttle,dpdown:b8,dpleft:b9,dpright:b7,dpup:b6,leftstick:b5,lefttrigger:-a5,leftx:a0,lefty:a1,righttrigger:+a5,platform:Windows, +03000000411200000450000000000000,Twin Shock,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a4,start:b11,x:b3,y:b0,platform:Windows, +03000000d90400000200000000000000,TwinShock PS2 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000151900005678000000000000,Uniplay U6,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000101c0000171c000000000000,uRage Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +030000000b0400003065000000000000,USB Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b3,y:b0,platform:Windows, +03000000242f00006e00000000000000,USB Controller,a:b1,b:b4,back:b10,leftshoulder:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b9,righttrigger:b7,rightx:a2,righty:a5,start:b11,x:b0,y:b3,platform:Windows, +03000000300f00000701000000000000,USB Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000341a00002308000000000000,USB Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000666600000188000000000000,USB Controller,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Windows, +030000006b1400000203000000000000,USB Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000790000000a00000000000000,USB Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b3,y:b0,platform:Windows, +03000000b404000081c6000000000000,USB Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b3,y:b0,platform:Windows, +03000000b50700001503000000000000,USB Controller,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a5,righty:a2,start:b9,x:b0,y:b1,platform:Windows, +03000000bd12000012d0000000000000,USB Controller,a:b0,b:b1,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Windows, +03000000ff1100004133000000000000,USB Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a4,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000632500002305000000000000,USB Vibration Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Windows, +03000000882800000305000000000000,V5 Game Pad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,x:b2,y:b3,platform:Windows, +03000000790000001a18000000000000,Venom PS4 Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Windows, +03000000790000001b18000000000000,Venom PS4 Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000006f0e00000302000000000000,Victrix PS4 Pro Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +030000006f0e00000702000000000000,Victrix PS4 Pro Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,touchpad:b13,x:b0,y:b3,platform:Windows, +0300000034120000adbe000000000000,vJoy Device,a:b0,b:b1,back:b15,dpdown:b6,dpleft:b7,dpright:b8,dpup:b5,guide:b16,leftshoulder:b9,leftstick:b13,lefttrigger:b11,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b14,righttrigger:b12,rightx:a3,righty:a4,start:b4,x:b2,y:b3,platform:Windows, +03000000d23800001010000000000000,Void Genesis,a:b0,b:b1,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b2,leftstick:b9,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b18,misc2:b21,misc3:b20,paddle1:b22,paddle2:b15,paddle3:b23,paddle4:b17,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a5,start:b19,x:b3,y:b4,platform:Windows, +03000000d23800001210000000000000,Void Genesis,a:b0,b:b1,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b2,leftstick:b9,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b18,misc2:b21,misc3:b20,paddle1:b22,paddle2:b15,paddle3:b23,paddle4:b17,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a5,start:b19,x:b3,y:b4,platform:Windows, +03000000120c0000ab57000000000000,Warrior Joypad JS083,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +030000007e0500003003000000000000,Wii U Pro,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,leftshoulder:b6,leftstick:b11,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b12,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Windows, +0300000032150000030a000000000000,Wildcat,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +0300000032150000140a000000000000,Wolverine,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000002e160000efbe000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b10,rightshoulder:b5,righttrigger:b11,start:b7,x:b2,y:b3,platform:Windows, +03000000380700001647000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000380700002045000000000000,Xbox 360 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, +03000000380700002644000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a2,righty:a5,start:b8,x:b2,y:b3,platform:Windows, +03000000380700002647000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000003807000026b7000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000380700003647000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a7,righty:a5,start:b7,x:b2,y:b3,platform:Windows, +030000005e0400001907000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e0400008e02000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e0400009102000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000ad1b000000fd000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000ad1b000001fd000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000ad1b000016f0000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000ad1b00008e02000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000c62400000053000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000c6240000fdfa000000000000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000380700002847000000000000,Xbox 360 Fightpad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000a102000000000000,Xbox 360 Receiver,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e0400000a0b000000000000,Xbox Adaptive Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000120c00000a88000000000000,Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a2,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +03000000120c00001088000000000000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2~,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5~,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000002a0600002000000000000000,Xbox Controller,a:b0,b:b1,back:b13,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,leftshoulder:b5,leftstick:b14,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b15,righttrigger:b7,rightx:a2,righty:a5,start:b12,x:b2,y:b3,platform:Windows, +03000000380700001645000000000000,Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +03000000380700002645000000000000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000380700003645000000000000,Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +03000000380700008645000000000000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e0400000202000000000000,Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b11,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +030000005e0400008502000000000000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e0400008702000000000000,Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b9,righttrigger:b7,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +030000005e0400008902000000000000,Xbox Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b10,leftstick:b8,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b9,righttrigger:b4,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Windows, +030000005e0400000c0b000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000d102000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000dd02000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000e002000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000e302000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000ea02000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:-a2,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000fd02000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000ff02000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006f0e0000a802000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000006f0e0000c802000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000c62400003a54000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000005e040000130b000000000000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +03000000341a00000608000000000000,Xeox,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +03000000450c00002043000000000000,Xeox SL6556BK,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Windows, +030000006f0e00000300000000000000,XGear,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a5,righty:a2,start:b9,x:b3,y:b0,platform:Windows, +03000000e0ff00000201000000000000,Xiaomi Black Shark (L),back:b0,dpdown:b11,dpleft:b9,dpright:b10,dpup:b8,leftshoulder:b5,lefttrigger:b7,leftx:a0,lefty:a1,platform:Windows, +03000000172700004431000000000000,Xiaomi Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b20,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a7,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Windows, +03000000172700003350000000000000,Xiaomi XMGP01YM,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000bc2000005060000000000000,Xiaomi XMGP01YM,+lefty:+a2,+righty:+a5,-lefty:-a1,-righty:-a4,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,start:b11,x:b3,y:b4,platform:Windows, +03000000c0160000e105000000000000,XinMo Dual Arcade,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Windows, +030000007d0400000340000000000000,Xterminator Digital Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:-a4,lefttrigger:+a4,leftx:a0,lefty:a1,paddle1:b7,paddle2:b6,rightshoulder:b5,rightstick:b9,righttrigger:b2,rightx:a3,righty:a5,start:b8,x:b3,y:b4,platform:Windows, +030000002c3600000100000000000000,Yawman Arrow,+rightx:h0.2,+righty:h0.4,-rightx:h0.8,-righty:h0.1,a:b4,b:b5,back:b6,dpdown:b15,dpleft:b14,dpright:b16,dpup:b13,leftshoulder:b10,leftstick:b0,lefttrigger:-a4,leftx:a0,lefty:a1,paddle1:b11,paddle2:b12,rightshoulder:b8,rightstick:b9,righttrigger:+a4,start:b3,x:b1,y:b2,platform:Windows, +03000000790000004f18000000000000,ZDT Android Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Windows, +03000000073500000400000000000000,Zenaim Arcade Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Windows, +03000000120c00000500000000000000,Zeroplus Adapter,a:b2,b:b1,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b0,righttrigger:b5,rightx:a3,righty:a2,start:b8,x:b3,y:b0,platform:Windows, +03000000120c0000101e000000000000,Zeroplus P4 Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Windows, + +# Mac OS X +030000008f0e00000300000009010000,2 In 1 Joystick,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000c82d00001930000000000000,8BitDo 64,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,platform:Mac OS X, +03000000c82d00001930000000020000,8BitDo 64,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,platform:Mac OS X, +03000000c82d00001930000001000000,8BitDo 64,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,platform:Mac OS X, +03000000c82d00000031000001000000,8BitDo Adapter,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00000531000000020000,8BitDo Adapter 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00000951000000010000,8BitDo Dogbone,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b11,platform:Mac OS X, +03000000c82d00000090000001000000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00001038000000010000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00006a28000000010000,8BitDo GameCube,a:b0,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b9,paddle2:b8,rightshoulder:b10,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b1,y:b4,platform:Mac OS X, +03000000c82d00001251000000010000,8BitDo Lite 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00001251000000020000,8BitDo Lite 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00001151000000010000,8BitDo Lite SE,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00001151000000020000,8BitDo Lite SE,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000a30c00002400000006020000,8BitDo M30,a:b2,b:b1,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,guide:b9,leftshoulder:b6,lefttrigger:b5,rightshoulder:b4,righttrigger:b7,start:b8,x:b3,y:b0,platform:Mac OS X, +03000000c82d00000151000000010000,8BitDo M30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00000650000001000000,8BitDo M30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00005106000000010000,8BitDo M30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b2,leftshoulder:b6,lefttrigger:a5,rightshoulder:b7,righttrigger:a4,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00002090000000010000,8BitDo Micro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000451000000010000,8BitDo N30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b11,platform:Mac OS X, +03000000c82d00001590000001000000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00006528000000010000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00006928000000010000,8BitDo N64,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,platform:Mac OS X, +03000000c82d00002590000000010000,8BitDo NEOGEO,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00002590000001000000,8BitDo NEOGEO,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00002690000000010000,8BitDo NEOGEO,+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b10,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X, +030000003512000012ab000001000000,8BitDo NES30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d000012ab000001000000,8BitDo NES30,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00002028000000010000,8BitDo NES30,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000022000000090000001000000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000203800000900000000010000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000190000001000000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000751000000010000,8BitDo P30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00000851000000010000,8BitDo P30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00000660000000010000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000660000000020000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000960000000000000,8BitDo Pro 3,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b17,paddle2:b16,paddle3:b2,paddle4:b5,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000131000001000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000231000001000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000331000001000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000431000001000000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00002867000000010000,8BitDo S30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b3,y:b4,platform:Mac OS X, +03000000c82d00003028000000010000,8Bitdo SFC30 Gamepad,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000102800000900000000000000,8BitDo SFC30 Joystick,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000351000000010000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00001290000001000000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00004028000000010000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000160000001000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000161000000010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000260000001000000,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00000261000000010000,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00001130000000020000,8BitDo Ultimate,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b24,paddle2:b25,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00001230000000010000,8BitDo Ultimate,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b2,paddle2:b5,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00001330000000020000,8BitDo Ultimate,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b23,paddle2:b19,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00001330000001000000,8BitDo Ultimate,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b23,paddle2:b19,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00001b30000001000000,8BitDo Ultimate 2C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b5,paddle2:b2,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00001d30000001000000,8BitDo Ultimate 2C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b5,paddle2:b2,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00001530000001000000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00001630000001000000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00001730000001000000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000a00500003232000008010000,8BitDo Zero,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000a00500003232000009010000,8BitDo Zero,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c82d00001890000001000000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000c82d00003032000000010000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a31,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000491900001904000001010000,Amazon Luna Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b9,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Mac OS X, +03000000710100001904000000010000,Amazon Luna Controller,a:b0,b:b1,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b9,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Mac OS X, +0300000008100000e501000019040000,Anbernic Handheld,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a4,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000373500004610000001000000,Anbernic RG P01,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000a30c00002700000003030000,Astro City Mini,a:b2,b:b1,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000a30c00002800000003030000,Astro City Mini,a:b2,b:b1,back:b8,leftx:a3,lefty:a4,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000050b00000045000031000000,ASUS Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +03000000050b00000579000000010000,ASUS ROG Kunai 3,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b14,leftshoulder:b6,leftstick:b15,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b42,paddle1:b9,paddle2:b11,rightshoulder:b7,rightstick:b16,righttrigger:a4,rightx:a2,righty:a3,start:b13,x:b3,y:b4,platform:Mac OS X, +03000000050b00000679000000010000,ASUS ROG Kunai 3,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b14,leftshoulder:b6,leftstick:b15,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b23,rightshoulder:b7,rightstick:b16,righttrigger:a4,rightx:a2,righty:a3,start:b13,x:b3,y:b4,platform:Mac OS X, +030000006a0e00001140000001000000,Atari CX Controller,a:b0,leftx:a0,lefty:a1,platform:Mac OS X, +03000000503200000110000045010000,Atari VCS Classic,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b3,start:b2,platform:Mac OS X, +03000000503200000110000047010000,Atari VCS Classic Controller,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b3,start:b2,platform:Mac OS X, +03000000503200000210000047010000,Atari VCS Modern Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a4,rightx:a2,righty:a3,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000e30500008106000000010000,Austgame GameCube Adapter,a:b0,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:+a4,leftx:a0,lefty:a1,misc3:b5,misc4:b6,rightshoulder:b4,righttrigger:-a4,rightx:a2,righty:a3,start:b7,x:b1,y:b3,platform:Mac OS X, +030000008a3500000102000000010000,Backbone One,a:b0,b:b1,back:b16,dpdown:b11,dpleft:b13,dpright:b12,dpup:b10,guide:b17,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3~,start:b15,x:b2,y:b3,platform:Mac OS X, +030000008a3500000201000000010000,Backbone One,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000008a3500000202000000010000,Backbone One,a:b0,b:b1,back:b16,dpdown:b11,dpleft:b13,dpright:b12,dpup:b10,guide:b17,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3~,start:b15,x:b2,y:b3,platform:Mac OS X, +030000008a3500000402000000010000,Backbone One,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000008a3500000302000000010000,Backbone One PlayStation Edition,a:b0,b:b1,back:b16,dpdown:b11,dpleft:b13,dpright:b12,dpup:b10,guide:b17,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3~,start:b15,x:b2,y:b3,platform:Mac OS X, +03000000c62400001a89000000010000,BDA MOGA XP5-X Plus,a:b0,b:b1,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b14,leftshoulder:b6,leftstick:b15,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b16,righttrigger:a4,rightx:a2,righty:a3,start:b13,x:b3,y:b4,platform:Mac OS X, +03000000c62400001b89000000010000,BDA MOGA XP5-X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000d62000002a79000000010000,BDA PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +03000000120c0000200e000000010000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +03000000120c0000210e000000010000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +03000000632500002705000026010000,BSP Y04,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b9,rightstick:b14,righttrigger:a5,start:b11,x:b3,y:b4,platform:Mac OS X, +030000008305000031b0000000000000,Cideko AK08b,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000501d00009e61000001000000,CoreOrbits GamerPad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Mac OS X, +03000000d8140000cecf000000000000,Cthulhu,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000260900008888000088020000,Cyber Gadget GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a5,rightx:a2,righty:a3~,start:b7,x:b2,y:b3,platform:Mac OS X, +03000000a306000022f6000001030000,Cyborg V3 Rumble Pad PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000791d00000103000009010000,Dual Box Wii Classic Adapter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b10,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +030000006e0500000720000010020000,Elecom JC-W01U,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Mac OS X, +030000006f0e00008401000003010000,Faceoff Deluxe Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b13,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000151900004000000001000000,Flydigi Vader 2,a:b14,b:b15,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b21,leftshoulder:b6,leftstick:b12,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b2,paddle2:b5,paddle3:b16,paddle4:b17,rightshoulder:b7,rightstick:b13,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Mac OS X, +03000000b40400001124000001040000,Flydigi Vader 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b12,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b14,paddle1:b2,paddle2:b5,paddle3:b16,paddle4:b17,rightshoulder:b7,rightstick:b13,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000b40400001224000003030000,Flydigi Vader 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b12,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b2,paddle1:b16,paddle2:b17,paddle3:b14,paddle4:b15,rightshoulder:b7,rightstick:b13,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000790000004618000000010000,GameCube Adapter,a:b4,b:b0,dpdown:b56,dpleft:b60,dpright:b52,dpup:b48,lefttrigger:a12,leftx:a0,lefty:a4,rightshoulder:b28,righttrigger:a16,rightx:a20,righty:a8,start:b36,x:b8,y:b12,platform:Mac OS X, +03000000ac0500001a06000002020000,GameSir T3 2.02,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000373500000411000023000000,GameSir X4A Xbox Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000ad1b000001f9000000000000,Gamestop BB070 X360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +0500000047532047616d657061640000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +03000000c01100000140000000010000,GameStop PS4 Fun Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000006f0e00000102000000000000,GameStop Xbox 360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000ff1100003133000007010000,GameWare PC Control Pad,a:b2,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a4,start:b11,x:b3,y:b0,platform:Mac OS X, +03000000d11800000094000000010000,Google Stadia Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Mac OS X, +030000007d0400000540000001010000,Gravis Eliminator Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000280400000140000000020000,Gravis GamePad Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +030000008f0e00000300000007010000,GreenAsia Joystick,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Mac OS X, +030000000d0f00002d00000000100000,Hori Fighting Commander 3 Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00005f00000000000000,Hori Fighting Commander 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00005f00000000010000,Hori Fighting Commander 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00005e00000000000000,Hori Fighting Commander 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000000d0f00005e00000000010000,Hori Fighting Commander 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000000d0f00008400000000010000,Hori Fighting Commander PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00008500000000010000,Hori Fighting Commander PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000341a00000302000014010000,Hori Fighting Stick Mini,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00008800000000010000,Hori Fighting Stick mini 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00008700000000010000,Hori Fighting Stick mini 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000000d0f00004d00000000000000,Hori Gem Pad 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00003801000008010000,Hori PC Engine Mini Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,platform:Mac OS X, +030000000d0f00009200000000010000,Hori Pokken Tournament DX Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f0000aa00000072050000,Hori Real Arcade Pro for Nintendo Switch,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +030000000d0f00000002000017010000,Hori Split Pad Fit,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00000002000015010000,Hori Switch Split Pad Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00006e00000000010000,Horipad 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f00006600000000010000,Horipad 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000000d0f00006600000000000000,Horipad FPS Plus 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f0000ee00000000010000,Horipad Mini 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f0000c100000072050000,Horipad Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000000d0f0000f600000000010000,Horipad Switch Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +03000000242e0000ff0b000000010000,Hyperkin N64 Adapter,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a2,righty:a3,start:b9,platform:Mac OS X, +03000000790000004e95000000010000,Hyperkin N64 Adapter,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b7,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a5,righty:a2,start:b9,platform:Mac OS X, +03000000830500006020000000000000,iBuffalo Super Famicom Controller,a:b1,b:b0,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Mac OS X, +03000000ef0500000300000000020000,InterAct AxisPad,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Mac OS X, +03000000fd0500000030000010010000,Interact GoPad,a:b3,b:b4,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,x:b0,y:b1,platform:Mac OS X, +03000000242f00002d00000007010000,JYS Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +030000006d04000019c2000000000000,Logitech Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d04000019c2000000020000,Logitech Cordless RumblePad 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3~,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d04000016c2000000020000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d04000016c2000000030000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d04000016c2000014040000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d04000016c2000000000000,Logitech F310,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d04000018c2000000000000,Logitech F510,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d04000019c2000005030000,Logitech F710,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d0400001fc2000000000000,Logitech F710,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000006d0400001ac2000004000000,Logitech Precision,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006d04000018c2000000010000,Logitech RumblePad 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3~,start:b9,x:b0,y:b3,platform:Mac OS X, +030000004e3700001101000000020000,M64 Pro Controller,+rightx:b8,+righty:b6,-rightx:b7,-righty:b5,a:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b3,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b4,start:b9,x:b1,platform:Mac OS X, +03000000380700005032000000010000,Mad Catz PS3 Fightpad Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000380700008433000000010000,Mad Catz PS3 Fightstick TE S Plus,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000380700005082000000010000,Mad Catz PS4 Fightpad Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +03000000380700008483000000010000,Mad Catz PS4 Fightstick TE S Plus,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +0300000049190000020400001b010000,Manba One,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b22,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000790000000600000007010000,Marvo GT-004,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +030000008f0e00001330000011010000,Mayflash Adapter,a:b2,b:b4,back:b16,dpdown:h0.8,dpleft:h0.2,dpright:h0.1,dpup:h0.4,leftshoulder:b12,lefttrigger:b16,leftx:a0,lefty:a2,rightshoulder:b14,rightx:a6~,righty:a4,start:b18,x:b0,y:b6,platform:Mac OS X, +03000000790000004318000000010000,Mayflash GameCube Adapter,a:b4,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a12,leftx:a0,lefty:a4,rightshoulder:b28,righttrigger:a16,rightx:a20,righty:a8,start:b36,x:b8,y:b12,platform:Mac OS X, +03000000790000004418000000010000,Mayflash GameCube Controller,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000242f00007300000000020000,Mayflash Magic NS,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b0,y:b3,platform:Mac OS X, +0300000079000000d218000026010000,Mayflash Magic NS,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000d620000010a7000003010000,Mayflash Magic NS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +030000008f0e00001030000011010000,Mayflash Saturn Adapter,a:b0,b:b2,dpdown:b28,dpleft:b30,dpright:b26,dpup:b24,leftshoulder:b10,lefttrigger:b14,rightshoulder:b12,righttrigger:b4,start:b18,x:b6,y:b8,platform:Mac OS X, +0300000025090000e803000000000000,Mayflash Wii Classic Adapter,a:b1,b:b0,back:b8,dpdown:b13,dpleft:b12,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Mac OS X, +03000000790000000318000000010000,Mayflash Wii DolphinBar,a:b8,b:b12,back:b32,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b44,leftshoulder:b16,lefttrigger:b24,leftx:a0,lefty:a4,rightshoulder:b20,righttrigger:b28,rightx:a8,righty:a12,start:b36,x:b0,y:b4,platform:Mac OS X, +03000000790000000018000000000000,Mayflash Wii U Pro Adapter,a:b4,b:b8,back:b32,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b16,leftstick:b40,lefttrigger:b24,leftx:a0,lefty:a4,rightshoulder:b20,rightstick:b44,righttrigger:b28,rightx:a8,righty:a12,start:b36,x:b0,y:b12,platform:Mac OS X, +03000000790000000018000000010000,Mayflash Wii U Pro Adapter,a:b4,b:b8,back:b32,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b16,leftstick:b40,lefttrigger:b24,leftx:a0,lefty:a4,rightshoulder:b20,rightstick:b44,righttrigger:b28,rightx:a8,righty:a12,start:b36,x:b0,y:b12,platform:Mac OS X, +030000005e0400002800000002010000,Microsoft Dual Strike,a:b3,b:b2,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,rightshoulder:b7,rightx:a0,righty:a1~,start:b5,x:b1,y:b0,platform:Mac OS X, +030000005e0400000300000006010000,Microsoft SideWinder,a:b0,b:b1,back:b9,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Mac OS X, +030000005e0400000700000006010000,Microsoft SideWinder,a:b0,b:b1,back:b8,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Mac OS X, +030000005e0400002700000001010000,Microsoft SideWinder Plug and Play,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,lefttrigger:b4,righttrigger:b5,x:b2,y:b3,platform:Mac OS X, +030000004523000015e0000072050000,Mobapad Chitu HD,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +03000000d62000007162000001000000,Moga Pro 2,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Mac OS X, +03000000c62400002a89000000010000,MOGA XP5A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b21,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c62400002b89000000010000,MOGA XP5A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000853200008906000000010000,Nacon Revolution X Unlimited,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000632500007505000000020000,NeoGeo mini PAD Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,x:b2,y:b3,platform:Mac OS X, +03000000921200004b46000003020000,NES Adapter,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b11,platform:Mac OS X, +030000001008000001e5000006010000,NEXT SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,righttrigger:b6,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000ec110000e1a7000001010000,Nintendo Switch,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +030000007e0500006920000001010000,Nintendo Switch 2 Pro Controller,a:b0,b:b1,back:b14,dpdown:b8,dpleft:b10,dpright:b9,dpup:b11,guide:b16,leftshoulder:b12,leftstick:b15,lefttrigger:b13,leftx:a0,lefty:a1~,misc1:b17,misc2:b20,paddle1:b18,paddle2:b19,rightshoulder:b4,rightstick:b7,righttrigger:b5,rightx:a2,righty:a3~,start:b6,x:b2,y:b3,platform:Mac OS X, +030000007e0500000620000001000000,Nintendo Switch Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b13,leftshoulder:b4,leftstick:b10,rightshoulder:b5,start:b8,x:b2,y:b3,platform:Mac OS X, +030000007e0500000720000001000000,Nintendo Switch Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Mac OS X, +030000007e0500000920000000000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +030000007e0500000920000001000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +030000007e0500000920000010020000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:Mac OS X, +050000007e05000009200000ff070000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:Mac OS X, +030000007e0500007320000001010000,NSO GameCube Controller,a:b1,b:b3,dpdown:b8,dpleft:b10,dpright:b9,dpup:b11,guide:b16,leftshoulder:b13,lefttrigger:b12,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b4,rightx:a2,righty:a3~,start:b6,x:b0,y:b2,platform:Mac OS X, +030000007e0500001920000001000000,NSO N64 Controller,+rightx:b8,+righty:b7,-rightx:b3,-righty:b2,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,righttrigger:b10,start:b9,platform:Mac OS X, +030000007e0500001720000001000000,NSO SNES Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b15,start:b9,x:b2,y:b3,platform:Mac OS X, +03000000550900001472000025050000,NVIDIA Controller,a:b0,b:b1,back:b17,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b4,leftstick:b7,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Mac OS X, +030000004b120000014d000000010000,Nyko Airflo EX,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Mac OS X, +0300000009120000072f000000010000,OrangeFox86 DreamPicoPort,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a2,leftx:a0,lefty:a1,righttrigger:a5,rightx:a3,righty:a4,start:b11,x:b3,y:b4,platform:Mac OS X, +030000006f0e00000901000002010000,PDP PS3 Versus Fighting,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Mac OS X, +030000008f0e00000300000000000000,Piranha Xtreme PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000100800000300000006010000,PlayStation Adapter,a:b2,b:b1,back:b8,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a4,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000d620000011a7000000020000,PowerA Core Plus Gamecube Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Mac OS X, +03000000d620000011a7000010050000,PowerA Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000d62000006dca000000010000,PowerA Pro Ex,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000c62400003a54000000000000,PowerA Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000004c0500006802000000000000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Mac OS X, +030000004c0500006802000000010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Mac OS X, +030000004c0500006802000072050000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Mac OS X, +030000004c050000a00b000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000004c050000c405000000000000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000004c050000c405000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000004c050000c405000021020000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000004c050000cc09000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +0300004b4c0500005f0e000000010000,PS5 Access Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000004c050000e60c000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000004c050000f20d000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +050000004c050000e60c000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +050000004c050000f20d000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000005e040000e002000001000000,PXN P30 Pro Mobile,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Mac OS X, +03000000222c00000225000000010000,Qanba Dragon Arcade Joystick PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000222c00000020000000010000,Qanba Drone Arcade Stick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000009b2800005600000020020000,Raphnet SNES Adapter,a:b1,b:b4,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Mac OS X, +030000009b2800008000000022020000,Raphnet Wii Classic Adapter,a:b1,b:b4,back:b2,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,guide:b10,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a3,righty:a4,start:b3,x:b0,y:b5,platform:Mac OS X, +030000008916000000fd000000000000,Razer Onza TE,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000321500000204000000010000,Razer Panthera PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000321500000104000000010000,Razer Panthera PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +03000000321500000010000000010000,Razer Raiju,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000321500000507000001010000,Razer Raiju Mobile,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b21,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000321500000011000000010000,Razer Raion PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +03000000321500000009000000020000,Razer Serval,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Mac OS X, +030000003215000000090000163a0000,Razer Serval,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Mac OS X, +0300000032150000030a000000000000,Razer Wildcat,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000632500008005000000010000,Redgear,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000632500002305000000010000,Redragon Saturn,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000921200004547000000020000,Retro Bit Sega Genesis Adapter,a:b0,b:b2,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,lefttrigger:b14,rightshoulder:b10,righttrigger:b4,start:b12,x:b6,y:b8,platform:Mac OS X, +03000000790000001100000000000000,Retro Controller,a:b1,b:b2,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,leftshoulder:b6,lefttrigger:b7,rightshoulder:b4,righttrigger:b5,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000790000001100000005010000,Retro Controller,a:b1,b:b2,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b4,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000830500006020000000010000,Retro Controller,a:b0,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b5,rightshoulder:b8,righttrigger:b9,start:b7,x:b2,y:b3,platform:Mac OS X, +0300000003040000c197000000000000,Retrode Adapter,a:b0,b:b4,back:b2,dpdown:+a4,dpleft:-a0,dpright:+a0,dpup:-a4,leftshoulder:b6,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Mac OS X, +03000000790000001100000006010000,Retrolink SNES Controller,a:b2,b:b1,back:b8,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000341200000400000000000000,RetroUSB N64 RetroPort,+rightx:b8,+righty:b10,-rightx:b9,-righty:b11,a:b7,b:b6,dpdown:b2,dpleft:b1,dpright:b0,dpup:b3,leftshoulder:b13,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b12,start:b4,platform:Mac OS X, +030000006b140000010d000000010000,Revolution Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000006b140000130d000000010000,Revolution Pro Controller 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000004c0500006802000002100000,Rii RK707,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b2,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b3,righttrigger:b9,rightx:a2,righty:a3,start:b1,x:b15,y:b12,platform:Mac OS X, +030000006f0e00008701000005010000,Rock Candy Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000c6240000fefa000000000000,Rock Candy PS3,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000e804000000a000001b010000,Samsung EIGP20,a:b1,b:b3,back:b15,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b20,leftshoulder:b11,leftx:a1,lefty:a3,rightshoulder:b12,rightx:a4,righty:a5,start:b16,x:b7,y:b9,platform:Mac OS X, +03000000730700000401000000010000,Sanwa PlayOnline Mobile,a:b0,b:b1,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b3,platform:Mac OS X, +03000000a30c00002500000006020000,Sega Genesis Mini 3B Controller,a:b2,b:b1,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,righttrigger:b5,start:b9,platform:Mac OS X, +03000000811700007e05000000000000,Sega Saturn,a:b2,b:b4,dpdown:b16,dpleft:b15,dpright:b14,dpup:b17,leftshoulder:b8,lefttrigger:a5,leftx:a0,lefty:a2,rightshoulder:b9,righttrigger:a4,start:b13,x:b0,y:b6,platform:Mac OS X, +03000000b40400000a01000000000000,Sega Saturn,a:b0,b:b1,back:b5,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b2,leftshoulder:b6,rightshoulder:b7,start:b8,x:b3,y:b4,platform:Mac OS X, +030000003512000021ab000000000000,SFC30 Joystick,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Mac OS X, +03000000632500007505000000010000,ShanWan Gamepad,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Mac OS X, +0300000000f00000f100000000000000,SNES RetroPort,a:b2,b:b3,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b5,rightshoulder:b7,start:b6,x:b0,y:b1,platform:Mac OS X, +030000004c050000a00b000000000000,Sony DualShock 4 Adapter,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000004c050000cc09000000000000,Sony DualShock 4 V2,a:b1,b:b2,back:b13,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +03000000666600006706000088020000,Sony PlayStation Adapter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b11,x:b3,y:b0,platform:Mac OS X, +030000004c050000da0c000000010000,Sony PlayStation Classic Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Mac OS X, +030000004c0500003713000000010000,Sony PlayStation Vita,a:b1,b:b2,back:b8,dpdown:b13,dpleft:b15,dpright:b14,dpup:b12,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Mac OS X, +030000005e0400008e02000001000000,Steam Virtual Gamepad,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000110100002014000000000000,SteelSeries Nimbus,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,x:b2,y:b3,platform:Mac OS X, +03000000110100002014000001000000,SteelSeries Nimbus,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,x:b2,y:b3,platform:Mac OS X, +03000000381000002014000001000000,SteelSeries Nimbus,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,x:b2,y:b3,platform:Mac OS X, +03000000381000004114000000010000,SteelSeries Nimbus Cloud,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b5,paddle2:b2,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +05000000484944204465766963650000,SteelSeries Nimbus Plus,a:b0,b:b1,back:b15,dpdown:b11,dpleft:b13,dpright:b12,dpup:b10,guide:b16,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3~,start:b14,x:b2,y:b3,platform:Mac OS X, +050000004e696d6275732b0000000000,SteelSeries Nimbus Plus,a:b0,b:b1,back:b15,dpdown:b11,dpleft:b13,dpright:b12,dpup:b10,guide:b16,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3~,start:b14,x:b2,y:b3,platform:Mac OS X, +03000000381000003014000000000000,SteelSeries Stratus Duo,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000381000003114000000000000,SteelSeries Stratus Duo,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000110100001714000000000000,SteelSeries Stratus XL,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,start:b12,x:b2,y:b3,platform:Mac OS X, +03000000110100001714000020010000,SteelSeries Stratus XL,a:b0,b:b1,dpdown:b9,dpleft:b11,dpright:b10,dpup:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3~,start:b12,x:b2,y:b3,platform:Mac OS X, +03000000457500002211000000010000,SZMY Power PC Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000e40a00000307000001000000,Taito Egret II Mini Control Panel,a:b4,b:b2,back:b6,guide:b9,leftx:a0,lefty:a1,rightshoulder:b0,righttrigger:b1,start:b7,x:b8,y:b3,platform:Mac OS X, +03000000e40a00000207000001000000,Taito Egret II Mini Controller,a:b4,b:b2,back:b6,guide:b9,leftx:a0,lefty:a1,rightshoulder:b0,righttrigger:b1,start:b7,x:b8,y:b3,platform:Mac OS X, +03000000790000001c18000000010000,TGZ Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000790000001c18000003100000,TGZ Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000591c00002400000021000000,THEC64 Joystick,a:b0,b:b1,back:b6,leftshoulder:b4,leftx:a0,lefty:a4,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Mac OS X, +03000000591c00002600000021000000,THEGamepad,a:b2,b:b1,back:b6,dpdown:+a4,dpleft:-a0,dpright:+a0,dpup:-a4,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b0,platform:Mac OS X, +030000004f04000015b3000000000000,Thrustmaster Dual Analog 3.2,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Mac OS X, +030000004f0400000ed0000000020000,Thrustmaster eSwap Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +030000004f04000000b3000000000000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b11,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b1,y:b3,platform:Mac OS X, +03000000571d00002100000021000000,Tomee NES Adapter,a:b1,b:b0,back:b2,dpdown:+a4,dpleft:-a0,dpright:+a0,dpup:-a4,start:b3,platform:Mac OS X, +03000000bd12000015d0000000010000,Tomee Retro Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000571d00002000000021000000,Tomee SNES Adapter,a:b0,b:b1,back:b6,dpdown:+a4,dpleft:-a0,dpright:+a0,dpup:-a4,leftshoulder:b4,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Mac OS X, +03000000bd12000015d0000000000000,Tomee SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Mac OS X, +030000005f140000c501000000020000,Trust Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Mac OS X, +03000000100800000100000000000000,Twin USB Joystick,a:b4,b:b2,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b12,leftstick:b20,lefttrigger:b8,leftx:a0,lefty:a2,rightshoulder:b14,rightstick:b22,righttrigger:b10,rightx:a6,righty:a4,start:b18,x:b6,y:b0,platform:Mac OS X, +03000000632500002605000000010000,Uberwith Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000c0160000e105000000040000,Ultimate Atari Fight Stick,a:b2,b:b4,back:b18,dpdown:+a2,dpleft:-a0,dpright:+a0,dpup:-a2,rightshoulder:b8,righttrigger:b10,start:b16,x:b0,y:b6,platform:Mac OS X, +03000000151900005678000010010000,Uniplay U6,a:b3,b:b6,back:b25,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b17,leftstick:b31,lefttrigger:b21,leftx:a1,lefty:a3,rightshoulder:b19,rightstick:b33,righttrigger:b23,rightx:a4,righty:a5,start:b27,x:b11,y:b13,platform:Mac OS X, +030000006f0e00000302000025040000,Victrix PS4 Pro Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +030000006f0e00000702000003060000,Victrix PS4 Pro Fightstick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,touchpad:b13,x:b0,y:b3,platform:Mac OS X, +050000005769696d6f74652028303000,Wii Remote,a:b4,b:b5,back:b7,dpdown:b3,dpleft:b0,dpright:b1,dpup:b2,guide:b8,leftshoulder:b11,lefttrigger:b12,leftx:a0,lefty:a1,start:b6,x:b10,y:b9,platform:Mac OS X, +050000005769696d6f74652028313800,Wii U Pro Controller,a:b16,b:b15,back:b7,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b8,leftshoulder:b19,leftstick:b23,lefttrigger:b21,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b24,righttrigger:b22,rightx:a2,righty:a3,start:b6,x:b18,y:b17,platform:Mac OS X, +030000005e0400008e02000000000000,Xbox 360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e0400008e02000010010000,Xbox 360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1~,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4~,start:b8,x:b2,y:b3,platform:Mac OS X, +030000006f0e00000104000000000000,Xbox 360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +03000000c6240000045d000000000000,Xbox 360 Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e0400000a0b000000000000,Xbox Adaptive Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e040000050b000003090000,Xbox Elite Controller Series 2,a:b0,b:b1,back:b31,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b53,leftshoulder:b6,leftstick:b13,lefttrigger:a6,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000130b000011050000,Xbox One Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000200b000011050000,Xbox One Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000200b000013050000,Xbox One Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000200b000015050000,Xbox One Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000d102000000000000,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e040000dd02000000000000,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e040000e002000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Mac OS X, +030000005e040000e002000003090000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Mac OS X, +030000005e040000e302000000000000,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e040000ea02000000000000,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b8,x:b2,y:b3,platform:Mac OS X, +030000005e040000fd02000003090000,Xbox One Controller,a:b0,b:b1,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000220b000013050000,Xbox One Elite 2 Controller,a:b0,b:b1,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,paddle1:b11,paddle2:b13,paddle3:b12,paddle4:b14,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Mac OS X, +030000005e040000130b000001050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000130b000005050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000130b000007050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000130b000009050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000130b000013050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000130b000015050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000130b000017050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000130b000022050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000130b000023050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000220b000017050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +030000005e040000220b000021050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000172700004431000029010000,XiaoMi Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a6,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Mac OS X, +03000000120c0000100e000000010000,Zeroplus P4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000120c0000101e000000010000,Zeroplus P4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Mac OS X, +03000000373500002210000030020000,GameSir G7 Pro,a:b0,b:b1,x:b3,y:b4,back:b10,guide:b12,start:b11,leftstick:b13,rightstick:b14,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a5,righttrigger:a4,platform:Mac OS X, +03000000373500004110000000010000,GameSir Nova Lite,a:b0,b:b1,x:b3,y:b4,back:b10,guide:b12,start:b11,leftstick:b13,rightstick:b14,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a5,righttrigger:a4,platform:Mac OS X, +0300000037350000411000001b010000,GameSir Nova Lite,a:b0,b:b1,x:b3,y:b4,back:b10,guide:b12,start:b11,leftstick:b13,rightstick:b14,leftshoulder:b6,rightshoulder:b7,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a5,righttrigger:a4,platform:Mac OS X, + +# Linux +03000000c82d00001930000011010000,8BitDo 64,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,platform:Linux, +05000000c82d00001930000001000000,8BitDo 64,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,platform:Linux, +03000000c82d00000031000011010000,8BitDo Adapter,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00000631000000010000,8BitDo Adapter 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c82d00000951000000010000,8BitDo Dogbone,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b11,platform:Linux, +03000000021000000090000011010000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000090000011010000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00001038000000010000,8BitDo FC30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00006a28000000010000,8BitDo GameCube,a:b0,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b9,paddle2:b8,rightshoulder:b10,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b1,y:b4,platform:Linux, +03000000c82d00001251000011010000,8BitDo Lite 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00001251000000010000,8BitDo Lite 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00001151000011010000,8BitDo Lite SE,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00001151000000010000,8BitDo Lite SE,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000151000000010000,8BitDo M30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00000650000011010000,8BitDo M30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000c82d00005106000000010000,8BitDo M30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00000a20000000020000,8BitDo M30 Xbox,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,start:b7,x:b2,y:b3,platform:Linux, +03000000c82d00002090000011010000,8BitDo Micro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00002090000000010000,8BitDo Micro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000451000000010000,8BitDo N30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b11,platform:Linux, +03000000c82d00001590000011010000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00006528000000010000,8BitDo N30 Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00006928000011010000,8BitDo N64,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,platform:Linux, +05000000c82d00006928000000010000,8BitDo N64,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,platform:Linux, +05000000c82d00002590000001000000,8BitDo NEOGEO,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000008000000210000011010000,8BitDo NES30,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +03000000c82d00000310000011010000,8BitDo NES30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b7,lefttrigger:b6,rightshoulder:b9,righttrigger:b8,start:b11,x:b3,y:b4,platform:Linux, +05000000c82d00008010000000010000,8BitDo NES30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b7,lefttrigger:b6,rightshoulder:b9,righttrigger:b8,start:b11,x:b3,y:b4,platform:Linux, +03000000022000000090000011010000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000190000011010000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000203800000900000000010000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00002038000000010000,8BitDo NES30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000751000000010000,8BitDo P30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:a8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000c82d00000851000000010000,8BitDo P30,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:a8,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00000660000011010000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00001030000011010000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00000660000000010000,8BitDo Pro 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000020000000000000,8BitDo Pro 2 for Xbox,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +06000000c82d00000020000006010000,8BitDo Pro 2 for Xbox,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c82d00000960000011010000,8BitDo Pro 3,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b17,paddle2:b16,paddle3:b2,paddle4:b5,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00000960000000010000,8BitDo Pro 3,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b17,paddle2:b16,paddle3:b2,paddle4:b5,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000131000011010000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000231000011010000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000331000011010000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000431000011010000,8BitDo Receiver,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00002867000000010000,8BitDo S30,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b8,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b3,y:b4,platform:Linux, +03000000c82d00000060000011010000,8BitDo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00000060000000010000,8BitDo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00000061000000010000,8BitDo SF30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +030000003512000012ab000010010000,8BitDo SFC30,a:b2,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b0,platform:Linux, +030000003512000021ab000010010000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d000021ab000010010000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux, +05000000102800000900000000010000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00003028000000010000,8BitDo SFC30,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00000351000000010000,8BitDo SN30,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000160000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000160000011010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000161000000000000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00001290000011010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a3,righty:a4,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00000161000000010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b2,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00006228000000010000,8BitDo SN30 Pro,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000260000011010000,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00000261000000010000,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +05000000202800000900000000010000,8BitDo SNES30,a:b1,b:b0,back:b10,dpdown:b122,dpleft:b119,dpright:b120,dpup:b117,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00000631000010010000,8BitDo Ultimate,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c82d00000631000014010000,8BitDo Ultimate,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c82d00000760000011010000,8BitDo Ultimate,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c82d00001130000011010000,8BitDo Ultimate,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b24,paddle2:b25,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00001230000011010000,8BitDo Ultimate,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b2,paddle2:b5,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00001330000011010000,8BitDo Ultimate,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b26,paddle1:b23,paddle2:b19,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000c82d00001230000000010000,8BitDo Ultimate,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00000b31000014010000,8BitDo Ultimate 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c82d00001260000011010000,8BitDo Ultimate 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b17,paddle2:b16,paddle3:b2,paddle4:b5,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000c82d00001260000001000000,8BitDo Ultimate 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b17,paddle2:b16,paddle3:b2,paddle4:b5,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00000a31000014010000,8BitDo Ultimate 2C,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c82d00001d30000011010000,8BitDo Ultimate 2C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b5,paddle2:b2,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000c82d00001b30000001000000,8BitDo Ultimate 2C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b5,paddle2:b2,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00001530000011010000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00001630000011010000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00001730000011010000,8BitDo Ultimate C,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00002520000014010000,8BitDo Ultimate C Xbox Controller,a:b0,b:b1,x:b2,y:b3,back:b6,guide:b8,start:b7,leftstick:b9,rightstick:b10,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5,platform:Linux +06000000c82d00000320000007010000,8BitDo Ultimate C Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c82d00001920000014010000,8BitDo Ultimate Mini Wired Controller for Xbox,a:b0,b:b1,x:b2,y:b3,back:b6,guide:b8,start:b7,leftstick:b9,rightstick:b10,leftshoulder:b4,rightshoulder:b5,dpup:h0.1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,leftx:a0,lefty:a1,rightx:a3,righty:a4,lefttrigger:a2,righttrigger:a5,platform:Linux +03000000c82d00000121000011010000,8BitDo Xbox One SN30 Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000c82d00000121000000010000,8BitDo Xbox One SN30 Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000a00500003232000001000000,8BitDo Zero,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Linux, +05000000a00500003232000008010000,8BitDo Zero,a:b0,b:b1,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b3,y:b4,platform:Linux, +03000000c82d00001890000011010000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b11,x:b4,y:b3,platform:Linux, +05000000c82d00003032000000010000,8BitDo Zero 2,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b4,y:b3,platform:Linux, +03000000c01100000355000011010000,Acrux Gamepad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00008801000011010000,Afterglow Deluxe Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00003901000000430000,Afterglow Prismatic Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00003901000013020000,Afterglow Prismatic Controller 048-007-NA,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00001302000000010000,Afterglow Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00003901000020060000,Afterglow Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000100000008200000011010000,Akishop Customs PS360,a:b1,b:b2,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +030000007c1800000006000010010000,Alienware Dual Compatible Game PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b3,platform:Linux, +05000000491900000204000021000000,Amazon Fire Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b17,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b12,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000491900001904000011010000,Amazon Luna Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b9,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Linux, +05000000710100001904000000010000,Amazon Luna Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Linux, +0300000008100000e501000001010000,Anbernic Handheld,a:b1,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a4,start:b11,x:b3,y:b4,platform:Linux, +03000000020500000913000010010000,Anbernic RG P01,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000373500000710000010010000,Anbernic RG P01,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000373500004610000001000000,Anbernic RG P01,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000190e00000110000010010000,Aquaplus Piece,a:b1,b:b0,back:b3,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b2,platform:Linux, +03000000790000003018000011010000,Arcade Fightstick F300,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +03000000a30c00002700000011010000,Astro City Mini,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux, +03000000a30c00002800000011010000,Astro City Mini,a:b2,b:b1,back:b8,leftx:a0,lefty:a1,rightshoulder:b4,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux, +05000000050b00000045000031000000,ASUS Gamepad,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b10,x:b2,y:b3,platform:Linux, +05000000050b00000045000040000000,ASUS Gamepad,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b10,x:b2,y:b3,platform:Linux, +03000000050b00000579000011010000,ASUS ROG Kunai 3,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b36,paddle1:b52,paddle2:b53,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000050b00000679000000010000,ASUS ROG Kunai 3,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b21,paddle1:b22,paddle2:b23,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000006a0e00001140000010010000,Atari CX Controller,a:b0,leftx:a0,lefty:a1,platform:Linux, +03000000503200000110000000000000,Atari VCS Classic Controller,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b4,start:b3,platform:Linux, +03000000503200000110000011010000,Atari VCS Classic Controller,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b4,start:b3,platform:Linux, +05000000503200000110000000000000,Atari VCS Classic Controller,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b4,start:b3,platform:Linux, +05000000503200000110000044010000,Atari VCS Classic Controller,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b4,start:b3,platform:Linux, +05000000503200000110000046010000,Atari VCS Classic Controller,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b4,start:b3,platform:Linux, +03000000503200000210000000000000,Atari VCS Modern Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a4,rightx:a2,righty:a3,start:b8,x:b2,y:b3,platform:Linux, +03000000503200000210000011010000,Atari VCS Modern Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Linux, +05000000503200000210000000000000,Atari VCS Modern Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Linux, +05000000503200000210000045010000,Atari VCS Modern Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Linux, +05000000503200000210000046010000,Atari VCS Modern Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Linux, +05000000503200000210000047010000,Atari VCS Modern Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b6,lefttrigger:+a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:-a4,rightx:a2,righty:a3,start:b8,x:b2,y:b3,platform:Linux, +03000000e30500003207000000010000,Austgame Twin Pad,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux, +030000008a3500000201000011010000,Backbone One,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000008a3500000202000011010000,Backbone One,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000008a3500000302000011010000,Backbone One,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000008a3500000402000011010000,Backbone One,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000c62400001b89000011010000,BDA MOGA XP5X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000d62000002a79000011010000,BDA PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000c21100000791000011010000,Be1 GC101 Controller 1.03,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000c31100000791000011010000,Be1 GC101 Controller 1.03,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000005e0400008e02000003030000,Be1 GC101 Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000bc2000004d50000011010000,Beitong A1T2 BFM,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000000d0500000308000010010000,Belkin Nostromo N45,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b12,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b10,x:b2,y:b3,platform:Linux, +05000000bc2000000055000001000000,Betop AX1 BFM,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000bc2000006412000011010000,Betop Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b30,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000006b1400000209000011010000,Bigben,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006b1400000055000011010000,Bigben Interactive Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +03000000120c0000300e000011010000,Brook Audio Fighting Board PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000120c0000310e000011010000,Brook Audio Fighting Board PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000120c0000200e000011010000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000120c0000210e000011010000,Brook Mars PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000120c0000f70e000011010000,Brook Universal Fighting Board,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +03000000d81d00000b00000010010000,Buffalo BSGP1601,a:b5,b:b3,back:b12,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b8,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b9,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b13,x:b4,y:b2,platform:Linux, +03000000e82000006058000001010000,Cideko AK08b,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000af1e00002400000010010000,Clockwork Pi DevTerm,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b9,x:b3,y:b0,platform:Linux, +030000000b0400003365000000010000,Competition Pro,a:b0,b:b1,back:b2,leftx:a0,lefty:a1,start:b3,platform:Linux, +03000000632500007a05000001020000,Cosmic Byte Ares Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000260900008888000000010000,Cyber Gadget GameCube Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a5,rightx:a2,righty:a3~,start:b7,x:b2,y:b3,platform:Linux, +03000000a306000022f6000011010000,Cyborg V3 Rumble,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:-a3,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Linux, +03000000791d00000103000010010000,Dual Box Wii Classic Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000006f0e00003001000001010000,EA Sports PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000c11100000191000011010000,EasySMX,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000242f00009100000000010000,EasySMX ESM-9101,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006e0500000320000010010000,Elecom U3613M,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Linux, +030000006e0500000720000010010000,Elecom W01U,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Linux, +030000007d0400000640000010010000,Eliminator AfterShock,a:b1,b:b2,back:b9,dpdown:+a3,dpleft:-a5,dpright:+a5,dpup:-a3,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a4,righty:a2,start:b8,x:b0,y:b3,platform:Linux, +03000000430b00000300000000010000,EMS Production PS2 Adapter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a5,righty:a2,start:b9,x:b3,y:b0,platform:Linux, +030000006f0e00008401000011010000,Faceoff Deluxe Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00008101000011010000,Faceoff Deluxe Pro Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00008001000011010000,Faceoff Pro Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000852100000201000010010000,FF GP1,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +05000000b40400001224000001010000,Flydigi APEX 4,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b14,leftshoulder:b4,leftstick:b10,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b20,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +03000000d73700001424000004010000,Flydigi Direwolf 4,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b12,paddle2:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000b40400001124000011010000,Flydigi Vader 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b12,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b14,paddle1:b2,paddle2:b5,paddle3:b16,paddle4:b17,rightshoulder:b7,rightstick:b13,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000b40400001224000011010000,Flydigi Vader 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b12,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b2,paddle1:b16,paddle2:b17,paddle3:b14,paddle4:b15,rightshoulder:b7,rightstick:b13,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000151900004000000001000000,Flydigi Vader 2,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b21,leftshoulder:b6,leftstick:b12,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b14,paddle1:b2,paddle2:b5,paddle3:b16,paddle4:b17,rightshoulder:b7,rightstick:b13,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000defa000001c0000000000000,Flydigi Vader 5 Pro,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,misc2:b12,misc3:b13,misc4:b14,misc5:b19,paddle1:b15,paddle2:b16,paddle3:b17,paddle4:b18,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000007e0500003703000000000000,GameCube Adapter,a:b0,b:b1,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b6,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b2,platform:Linux, +19000000030000000300000002030000,GameForce Controller,a:b1,b:b0,back:b8,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,guide:b16,leftshoulder:b4,leftstick:b14,lefttrigger:b6,leftx:a1,lefty:a0,rightshoulder:b5,rightstick:b15,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux, +03000000373500000b10000019010000,GameSir Cyclone 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000ac0500005b05000010010000,GameSir G3w,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000bc2000000055000011010000,GameSir G3w,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000558500001b06000010010000,GameSir G4 Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000ac0500002d0200001b010000,GameSir G4s,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b33,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000ac0500007a05000011010000,GameSir G5,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b16,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000373500005810000001020000,GameSir K1,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000373500009710000001020000,GameSir Kaleid Flux,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000ac0500001a06000011010000,GameSir T3 2.02,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000373500000410000044010000,GameSir T4 Kaleid,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000bc2000005656000011010000,GameSir T4w,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000373500009410000010010000,GameSir Tegenaria Lite,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +0500000047532047616d657061640000,GameStop Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +030000006f0e00000104000000010000,Gamestop Logic3 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000008f0e00000800000010010000,Gasia PlayStation Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000451300000010000010010000,Genius Maxfire Grandias 12,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +03000000f025000021c1000010010000,Gioteck PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000f0250000c283000010010000,Gioteck VX2 PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +190000004b4800000010000000010000,GO-Advance Controller,a:b1,b:b0,back:b10,dpdown:b7,dpleft:b8,dpright:b9,dpup:b6,leftshoulder:b4,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b13,start:b15,x:b2,y:b3,platform:Linux, +190000004b4800000010000001010000,GO-Advance Controller,a:b1,b:b0,back:b12,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,leftshoulder:b4,leftstick:b13,lefttrigger:b14,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b16,righttrigger:b15,start:b17,x:b2,y:b3,platform:Linux, +190000004b4800000011000000010000,GO-Super Gamepad,a:b0,b:b1,back:b12,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b16,leftshoulder:b4,leftstick:b14,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b15,righttrigger:b7,rightx:a2,righty:a3,start:b13,x:b3,y:b2,platform:Linux, +03000000f0250000c183000010010000,Goodbetterbest Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000d11800000094000011010000,Google Stadia Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux, +05000000d11800000094000000010000,Google Stadia Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux, +0300000079000000d418000000010000,GPD Win 2 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000001010000,GPD Win Max 2 6800U Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000007d0400000540000000010000,Gravis Eliminator Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +03000000280400000140000000010000,Gravis GamePad Pro,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +030000007d0400000740000000010000,Gravis Xterminator Force,a:a2,b:b2,back:b8,guide:b3,leftshoulder:b6,leftstick:b0,leftx:a0,lefty:a1,rightshoulder:b7,start:b9,x:b4,y:b5,platform:Linux, +030000008f0e00000610000000010000,GreenAsia Electronics Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a3,righty:a2,start:b11,x:b3,y:b0,platform:Linux, +030000008f0e00001200000010010000,GreenAsia Joystick,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux, +0500000047532067616d657061640000,GS Gamepad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +03000000f0250000c383000010010000,GT VX2,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000008a2e0000dd10000011010000,Hand Held Legend GC Ultimate,a:b0,b:b2,back:b17,dpdown:b5,dpleft:b6,dpright:b7,dpup:b4,guide:b18,leftshoulder:b10,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b19,misc2:b24,paddle1:b13,paddle2:b12,rightshoulder:b11,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b1,y:b3,platform:Linux, +030000008a2e0000df10000011010000,Hand Held Legend ProGCC,a:b1,b:b0,back:b17,dpdown:b5,dpleft:b6,dpright:b7,dpup:b4,guide:b18,leftshoulder:b10,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b19,paddle1:b13,paddle2:b12,rightshoulder:b11,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b3,y:b2,platform:Linux, +06000000adde0000efbe000002010000,Hidromancer Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d81400000862000011010000,HitBox PS3 PC Analog Mode,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b9,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b12,x:b0,y:b3,platform:Linux, +03000000c9110000f055000011010000,HJC Gamepad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +030000000d0f00006d00000020010000,Hori EDGE 301,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:+a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000000d0f00008400000011010000,Hori Fighting Commander,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00005f00000011010000,Hori Fighting Commander 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00005e00000011010000,Hori Fighting Commander 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000000d0f00005001000009040000,Hori Fighting Commander Octa Xbox One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000000d0f00008500000010010000,Hori Fighting Commander PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00008600000002010000,Hori Fighting Commander Xbox 360,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +030000000d0f00003701000013010000,Hori Fighting Stick Mini,a:b1,b:b0,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,start:b7,x:b3,y:b2,platform:Linux, +030000000d0f00008800000011010000,Hori Fighting Stick mini 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,rightstick:b11,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00008700000011010000,Hori Fighting Stick mini 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,rightshoulder:b5,rightstick:b11,righttrigger:a4,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000000d0f00001000000011010000,Hori Fightstick 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +03000000ad1b000003f5000033050000,Hori Fightstick VX,+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b8,guide:b10,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b2,y:b3,platform:Linux, +030000000d0f00004d00000011010000,Hori Gem Pad 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f0000fb00000011010000,Hori Hatsune Miku 39S,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000ad1b000001f5000033050000,Hori Pad EX Turbo 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000000d0f00003801000011010000,Hori PC Engine Mini Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,platform:Linux, +030000000d0f00009200000011010000,Hori Pokken Tournament DX Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00001100000011010000,Hori Real Arcade Pro 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00002200000011010000,Hori Real Arcade Pro 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00006a00000011010000,Hori Real Arcade Pro 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00006b00000011010000,Hori Real Arcade Pro 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00001600000000010000,Hori Real Arcade Pro EXSE,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b2,y:b3,platform:Linux, +030000000d0f0000aa00000011010000,Hori Real Arcade Pro for Nintendo Switch,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000000d0f00008501000017010000,Hori Split Pad Fit,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000000d0f00008501000015010000,Hori Switch Split Pad Pro,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000000d0f00006e00000011010000,Horipad 4 PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00006600000011010000,Horipad 4 PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000000d0f0000ee00000011010000,Horipad Mini 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f0000c100000011010000,Horipad Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000000d0f00006700000001010000,Horipad One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000000d0f0000ab01000011010000,Horipad Steam,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc2:b2,paddle1:b19,paddle2:b18,paddle3:b15,paddle4:b5,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000000d0f00009601000091000000,Horipad Steam,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc2:b2,paddle1:b19,paddle2:b18,paddle3:b15,paddle4:b5,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000000d0f0000f600000001000000,Horipad Switch Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +03000000341a000005f7000010010000,HuiJia GameCube Adapter,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b0,y:b3,platform:Linux, +05000000242e00000b20000001000000,Hyperkin Admiral N64 Controller,+rightx:b11,+righty:b13,-rightx:b8,-righty:b12,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b14,leftx:a0,lefty:a1,rightshoulder:b5,start:b9,platform:Linux, +03000000242e00002811000000010000,Hyperkin Competitor,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000242e0000ff0b000011010000,Hyperkin N64 Adapter,a:b1,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a2,righty:a3,start:b9,platform:Linux, +03000000790000004e95000010010000,Hyperkin N64 Adapter,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b7,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a5,righty:a2,start:b9,platform:Linux, +03000000242e00006a38000010010000,Hyperkin Trooper 2,a:b0,b:b1,back:b4,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b3,start:b5,platform:Linux, +03000000242e00008816000001010000,Hyperkin X91,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000f00300008d03000011010000,HyperX Clutch,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000f00300008d04000000010000,HyperX Clutch,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000830500006020000010010000,iBuffalo Super Famicom Controller,a:b1,b:b0,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Linux, +03000000d80400004aea000011010000,icedragon.io STAC Dance Pad,a:b0,b:b1,back:b4,x:b2,y:b3,platform:Linux, +03000000d80400004bea000011010000,icedragon.io STAC Dance Pad,a:b0,b:b1,back:b4,x:b2,y:b3,platform:Linux, +030000008a2e0000d910000011010000,icedragon.io STAC2 Dance Pad,a:b0,b:b1,back:b4,x:b2,y:b3,platform:Linux, +030000008a2e0000e910000011010000,icedragon.io STAC2 Dance Pad,a:b8,b:b9,back:b12,x:b10,y:b11,platform:Linux, +030000008f0e00001330000001010000,iCode Retro Adapter,b:b3,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b9,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b1,start:b7,x:b2,y:b0,platform:Linux, +050000006964726f69643a636f6e0000,idroidcon Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000b50700001503000010010000,Impact,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux, +03000000d80400008200000003000000,IMS PCU0,a:b1,b:b0,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b5,x:b3,y:b2,platform:Linux, +03000000120c00000500000010010000,InterAct AxisPad,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Linux, +03000000ef0500000300000000010000,InterAct AxisPad,a:b2,b:b3,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b11,x:b0,y:b1,platform:Linux, +03000000fd0500000030000000010000,InterAct GoPad,a:b3,b:b4,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,x:b0,y:b1,platform:Linux, +03000000fd0500002a26000000010000,InterAct HammerHead FX,a:b3,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b2,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b5,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b0,y:b1,platform:Linux, +0500000049190000020400001b010000,Ipega PG 9069,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b161,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000632500007505000011010000,Ipega PG 9099,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +0500000049190000030400001b010000,Ipega PG9099,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000491900000204000000000000,Ipega PG9118,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000300f00001101000010010000,Jess Tech Colour Rumble Pad,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux, +03000000300f00001001000010010000,Jess Tech Dual Analog Rumble,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux, +03000000300f00000b01000010010000,Jess Tech GGE909 PC Recoil,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux, +03000000ba2200002010000001010000,Jess Technology Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux, +03000000bd12000003c0000010010000,Joypad Alpha Shock,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000242f00002d00000011010000,JYS Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000242f00008a00000011010000,JYS Adapter,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b0,y:b3,platform:Linux, +03000000314100001935000000010000,LeadJoy Xeno Plus,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:+a5,rightx:a4,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e0000da02000008640000,Logic3 Afterglow Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00000103000000020000,Logic3 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e000001f5000010010000,Logic3 Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006d040000d1ca000000000000,Logitech Chillstream,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006d040000d1ca000011010000,Logitech Chillstream,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006d04000016c2000010010000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006d04000016c2000011010000,Logitech Dual Action,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006d0400001dc2000014400000,Logitech F310,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006d0400001ec2000019200000,Logitech F510,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006d0400001ec2000020200000,Logitech F510,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006d04000019c2000011010000,Logitech F710,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006d0400001fc2000005030000,Logitech F710,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006d0400001ac2000010010000,Logitech Precision,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +030000006d04000018c2000010010000,Logitech RumblePad 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006d04000019c2000010010000,Logitech RumblePad 2,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006d0400000ac2000010010000,Logitech WingMan RumblePad,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,rightx:a3,righty:a4,x:b3,y:b4,platform:Linux, +030000006d04000011c2000010010000,Logitech WingMan RumblePad,a:b0,b:b1,back:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b6,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b10,rightx:a3,righty:a4,start:b8,x:b3,y:b4,platform:Linux, +050000004e3700001101000000020000,M64 Pro Controller,+rightx:b8,+righty:b6,-rightx:b7,-righty:b5,a:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b3,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b4,start:b9,x:b1,platform:Linux, +05000000380700006652000025010000,Mad Catz CTRLR,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700008532000010010000,Mad Catz Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b5,rightshoulder:b6,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +03000000380700005032000011010000,Mad Catz Fightpad Pro PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700005082000011010000,Mad Catz Fightpad Pro PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000ad1b00002ef0000090040000,Mad Catz Fightpad SFxT,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,start:b7,x:b2,y:b3,platform:Linux, +03000000380700008031000011010000,Mad Catz FightStick Alpha PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700008081000011010000,Mad Catz FightStick Alpha PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700008034000011010000,Mad Catz Fightstick PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700008084000011010000,Mad Catz Fightstick PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000380700008433000011010000,Mad Catz Fightstick TE S PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700008483000011010000,Mad Catz Fightstick TE S PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000380700001888000010010000,Mad Catz Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700003888000010010000,Mad Catz Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000380700001647000010040000,Mad Catz Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000380700003847000090040000,Mad Catz Xbox 360 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +03000000ad1b000016f0000090040000,Mad Catz Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000120c00000500000000010000,Manta DualShock 2,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux, +030000008f0e00001330000010010000,Mayflash Adapter,a:b1,b:b2,back:b8,dpdown:h0.8,dpleft:h0.2,dpright:h0.1,dpup:h0.4,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a3~,righty:a2,start:b9,x:b0,y:b3,platform:Linux, +03000000790000004318000010010000,Mayflash GameCube Adapter,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Linux, +03000000790000004418000010010000,Mayflash GameCube Controller,a:b1,b:b0,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Linux, +03000000242f00007300000011010000,Mayflash Magic NS,a:b1,b:b4,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b0,y:b3,platform:Linux, +0300000079000000d218000011010000,Mayflash Magic NS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000d620000010a7000011010000,Mayflash Magic NS,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000242f0000f700000001010000,Mayflash Magic S Pro,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000008f0e00001030000010010000,Mayflash Saturn Adapter,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,lefttrigger:b7,rightshoulder:b6,righttrigger:b2,start:b9,x:b3,y:b4,platform:Linux, +0300000025090000e803000001010000,Mayflash Wii Classic Adapter,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:a4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:a5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux, +03000000790000000318000011010000,Mayflash Wii DolphinBar,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Linux, +03000000790000000018000011010000,Mayflash Wii U Pro Adapter,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000b50700001203000010010000,Mega World Logic 3 Controller,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux, +03000000b50700004f00000000010000,Mega World Logic 3 Controller,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b1,platform:Linux, +03000000780000000600000010010000,Microntek Joystick,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux, +030000005e0400002800000000010000,Microsoft Dual Strike,a:b3,b:b2,back:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,lefttrigger:b8,rightshoulder:b7,rightx:a0,righty:a1~,start:b5,x:b1,y:b0,platform:Linux, +030000005e0400000300000000010000,Microsoft SideWinder,a:b0,b:b1,back:b9,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Linux, +030000005e0400000700000000010000,Microsoft SideWinder,a:b0,b:b1,back:b8,leftshoulder:b6,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b2,start:b9,x:b3,y:b4,platform:Linux, +030000005e0400000e00000000010000,Microsoft SideWinder Freestyle Pro,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,rightshoulder:b7,start:b8,x:b3,y:b4,platform:Linux, +030000005e0400002700000000010000,Microsoft SideWinder Plug and Play,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,lefttrigger:b4,righttrigger:b5,x:b2,y:b3,platform:Linux, +030000005e0400008e02000001000000,Microsoft Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.1,dpleft:h0.2,dpright:h0.8,dpup:h0.4,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000004010000,Microsoft Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000056210000,Microsoft Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000062230000,Microsoft Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008502000000010000,Microsoft Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux, +030000005e0400008902000021010000,Microsoft Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux, +030000005e040000d102000001010000,Microsoft Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000d102000003020000,Microsoft Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000dd02000003020000,Microsoft Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000ea02000008040000,Microsoft Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000ea0200000f050000,Microsoft Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +060000005e040000120b000009050000,Microsoft Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +060000005e040000120b000014050000,Microsoft Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000e302000003020000,Microsoft Xbox One Elite,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000000b000007040000,Microsoft Xbox One Elite 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b12,paddle2:b14,paddle3:b13,paddle4:b15,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000000b000008040000,Microsoft Xbox One Elite 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b12,paddle2:b14,paddle3:b13,paddle4:b15,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +050000005e040000050b000003090000,Microsoft Xbox One Elite 2,a:b0,b:b1,back:b17,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a6,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e0400008e02000030110000,Microsoft Xbox One Elite 2,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b13,paddle3:b12,paddle4:b14,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b00000b050000,Microsoft Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b000016050000,Microsoft Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b000017050000,Microsoft Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +060000005e040000120b000001050000,Microsoft Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000030000000300000002000000,Miroof,a:b1,b:b0,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b3,y:b2,platform:Linux, +03000000790000001c18000010010000,Mobapad Chitu HD,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000004d4f435554452d3035335800,Mocute 053X,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +05000000e80400006e0400001b010000,Mocute 053X M59,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000004d4f435554452d3035305800,Mocute 054X,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000d6200000e589000001000000,Moga 2,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Linux, +05000000d6200000ad0d000001000000,Moga Pro,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Linux, +05000000d62000007162000001000000,Moga Pro 2,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Linux, +03000000c62400002b89000011010000,MOGA XP5A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000c62400002a89000000010000,MOGA XP5A Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b22,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000c62400001a89000000010000,MOGA XP5X Plus,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000250900006688000000010000,MP8866 Super Dual Box,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux, +030000005e0400008e02000010020000,MSI GC20 V2,a:b0,b:b1,back:b6,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000f70600000100000000010000,N64 Adaptoid,+rightx:b2,+righty:b1,-rightx:b4,-righty:b5,a:b0,b:b3,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b6,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b7,start:b8,platform:Linux, +030000006b1400000906000014010000,Nacon Asymmetric PS4 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +0300000085320000030c000011010000,Nacon GC100,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000853200000706000012010000,Nacon GC100,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006b140000010c000010010000,Nacon GC400ES,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +05000000853200000503000000010000,Nacon MGX Pro,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +0300000085320000160d000011010000,Nacon Revolution 5 Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +0300000085320000170d000011010000,Nacon Revolution 5 Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +0300000085320000180d000011010000,Nacon Revolution 5 Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +0300000085320000190d000011010000,Nacon Revolution 5 Pro,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000000d0f00000900000010010000,Natec Genesis P44,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000004f1f00000800000011010000,NeoGeo PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +0300000092120000474e000000010000,NeoGeo X Arcade Stick,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,start:b9,x:b3,y:b2,platform:Linux, +03000000790000004518000010010000,NEXiLUX GameCube Adapter,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:a4,rightx:a5,righty:a2,start:b9,x:b2,y:b3,platform:Linux, +030000001008000001e5000010010000,NEXT SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,righttrigger:b6,start:b9,x:b3,y:b0,platform:Linux, +060000007e0500003713000000000000,Nintendo 3DS,a:b0,b:b1,back:b8,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux, +03000000790000004618000010010000,Nintendo GameCube Adapter,a:b1,b:b0,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,rightx:a5~,righty:a2~,start:b9,x:b2,y:b3,platform:Linux, +03000000ec110000e1a7000010010000,Nintendo Switch,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +030000007e0500006920000011010000,Nintendo Switch 2 Pro Controller,a:b0,b:b1,back:b14,dpdown:b8,dpleft:b10,dpright:b9,dpup:b11,guide:b16,leftshoulder:b12,leftstick:b15,lefttrigger:b13,leftx:a0,lefty:a1~,misc1:b17,misc2:b20,paddle1:b18,paddle2:b19,rightshoulder:b4,rightstick:b7,righttrigger:b5,rightx:a2,righty:a3~,start:b6,x:b2,y:b3,platform:Linux, +060000004e696e74656e646f20537700,Nintendo Switch Combined Joy-Cons,a:b0,b:b1,back:b9,dpdown:b15,dpleft:b16,dpright:b17,dpup:b14,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux, +060000007e0500000620000000000000,Nintendo Switch Combined Joy-Cons,a:b0,b:b1,back:b9,dpdown:b15,dpleft:b16,dpright:b17,dpup:b14,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux, +060000007e0500000820000000000000,Nintendo Switch Combined Joy-Cons,a:b0,b:b1,back:b9,dpdown:b15,dpleft:b16,dpright:b17,dpup:b14,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux, +050000004c69632050726f20436f6e00,Nintendo Switch Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +030000007e0500000620000001000000,Nintendo Switch Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b13,leftshoulder:b4,leftstick:b10,rightshoulder:b5,start:b8,x:b2,y:b3,platform:Linux, +050000007e0500000620000001000000,Nintendo Switch Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b13,leftshoulder:b4,leftstick:b10,rightshoulder:b5,start:b8,x:b2,y:b3,platform:Linux, +050000007e0500000620000001800000,Nintendo Switch Joy-Con (L),a:b16,b:b15,back:b4,leftshoulder:b6,leftstick:b12,leftx:a1,lefty:a0~,rightshoulder:b8,start:b9,x:b14,y:b17,platform:Linux, +030000007e0500000720000001000000,Nintendo Switch Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Linux, +050000007e0500000720000001000000,Nintendo Switch Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b1,back:b12,leftshoulder:b4,leftstick:b11,rightshoulder:b5,start:b9,x:b2,y:b3,platform:Linux, +050000007e0500000720000001800000,Nintendo Switch Joy-Con (R),a:b1,b:b2,back:b9,leftshoulder:b4,leftstick:b10,leftx:a1~,lefty:a0,rightshoulder:b6,start:b8,x:b0,y:b3,platform:Linux, +030000007e0500000920000000026803,Nintendo Switch Pro Controller,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Linux, +030000007e0500000920000011810000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux, +050000007e0500000920000001000000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +050000007e0500000920000001800000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b5,leftstick:b12,lefttrigger:b7,leftx:a0,lefty:a1,misc1:b4,rightshoulder:b6,rightstick:b13,righttrigger:b8,rightx:a2,righty:a3,start:b10,x:b3,y:b2,platform:Linux, +05000000010000000100000003000000,Nintendo Wii Remote,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +050000007e0500003003000001000000,Nintendo Wii U Pro Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux, +050000005a1d00000218000003000000,Nokia GC 5000,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000007e0500007320000011010000,NSO GameCube Controller,a:b1,b:b3,dpdown:b8,dpleft:b10,dpright:b9,dpup:b11,guide:b16,leftshoulder:b13,lefttrigger:b12,leftx:a0,lefty:a1~,rightshoulder:b5,righttrigger:b4,rightx:a2,righty:a3~,start:b6,x:b0,y:b2,platform:Linux, +030000007e0500001920000011810000,NSO N64 Controller,+rightx:b2,+righty:b3,-rightx:b4,-righty:b10,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b5,rightshoulder:b7,righttrigger:b9,start:b11,platform:Linux, +050000007e0500001920000001000000,NSO N64 Controller,+rightx:b8,+righty:b7,-rightx:b3,-righty:b2,a:b1,b:b0,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,righttrigger:b10,start:b9,platform:Linux, +050000007e0500001920000001800000,NSO N64 Controller,+rightx:b2,+righty:b3,-rightx:b4,-righty:b10,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,lefttrigger:b8,leftx:a0,lefty:a1,misc1:b5,rightshoulder:b7,righttrigger:b9,start:b11,platform:Linux, +030000007e0500001e20000011810000,NSO Sega Genesis Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,misc1:b3,rightshoulder:b2,righttrigger:b4,start:b5,platform:Linux, +030000007e0500001720000011810000,NSO SNES Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b2,platform:Linux, +050000007e0500001720000001000000,NSO SNES Controller,a:b0,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,lefttrigger:b7,rightshoulder:b6,righttrigger:b8,start:b10,x:b3,y:b2,platform:Linux, +050000007e0500001720000001800000,NSO SNES Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b2,platform:Linux, +03000000550900001072000011010000,NVIDIA Controller,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b8,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux, +03000000550900001472000011010000,NVIDIA Controller,a:b0,b:b1,back:b14,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b4,leftstick:b7,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b8,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Linux, +05000000550900001472000001000000,NVIDIA Controller,a:b0,b:b1,back:b14,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b4,leftstick:b7,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b8,rightshoulder:b5,rightstick:b8,righttrigger:a4,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Linux, +030000004b120000014d000000010000,Nyko Airflo EX,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux, +03000000451300000830000010010000,Nyko CORE,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +19000000010000000200000011000000,ODROID Go 2,a:b1,b:b0,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b12,leftshoulder:b4,leftstick:b14,lefttrigger:b13,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b15,righttrigger:b16,start:b17,x:b2,y:b3,platform:Linux, +05000000362800000100000002010000,OUYA Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b2,platform:Linux, +05000000362800000100000003010000,OUYA Controller,a:b0,b:b3,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,guide:b14,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b2,platform:Linux, +05000000362800000100000004010000,OUYA Controller,a:b0,b:b3,back:b14,dpdown:b9,dpleft:b10,dpright:b11,dpup:b8,leftshoulder:b4,leftstick:b6,lefttrigger:b12,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:b13,rightx:a3,righty:a4,start:b16,x:b1,y:b2,platform:Linux, +03000000ff1100003133000010010000,PC Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000006f0e0000b802000001010000,PDP Afterglow Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e0000b802000013020000,PDP Afterglow Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00006401000001010000,PDP Battlefield One,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e0000d702000006640000,PDP Black Camo Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:b13,dpleft:b14,dpright:b13,dpup:b14,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00003101000000010000,PDP EA Sports Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00008501000011010000,PDP Fightpad Pro Gamecube Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +030000006f0e0000c802000012010000,PDP Kingdom Hearts Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00002f01000011010000,PDP PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00002801000011010000,PDP PS3 Rock Candy Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00000901000011010000,PDP PS3 Versus Fighting,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +03000000ad1b000004f9000000010000,PDP Xbox 360 Versus Fighting,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:a2,rightshoulder:b5,righttrigger:a5,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e0000f102000000000000,PDP Xbox Atomic,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e0000a802000023020000,PDP Xbox One Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +030000006f0e0000a702000023020000,PDP Xbox One Raven Black,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e0000d802000006640000,PDP Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e0000ef02000007640000,PDP Xbox Series Kinetic Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c62400000053000000010000,PowerA,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c62400003a54000001010000,PowerA 1428124-01,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d62000000540000001010000,PowerA Advantage Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d620000011a7000011010000,PowerA Core Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000dd62000015a7000011010000,PowerA Fusion Nintendo Switch Arcade Stick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000d620000012a7000011010000,PowerA Fusion Nintendo Switch Fight Pad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000d62000000140000001010000,PowerA Fusion Pro 2 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000dd62000016a7000000000000,PowerA Fusion Pro Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000c62400001a53000000010000,PowerA Mini Pro Ex,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d620000013a7000011010000,PowerA Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000d62000006dca000011010000,PowerA Pro Ex,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000d620000014a7000011010000,PowerA Spectra Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000c62400001a58000001010000,PowerA Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d62000000220000001010000,PowerA Xbox One Controller,a:b0,b:b1,back:b7,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Linux, +03000000d62000000228000001010000,PowerA Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c62400001a54000001010000,PowerA Xbox One Mini Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d62000000240000001010000,PowerA Xbox One Spectra Infinity,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d62000000520000050010000,PowerA Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d62000000b20000001010000,PowerA Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d62000000f20000001010000,PowerA Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b7,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000d62000006520000002010000,PowerA Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006d040000d2ca000011010000,Precision Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000250900000017000010010000,PS SS N64 Adapter,a:b1,b:b2,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b5,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2~,righty:a3,start:b8,platform:Linux, +03000000ff1100004133000010010000,PS2 Controller,a:b2,b:b1,back:b8,leftshoulder:b6,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux, +03000000120c0000160e000011010000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000341a00003608000011010000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000004c0500006802000010010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux, +030000004c0500006802000010810000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +030000004c0500006802000011010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux, +030000004c0500006802000011810000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +030000005f1400003102000010010000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000006f0e00001402000011010000,PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000008f0e00000300000010010000,PS3 Controller,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +050000004c0500006802000000000000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux, +050000004c0500006802000000010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:a12,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:a13,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux, +050000004c0500006802000000800000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +050000004c0500006802000000810000,PS3 Controller,a:b0,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +05000000504c415953544154494f4e00,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux, +060000004c0500006802000000010000,PS3 Controller,a:b14,b:b13,back:b0,dpdown:b6,dpleft:b7,dpright:b5,dpup:b4,guide:b16,leftshoulder:b10,leftstick:b1,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b11,rightstick:b2,righttrigger:b9,rightx:a2,righty:a3,start:b3,x:b15,y:b12,platform:Linux, +030000004c050000a00b000011010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000004c050000a00b000011810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +030000004c050000c405000000810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +030000004c050000c405000011010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000004c050000c405000011810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +030000004c050000cc09000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000004c050000cc09000011010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000004c050000cc09000011810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +03000000c01100000140000011010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +050000004c050000c405000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +050000004c050000c405000000810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +050000004c050000c405000001800000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +050000004c050000cc09000000010000,PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +050000004c050000cc09000000810000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +050000004c050000cc09000001800000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +0300004b4c0500005f0e000011010000,PS5 Access Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000004c050000e60c000011010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000004c050000e60c000011810000,PS5 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +030000004c050000f20d000011010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b14,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000004c050000f20d000011810000,PS5 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +050000004c050000e60c000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +050000004c050000e60c000000810000,PS5 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +050000004c050000f20d000000010000,PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +050000004c050000f20d000000810000,PS5 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b11,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:Linux, +03000000300f00001211000011010000,Qanba Arcade Joystick,a:b2,b:b0,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b5,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:b6,start:b9,x:b1,y:b3,platform:Linux, +03000000222c00000225000011010000,Qanba Dragon Arcade Joystick PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000222c00000025000011010000,Qanba Dragon Arcade Joystick PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000222c00001220000011010000,Qanba Drone 2 Arcade Joystick PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000222c00001020000011010000,Qanba Drone 2 Arcade Joystick PS5,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000222c00000020000011010000,Qanba Drone Arcade PS4 Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,rightshoulder:b5,righttrigger:a4,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000300f00001210000010010000,Qanba Joystick Plus,a:b0,b:b1,back:b8,leftshoulder:b5,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b4,righttrigger:b6,start:b9,x:b2,y:b3,platform:Linux, +03000000222c00000223000011010000,Qanba Obsidian Arcade Joystick PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000222c00000023000011010000,Qanba Obsidian Arcade Joystick PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000009b2800000300000001010000,Raphnet 4nes4snes,a:b0,b:b4,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Linux, +030000009b2800004200000001010000,Raphnet Dual NES Adapter,a:b0,b:b1,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b3,platform:Linux, +030000009b2800006500000000000000,Raphnet GameCube Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Linux, +030000009b2800006500000001010000,Raphnet GameCube Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Linux, +03000000401700007f05000001010000,Raphnet GC and N64 Adapter,a:b5,b:b3,back:b8,dpdown:b10,dpleft:b12,dpright:b11,dpup:b9,leftshoulder:b6,lefttrigger:-a4,leftx:a0,lefty:a1,rightshoulder:b7,righttrigger:-a5,rightx:a2,righty:a3,start:b1,x:b4,y:b2,platform:Linux, +030000009b2800003200000001010000,Raphnet GC and N64 Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Linux, +030000009b2800006000000001010000,Raphnet GC and N64 Adapter,a:b0,b:b7,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b2,righttrigger:b5,rightx:a3,righty:a4,start:b3,x:b1,y:b8,platform:Linux, +030000009b2800003c00000001010000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Linux, +030000009b2800006100000001010000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Linux, +030000009b2800006300000001010000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Linux, +030000009b2800006400000001010000,Raphnet N64 Adapter,+rightx:b9,+righty:b7,-rightx:b8,-righty:b6,a:b0,b:b1,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,leftshoulder:b4,lefttrigger:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Linux, +030000009b2800008000000020020000,Raphnet Wii Classic Adapter,a:b1,b:b4,back:b2,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Linux, +030000009b2800008000000001010000,Raphnet Wii Classic Adapter V3,a:b1,b:b4,back:b2,dpdown:b13,dpleft:b14,dpright:b15,dpup:b12,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b5,platform:Linux, +03000000f8270000bf0b000011010000,Razer Kishi,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000008916000001fd000024010000,Razer Onza Classic Edition,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000321500000204000011010000,Razer Panthera PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000321500000104000011010000,Razer Panthera PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000321500000810000011010000,Razer Panthera PS4 Evo Arcade Stick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000321500000010000011010000,Razer Raiju,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000321500000507000000010000,Razer Raiju Mobile,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b21,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000321500000a10000001000000,Razer Raiju Tournament Edition,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b13,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000321500000011000011010000,Razer Raion PS4 Fightpad,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000008916000000fe000024010000,Razer Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c6240000045d000024010000,Razer Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c6240000045d000025010000,Razer Sabertooth,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000321500000009000011010000,Razer Serval,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux, +050000003215000000090000163a0000,Razer Serval,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux, +0300000032150000030a000001010000,Razer Wildcat,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000321500000b10000011010000,Razer Wolverine PS5 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +0300000032150000140a000001010000,Razer Wolverine Ultimate Xbox,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000000d0f0000c100000010010000,Retro Bit Legacy16,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b12,leftshoulder:b4,lefttrigger:b6,misc1:b13,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +03000000790000001100000010010000,Retro Controller,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b4,righttrigger:b5,start:b9,x:b0,y:b3,platform:Linux, +03000000632500007805000011010000,Retro Fighters D6,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000790000001600000011010000,Retro Fighters D6,a:b1,b:b2,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b10,rightshoulder:b5,righttrigger:b7,start:b9,x:b0,y:b3,platform:Linux, +0300000003040000c197000011010000,Retrode Adapter,a:b0,b:b4,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b1,y:b5,platform:Linux, +190000004b4800000111000000010000,RetroGame Joypad,a:b1,b:b0,back:b8,dpdown:b14,dpleft:b15,dpright:b16,dpup:b13,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +0300000081170000990a000001010000,Retronic Adapter,a:b0,leftx:a0,lefty:a1,platform:Linux, +0300000000f000000300000000010000,RetroPad,a:b1,b:b5,back:b2,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Linux, +00000000526574726f53746f6e653200,RetroStone 2 Controller,a:b1,b:b0,back:b10,dpdown:b15,dpleft:b16,dpright:b17,dpup:b14,leftshoulder:b6,lefttrigger:b8,rightshoulder:b7,righttrigger:b9,start:b11,x:b4,y:b3,platform:Linux, +03000000341200000400000000010000,RetroUSB N64 RetroPort,+rightx:b8,+righty:b10,-rightx:b9,-righty:b11,a:b7,b:b6,dpdown:b2,dpleft:b1,dpright:b0,dpup:b3,leftshoulder:b13,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b12,start:b4,platform:Linux, +030000006b140000010d000011010000,Revolution Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000006b140000130d000011010000,Revolution Pro Controller 3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00001f01000000010000,Rock Candy,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00008701000011010000,Rock Candy Nintendo Switch Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00001e01000011010000,Rock Candy PS3 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000c6240000fefa000000010000,Rock Candy Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00004601000001010000,Rock Candy Xbox One Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000008305000000a0000010010000,Rockfire MaxFire G08XU,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,x:b2,y:b3,platform:Linux, +03000000830500005020000010010000,Rockfire PlayStation Bridge,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b11,x:b2,y:b3,platform:Linux, +030000006f0e00001311000011010000,Saffun Controller,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b0,platform:Linux, +03000000a306000023f6000011010000,Saitek Cyborg PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Linux, +03000000a30600001005000000010000,Saitek P150,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b7,lefttrigger:b6,rightshoulder:b2,righttrigger:b5,x:b3,y:b4,platform:Linux, +03000000a30600000701000000010000,Saitek P220,a:b2,b:b3,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b4,righttrigger:b5,x:b0,y:b1,platform:Linux, +03000000a30600000cff000010010000,Saitek P2500 Force Rumble,a:b2,b:b3,back:b11,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,start:b10,x:b0,y:b1,platform:Linux, +03000000a30600000d5f000010010000,Saitek P2600,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b11,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,rightx:a3,righty:a2,start:b8,x:b0,y:b3,platform:Linux, +03000000a30600000c04000011010000,Saitek P2900,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b12,x:b0,y:b3,platform:Linux, +03000000a306000018f5000010010000,Saitek P3200 Rumble,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Linux, +03000000300f00001201000010010000,Saitek P380,a:b2,b:b3,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b9,x:b0,y:b1,platform:Linux, +03000000a30600000901000000010000,Saitek P880,a:b2,b:b3,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a3,righty:a2,x:b0,y:b1,platform:Linux, +03000000a30600000b04000000010000,Saitek P990 Dual Analog,a:b1,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a2,start:b8,x:b0,y:b3,platform:Linux, +03000000a306000020f6000011010000,Saitek PS2700 Rumble,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a4,start:b9,x:b0,y:b3,platform:Linux, +05000000e804000000a000001b010000,Samsung EIGP20,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftx:a0,lefty:a1,rightshoulder:b7,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000d81d00000e00000010010000,Savior,a:b0,b:b1,back:b8,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b11,righttrigger:b3,start:b9,x:b4,y:b5,platform:Linux, +03000000952e00004b43000011010000,Scuf Envision,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Linux, +03000000952e00004d43000011010000,Scuf Envision,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Linux, +03000000952e00004e43000011010000,Scuf Envision,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b9,righttrigger:a4,rightx:a2,righty:a5,start:b7,x:b2,y:b3,platform:Linux, +03000000a30c00002500000011010000,Sega Genesis Mini 3B Controller,a:b2,b:b1,dpdown:+a4,dpleft:-a3,dpright:+a3,dpup:-a4,righttrigger:b5,start:b9,platform:Linux, +03000000790000001100000011010000,Sega Saturn,a:b1,b:b2,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b4,start:b9,x:b0,y:b3,platform:Linux, +03000000b40400000a01000000010000,Sega Saturn,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b7,rightshoulder:b5,righttrigger:b2,start:b8,x:b3,y:b4,platform:Linux, +03000000632500002305000010010000,ShanWan Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000632500002605000010010000,ShanWan Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000632500002705000010010000,ShanWan Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,start:b11,x:b3,y:b4,platform:Linux, +03000000632500007505000010010000,ShanWan Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000bc2000000055000010010000,ShanWan Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000632500007606000000000000,ShanWan Gamepad,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,start:b11,x:b3,y:b4,platform:Linux, +03000000341a00000908000010010000,SL6566,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +03000000250900000500000000010000,SmartJoy PlayStation Adapter,a:b2,b:b1,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux, +030000004b2900000430000011000000,Snakebyte Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000790000002601000011010000,SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Linux, +050000004c050000cc09000001000000,Sony DualShock 4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +03000000666600006706000000010000,Sony PlayStation Adapter,a:b2,b:b1,back:b8,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b9,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b10,righttrigger:b5,rightx:a2,righty:a3,start:b11,x:b3,y:b0,platform:Linux, +03000000d9040000160f000000010000,Sony PlayStation Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux, +030000004c050000da0c000011010000,Sony PlayStation Classic Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b7,righttrigger:b5,start:b9,x:b3,y:b0,platform:Linux, +03000000ff000000cb01000010010000,Sony PlayStation Portable,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Linux, +030000004c0500003713000011010000,Sony PlayStation Vita,a:b1,b:b2,back:b8,dpdown:b13,dpleft:b15,dpright:b14,dpup:b12,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,rightx:a3,righty:a4,start:b9,x:b0,y:b3,platform:Linux, +030000005e0400008e02000073050000,Speedlink Torid,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000020200000,SpeedLink Xeox Pro Analog,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000de280000ff11000001000000,Steam Virtual Gamepad,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +05000000381000001214000001000000,SteelSeries Free,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a3,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000381000004114000000010000,SteelSeries Nimbus Cloud,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b5,paddle2:b2,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000004e696d6275732b0000000000,SteelSeries Nimbus Plus,a:b0,b:b1,back:b10,guide:b11,leftshoulder:b4,leftstick:b8,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:b7,rightx:a2,righty:a3,start:b12,x:b2,y:b3,platform:Linux, +03000000381000003014000075010000,SteelSeries Stratus Duo,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000381000003114000075010000,SteelSeries Stratus Duo,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +0500000011010000311400001b010000,SteelSeries Stratus Duo,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b32,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +05000000110100001914000009010000,SteelSeries Stratus XL,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000ad1b000038f0000090040000,Street Fighter IV Fightstick TE,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000003b07000004a1000000010000,Suncom SFX Plus,a:b0,b:b2,back:b7,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,lefttrigger:b4,rightshoulder:b9,righttrigger:b5,start:b8,x:b1,y:b3,platform:Linux, +030000001f08000001e4000010010000,Super Famicom Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Linux, +03000000666600000488000000010000,Super Joy Box 5 Pro,a:b2,b:b1,back:b9,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a2,righty:a3,start:b8,x:b3,y:b0,platform:Linux, +0300000000f00000f100000000010000,Super RetroPort,a:b1,b:b5,back:b2,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b6,rightshoulder:b7,start:b3,x:b0,y:b4,platform:Linux, +030000008f0e00000d31000010010000,SZMY Power 3 Turbo,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000457500000401000011010000,SZMY Power DS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,misc1:b13,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000457500002211000010010000,SZMY Power Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +030000008f0e00001431000010010000,SZMY Power PS3,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000e40a00000307000011010000,Taito Egret II Mini Control Panel,a:b4,b:b2,back:b6,guide:b9,leftx:a0,lefty:a1,rightshoulder:b0,righttrigger:b1,start:b7,x:b8,y:b3,platform:Linux, +03000000e40a00000207000011010000,Taito Egret II Mini Controller,a:b4,b:b2,back:b6,guide:b9,leftx:a0,lefty:a1,rightshoulder:b0,righttrigger:b1,start:b7,x:b8,y:b3,platform:Linux, +03000000ba2200000701000001010000,Technology Innovation PlayStation Adapter,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a5,righty:a2,start:b9,x:b3,y:b2,platform:Linux, +03000000790000001c18000011010000,TGZ Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b15,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000591c00002400000010010000,THEC64 Joystick,a:b0,b:b1,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Linux, +03000000591c00002600000010010000,THEGamepad,a:b2,b:b1,back:b6,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b3,y:b0,platform:Linux, +030000004f04000015b3000001010000,Thrustmaster Dual Analog 3.2,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux, +030000004f04000015b3000010010000,Thrustmaster Dual Analog 4,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux, +030000004f04000020b3000010010000,Thrustmaster Dual Trigger,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux, +030000004f04000023b3000000010000,Thrustmaster Dual Trigger PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000004f0400000ed0000011010000,Thrustmaster eSwap Pro Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000b50700000399000000010000,Thrustmaster Firestorm Digital 2,a:b2,b:b4,back:b11,leftshoulder:b6,leftstick:b10,lefttrigger:b7,leftx:a0,lefty:a1,rightshoulder:b8,rightstick:b0,righttrigger:b9,start:b1,x:b3,y:b5,platform:Linux, +030000004f04000003b3000010010000,Thrustmaster Firestorm Dual Analog 2,a:b0,b:b2,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b9,rightx:a2,righty:a3,x:b1,y:b3,platform:Linux, +030000004f04000000b3000010010000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b9,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b11,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b10,x:b1,y:b3,platform:Linux, +030000004f04000004b3000010010000,Thrustmaster Firestorm Dual Power,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux, +030000004f04000026b3000002040000,Thrustmaster GP XID,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c6240000025b000002020000,Thrustmaster GPX,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000004f04000008d0000000010000,Thrustmaster Run N Drive PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000004f04000009d0000000010000,Thrustmaster Run N Drive PlayStation Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000004f04000007d0000000010000,Thrustmaster T Mini,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +030000004f04000012b3000010010000,Thrustmaster Vibrating Gamepad,a:b0,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b6,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b1,y:b3,platform:Linux, +03000000571d00002000000010010000,Tomee SNES Adapter,a:b0,b:b1,back:b6,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b7,x:b2,y:b3,platform:Linux, +03000000bd12000015d0000010010000,Tomee SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,start:b9,x:b3,y:b0,platform:Linux, +03000000d814000007cd000011010000,Toodles 2008 Chimp PC PS3,a:b0,b:b1,back:b8,leftshoulder:b4,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b7,start:b9,x:b3,y:b2,platform:Linux, +030000005e0400008e02000070050000,Torid,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000c01100000591000011010000,Torid,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000680a00000300000003000000,TRBot Virtual Joypad,a:b11,b:b12,back:b15,dpdown:b6,dpleft:b3,dpright:b4,dpup:b5,leftshoulder:b17,leftstick:b21,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b22,righttrigger:a2,rightx:a3,righty:a4,start:b16,x:b13,y:b14,platform:Linux, +03000000780300000300000003000000,TRBot Virtual Joypad,a:b11,b:b12,back:b15,dpdown:b6,dpleft:b3,dpright:b4,dpup:b5,leftshoulder:b17,leftstick:b21,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b22,righttrigger:a2,rightx:a3,righty:a4,start:b16,x:b13,y:b14,platform:Linux, +03000000e00d00000300000003000000,TRBot Virtual Joypad,a:b11,b:b12,back:b15,dpdown:b6,dpleft:b3,dpright:b4,dpup:b5,leftshoulder:b17,leftstick:b21,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b22,righttrigger:a2,rightx:a3,righty:a4,start:b16,x:b13,y:b14,platform:Linux, +03000000f00600000300000003000000,TRBot Virtual Joypad,a:b11,b:b12,back:b15,dpdown:b6,dpleft:b3,dpright:b4,dpup:b5,leftshoulder:b17,leftstick:b21,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b22,righttrigger:a2,rightx:a3,righty:a4,start:b16,x:b13,y:b14,platform:Linux, +030000005f140000c501000010010000,Trust Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b0,platform:Linux, +03000000f51000001370000000000000,Turtle Beach ReactR,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000f51000001370000000010000,Turtle Beach ReactR,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +06000000f51000000870000003010000,Turtle Beach Recon,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +05000000f51000008f01000001000000,Turtle Beach Rematch Nintendo Switch Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +03000000100800000100000010010000,Twin PlayStation Adapter,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux, +03000000c0160000e105000010010000,Ultimate Atari Fight Stick,a:b1,b:b2,back:b9,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,rightshoulder:b4,righttrigger:b5,start:b8,x:b0,y:b3,platform:Linux, +03000000151900005678000010010000,Uniplay U6,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +03000000100800000300000010010000,USB Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b3,y:b0,platform:Linux, +03000000790000000600000007010000,USB Gamepad,a:b2,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a3,righty:a4,start:b9,x:b3,y:b0,platform:Linux, +03000000790000001100000000010000,USB Gamepad,a:b2,b:b1,back:b8,dpdown:a0,dpleft:a1,dpright:a2,dpup:a4,start:b9,platform:Linux, +03000000de2800000112000001000000,Valve Steam Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b10,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux, +03000000de2800000112000011010000,Valve Steam Controller,a:b2,b:b3,back:b10,dpdown:+a5,dpleft:-a4,dpright:+a4,dpup:-a5,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a7,leftx:a0,lefty:a1,paddle1:b15,paddle2:b16,rightshoulder:b7,rightstick:b14,righttrigger:a6,rightx:a2,righty:a3,start:b11,x:b4,y:b5,platform:Linux, +03000000de2800000211000001000000,Valve Steam Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b10,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux, +03000000de2800000211000011010000,Valve Steam Controller,a:b2,b:b3,back:b10,dpdown:b18,dpleft:b19,dpright:b20,dpup:b17,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:b8,leftx:a0,lefty:a1,paddle1:b16,paddle2:b15,rightshoulder:b7,righttrigger:b9,rightx:a2,righty:a3,start:b11,x:b4,y:b5,platform:Linux, +03000000de2800004211000001000000,Valve Steam Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b10,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux, +03000000de2800004211000011010000,Valve Steam Controller,a:b2,b:b3,back:b10,dpdown:b18,dpleft:b19,dpright:b20,dpup:b17,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a7,leftx:a0,lefty:a1,paddle1:b16,paddle2:b15,rightshoulder:b7,righttrigger:a6,rightx:a2,righty:a3,start:b11,x:b4,y:b5,platform:Linux, +03000000de280000fc11000001000000,Valve Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +05000000de2800000212000001000000,Valve Steam Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b10,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux, +05000000de2800000511000001000000,Valve Steam Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b10,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux, +05000000de2800000611000001000000,Valve Steam Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b15,dpright:b13,dpup:b12,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b10,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Linux, +03000000de2800000512000010010000,Valve Steam Deck,a:b3,b:b4,back:b11,dpdown:b17,dpleft:b18,dpright:b19,dpup:b16,guide:b13,leftshoulder:b7,leftstick:b14,lefttrigger:a9,leftx:a0,lefty:a1,rightshoulder:b8,rightstick:b15,righttrigger:a8,rightx:a2,righty:a3,start:b12,x:b5,y:b6,platform:Linux, +03000000de2800000512000011010000,Valve Steam Deck,a:b3,b:b4,back:b11,dpdown:b17,dpleft:b18,dpright:b19,dpup:b16,guide:b13,leftshoulder:b7,leftstick:b14,lefttrigger:a9,leftx:a0,lefty:a1,misc1:b2,paddle1:b21,paddle2:b20,paddle3:b23,paddle4:b22,rightshoulder:b8,rightstick:b15,righttrigger:a8,rightx:a2,righty:a3,start:b12,x:b5,y:b6,platform:Linux, +03000000790000001a18000011010000,Venom PS4 Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b0,y:b3,platform:Linux, +03000000790000001b18000011010000,Venom PS4 Arcade Joystick,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +030000006f0e00000302000011010000,Victrix Pro Fightstick PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +030000006f0e00000702000011010000,Victrix Pro Fightstick PS4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:b6,rightshoulder:b5,righttrigger:b7,start:b9,touchpad:b13,x:b0,y:b3,platform:Linux, +05000000ac0500003232000001000000,VR Box Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b10,lefttrigger:b4,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b11,righttrigger:b5,rightx:a3,righty:a2,start:b9,x:b2,y:b3,platform:Linux, +05000000434f4d4d414e440000000000,VX Gaming Command Series,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +0000000058626f782033363020576900,Xbox 360 Controller,a:b0,b:b1,back:b14,dpdown:b11,dpleft:b12,dpright:b13,dpup:b10,guide:b7,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Linux, +030000005e0400001907000000010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000000010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000002010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000010010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000014010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000047010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400008e02000072050000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400009102000007010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000a102000000010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000a102000007010000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000a102000030060000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000006f0e00001503000000020000,Xbox 360 Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000a102000014010000,Xbox 360 Receiver,a:b0,b:b1,back:b6,dpdown:b14,dpleft:b11,dpright:b12,dpup:b13,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +0000000058626f782047616d65706100,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a4,rightx:a2,righty:a3,start:b7,x:b2,y:b3,platform:Linux, +030000005e0400000202000000010000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux, +030000006f0e00001304000000010000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000ffff0000ffff000000010000,Xbox Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b5,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b2,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b3,y:b4,platform:Linux, +030000005e0400000a0b000005040000,Xbox One Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b11,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b12,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b3,y:b2,platform:Linux, +030000005e040000d102000002010000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000ea02000000000000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000ea02000001030000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000ea02000011050000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000ea02000015050000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000ea02000017050000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +050000005e040000200b000013050000,Xbox One Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000200b000017050000,Xbox One Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000200b000023050000,Xbox One Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000220b000017050000,Xbox One Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000e002000003090000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b10,leftshoulder:b4,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b9,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +050000005e040000fd02000003090000,Xbox One Controller,a:b0,b:b1,back:b15,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b16,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000fd02000030110000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +060000005e040000dd02000003020000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +060000005e040000ea0200000b050000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +060000005e040000ea0200000d050000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +060000005e040000ea02000016050000,Xbox One Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +050000005e040000e302000002090000,Xbox One Elite,a:b0,b:b1,back:b136,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a6,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000220b000013050000,Xbox One Elite 2 Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000050b000002090000,Xbox One Elite Series 2,a:b0,b:b1,back:b136,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b6,leftstick:b13,lefttrigger:a6,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a5,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +030000005e040000120b000001050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b000005050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b000007050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b000009050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b00000d050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b00000f050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b000011050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b000014050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000120b000015050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +030000005e040000130b000005050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000130b000001050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000130b000005050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000130b000007050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000130b000009050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000130b000011050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000130b000013050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000130b000015050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000130b000017050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000130b000022050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +050000005e040000130b000023050000,Xbox Series Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b6,leftstick:b13,lefttrigger:a5,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b7,rightstick:b14,righttrigger:a4,rightx:a2,righty:a3,start:b11,x:b3,y:b4,platform:Linux, +060000005e040000120b000007050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +060000005e040000120b00000b050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +060000005e040000120b00000d050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +060000005e040000120b00000f050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +060000005e040000120b000011050000,Xbox Series Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000450c00002043000010010000,XEOX SL6556 BK,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, +05000000172700004431000029010000,XiaoMi Controller,a:b0,b:b1,back:b10,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b20,leftshoulder:b6,leftstick:b13,lefttrigger:a7,leftx:a0,lefty:a1,rightshoulder:b7,rightstick:b14,righttrigger:a6,rightx:a2,righty:a5,start:b11,x:b3,y:b4,platform:Linux, +03000000c0160000e105000001010000,XinMo Dual Arcade,a:b4,b:b3,back:b6,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b9,leftshoulder:b2,leftx:a0,lefty:a1,rightshoulder:b5,start:b7,x:b1,y:b0,platform:Linux, +030000005e0400008e02000020010000,XInput Adapter,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +xinput,XInput Controller,a:b0,b:b1,back:b6,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,start:b7,x:b2,y:b3,platform:Linux, +03000000120c0000100e000011010000,Zeroplus P4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000120c0000101e000011010000,Zeroplus P4,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000120c0000182e000011010000,Zeroplus PS4 Controller,a:b1,b:b2,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b12,leftshoulder:b4,leftstick:b10,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:a4,rightx:a2,righty:a5,start:b9,x:b0,y:b3,platform:Linux, +03000000790000002201000011010000,ZhiXu GuliKit D,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b10,lefttrigger:b6,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b11,righttrigger:b7,rightx:a2,righty:a3,start:b9,x:b2,y:b3,platform:Linux, + +# Android +38653964633230666463343334313533,8BitDo Adapter,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +36666264316630653965636634386234,8BitDo Adapter 2,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b19,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +38426974446f20417263616465205374,8BitDo Arcade Stick,a:b0,b:b1,back:b15,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b5,leftshoulder:b9,lefttrigger:a4,rightshoulder:b10,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +61393962646434393836356631636132,8BitDo Arcade Stick,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b20,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b19,y:b2,platform:Android, +64323139346131306233636562663738,8BitDo Arcade Stick,a:b0,b:b1,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b19,y:b2,platform:Android, +64643565386136613265663236636564,8BitDo Arcade Stick,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b20,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b19,y:b2,platform:Android, +33313433353539306634656436353432,8BitDo Dogbone,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +38426974446f20446f67626f6e65204d,8BitDo Dogbone,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b6,platform:Android, +34343439373236623466343934376233,8BitDo FC30 Pro,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b28,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b4,rightstick:b29,righttrigger:b7,start:b5,x:b30,y:b2,platform:Android, +38426974446f204e4743204d6f646b69,8BitDo GameCube,a:b0,b:b2,back:b4,dpdown:b12,dpleft:b13,dpright:b14,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,paddle1:b18,paddle2:b17,rightshoulder:b15,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b1,y:b3,platform:Android, +38426974446f2038426974446f204c69,8BitDo Lite,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +30643332373663313263316637356631,8BitDo Lite 2,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38426974446f204c6974652032000000,8BitDo Lite 2,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +62656331626461363634633735353032,8BitDo Lite 2,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38393936616436383062666232653338,8BitDo Lite SE,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38426974446f204c6974652053450000,8BitDo Lite SE,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +39356430616562366466646636643435,8BitDo Lite SE,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000006500000ffff3f00,8BitDo M30,a:b1,b:b0,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b17,leftshoulder:b9,lefttrigger:a5,rightshoulder:b10,righttrigger:a4,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000051060000ffff3f00,8BitDo M30,a:b1,b:b0,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,guide:b17,leftshoulder:b9,lefttrigger:a4,rightshoulder:b10,righttrigger:a5,start:b6,x:b3,y:b2,platform:Android, +32323161363037623637326438643634,8BitDo M30,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftx:a0,lefty:a1,rightshoulder:b9,righttrigger:b10,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +33656266353630643966653238646264,8BitDo M30,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b20,righttrigger:a5,start:b10,x:b19,y:b2,platform:Android, +38426974446f204d3330204d6f646b69,8BitDo M30,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftx:a0,lefty:a1,rightshoulder:b9,righttrigger:b10,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +39366630663062373237616566353437,8BitDo M30,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:b18,start:b6,x:b2,y:b3,platform:Android, +64653533313537373934323436343563,8BitDo M30,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:a4,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b9,righttrigger:b10,start:b6,x:b2,y:b3,platform:Android, +66356438346136366337386437653934,8BitDo M30,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,righttrigger:b10,start:b18,x:b19,y:b2,platform:Android, +66393064393162303732356665666366,8BitDo M30,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:a5,start:b6,x:b2,y:b3,platform:Android, +38426974446f204d6963726f2067616d,8BitDo Micro,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,lefttrigger:a4,leftx:b0,lefty:b1,rightshoulder:b10,righttrigger:a5,rightx:b2,righty:b3,start:b6,x:b3,y:b2,platform:Android, +61653365323561356263373333643266,8BitDo Micro,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,lefttrigger:a4,leftx:b0,lefty:b1,rightshoulder:b10,righttrigger:a5,rightx:b2,righty:b3,start:b6,x:b3,y:b2,platform:Android, +62613137616239666338343866326336,8BitDo Micro,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,lefttrigger:a4,leftx:b0,lefty:b1,rightshoulder:b10,righttrigger:a5,rightx:b2,righty:b3,start:b6,x:b3,y:b2,platform:Android, +33663431326134333366393233616633,8BitDo N30,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b6,platform:Android, +38426974446f204e3330204d6f646b69,8BitDo N30,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,start:b6,platform:Android, +05000000c82d000015900000ffff3f00,8BitDo N30 Pro 2,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000065280000ffff3f00,8BitDo N30 Pro 2,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b17,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38323035343766666239373834336637,8BitDo N64,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:b18,rightx:a2,righty:a3,start:b6,platform:Android, +38426974446f204e3634204d6f646b69,8BitDo N64,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:b18,rightx:a2,righty:a3,start:b6,platform:Android, +32363135613966656338666638666237,8BitDo NEOGEO,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +35363534633333373639386466346631,8BitDo NEOGEO,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +38426974446f204e454f47454f204750,8BitDo NEOGEO,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +39383963623932353561633733306334,8BitDo NEOGEO,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000000220000000900000ffff3f00,8BitDo NES30 Pro,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +050000002038000009000000ffff3f00,8BitDo NES30 Pro,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38313433643131656262306631373166,8BitDo P30,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +38326536643339353865323063616339,8BitDo P30,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +38426974446f2050333020636c617373,8BitDo P30,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +35376664343164386333616535333434,8BitDo Pro 2,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b17,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b18,righttrigger:a5,rightx:a3,start:b10,x:b19,y:b2,platform:Android, +38426974446f2038426974446f205072,8BitDo Pro 2,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38426974446f2050726f203200000000,8BitDo Pro 2,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +61333362366131643730353063616330,8BitDo Pro 2,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +62373739366537363166326238653463,8BitDo Pro 2,a:b1,b:b0,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,x:b3,y:b2,platform:Android, +38386464613034326435626130396565,8BitDo Receiver,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b19,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38426974446f2038426974446f205265,8BitDo Receiver,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b19,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +66303230343038613365623964393766,8BitDo Receiver,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b19,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38426974446f20533330204d6f646b69,8BitDo S30,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:a4,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b9,righttrigger:b10,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +66316462353561376330346462316137,8BitDo S30,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:a4,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b9,righttrigger:b10,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +05000000c82d000000600000ffff3f00,8BitDo SF30 Pro,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b15,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b16,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000000610000ffff3f00,8BitDo SF30 Pro,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38426974646f20534633302050726f00,8BitDo SF30 Pro,a:b1,b:b0,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b16,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b17,platform:Android, +61623334636338643233383735326439,8BitDo SFC30,a:b0,b:b1,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b3,rightshoulder:b31,start:b5,x:b30,y:b2,platform:Android, +05000000c82d000012900000ffff3f00,8BitDo SN30,a:b1,b:b0,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,rightshoulder:b10,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000062280000ffff3f00,8BitDo SN30,a:b1,b:b0,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,rightshoulder:b10,start:b6,x:b3,y:b2,platform:Android, +38316230613931613964356666353839,8BitDo SN30,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38426974446f20534e3330204d6f646b,8BitDo SN30,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +65323563303231646531383162646335,8BitDo SN30,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +35383531346263653330306238353131,8BitDo SN30 PP,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +05000000c82d000001600000ffff3f00,8BitDo SN30 Pro,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000002600000ffff0f00,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b17,leftshoulder:b9,leftstick:b7,lefttrigger:b15,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b16,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +36653638656632326235346264663661,8BitDo SN30 Pro Plus,a:b0,b:b1,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b19,y:b2,platform:Android, +38303232393133383836366330346462,8BitDo SN30 Pro Plus,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b17,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b18,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b19,y:b2,platform:Android, +38346630346135363335366265656666,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38426974446f20534e33302050726f2b,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b19,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +536f6e7920436f6d707574657220456e,8BitDo SN30 Pro Plus,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +66306331643531333230306437353936,8BitDo SN30 Pro Plus,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +050000002028000009000000ffff3f00,8BitDo SNES30,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +050000003512000020ab000000780f00,8BitDo SNES30,a:b21,b:b20,back:b30,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b26,rightshoulder:b27,start:b31,x:b24,y:b23,platform:Android, +05000000c82d00001b30000000000000,8BitDo Ultimate 2C,a:b10,b:b1,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b19,leftshoulder:b4,leftstick:b17,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b18,righttrigger:b9,rightx:a2,righty:a3,start:b15,x:b3,y:b6,platform:Android, +33666663316164653937326237613331,8BitDo Zero,a:b0,b:b1,back:b15,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,rightshoulder:b10,start:b6,x:b2,y:b3,platform:Android, +38426974646f205a65726f2047616d65,8BitDo Zero,a:b0,b:b1,back:b15,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,rightshoulder:b10,start:b6,x:b2,y:b3,platform:Android, +05000000c82d000018900000ffff0f00,8BitDo Zero 2,a:b1,b:b0,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,rightshoulder:b10,start:b6,x:b3,y:b2,platform:Android, +05000000c82d000030320000ffff0f00,8BitDo Zero 2,a:b1,b:b0,back:b4,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,rightshoulder:b10,start:b6,x:b3,y:b2,platform:Android, +33663434393362303033616630346337,8BitDo Zero 2,a:b0,b:b1,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftx:a0,lefty:a1,rightshoulder:b20,start:b18,x:b19,y:b2,platform:Android, +34656330626361666438323266633963,8BitDo Zero 2,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b4,leftx:a0,lefty:a1,rightshoulder:b20,start:b10,x:b19,y:b2,platform:Android, +63396666386564393334393236386630,8BitDo Zero 2,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,start:b6,x:b3,y:b2,platform:Android, +63633435623263373466343461646430,8BitDo Zero 2,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftx:a0,lefty:a1,rightshoulder:b10,start:b6,x:b2,y:b3,platform:Android, +32333634613735616163326165323731,Amazon Luna Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,x:b2,y:b3,platform:Android, +4c696e757820342e31392e3137322077,Anbernic Handheld,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a4,start:b6,x:b2,y:b3,platform:Android, +417374726f2063697479206d696e6920,Astro City Mini,a:b23,b:b22,back:b29,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,rightshoulder:b25,righttrigger:b26,start:b30,x:b24,y:b21,platform:Android, +35643263313264386134376362363435,Atari VCS Classic Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,start:b6,platform:Android, +32353831643566306563643065356239,Atari VCS Modern Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +4f64696e20436f6e74726f6c6c657200,AYN Odin,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b14,dpright:b13,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:+a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:+a4,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +32303165626138343962363666346165,Brook Mars PS4 Controller,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b0,y:b2,platform:Android, +38383337343564366131323064613561,Brook Mars PS4 Controller,a:b1,b:b19,back:b17,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b0,y:b2,platform:Android, +34313430343161653665353737323365,Elecom JC-W01U,a:b23,b:b24,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b25,lefttrigger:b27,leftx:a0,lefty:a1,rightshoulder:b26,righttrigger:b28,rightx:a2,righty:a3,start:b30,x:b21,y:b22,platform:Android, +4875694a6961204a432d573031550000,Elecom JC-W01U,a:b23,b:b24,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b25,lefttrigger:b27,leftx:a0,lefty:a1,rightshoulder:b26,righttrigger:b28,rightx:a2,righty:a3,start:b30,x:b21,y:b22,platform:Android, +30363230653635633863366338623265,Evo VR,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftx:a0,lefty:a1,x:b2,y:b3,platform:Android, +05000000b404000011240000dfff3f00,Flydigi Vader 2,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,paddle1:b17,paddle2:b18,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +05000000bc20000000550000ffff3f00,GameSir G3w,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +05000000373500001611000000000000,GameSir X5 Lite,a:b0,b:b1,back:b16,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b19,leftshoulder:b4,leftstick:b17,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b18,righttrigger:b9,rightx:a2,righty:a3,start:b15,x:b3,y:b6,platform:Android, +34323662653333636330306631326233,Google Nexus,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +35383633353935396534393230616564,Google Stadia Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +476f6f676c65204c4c43205374616469,Google Stadia Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +5374616469614e3848532d6532633400,Google Stadia Controller,a:b0,b:b1,back:b15,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +05000000d6020000e5890000dfff3f00,GPD XD Plus,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Android, +05000000d6020000e5890000dfff3f80,GPD XD Plus,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a3,rightx:a4,righty:a5,start:b6,x:b2,y:b3,platform:Android, +66633030656131663837396562323935,Hori Battle,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Android, +35623466343433653739346434636330,Hori Fighting Commander 3 Pro,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b0,y:b2,platform:Android, +484f524920434f2e2c4c54442e203130,Hori Fighting Commander 3 Pro,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b20,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b3,righttrigger:b9,rightx:a2,righty:a3,start:b18,x:b0,y:b2,platform:Android, +484f524920434f2e2c4c544420205041,Hori Gem Pad 3,a:b1,b:b17,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b4,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b16,x:b0,y:b2,platform:Android, +65656436646661313232656661616130,Hori PC Engine Mini Controller,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,start:b18,platform:Android, +31303433326562636431653534636633,Hori Real Arcade Pro 3,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b0,y:b2,platform:Android, +32656664353964393561366362333636,Hori Switch Split Pad Pro,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Android, +30306539356238653637313730656134,Horipad Switch Pro Controller,a:b0,b:b1,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b19,y:b2,platform:Android, +48797065726b696e2050616400000000,Hyperkin Admiral N64 Controller,+rightx:b6,+righty:b7,-rightx:b17,-righty:b5,a:b1,b:b0,leftshoulder:b3,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b20,start:b18,platform:Android, +62333331353131353034386136626636,Hyperkin Admiral N64 Controller,+rightx:b6,+righty:b7,-rightx:b17,-righty:b5,a:b1,b:b0,leftshoulder:b3,lefttrigger:b8,leftx:a0,lefty:a1,rightshoulder:b20,start:b18,platform:Android, +31306635363562663834633739396333,Hyperkin N64 Adapter,a:b1,b:b19,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightx:a2,righty:a3,start:b18,platform:Android, +5368616e57616e202020202048797065,Hyperkin N64 Adapter,a:b1,b:b19,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightx:a2,righty:a3,start:b18,platform:Android, +0500000083050000602000000ffe0000,iBuffalo SNES Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b15,rightshoulder:b16,start:b10,x:b2,y:b3,platform:Android, +5553422c322d6178697320382d627574,iBuffalo Super Famicom Controller,a:b1,b:b0,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b17,rightshoulder:b18,start:b10,x:b3,y:b2,platform:Android, +64306137363261396266353433303531,InterAct GoPad,a:b24,b:b25,leftshoulder:b23,lefttrigger:b27,leftx:a0,lefty:a1,rightshoulder:b26,righttrigger:b28,x:b21,y:b22,platform:Android, +532e542e442e20496e74657261637420,InterAct HammerHead FX,a:b23,b:b24,back:b30,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b26,leftstick:b22,lefttrigger:b28,leftx:a0,lefty:a1,rightshoulder:b27,rightstick:b25,righttrigger:b29,rightx:a2,righty:a3,start:b31,x:b20,y:b21,platform:Android, +05000000300f00001201000000780f00,Jess Tech Dual Analog Pad,a:b22,b:b23,back:b28,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b24,leftstick:b30,lefttrigger:b25,leftx:a0,lefty:a1,rightshoulder:b26,rightstick:b31,righttrigger:b27,rightx:a3,righty:a2,start:b29,x:b20,y:b21,platform:Android, +39656136363638323036303865326464,JYS Aapter,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b0,y:b2,platform:Android, +63316564383539663166353034616434,JYS Adapter,a:b1,b:b3,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b0,y:b2,platform:Android, +64623163333561643339623235373232,Logitech F310,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +35623364393661626231343866613337,Logitech F710,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +4c6f6769746563682047616d65706164,Logitech F710,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +64396331333230326333313330336533,Logitech F710,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +39653365373864633935383236363438,Logitech G Cloud,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +33373336396634316434323337666361,Logitech RumblePad 2,a:b22,b:b23,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b25,lefttrigger:b27,leftx:a0,lefty:a1,rightshoulder:b26,righttrigger:b28,rightx:a2,righty:a3,start:b30,x:b21,y:b24,platform:Android, +416d617a6f6e2047616d6520436f6e74,Luna Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Android, +4c756e612047616d6570616400000000,Luna Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +30363066623539323534363639323363,Magic NS,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b0,y:b2,platform:Android, +31353762393935386662336365626334,Magic NS,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b0,y:b2,platform:Android, +39623565346366623931666633323530,Magic NS,a:b1,b:b3,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b0,y:b2,platform:Android, +6d6179666c617368206c696d69746564,Mayflash GameCube Adapter,a:b22,b:b21,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,lefttrigger:b25,leftx:a0,lefty:a1,rightshoulder:b28,righttrigger:b26,rightx:a5,righty:a2,start:b30,x:b23,y:b24,platform:Android, +436f6e74726f6c6c6572000000000000,Mayflash N64 Adapter,a:b1,b:b19,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightx:a2,righty:a3,start:b18,platform:Android, +65666330633838383061313633326461,Mayflash N64 Adapter,a:b1,b:b19,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightx:a2,righty:a3,start:b18,platform:Android, +37316565396364386635383230353365,Mayflash Saturn Adapter,a:b21,b:b22,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b26,lefttrigger:b28,rightshoulder:b27,righttrigger:b23,start:b30,x:b24,y:b25,platform:Android, +4875694a696120205553422047616d65,Mayflash Saturn Adapter,a:b21,b:b22,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b26,lefttrigger:b28,rightshoulder:b27,righttrigger:b23,start:b30,x:b24,y:b25,platform:Android, +535a4d792d706f776572204c54442043,Mayflash Wii Classic Adapter,a:b23,b:b22,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b31,leftshoulder:b27,lefttrigger:b25,leftx:a0,lefty:a1,rightshoulder:b28,righttrigger:b26,rightx:a2,righty:a3,start:b30,x:b24,y:b21,platform:Android, +30653962643666303631376438373532,Mayflash Wii DolphinBar,a:b23,b:b24,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b0,leftshoulder:b25,lefttrigger:b27,leftx:a0,lefty:a1,rightshoulder:b26,righttrigger:b28,rightx:a2,righty:a3,start:b30,x:b21,y:b22,platform:Android, +39346131396233376535393665363161,Mayflash Wii U Pro Adapter,a:b22,b:b23,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b25,leftstick:b31,lefttrigger:b27,rightshoulder:b26,rightstick:b0,righttrigger:b28,rightx:a0,righty:a1,start:b30,x:b21,y:b24,platform:Android, +31323564663862633234646330373138,Mega Drive,a:b23,b:b22,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,rightshoulder:b25,righttrigger:b26,start:b30,x:b24,y:b21,platform:Android, +37333564393261653735306132613061,Mega Drive,a:b21,b:b22,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b26,lefttrigger:b28,rightshoulder:b27,righttrigger:b23,start:b30,x:b24,y:b25,platform:Android, +64363363336633363736393038313464,Mega Drive,a:b1,b:b0,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,start:b9,x:b2,y:b3,platform:Android, +33323763323132376537376266393366,Microsoft Dual Strike,a:b24,b:b23,back:b25,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b27,lefttrigger:b29,rightshoulder:b78,rightx:a0,righty:a1~,start:b26,x:b22,y:b21,platform:Android, +30306461613834333439303734316539,Microsoft SideWinder Pro,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b20,lefttrigger:b9,rightshoulder:b19,righttrigger:b10,start:b17,x:b2,y:b3,platform:Android, +32386235353630393033393135613831,Microsoft Xbox Series Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +4d4f42415041442050726f2d48440000,Mobapad Chitu HD,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +4d4f435554452d303533582d4d35312d,Mocute 053X,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +33343361376163623438613466616531,Mocute M053,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +39306635663061636563316166303966,Mocute M053,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +7573622067616d657061642020202020,NEXT SNES Controller,a:b2,b:b1,back:b8,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b4,rightshoulder:b5,righttrigger:b6,start:b9,x:b3,y:b0,platform:Android, +65346535636333663931613264643164,Nintendo Switch Joy-Con,a:b21,b:b22,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b25,lefttrigger:b27,leftx:a0,lefty:a1,rightshoulder:b26,righttrigger:b28,rightx:a2,righty:a3,start:b30,x:b23,y:b24,platform:Android, +33346566643039343630376565326335,Nintendo Switch Joy-Con (L),a:b0,b:b1,back:b7,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,rightshoulder:b20,start:b17,x:b19,y:b2,platform:Android, +35313531613435623366313835326238,Nintendo Switch Joy-Con (L),a:b0,b:b1,back:b7,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,rightshoulder:b20,start:b17,x:b19,y:b2,platform:Android, +4a6f792d436f6e20284c290000000000,Nintendo Switch Joy-Con (L),a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,rightshoulder:b20,start:b17,x:b19,y:b2,platform:Android, +38383665633039363066383334653465,Nintendo Switch Joy-Con (R),a:b0,b:b1,back:b5,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,rightshoulder:b20,start:b18,x:b19,y:b2,platform:Android, +39363561613936303237333537383931,Nintendo Switch Joy-Con (R),a:b0,b:b1,back:b5,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,rightshoulder:b20,start:b18,x:b19,y:b2,platform:Android, +39373064396565646338333134303131,Nintendo Switch Joy-Con (R),a:b1,b:b2,back:b5,leftstick:b8,leftx:a1~,lefty:a0,start:b6,x:b0,y:b3,platform:Android, +4a6f792d436f6e202852290000000000,Nintendo Switch Joy-Con (R),a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,rightshoulder:b20,start:b18,x:b19,y:b2,platform:Android, +050000007e05000009200000ffff0f00,Nintendo Switch Pro Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,leftstick:b4,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b16,x:b17,y:b2,platform:Android, +31316661666466633938376335383661,Nintendo Switch Pro Controller,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,misc1:b5,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,start:b6,x:b3,y:b2,platform:Android, +34323437396534643531326161633738,Nintendo Switch Pro Controller,a:b0,b:b1,back:b15,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,leftstick:b7,lefttrigger:b17,misc1:b5,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +50726f20436f6e74726f6c6c65720000,Nintendo Switch Pro Controller,a:b0,b:b1,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b2,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:b10,rightx:a2,righty:a3,start:b18,y:b3,platform:Android, +36326533353166323965623661303933,NSO N64 Controller,+rightx:b17,+righty:b10,-rightx:b2,-righty:b19,a:b1,b:b0,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,misc1:b7,rightshoulder:b20,righttrigger:b15,start:b18,platform:Android, +4e363420436f6e74726f6c6c65720000,NSO N64 Controller,+rightx:b17,+righty:b10,-rightx:b2,-righty:b19,a:b1,b:b0,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,misc1:b7,rightshoulder:b20,righttrigger:b15,start:b18,platform:Android, +534e455320436f6e74726f6c6c657200,NSO SNES Controller,a:b0,b:b1,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,rightshoulder:b20,start:b18,x:b19,y:b2,platform:Android, +64623863346133633561626136366634,NSO SNES Controller,a:b0,b:b1,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,rightshoulder:b20,start:b18,x:b19,y:b2,platform:Android, +050000005509000003720000cf7f3f00,NVIDIA Controller,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005509000010720000ffff3f00,NVIDIA Controller,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005509000014720000df7f3f00,NVIDIA Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Android, +050000005509000014720000df7f3f80,NVIDIA Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a3,rightx:a4,righty:a5,start:b6,x:b2,y:b3,platform:Android, +37336435666338653565313731303834,NVIDIA Controller,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +4e564944494120436f72706f72617469,NVIDIA Controller,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +61363931656135336130663561616264,NVIDIA Controller,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +39383335313438623439373538343266,OUYA Controller,a:b0,b:b2,dpdown:b18,dpleft:b15,dpright:b16,dpup:b17,leftshoulder:b3,leftstick:b9,lefttrigger:b5,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b10,righttrigger:b7,rightx:a3,righty:a4,x:b1,y:b19,platform:Android, +4f5559412047616d6520436f6e74726f,OUYA Controller,a:b0,b:b2,dpdown:b18,dpleft:b15,dpright:b6,dpup:b17,leftshoulder:b3,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b10,righttrigger:a5,rightx:a3,righty:a4,x:b1,y:b19,platform:Android, +506572666f726d616e63652044657369,PDP PS3 Rock Candy Controller,a:b1,b:b17,back:h0.2,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b4,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b16,x:b0,y:b2,platform:Android, +61653962353232366130326530363061,Pokken,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,lefttrigger:b9,rightshoulder:b20,righttrigger:b10,start:b18,x:b0,y:b2,platform:Android, +32666633663735353234363064386132,PS2 Controller,a:b23,b:b22,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b27,lefttrigger:b25,leftx:a0,lefty:a1,rightshoulder:b28,righttrigger:b26,rightx:a3,righty:a2,start:b30,x:b24,y:b21,platform:Android, +050000004c05000068020000dfff3f00,PS3 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +536f6e7920504c415953544154494f4e,PS3 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +61363034663839376638653463633865,PS3 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +66366539656564653432353139356536,PS3 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +66383132326164626636313737373037,PS3 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000004c050000c405000000783f00,PS4 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000004c050000c4050000fffe3f00,PS4 Controller,a:b1,b:b17,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,leftstick:b4,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:+a4,rightx:a2,righty:a5,start:b16,x:b0,y:b2,platform:Android, +050000004c050000c4050000fffe3f80,PS4 Controller,a:b1,b:b17,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,leftstick:b4,lefttrigger:+a2,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:+a3,rightx:a4,righty:a5,start:b16,x:b0,y:b2,platform:Android, +050000004c050000c4050000ffff3f00,PS4 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000004c050000cc090000fffe3f00,PS4 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000004c050000cc090000ffff3f00,PS4 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +30303839663330346632363232623138,PS4 Controller,a:b1,b:b17,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b0,y:b2,platform:Android, +31326235383662333266633463653332,PS4 Controller,a:b1,b:b16,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:a4,rightx:a2,righty:a5,start:b17,x:b0,y:b2,platform:Android, +31373231336561636235613666323035,PS4 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +31663838336334393132303338353963,PS4 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +34613139376634626133336530386430,PS4 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +35643031303033326130316330353564,PS4 Controller,a:b1,b:b17,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,leftstick:b4,lefttrigger:+a3,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:+a4,rightx:a2,righty:a5,start:b16,x:b0,y:b2,platform:Android, +37626233336235343937333961353732,PS4 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +37626464343430636562316661643863,PS4 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +38393161636261653636653532386639,PS4 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +63313733393535663339656564343962,PS4 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +63393662363836383439353064663939,PS4 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +65366465656364636137653363376531,PS4 Controller,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b0,y:b2,platform:Android, +66613532303965383534396638613230,PS4 Controller,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a5,start:b18,x:b0,y:b2,platform:Android, +050000004c050000e60c0000fffe3f00,PS5 Controller,a:b1,b:b17,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,leftstick:b4,lefttrigger:a3,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:a4,rightx:a2,righty:a5,start:b16,x:b0,y:b2,platform:Android, +050000004c050000e60c0000fffe3f80,PS5 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,leftstick:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b6,righttrigger:a3,rightx:a4,righty:a5,start:b16,x:b2,y:b17,platform:Android, +050000004c050000e60c0000ffff3f00,PS5 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +32346465346533616263386539323932,PS5 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +32633532643734376632656664383733,PS5 Controller,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a5,start:b18,x:b0,y:b2,platform:Android, +37363764353731323963323639666565,PS5 Controller,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a5,start:b18,x:b0,y:b2,platform:Android, +61303162353165316365336436343139,PS5 Controller,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,misc1:b8,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a5,start:b18,x:b0,y:b2,platform:Android, +64336263393933626535303339616332,Qanba 4RAF,a:b0,b:b1,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b20,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:b3,righttrigger:b9,rightx:a2,righty:a3,start:b18,x:b19,y:b2,platform:Android, +36626666353861663864336130363137,Razer Junglecat,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +05000000f8270000bf0b0000ffff3f00,Razer Kishi,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +62653861643333663663383332396665,Razer Kishi,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000003215000005070000ffff3f00,Razer Raiju Mobile,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000003215000007070000ffff3f00,Razer Raiju Mobile,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000003215000000090000bf7f3f00,Razer Serval,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,x:b2,y:b3,platform:Android, +5a6869587520526574726f2042697420,Retro Bit Saturn Controller,a:b21,b:b22,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b25,lefttrigger:b26,rightshoulder:b27,righttrigger:b28,start:b30,x:b23,y:b24,platform:Android, +32417865732031314b6579732047616d,Retro Bit SNES Controller,a:b0,b:b1,back:b15,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,rightshoulder:b10,start:b6,x:b2,y:b3,platform:Android, +36313938306539326233393732613361,Retro Bit SNES Controller,a:b0,b:b1,back:b15,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,rightshoulder:b10,start:b6,x:b2,y:b3,platform:Android, +526574726f466c616720576972656420,Retro Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b17,rightshoulder:b18,start:b10,x:b2,y:b3,platform:Android, +61343739353764363165343237303336,Retro Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b17,lefttrigger:b18,leftx:a0,lefty:a1,start:b10,x:b2,y:b3,platform:Android, +526574726f696420506f636b65742043,Retroid Pocket,a:b1,b:b0,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b17,paddle2:b18,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +582d426f7820436f6e74726f6c6c6572,Retroid Pocket,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,paddle1:b17,paddle2:b18,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +64633735616665613536653363336132,Retroid Pocket,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,paddle1:b19,paddle2:b20,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38653130373365613538333235303036,Retroid Pocket 2,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +64363363336633363736393038313463,Retrolink,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,start:b6,platform:Android, +37393234373533633333323633646531,RetroUSB N64 RetroPort,+rightx:b17,+righty:b15,-rightx:b18,-righty:b6,a:b10,b:b9,dpdown:b19,dpleft:b1,dpright:b0,dpup:b2,leftshoulder:b7,lefttrigger:b20,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Android, +5365616c6965436f6d707574696e6720,RetroUSB N64 RetroPort,+rightx:b17,+righty:b15,-rightx:b18,-righty:b6,a:b10,b:b9,dpdown:b19,dpleft:b1,dpright:b0,dpup:b2,leftshoulder:b7,lefttrigger:b20,leftx:a0,lefty:a1,rightshoulder:b5,start:b3,platform:Android, +526574726f5553422e636f6d20534e45,RetroUSB SNES RetroPort,a:b1,b:b20,back:b19,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,rightshoulder:b10,start:b2,x:b0,y:b3,platform:Android, +64643037633038386238303966376137,RetroUSB SNES RetroPort,a:b1,b:b20,back:b19,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,rightshoulder:b10,start:b2,x:b0,y:b3,platform:Android, +37656564346533643138636436356230,Rock Candy Switch Controller,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b3,leftstick:b15,lefttrigger:b9,leftx:a0,lefty:a1,misc1:b7,rightshoulder:b20,rightstick:b6,righttrigger:b10,rightx:a2,righty:a3,start:b18,x:b0,y:b2,platform:Android, +36363537303435333566386638366333,Samsung EIGP20,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +53616d73756e672047616d6520506164,Samsung EIGP20,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +66386565396238363534313863353065,Sanwa PlayOnline Mobile,a:b21,b:b22,back:b23,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,start:b24,platform:Android, +32383165316333383766336338373261,Saturn,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:a4,righttrigger:a5,x:b2,y:b3,platform:Android, +38613865396530353338373763623431,Saturn,a:b0,b:b1,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,lefttrigger:b10,rightshoulder:b20,righttrigger:b19,start:b17,x:b2,y:b3,platform:Android, +61316232336262373631343137633631,Saturn,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,lefttrigger:b10,leftx:a0,lefty:a1,rightshoulder:a4,righttrigger:a5,x:b2,y:b3,platform:Android, +30353835333338613130373363646337,SG H510,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b17,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b18,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b19,y:b2,platform:Android, +66386262366536653765333235343634,SG H510,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,x:b2,y:b3,platform:Android, +66633132393363353531373465633064,SG H510,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b17,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b20,rightstick:b18,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b19,y:b2,platform:Android, +62653761636366393366613135366338,SN30 PP,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b3,y:b2,platform:Android, +38376662666661636265313264613039,SNES,a:b0,b:b1,back:b9,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b3,rightshoulder:b20,start:b10,x:b19,y:b2,platform:Android, +5346432f555342205061640000000000,SNES Adapter,a:b0,b:b1,back:b9,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b3,rightshoulder:b20,start:b10,x:b19,y:b2,platform:Android, +5553422047616d657061642000000000,SNES Controller,a:b1,b:b0,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,rightshoulder:b10,start:b6,x:b3,y:b2,platform:Android, +62653335326261303663356263626339,Sony PlayStation Classic Controller,a:b19,b:b1,back:b17,dpdown:+a1,dpleft:-a0,dpright:+a0,dpup:-a1,leftshoulder:b9,lefttrigger:b3,rightshoulder:b10,righttrigger:b20,start:b18,x:b2,y:b0,platform:Android, +536f6e7920496e746572616374697665,Sony PlayStation Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,misc1:b8,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +576972656c65737320436f6e74726f6c,Sony PlayStation Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +63303964303462366136616266653561,Sony PSP,a:b21,b:b22,back:b27,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b25,leftx:a0,lefty:a1,rightshoulder:b26,start:b28,x:b23,y:b24,platform:Android, +63376637643462343766333462383235,Sony Vita,a:b1,b:b19,back:b17,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftx:a0,lefty:a1,rightshoulder:b20,rightx:a3,righty:a4,start:b18,x:b0,y:b2,platform:Android, +0500000011010000201400000f7e0f00,SteelSeries Nimbus,a:b0,b:b1,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,lefttrigger:b9,leftx:a0,lefty:a1,rightshoulder:b20,righttrigger:b10,rightx:a2,righty:a3,x:b19,y:b2,platform:Android, +35306436396437373135383665646464,SteelSeries Nimbus Plus,a:b0,b:b1,leftshoulder:b3,leftstick:b17,lefttrigger:b9,leftx:a0,rightshoulder:b20,rightstick:b18,righttrigger:b10,rightx:a2,x:b19,y:b2,platform:Android, +33313930373536613937326534303931,Taito Egret II Mini Control Panel,a:b25,b:b23,back:b27,guide:b30,leftx:a0,lefty:a1,rightshoulder:b21,righttrigger:b22,start:b28,x:b29,y:b24,platform:Android, +54475a20436f6e74726f6c6c65720000,TGZ Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +62363434353532386238336663643836,TGZ Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:b17,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:b18,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +37323236633763666465316365313236,THEC64 Joystick,a:b21,b:b22,back:b27,leftshoulder:b25,leftx:a0,lefty:a1,rightshoulder:b26,start:b27,x:b23,y:b24,platform:Android, +38346162326232346533316164363336,THEGamepad,a:b23,b:b22,back:b27,leftshoulder:b25,leftx:a0,lefty:a1,rightshoulder:b26,start:b28,x:b24,y:b21,platform:Android, +050000004f0400000ed00000fffe3f00,Thrustmaster eSwap Pro Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +5477696e20555342204a6f7973746963,Twin Joystick,a:b22,b:b21,back:b28,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b26,leftstick:b30,lefttrigger:b24,leftx:a0,lefty:a1,rightshoulder:b27,rightstick:b31,righttrigger:b25,rightx:a3,righty:a2,start:b29,x:b23,y:b20,platform:Android, +05000000de2800000511000001000000,Valve Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Android, +05000000de2800000611000001000000,Valve Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:Android, +30623739343039643830333266346439,Valve Steam Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,leftx:a0,lefty:a1,paddle1:b24,paddle2:b23,rightshoulder:b10,rightstick:b8,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +31643365666432386133346639383937,Valve Steam Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,leftx:a0,lefty:a1,paddle1:b24,paddle2:b23,rightshoulder:b10,rightstick:b8,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +30386438313564306161393537333663,Wii Classic Adapter,a:b23,b:b22,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b27,lefttrigger:b25,leftx:a0,lefty:a1,rightshoulder:b28,righttrigger:b26,rightx:a2,righty:a3,start:b30,x:b24,y:b21,platform:Android, +33333034646336346339646538643633,Wii Classic Adapter,a:b23,b:b22,back:b29,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b27,lefttrigger:b25,leftx:a0,lefty:a1,rightshoulder:b28,righttrigger:b26,rightx:a2,righty:a3,start:b30,x:b24,y:b21,platform:Android, +050000005e0400008e02000000783f00,Xbox 360 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +30396232393162346330326334636566,Xbox 360 Controller,a:b0,b:b1,back:b4,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +38313038323730383864666463383533,Xbox 360 Controller,a:b0,b:b1,back:b4,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +58626f782033363020576972656c6573,Xbox 360 Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +65353331386662343338643939643636,Xbox 360 Controller,a:b0,b:b1,back:b4,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +65613532386633373963616462363038,Xbox 360 Controller,a:b0,b:b1,back:b4,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +47656e6572696320582d426f78207061,Xbox Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +4d6963726f736f667420582d426f7820,Xbox Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a4,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +64633436313965656664373634323364,Xbox Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b19,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e04000091020000ff073f00,Xbox One Controller,a:b0,b:b1,back:b4,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Android, +050000005e04000091020000ff073f80,Xbox One Controller,a:b0,b:b1,back:b4,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e040000e002000000783f00,Xbox One Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e040000e00200000ffe3f00,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b16,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b17,y:b2,platform:Android, +050000005e040000e00200000ffe3f80,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b3,leftstick:b15,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b16,righttrigger:a5,rightx:a2,righty:a3,start:b10,x:b17,y:b2,platform:Android, +050000005e040000e0020000ffff3f00,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b4,leftshoulder:b3,leftstick:b8,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b17,y:b2,platform:Android, +050000005e040000e0020000ffff3f80,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b4,leftshoulder:b3,leftstick:b8,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b7,righttrigger:a5,rightx:a2,righty:a3,start:b10,x:b17,y:b2,platform:Android, +050000005e040000ea02000000783f00,Xbox One Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e040000fd020000ff7f3f00,Xbox One Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e040000fd020000ffff3f00,Xbox One Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +33356661323266333733373865656366,Xbox One Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +34356136633366613530316338376136,Xbox One Controller,a:b0,b:b1,back:b9,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b10,leftshoulder:b3,leftstick:b15,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b18,rightstick:b16,righttrigger:a5,rightx:a3,righty:a4,x:b17,y:b2,platform:Android, +35623965373264386238353433656138,Xbox One Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +36616131643361333337396261666433,Xbox One Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +58626f7820576972656c65737320436f,Xbox One Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +65316262316265373335666131623538,Xbox One Controller,a:b0,b:b1,back:b15,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e040000000b000000783f00,Xbox One Elite 2 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Android, +050000005e040000000b000000783f80,Xbox One Elite 2 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e040000050b0000ffff3f00,Xbox One Elite 2 Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a5,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a6,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e040000120b000000783f00,Xbox Series Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:Android, +050000005e040000120b000000783f80,Xbox Series Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000005e040000130b0000ffff3f00,Xbox Series Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,misc1:b15,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +65633038363832353634653836396239,Xbox Series Controller,a:b0,b:b1,back:b15,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,guide:b5,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,start:b6,x:b2,y:b3,platform:Android, +050000001727000044310000ffff3f00,XiaoMi Controller,a:b0,b:b1,back:b4,dpdown:b12,dpleft:b13,dpright:b14,dpup:b11,leftshoulder:b9,leftstick:b7,lefttrigger:a7,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a6,rightx:a2,righty:a5,start:b6,x:b2,y:b3,platform:Android, + +# iOS +05000000ac0500000100000000006d01,*,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a5,rightx:a3,righty:a4,x:b2,y:b3,platform:iOS, +05000000ac050000010000004f066d01,*,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a5,rightx:a3,righty:a4,x:b2,y:b3,platform:iOS, +05000000ac05000001000000cf076d01,*,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b8,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,x:b2,y:b3,platform:iOS, +05000000ac05000001000000df076d01,*,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:iOS, +05000000ac05000001000000ff076d01,*,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:iOS, +05000000ac0500000200000000006d02,*,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,rightshoulder:b5,x:b2,y:b3,platform:iOS, +05000000ac050000020000004f066d02,*,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b4,rightshoulder:b5,x:b2,y:b3,platform:iOS, +05000000ac05000004000000a8986d04,8BitDo Micro,a:b1,b:b0,back:b4,dpdown:b7,dpleft:b8,dpright:b9,dpup:b10,guide:b2,leftshoulder:b11,lefttrigger:b12,rightshoulder:b13,righttrigger:b14,start:b3,x:b6,y:b5,platform:iOS, +05000000ac05000004000000fd216d04,8BitDo Pro 2,a:b3,b:b2,back:b6,dpdown:b9,dpleft:b10,dpright:b11,dpup:b12,guide:b4,leftshoulder:b13,leftstick:b14,lefttrigger:+a2,leftx:a0,lefty:a1~,paddle1:b1,paddle2:b0,rightshoulder:b16,rightstick:b17,righttrigger:+a5,rightx:a3,righty:a4~,start:b5,x:b8,y:b7,platform:iOS, +05000000ac05000004000000209f6d04,8Bitdo SN30 Pro,a:b1,b:b0,back:b4,dpdown:b7,dpleft:b8,dpright:b9,dpup:b10,guide:b2,leftshoulder:b11,leftstick:b12,lefttrigger:b13,leftx:a0,lefty:a1~,rightshoulder:b14,rightstick:b15,righttrigger:b16,rightx:a2,righty:a3~,start:b3,x:b6,y:b5,platform:iOS, +05000000ac050000040000003b8a6d04,8BitDo SN30 Pro+,a:b1,b:b0,back:b4,dpdown:b7,dpleft:b8,dpright:b9,dpup:b10,guide:b2,leftshoulder:b11,leftstick:b12,lefttrigger:b13,leftx:a0,lefty:a1~,rightshoulder:b14,rightstick:b15,righttrigger:b16,rightx:a2,righty:a3~,start:b3,x:b6,y:b5,platform:iOS, +050000008a35000003010000ff070000,Backbone One,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:iOS, +050000008a35000004010000ff070000,Backbone One,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:iOS, +4d466947616d65706164010000000000,MFi Extended Gamepad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a5,rightx:a3,righty:a4,start:b6,x:b2,y:b3,platform:iOS, +4d466947616d65706164020000000000,MFi Gamepad,a:b0,b:b1,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,rightshoulder:b5,start:b6,x:b2,y:b3,platform:iOS, +050000007e050000062000000f060000,Nintendo Switch Joy-Con (L),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b2,leftshoulder:b4,rightshoulder:b5,x:b1,y:b3,platform:iOS, +050000007e050000062000004f060000,Nintendo Switch Joy-Con (L),+leftx:h0.1,+lefty:h0.2,-leftx:h0.4,-lefty:h0.8,dpdown:b2,dpleft:b0,dpright:b3,dpup:b1,leftshoulder:b4,misc1:b6,rightshoulder:b5,platform:iOS, +050000007e05000008200000df070000,Nintendo Switch Joy-Con (L/R),a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:iOS, +050000007e0500000e200000df070000,Nintendo Switch Joy-Con (L/R),a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:iOS, +050000007e050000072000000f060000,Nintendo Switch Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b2,leftshoulder:b4,rightshoulder:b5,x:b1,y:b3,platform:iOS, +050000007e050000072000004f060000,Nintendo Switch Joy-Con (R),+leftx:h0.2,+lefty:h0.4,-leftx:h0.8,-lefty:h0.1,a:b0,b:b2,guide:b6,leftshoulder:b4,rightshoulder:b5,x:b1,y:b3,platform:iOS, +050000007e05000009200000df870000,Nintendo Switch Pro Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b10,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b3,y:b2,platform:iOS, +050000007e05000009200000ff870000,Nintendo Switch Pro Controller,a:b1,b:b0,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b3,y:b2,platform:iOS, +05000000ac050000040000008e586d04,PlayStation VR2 Sense Controller (L),+leftx:+a3,+lefty:+a1,-leftx:+a2,-lefty:+a4,back:b2,leftstick:b4,lefttrigger:+a7,paddle2:b3,x:b0,y:b1,platform:iOS, +05000000ac050000040000000eb86d04,PlayStation VR2 Sense Controller (R),+rightx:+a3,+righty:+a1,-rightx:+a2,-righty:+a4,a:b0,b:b1,paddle1:b3,rightstick:b4,righttrigger:+a7,start:b2,platform:iOS, +050000004c050000cc090000df070000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:iOS, +050000004c050000cc090000df870001,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:iOS, +050000004c050000cc090000ff070000,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:iOS, +050000004c050000cc090000ff870001,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,touchpad:b11,x:b2,y:b3,platform:iOS, +050000004c050000cc090000ff876d01,PS4 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:iOS, +050000004c050000e60c0000df870000,PS5 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,touchpad:b10,x:b2,y:b3,platform:iOS, +050000004c050000e60c0000ff870000,PS5 Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,touchpad:b11,x:b2,y:b3,platform:iOS, +05000000ac0500000300000000006d03,Remote,a:b0,b:b2,leftx:a0,lefty:a1,platform:iOS, +05000000ac0500000300000043006d03,Remote,a:b0,b:b2,leftx:a0,lefty:a1,platform:iOS, +05000000de2800000511000001000000,Valve Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:iOS, +05000000de2800000611000001000000,Valve Steam Controller,a:b0,b:b1,back:b6,guide:b8,leftshoulder:b4,leftstick:b9,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,righttrigger:a3,start:b7,x:b2,y:b3,platform:iOS, +050000005e040000050b0000df070001,Xbox Elite Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b10,paddle2:b12,paddle3:b11,paddle4:b13,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:iOS, +050000005e040000050b0000ff070001,Xbox Elite Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,paddle1:b11,paddle2:b13,paddle3:b12,paddle4:b14,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:iOS, +050000005e040000e0020000df070000,Xbox One Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:iOS, +050000005e040000e0020000ff070000,Xbox One Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:iOS, +050000005e040000130b0000df870001,Xbox Series Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b10,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b9,x:b2,y:b3,platform:iOS, +050000005e040000130b0000ff870001,Xbox Series Controller,a:b0,b:b1,back:b8,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b9,leftshoulder:b4,leftstick:b6,lefttrigger:a2,leftx:a0,lefty:a1,misc1:b11,rightshoulder:b5,rightstick:b7,righttrigger:a5,rightx:a3,righty:a4,start:b10,x:b2,y:b3,platform:iOS, diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/icons/IkemenCylia_256.png b/bios/Game Engines/Ikemen GO/ikemen/external/icons/IkemenCylia_256.png new file mode 100644 index 00000000..228ad77f Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/external/icons/IkemenCylia_256.png differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/icons/IkemenCylia_48.png b/bios/Game Engines/Ikemen GO/ikemen/external/icons/IkemenCylia_48.png new file mode 100644 index 00000000..4614d540 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/external/icons/IkemenCylia_48.png differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/icons/IkemenCylia_96.png b/bios/Game Engines/Ikemen GO/ikemen/external/icons/IkemenCylia_96.png new file mode 100644 index 00000000..af576619 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/external/icons/IkemenCylia_96.png differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/script/debug.lua b/bios/Game Engines/Ikemen GO/ikemen/external/script/debug.lua new file mode 100644 index 00000000..00e46875 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/external/script/debug.lua @@ -0,0 +1,232 @@ +--;=========================================================== +--; DEBUG HOTKEYS +--;=========================================================== +--key, ctrl, alt, shift, pause, debug key, function +addHotkey('c', true, false, false, true, false, 'toggleClsnDisplay()') +addHotkey('d', true, false, false, true, false, 'toggleDebugDisplay(nil, false)') +addHotkey('d', true, false, true, true, false, 'toggleDebugDisplay(nil, true)') +addHotkey('d', false, false, true, true, false, 'toggleDebugDisplay(true, nil)') +addHotkey('w', true, false, false, true, false, 'toggleWireframeDisplay()') +addHotkey('s', true, false, false, true, true, 'changeSpeed()') +addHotkey('KP_PLUS', true, false, false, true, true, 'changeSpeed(0.01)') +addHotkey('KP_MINUS', true, false, false, true, true, 'changeSpeed(-0.01)') +addHotkey('l', true, false, false, true, true, 'toggleLifebarDisplay()') +addHotkey('v', true, false, false, true, true, 'toggleVSync()') +addHotkey('1', true, false, false, true, true, 'toggleAI(1)') +addHotkey('1', true, true, false, true, true, 'togglePlayer(1)') +addHotkey('2', true, false, false, true, true, 'toggleAI(2)') +addHotkey('2', true, true, false, true, true, 'togglePlayer(2)') +addHotkey('3', true, false, false, true, true, 'toggleAI(3)') +addHotkey('3', true, true, false, true, true, 'togglePlayer(3)') +addHotkey('4', true, false, false, true, true, 'toggleAI(4)') +addHotkey('4', true, true, false, true, true, 'togglePlayer(4)') +addHotkey('5', true, false, false, true, true, 'toggleAI(5)') +addHotkey('5', true, true, false, true, true, 'togglePlayer(5)') +addHotkey('6', true, false, false, true, true, 'toggleAI(6)') +addHotkey('6', true, true, false, true, true, 'togglePlayer(6)') +addHotkey('7', true, false, false, true, true, 'toggleAI(7)') +addHotkey('7', true, true, false, true, true, 'togglePlayer(7)') +addHotkey('8', true, false, false, true, true, 'toggleAI(8)') +addHotkey('8', true, true, false, true, true, 'togglePlayer(8)') +addHotkey('9', true, true, false, true, true, 'togglePlayer(9)') +addHotkey('F1', false, false, false, false, true, 'kill(2); kill(4); kill(6); kill(8)') +addHotkey('F1', true, false, false, false, true, 'kill(1); kill(3); kill(5); kill(7)') +addHotkey('F2', false, false, false, false, true, 'kill(1,1); kill(2,1); kill(3,1); kill(4,1); kill(5,1); kill(6,1); kill(7,1); kill(8,1)') +addHotkey('F2', true, false, false, false, true, 'kill(1,1); kill(3,1); kill(5,1); kill(7,1)') +addHotkey('F2', false, false, true, false, true, 'kill(2,1); kill(4,1); kill(6,1); kill(8,1)') +addHotkey('F3', false, false, false, false, true, 'powMax(1); powMax(2)') +addHotkey('F3', true, false, true, false, true, 'toggleMaxPowerMode()') +addHotkey('F4', false, false, false, false, true, 'resetRound(); closeMenu()') +addHotkey('F4', false, false, true, false, true, 'reload(); closeMenu(); trainingReset()') +addHotkey('F5', false, false, false, false, true, 'setTime(0)') +addHotkey('F8', false, false, false, false, true, 'clearConsole()') +addHotkey('F9', false, false, false, true, false, 'loadState()') +addHotkey('F10', false, false, false, true, false, 'saveState()') +addHotkey('SPACE', false, false, false, false, true, 'full(1); full(2); full(3); full(4); full(5); full(6); full(7); full(8); setTime(getRoundTime())') +addHotkey('i', true, false, false, true, true, 'stand(1); stand(2); stand(3); stand(4); stand(5); stand(6); stand(7); stand(8)') +addHotkey('PAUSE', false, false, false, true, false, 'togglePause(); closeMenu()') +addHotkey('SCROLLLOCK', false, false, false, true, false, 'frameStep()') + +function changeSpeed(add) + local accel = debugMode("accel") + if add ~= nil then + setAccel(math.max(0.01, accel + add)) + elseif accel >= 4 then + setAccel(0.25) + else + setAccel(accel * 2) + end +end + +function toggleAI(p) + local oldid = id() + if player(p) then + if aiLevel() > 0 then + setAILevel(0) + else + setAILevel(gameOption('Options.Difficulty')) + end + playerId(oldid) + end +end + +function kill(p, ...) + local oldid = id() + if player(p) then + local n = ... + if not n then n = 0 end + setLife(n) + setRedLife(0) + playerId(oldid) + end +end + +function powMax(p) + local oldid = id() + if player(p) then + setPower(powerMax()) + setGuardPoints(guardPointsMax()) + setDizzyPoints(dizzyPointsMax()) + playerId(oldid) + end +end + +function full(p) + local oldid = id() + if player(p) then + setLife(lifeMax()) + setPower(powerMax()) + setGuardPoints(guardPointsMax()) + setDizzyPoints(dizzyPointsMax()) + setRedLife(lifeMax()) + removeDizzy() + playerId(oldid) + end +end + +function stand(p) + local oldid = id() + if player(p) then + selfState(0) + playerId(oldid) + end +end + +function closeMenu() + main.pauseMenuActive = false +end + +function trainingReset() + if gameMode() == 'training' then + menu.f_trainingReset() + end +end + +--;=========================================================== +--; MCONSOLE EQUIVALENTS +--;=========================================================== +function toggleDebugPause() + togglePause() + closeMenu() +end + +function toggleMaxPowerModeAll() -- maxpowermode + toggleMaxPowerMode() +end + +function matchReload() -- matchreset + reload() + closeMenu() +end + +function powMaxAll() + powMax(1) + powMax(2) +end + +function resetRoundNow() + resetRound() + closeMenu() +end + +function fullAll() + full(1) + full(2) + full(3) + full(4) + full(5) + full(6) + full(7) + full(8) + setTime(getRoundTime()) + clearConsole() +end + +function standAll() + stand(1) + stand(2) + stand(3) + stand(4) + stand(5) + stand(6) + stand(7) + stand(8) +end + +--;=========================================================== +--; DEBUG STATUS INFO +--;=========================================================== +function statusInfo(p) + local oldid = id() + if not player(p) then return false end + local ret = string.format( + 'P%d: %d; LIF:%4d; POW:%4d; ATK:%4d; DEF:%4d; RED:%4d; GRD:%4d; STN:%4d', + playerNo(), id(), life(), power(), attack(), defence(), redLife(), guardPoints(), dizzyPoints() + ) + playerId(oldid) + return ret +end + +loadDebugStatus('statusInfo') + +--;=========================================================== +--; DEBUG PLAYER/HELPER INFO +--;=========================================================== +function customState() + if not inCustomState() then return "" end + return " (in " .. getStateOwnerName() .. ", Player " .. getStateOwnerPlayerNo() .. "'s state)" +end + +function boolToInt(bool) + if bool then return 1 end + return 0 +end + +function engineInfo() + return string.format('Frames: %d, VSync: %d; Speed: %d/%d%%; FPS: %.1f', roundTime(), gameOption('Video.VSync'), ticksPerSecond(), getGameSpeed(), getGameFPS()) +end + +function playerInfo() + return string.format('%s, Player %d, ID %d%s', name(), playerNo(), id(), customState()) +end + +function actionInfo() + return string.format( + 'ActionID: %d (P%d); SPR: %d,%d; ElemNo: %d/%d; Time: %d/%d (%d/%d)', + anim(), animPlayerNo(), spriteVar("group"), spriteVar("image"), animElemNo(0), getAnimElemCount(), animElemTime(animElemNo(0)), animElemVar("time"), getAnimTimeSum(), animLength() + ) +end + +function stateInfo() + return string.format( + 'State No: %d (P%d); CTRL: %s; Type: %s; MoveType: %s; Physics: %s; Time: %d', + stateNo(), getStateOwnerPlayerNo(), boolToInt(ctrl()), stateType(), moveType(), physics(), time()-1 + ) +end + +loadDebugInfo({'engineInfo', 'playerInfo', 'actionInfo', 'stateInfo'}) + +function loop() + hook.run("loop") + hook.run("loop#" .. gameMode()) +end diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/script/default.lua b/bios/Game Engines/Ikemen GO/ikemen/external/script/default.lua new file mode 100644 index 00000000..82a4e994 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/external/script/default.lua @@ -0,0 +1,29 @@ +if not main.makeRoster then + launchFight{} + setMatchNo(-1) + return +end + +if main.storyboard.intro and matchNo() == 1 and not continued() then + launchStoryboard(start.f_getCharData(start.p[1].t_selected[1].ref).intro) +end + +for i = matchNo(), #start.t_roster do + if start.t_roster[i][1] == -1 then --infinite matches flag detected + return --restart lua script after appending new entries + end + local t_p2char = {} + for _, v in ipairs(start.t_roster[i]) do + table.insert(t_p2char, start.f_getCharData(v).char) + end + main.f_tableShuffle(t_p2char) + if not launchFight{p2char = t_p2char, p2numchars = #t_p2char} then return end +end + +if main.storyboard.ending then + if not launchStoryboard(start.f_getCharData(start.p[1].t_selected[1].ref).ending) and motif.default_ending.enabled then + launchStoryboard(motif.default_ending.storyboard) + end +end + +setMatchNo(-1) \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/script/main.lua b/bios/Game Engines/Ikemen GO/ikemen/external/script/main.lua new file mode 100644 index 00000000..4925f5fc --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/external/script/main.lua @@ -0,0 +1,4075 @@ +main = {} +--;=========================================================== +--; INITIALIZE DATA +--;=========================================================== +do + local RANDOM_IMAX = 2147483647 -- Go IMax / Park-Miller modulus + function math.random(min, max) + local r = getRandom() + -- math.random() -> float in [0, 1) + if min == nil then + return r / RANDOM_IMAX + end + -- math.random(max) -> integer in [1, max] + if max == nil then + max = min + min = 1 + end + min = math.floor(min) + max = math.floor(max) + if max < min then + error("bad argument #2 to 'random' (interval is empty)", 2) + end + local range = max - min + 1 + if range <= 0 or range > RANDOM_IMAX then + error("bad argument to 'random' (interval is too large)", 2) + end + -- Match Go Rand(min, max): + -- return min + Random() / (IMax / range + 1) + return min + math.floor(r / (math.floor(RANDOM_IMAX / range) + 1)) + end + -- Keep deterministic engine RNG authoritative. + -- math.randomseed(...) is intentionally ignored because math.random uses getRandom(). + function math.randomseed(_) + -- intentionally ignored + end +end + +--;=========================================================== +--; COMMON FUNCTIONS +--;=========================================================== + +--return file content +function main.f_fileRead(path, mode, noError) + local file = io.open(path, mode or 'r') + if not file then + if not noError then + panicError("\nFile doesn't exist: " .. path) + end + return nil + end + + local str = file:read("*all") + file:close() + return str +end + +--write to file +function main.f_fileWrite(path, str, mode) + if str == nil then + return + end + local file = io.open(path, mode or 'w+') + if file == nil then + panicError("\nFile doesn't exist: " .. path) + return + end + file:write(str) + file:close() +end + +--returns value depending on button pressed (a = 1; a + start = 7 etc.) +function main.f_btnPalNo(p) + local s = 0 + if commandGetState(p, '/s') then s = 6 end + for i, k in ipairs({'a', 'b', 'c', 'x', 'y', 'z'}) do + if commandGetState(p, k) then return i + s end + end + return 0 +end + +--restore screenpack remapped inputs +function main.f_restoreInput() + if start.challenger > 0 then + return + end + resetRemapInput() + -- Restore to the base mapping captured at the mode start. + for i = 1, gameOption('Config.Players') do + local v = main.t_baseRemapInput[i] or i + if i ~= v then + remapInput(i, v) + end + end +end + +-- capture current remap state as the "base" mapping restored after each match +function main.f_saveBaseRemapInput() + main.t_baseRemapInput = {} + for i = 1, gameOption('Config.Players') do + main.t_baseRemapInput[i] = getRemapInput(i) + end +end + +--check if file exists +function main.f_fileExists(file) + if file == '' then + return false + end + return fileExists(file) +end + +--prints "t" table content into "toFile" file +function main.f_printTable(t, toFile) + local txt = '' + local print_t_cache = {} + local function sub_print_t(t, indent) + if print_t_cache[tostring(t)] then + txt = txt .. indent .. '*' .. tostring(t) .. '\n' + else + print_t_cache[tostring(t)] = true + if type(t) == 'table' then + for pos, val in pairs(t) do + local k = (type(pos) == 'string') and ('[' .. string.format('%q', pos) .. ']') or ('[' .. tostring(pos) .. ']') + if type(val) == 'table' then + txt = txt .. indent .. k .. ' => ' .. tostring(val) .. ' {' .. '\n' + sub_print_t(val, indent .. string.rep(' ', string.len(k) + 6)) + txt = txt .. indent .. string.rep(' ', string.len(k) + 4) .. '}' .. '\n' + elseif type(val) == 'string' then + txt = txt .. indent .. k .. ' => "' .. val .. '"' .. '\n' + else + txt = txt .. indent .. k .. ' => ' .. tostring(val) ..'\n' + end + end + else + txt = txt .. indent .. tostring(t) .. '\n' + end + end + end + if type(t) == 'table' then + txt = txt .. tostring(t) .. ' {' .. '\n' + sub_print_t(t, ' ') + txt = txt .. '}' .. '\n' + else + sub_print_t(t, ' ') + end + main.f_fileWrite(toFile or 'debug/table_print.txt', txt) +end + +--split strings +function main.f_strsplit(delimiter, text) + local list = {} + local pos = 1 + if string.find('', delimiter, 1) then + if string.len(text) == 0 then + table.insert(list, text) + else + for i = 1, string.len(text) do + table.insert(list, string.sub(text, i, i)) + end + end + else + while true do + local first, last = string.find(text, delimiter, pos) + if first then + table.insert(list, string.sub(text, pos, first - 1)) + pos = last + 1 + else + table.insert(list, string.sub(text, pos)) + break + end + end + end + return list +end + +--escape ().%+-*?[^$ characters +function main.f_escapePattern(str) + return str:gsub('([^%w])', '%%%1') +end + +--return argument or default value +function main.f_arg(arg, default) + if arg ~= nil then + return arg + end + return default +end + +--command line global flags +if getCommandLineValue("-ailevel") ~= nil then + modifyGameOption('Options.Difficulty', math.max(1, math.min(tonumber(getCommandLineValue("-ailevel")), 8))) +end +if getCommandLineValue("-speed") ~= nil then + local speed_input = tonumber(getCommandLineValue("-speed")) + if speed_input ~= nil and speed_input >= -9 and speed_input <= 9 then + local target_game_speed + if speed_input > 0 then + target_game_speed = speed_input + elseif speed_input == 0 then + target_game_speed = 0 + else + if speed_input >= -1 then + target_game_speed = speed_input * 5 + else + target_game_speed = speed_input * 0.5 - 4.5 + end + end + setGameSpeed(target_game_speed) + end +end +if getCommandLineValue("-speedtest") ~= nil then + local target_speed = gameOption('Debug.SpeedTest') + local custom_speed = tonumber(getCommandLineValue("-speedtest")) + if custom_speed ~= nil and custom_speed > 0 then + target_speed = custom_speed + end + + setGameSpeed(math.floor(60 * (target_speed - 1) / gameOption('Options.GameSpeedStep') + 0.5)) +end +if getCommandLineValue("-framerate") ~= nil then + local target_framerate = gameOption('Video.Framerate') + custom_framerate = tonumber(getCommandLineValue("-framerate")) + if custom_framerate ~= nil and custom_framerate > 0 then + target_framerate = custom_framerate + end + modifyGameOption('Video.Framerate', target_framerate) +end +if getCommandLineValue("-nosound") ~= nil then + modifyGameOption('Sound.MasterVolume', 0) +end +if getCommandLineValue("-togglelifebars") ~= nil then + toggleLifebarDisplay() +end +if getCommandLineValue("-maxpowermode") ~= nil then + toggleMaxPowerMode() +end +if getCommandLineValue("-debug") ~= nil then + toggleDebugDisplay() +end +if getCommandLineValue("-setvolume") ~= nil and getCommandLineValue("-nosound") == nil then + modifyGameOption('Sound.MasterVolume', getCommandLineValue("-setvolume")) +end +if getCommandLineValue("-windowed") ~= nil then + modifyGameOption('Video.Fullscreen', false) +end +if getCommandLineValue("-width") ~= nil then + modifyGameOption('Video.GameWidth', getCommandLineValue("-width")) +end +if getCommandLineValue("-height") ~= nil then + modifyGameOption('Video.GameHeight', getCommandLineValue("-height")) +end +if getCommandLineValue("-tcpport") ~= nil then + modifyGameOption('Netplay.ListenPort', getCommandLineValue("-tcpport")) +end +if getCommandLineValue("-udpport") ~= nil then + modifyGameOption('Netplay.Rollback.Port', getCommandLineValue("-udpport")) +end + +-- Lua Hook System +-- Allows hooking additional code into existing functions, from within external +-- modules, without having to worry as much about your code being removed by +-- engine update. +-- https://github.com/ikemen-engine/Ikemen-GO/wiki/lua#hook-system +hook = { + lists = {} +} + +function hook.add(list, name, func) + if hook.lists[list] == nil then + hook.lists[list] = {} + end + hook.lists[list][name] = func +end + +function hook.run(list, ...) + if hook.lists[list] then + for i, k in pairs(hook.lists[list]) do + k(...) + end + end +end + +function hook.runFirst(list, ...) + if hook.lists[list] then + for _, k in pairs(hook.lists[list]) do + local ret = k(...) + if ret ~= nil then + return ret + end + end + end +end + +function hook.stop(list, name) + hook.lists[list][name] = nil +end + +--animDraw at specified coordinates +function main.f_animPosDraw(a, x, y, f) + if a == nil then + return + end + if x ~= nil then + animReset(a, {"pos"}) + animAddPos(a, x, y) + end + if f ~= nil then + animSetFacing(a, f) + end + animDraw(a) + animUpdate(a) +end + +--copy table content into new table +function main.f_tableCopy(t) + if t == nil then + return nil + end + t = t or {} + local t2 = {} + for k, v in pairs(t) do + if type(v) == "table" then + t2[k] = main.f_tableCopy(v) + else + t2[k] = v + end + end + return t2 +end + +--returns table length +function main.f_tableLength(t) + local n = 0 + for _ in pairs(t) do + n = n + 1 + end + return n +end + +--randomizes table content +function main.f_tableShuffle(t) + local rand = math.random + assert(t, "main.f_tableShuffle() expected a table, got nil") + local iterations = #t + local j + for i = iterations, 2, -1 do + j = rand(i) + t[i], t[j] = t[j], t[i] + end +end + +--remove from table +function main.f_tableRemove(t, value) + for k, v in pairs(t) do + if v == value then + table.remove(t, k) + break + end + end +end + +--merge 2 tables into 1 overwriting values +local function f_printValue(arg) + if type(arg) == "table" then + return arg[1] + end + return arg +end +function main.f_tableMerge(t1, t2, key) + for k, v in pairs(t2) do + if type(v) == "table" then + if type(t1[k] or false) == "table" then + main.f_tableMerge(t1[k] or {}, t2[k] or {}, k) + elseif (t1[k] ~= nil and type(t1[k]) ~= type(v)) then + --panicError("\n" .. (k or ''):gsub('_', '.') .. ": Incorrect data type (" .. type(t1[k]) .. " expected, got " .. type(v) .. "): " .. f_printValue(v)) + print((k or ''):gsub('_', '.') .. ": Incorrect data type (" .. type(t1[k]) .. " expected, got " .. type(v) .. "): " .. f_printValue(v)) + else + t1[k] = v + end + elseif type(t1[k] or false) == "table" then + if v ~= '' then + t1[k][1] = v + end + elseif t1[k] ~= nil and type(t1[k]) ~= type(v) then + if type(t1[k]) == "string" then + t1[k] = tostring(v) + else + --panicError("\n" .. (k or ''):gsub('_', '.') .. ": Incorrect data type (" .. type(t1[k]) .. " expected, got " .. type(v) .. "): " .. f_printValue(v)) + print((k or ''):gsub('_', '.') .. ": Incorrect data type (" .. type(t1[k]) .. " expected, got " .. type(v) .. "): " .. f_printValue(v)) + end + else + t1[k] = v + end + end + return t1 +end + +-- Appends an itemname entry, or a whole submenu tree, to an already parsed motif menu table. +-- Existing motif entries win: if the same itemname already exists, nothing is overwritten. +function main.f_appendItemname(menu, parent, name, src, before) + local function itemnameExists(t, name) + name = tostring(name or '') + if type(t) ~= 'table' or name == 'back' or name:match('^spacer%d*$') then + return false + end + local pat = '_' .. main.f_escapePattern(name) .. '$' + local stack = { t } + while #stack > 0 do + local cur = stack[#stack] + stack[#stack] = nil + + for k, v in pairs(cur) do + if type(k) == 'string' and not k:match('^__') and (k == name or k:match(pat)) then + return true + end + + if type(v) == 'table' then + stack[#stack + 1] = v + end + end + end + return false + end + + local function itemnameValue(src) + if type(src) == 'table' then + return src.__value + end + return src + end + + local function itemnameOrderedKeys(src) + local ret, seen = {}, {} + if type(src.__order) == 'table' then + for _, k in ipairs(src.__order) do + if type(k) == 'string' and src[k] ~= nil and not k:match('^__') then + table.insert(ret, k) + seen[k] = true + end + end + end + local rest = {} + for k in pairs(src) do + if type(k) == 'string' and not k:match('^__') and not seen[k] then + table.insert(rest, k) + end + end + table.sort(rest) + for _, k in ipairs(rest) do + table.insert(ret, k) + end + return ret + end + + local function insertItemnameOrder(order, key, before) + if type(order) ~= 'table' then + return + end + for _, v in ipairs(order) do + if v == key then + return + end + end + local pos = #order + 1 + if before ~= nil and before ~= '' then + local anchor = tostring(before) + if not anchor:find('_', 1, true) then + local parent = tostring(key):match('^(.*)_') + if parent ~= nil and parent ~= '' then + anchor = parent .. '_' .. anchor + end + end + for i, v in ipairs(order) do + if v == anchor then + pos = i + break + end + end + end + table.insert(order, pos, key) + end + + if type(menu) ~= 'table' or type(menu.itemname) ~= 'table' or type(menu.itemname_order) ~= 'table' then + return false + end + parent = parent or '' + name = tostring(name or '') + if name == '' or src == nil then + return false + end + + -- Grouped itemname tables, used by select_info.teammenu.itemname.default. + if type(menu.itemname[parent]) == 'table' and type(menu.itemname_order[parent]) == 'table' then + if menu.itemname[parent][name] ~= nil or itemnameExists(menu.itemname, name) then + return false + end + local value = itemnameValue(src) + if value == nil then + return false + end + menu.itemname[parent][name] = value + insertItemnameOrder(menu.itemname_order[parent], name, before) + return true + end + + -- Flat itemname tables, used by normal motif menus. + local key = name + if parent ~= '' then + key = parent .. '_' .. name + end + if menu.itemname[key] ~= nil or itemnameExists(menu.itemname, name) then + return false + end + local value = itemnameValue(src) + if value == nil then + return false + end + menu.itemname[key] = value + insertItemnameOrder(menu.itemname_order, key, before) + if type(src) == 'table' then + for _, child in ipairs(itemnameOrderedKeys(src)) do + main.f_appendItemname(menu, key, child, src[child]) + end + end + return true +end + +--returns bool if table contains value +function main.f_tableHasValue(t, val) + for k, v in pairs(t) do + --if v == val then + if v:match(val) then + return true + end + end + return false +end + +-- rearrange array table indexes based on index numbers stored in a second array table +function main.f_remapTable(src, remap) + local t = {} + for i = 1, #remap do + table.insert(t, src[remap[i]]) + end + return t +end + +--iterate over the table in order +-- basic usage, just sort by the keys: +--for k, v in main.f_sortKeys(t) do +-- print(k, v) +--end +-- this uses an custom sorting function ordering by score descending +--for k, v in main.f_sortKeys(t, function(t, a, b) return t[b] < t[a] end) do +-- print(k, v) +--end +function main.f_sortKeys(t, order) + -- collect the keys + local keys = {} + for k in pairs(t) do table.insert(keys, k) end + -- if order function given, sort it by passing the table and keys a, b, + -- otherwise just sort the keys + if order then + table.sort(keys, function(a, b) return order(t, a, b) end) + else + table.sort(keys) + end + -- return the iterator function + local i = 0 + return function() + i = i + 1 + if keys[i] then + return keys[i], t[keys[i]] + end + end +end + +--round value +function main.f_round(num, places) + if places ~= nil and places > 0 then + local mult = 10 ^ places + return math.floor(num * mult + 0.5) / mult + end + return math.floor(num + 0.5) +end + +--return playerno teamside +function main.f_playerSide(pn) + if pn % 2 ~= 0 then --odd value (Player1 side) + return 1 + end + return 2 +end + +--count occurrences of a substring +function main.f_countSubstring(s1, s2) + return select(2, s1:gsub(s2, "")) +end + +-- formats using %s / %i in the order they appear in fmt +function main.f_formatBySpec(fmt, specMap) + if fmt == nil then return "" end + if type(fmt) ~= "string" then fmt = tostring(fmt) end + local args = {} + local pos = 1 + while true do + local p = fmt:find("%%", pos) + if not p then break end + local nextc = fmt:sub(p + 1, p + 1) + if nextc == "%" then + -- literal %% + pos = p + 2 + else + -- match a printf-like directive + local _, e, verb = fmt:find("%%[%-%+ #0]*%d*%.?%d*([A-Za-z])", p) + if not e then break end + if verb == "s" then + args[#args + 1] = tostring(specMap.s or "") + elseif verb == "i" or verb == "d" or verb == "u" then + args[#args + 1] = tonumber(specMap.i) or 0 + end + pos = e + 1 + end + end + if #args == 0 then return fmt end + local fmt2 = fmt + local ok, out = pcall(string.format, fmt2, unpack(args)) + if not ok then + print("main.f_formatBySpec ERROR: " .. tostring(out)) + return fmt + end + return out +end + +--refresh screen every 0.02 during initial loading +main.nextRefresh = os.clock() + 0.02 +function main.f_loadingRefresh() + if os.clock() >= main.nextRefresh then + refresh() + textImgDraw(motif.title_info.loading.TextSpriteData) + main.nextRefresh = os.clock() + 0.02 + end +end + +main.pauseMenuActive = false +require('external.script.debug') + +loadDebugFont(gameOption('Debug.Font'), gameOption('Debug.FontScale')) + +main.t_stageDef = {['random'] = 0} +main.t_charDef = {} +main.t_selChars = {} +main.t_selStages = {} +main.preload = { + lowQueued = false, + charState = {}, + stageState = {}, + charHighlight = {}, +} + +function main.f_waitForPreloads(force) + if not preloading() then + return + end + if gameOption('Config.BootLoadingMode') ~= 1 and not force then + return + end + local path = motif.title_info.loading.storyboard + if path ~= '' and loadStoryboard(path) ~= nil then + while preloading() do + if not runStoryboard() or storyboardCanceled() then + break + end + main.f_preloadTick(2) + refresh() + end + end + while preloading() do + clearColor(0, 0, 0) + main.f_animPosDraw(motif.title_info.loading.wait.AnimData) + textImgDraw(motif.title_info.loading.wait.TextSpriteData) + main.f_preloadTick(2) + refresh() + end +end + +function main.f_syncCharPaletteData(ref) + if ref == nil then return false end + local t_info = getCharInfo(ref) + if t_info == nil then return false end + local changed = false + for row, ch in ipairs(main.t_selChars) do + if ch.playable and ch.char_ref == ref then + local oldPalCount = ch.pal and #ch.pal or 0 + local oldDefaultCount = ch.pal_defaults and #ch.pal_defaults or 0 + ch.pal = t_info.pal + ch.pal_defaults = t_info.pal_defaults + ch.pal_keymap = t_info.pal_keymap + if oldPalCount ~= #ch.pal or oldDefaultCount ~= #ch.pal_defaults then + changed = true + end + end + end + if changed and start ~= nil and start.p ~= nil then + for side = 1, 2 do + if start.p[side] ~= nil and start.p[side].t_selTemp ~= nil then + for _, st in ipairs(start.p[side].t_selTemp) do + if st ~= nil and st.ref == ref then + -- Force palette menu to rebuild using the refreshed palette list. + st.validPals = nil + st.validPalsCharRef = nil + st.currentIdx = nil + end + end + end + end + end + return changed +end + +function main.f_preloadSetCharHighlight(player, ref) + if gameOption('Config.BootLoadingMode') == 0 then + return + end + if player == nil then return end + local old = main.preload.charHighlight[player] + if old == ref then + return + end + main.preload.charHighlight[player] = ref + if old ~= nil then + local stillHighlighted = false + for _, v in pairs(main.preload.charHighlight) do + if v == old then + stillHighlighted = true + break + end + end + if not stillHighlighted then + queueCharPreload(old, 1) + end + end + if ref ~= nil then + queueCharPreload(ref, 2) + if getCharPreloadStatus(ref) == 'ready' then + main.f_syncCharPaletteData(ref) + main.f_materializeCharByRef(ref) + end + end +end + +function main.f_materializeCharCell(row) + local ch = main.t_selChars[row] + if ch == nil or ch.playable ~= true or ch.char_ref == nil or ch.cell_data_ready then + return ch and ch.cell_data_ready or false + end + local params = motif.select_info.portrait + for _, v in pairs({{params.anim, -1}, params.spr}) do + if v[1] ~= -1 then + local a = animGetPreloadedCharData(ch.char_ref, v[1], v[2]) + if a then + animSetLocalcoord(a, motif.info.localcoord[1], motif.info.localcoord[2]) + animSetLayerno(a, params.layerno) + animSetPos(a, 0, 0) + animSetScale( + a, + params.scale[1] * ch.portraitscale * motif.info.localcoord[1] / ch.localcoord, + params.scale[2] * ch.portraitscale * motif.info.localcoord[1] / ch.localcoord + ) + animSetFacing(a, params.facing) + animSetXShear(a, params.xshear) + animSetAngle(a, params.angle) + animSetXAngle(a, params.xangle) + animSetYAngle(a, params.yangle) + animSetProjection(a, params.projection) + animSetFocalLength(a, params.focallength) + animSetWindow(a, params.window[1], params.window[2], params.window[3], params.window[4]) + animUpdate(a) + ch.cell_data = a + ch.cell_data_ready = true + return true + end + end + end + return false +end + +function main.f_materializeStagePortrait(stageNo) + local st = main.t_selStages[stageNo] + if st == nil or st.anim_data_ready then + return st and st.anim_data_ready or false + end + local function f_makeStageAnim(params, fieldName) + for _, v in pairs({{params.anim, -1}, params.spr}) do + if #v > 0 and v[1] ~= -1 then + local a = animGetPreloadedStageData(stageNo, v[1], v[2]) + if a then + animSetLocalcoord(a, motif.info.localcoord[1], motif.info.localcoord[2]) + animSetLayerno(a, params.layerno) + animSetPos(a, 0, 0) + animSetScale( + a, + params.scale[1] * st.portraitscale * motif.info.localcoord[1] / st.localcoord, + params.scale[2] * st.portraitscale * motif.info.localcoord[1] / st.localcoord + ) + animSetFacing(a, params.facing) + animSetXShear(a, params.xshear) + animSetAngle(a, params.angle) + animSetXAngle(a, params.xangle) + animSetYAngle(a, params.yangle) + animSetProjection(a, params.projection) + animSetFocalLength(a, params.focallength) + local wnd = params.window + if wnd == nil or #wnd < 4 then + wnd = {0, 0, motif.info.localcoord[1], motif.info.localcoord[2]} + end + animSetWindow(a, wnd[1], wnd[2], wnd[3], wnd[4]) + animUpdate(a) + st[fieldName] = a + return true + end + end + end + return false + end + local ok1 = f_makeStageAnim(motif.select_info.stage.portrait, "anim_data") + local ok2 = f_makeStageAnim(motif.vs_screen.stage.portrait, "vs_anim_data") + st.anim_data_ready = ok1 or ok2 + return st.anim_data_ready +end + +function main.f_preloadTick(limit) + if gameOption('Config.BootLoadingMode') == 0 then + return + end + limit = limit or 4 + local n = 0 + + for row, ch in ipairs(main.t_selChars) do + if n >= limit then break end + if ch.playable and ch.char_ref ~= nil and not ch.cell_data_ready then + local state, err = getCharPreloadStatus(ch.char_ref) + local prev = main.preload.charState[ch.char_ref] + if state ~= prev then + main.preload.charState[ch.char_ref] = state + if state == 'ready' then + --print("Char preload ready ref=" .. tostring(ch.char_ref) .. " row=" .. tostring(row)) + main.f_syncCharPaletteData(ch.char_ref) + -- elseif state == 'error' then + -- print("Char preload error ref=" .. tostring(ch.char_ref) .. " row=" .. tostring(row) .. ": " .. tostring(err)) + end + end + if state == 'ready' then + if main.f_materializeCharCell(row) then + start.needUpdateDrawList = true + n = n + 1 + end + end + end + end + for stageNo, st in ipairs(main.t_selStages) do + if n >= limit then break end + if not st.anim_data_ready then + local state, err = getStagePreloadStatus(stageNo) + local prev = main.preload.stageState[stageNo] + if state ~= prev then + main.preload.stageState[stageNo] = state + if state == 'ready' then + --print("Stage preload ready stage=" .. tostring(stageNo)) + -- elseif state == 'error' then + -- print("Stage preload error stage=" .. tostring(stageNo) .. ": " .. tostring(err)) + end + end + if state == 'ready' then + if main.f_materializeStagePortrait(stageNo) then + start.needUpdateDrawList = true + n = n + 1 + end + end + end + end +end + +function main.f_queueAllPreloadsLow() + if gameOption('Config.BootLoadingMode') == 0 then + return + end + if main.preload.lowQueued then + return + end + main.preload.lowQueued = true + for _, ch in ipairs(main.t_selChars) do + if ch.playable and ch.char_ref ~= nil then + queueCharPreload(ch.char_ref, 1) + end + end + for stageNo = 1, #main.t_selStages do + queueStagePreload(stageNo, 1) + end +end + +function main.f_materializeCharByRef(ref) + if ref == nil then return false end + local ok = false + for row, ch in ipairs(main.t_selChars) do + if ch.playable and ch.char_ref == ref and not ch.cell_data_ready then + main.f_syncCharPaletteData(ref) + if main.f_materializeCharCell(row) then + start.needUpdateDrawList = true + ok = true + end + end + end + return ok +end + +function main.f_preloadBoostChar(ref) + if gameOption('Config.BootLoadingMode') == 0 then + return + end + if ref == nil then return end + queueCharPreload(ref, 2) + if getCharPreloadStatus(ref) == 'ready' then + main.f_syncCharPaletteData(ref) + main.f_materializeCharByRef(ref) + end +end + +function main.f_preloadBoostStage(stageNo) + if gameOption('Config.BootLoadingMode') == 0 then + return + end + if stageNo == nil or stageNo <= 0 then return end + queueStagePreload(stageNo, 2) + if getStagePreloadStatus(stageNo) == 'ready' then + if main.f_materializeStagePortrait(stageNo) then + start.needUpdateDrawList = true + end + end +end + +--;=========================================================== +--; COMMAND LINE QUICK VS +--;=========================================================== +function main.f_commandLine() + local flags = getCommandLineFlags() + local loadMotif = flags['-loadmotif'] ~= nil + if loadMotif then + main.f_default() + end + main.pauseMenu = loadMotif + setGameMode('quickvs') + if loadMotif then + start.f_selectReset(true) + end + setCredits(-1) + -- No need for asynchronous loading when running from command line. Fixes race conditions with Turns teammate faces + modifyGameOption('Config.BootLoadingMode', 0) + if not loadMotif then + loadFightScreen() + end + local ref = #main.t_selChars + local t_teamMode = {0, 0} + local t_numChars = {0, 0} + local t_matchWins = { + draw = {gameOption('Options.Match.MaxDrawGames'), gameOption('Options.Match.MaxDrawGames')}, + simul = {gameOption('Options.Simul.Match.Wins'), gameOption('Options.Simul.Match.Wins')}, + single = {gameOption('Options.Match.Wins'), gameOption('Options.Match.Wins')}, + tag = {gameOption('Options.Tag.Match.Wins'), gameOption('Options.Tag.Match.Wins')}, + } + local roundTime = gameOption('Options.Time') + setFightScreenElements({guardbar = gameOption('Options.GuardBreak'), stunbar = gameOption('Options.Dizzy'), redlifebar = gameOption('Options.RedLife')}) + local frames = fightScreenVar("time.framespercount") + local t = {} + local t_assignedPals = {} + for k, v in pairs(flags) do + if k:match('^-p[0-9]+$') then + local num = tonumber(k:match('^-p([0-9]+)')) + local player = main.f_playerSide(num) + t_numChars[player] = t_numChars[player] + 1 + local pal = 1 + if flags['-p' .. num .. '.color'] ~= nil or flags['-p' .. num .. '.pal'] ~= nil then + pal = tonumber(flags['-p' .. num .. '.color']) or tonumber(flags['-p' .. num .. '.pal']) + elseif t_assignedPals[v] ~= nil then + for i = 1, 12 do + if t_assignedPals[v][i] == nil then + pal = i + break + end + end + end + if t_assignedPals[v] == nil then + t_assignedPals[v] = {} + end + t_assignedPals[v][pal] = true + local ai = 0 + if flags['-p' .. num .. '.ai'] ~= nil then + ai = tonumber(flags['-p' .. num .. '.ai']) + end + local input = player + if flags['-p' .. num .. '.input'] ~= nil then + input = tonumber(flags['-p' .. num .. '.input']) + end + table.insert(t, {character = v, player = player, num = num, pal = pal, ai = ai, input = input, override = {}}) + if flags['-p' .. num .. '.life'] ~= nil then + t[#t].override['life'] = tonumber(flags['-p' .. num .. '.life']) + end + if flags['-p' .. num .. '.lifeMax'] ~= nil then + t[#t].override['lifemax'] = tonumber(flags['-p' .. num .. '.lifeMax']) + end + if flags['-p' .. num .. '.power'] ~= nil then + t[#t].override['power'] = tonumber(flags['-p' .. num .. '.power']) + end + if flags['-p' .. num .. '.dizzyPoints'] ~= nil then + t[#t].override['dizzypoints'] = tonumber(flags['-p' .. num .. '.dizzyPoints']) + end + if flags['-p' .. num .. '.guardPoints'] ~= nil then + t[#t].override['guardpoints'] = tonumber(flags['-p' .. num .. '.guardPoints']) + end + hook.run("main.f_commandLine.player", t[#t], flags, num, player) + refresh() + elseif k:match('^-tmode1$') then + t_teamMode[1] = tonumber(v) + elseif k:match('^-tmode2$') then + t_teamMode[2] = tonumber(v) + elseif k:match('^-time$') then + roundTime = tonumber(v) + elseif k:match('^-rounds$') then + for i = 1, 2 do + t_matchWins.single[i] = tonumber(v) + t_matchWins.simul[i] = tonumber(v) + t_matchWins.tag[i] = tonumber(v) + end + elseif k:match('^-draws$') then + for i = 1, 2 do + t_matchWins.draw[i] = tonumber(v) + end + end + end + --Ensure proper team modes and prepare time scaling + local t_framesMul = {1, 1} --Skip Options.Tag.TimeScaling here for simplicity + for side = 1, 2 do + if t_teamMode[side] == 0 and t_numChars[side] > 1 then + t_teamMode[side] = 1 --Default to Simul if multiple characters + end + if t_teamMode[side] == 3 then --Tag + t_framesMul[side] = t_numChars[side] + end + if loadMotif then + start.p[side].teamMode = t_teamMode[side] + start.p[side].numChars = t_numChars[side] + end + end + --Rounds to win. Determined by enemy team mode + for side = 1, 2 do + local enemy = 3 - side + if t_teamMode[enemy] == 1 then --Simul + setMatchWins(side, t_matchWins.simul[enemy]) + elseif t_teamMode[enemy] == 2 then --Turns + setMatchWins(side, t_numChars[enemy]) + elseif t_teamMode[enemy] == 3 then --Tag + setMatchWins(side, t_matchWins.tag[enemy]) + else --Single + setMatchWins(side, t_matchWins.single[enemy]) + end + setMatchMaxDrawGames(side, t_matchWins.draw[side]) + end + frames = frames * math.max(t_framesMul[1], t_framesMul[2]) + setTimeFramesPerCount(frames) + setRoundTime(math.max(-1, roundTime * frames)) + local stage = gameOption('Debug.StartStage') + if flags['-s'] ~= nil then + for _, v in ipairs({flags['-s'], 'stages/' .. flags['-s'], 'stages/' .. flags['-s'] .. '.def'}) do + if main.f_fileExists(v) then + stage = v + break + end + end + end + local stageKey = stage:lower() + local stageRef = main.t_stageDef[stageKey] + if stageRef == nil then + if loadMotif then + stageRef = start.f_getStageRef(stage) + else + if addStage(stage) == 0 then + panicError("\nUnable to add stage: " .. stage .. "\n") + end + stageRef = #main.t_selStages + 1 + main.t_stageDef[stageKey] = stageRef + end + if stageRef == nil then + panicError("\nUnable to add stage: " .. stage .. "\n") + end + end + clearSelected() + setMatchNo(1) + selectStage(stageRef) + setTeamMode(1, t_teamMode[1], t_numChars[1]) + setTeamMode(2, t_teamMode[2], t_numChars[2]) + if gameOption('Debug.DumpLuaTables') then main.f_printTable(t, 'debug/t_quickvs.txt') end + local t_params = {} + --iterate over the table in -p order ascending + for _, v in main.f_sortKeys(t, function(t, a, b) return t[b].num > t[a].num end) do + local charKey = v.character:lower() + local charRef = main.t_charDef[charKey] + if charRef == nil then + if loadMotif then + charRef = start.f_getCharRef(v.character) + else + addChar(v.character) + charRef = ref + main.t_charDef[charKey] = charRef + ref = ref + 1 + end + end + if charRef == nil then + panicError("\nUnable to add character. No such file or directory: " .. v.character .. "\n") + end + selectChar(v.player, charRef, v.pal) + setCom(v.num, v.ai) + remapInput(v.num, v.input) + -- fold overrides into loadStart() params (p1..=...) + local member = math.ceil(v.num / 2) + for k2, v2 in pairs(v.override) do + table.insert(t_params, 'p' .. v.player .. '.' .. member .. '.' .. k2 .. '=' .. tostring(v2)) + end + if loadMotif then + table.insert(start.p[v.player].t_selected, { + ref = charRef, + pal = v.pal, + pn = start.f_getPlayerNo(v.player, #start.p[v.player].t_selected + 1) + }) + end + end + hook.run("main.f_commandLine", t, flags, t_teamMode, t_numChars, t_matchWins, t_params) + if flags['-ip'] ~= nil then + enterNetPlay(flags['-ip']) + while not connected() do + if esc() then + exitNetPlay() + os.exit() + end + refresh() + end + refresh() + if not synchronize() then + replayStop() + exitNetPlay() + exitReplay() + print(getSessionWarning()) + os.exit() + end + if loadMotif then + main.f_clearShuffleTables() + end + refresh() + end + if loadMotif then + table.insert(t_params, 1, start.f_buildLoadStartParams()) + else + table.insert(t_params, 'pausemenu=false') + end + loadStart(table.concat(t_params, ', ')) + while loading() do + --do nothing + end + game() + if flags['-log'] ~= nil then + main.f_printTable(getGameStats().Matches[matchNo()], flags['-log']) + end + os.exit() +end + +--initiate quick match only if -loadmotif flag is missing +if getCommandLineValue("-p1") ~= nil and getCommandLineValue("-p2") ~= nil and getCommandLineValue("-loadmotif") == nil then + main.f_commandLine() +end + +--;=========================================================== +--; LOAD DATA +--;=========================================================== +main.t_unlockLua = {chars = {}, stages = {}, modes = {}} + +motif = loadMotif() +if gameOption('Debug.DumpLuaTables') then main.f_printTable(motif, "debug/loadMotif.txt") end + +loadFightScreen() +main.f_loadingRefresh() + +local function showSessionWarning() + local text = getSessionWarning() + if text == nil or text == '' then + return false + end + main.f_warning(text, motif[main.group], motif[main.background]) + return true +end + +--warning display +function main.f_warning(text, sec, background, overlay, titleData, textData, cancel_snd, done_snd) + local overlay = overlay or motif.warning_info.overlay.RectData + local titleData = titleData or motif.warning_info.title.TextSpriteData + local textData = textData or motif.warning_info.text.TextSpriteData + local cancel_snd = cancel_snd or motif.warning_info.cancel.snd + local done_snd = done_snd or motif.warning_info.done.snd + local ret + textImgReset(textData) + textImgSetText(textData, text) + resetKey() + esc(false) + while true do + if esc() or getInput(-1, sec.menu.cancel.key) then + esc(false) + sndPlay(motif.Snd, cancel_snd[1], cancel_snd[2]) + ret = false + break + elseif getKey() ~= '' or getInput(-1, sec.menu.done.key) then + sndPlay(motif.Snd, done_snd[1], done_snd[2]) + resetKey() + ret = true + break + end + --draw clearcolor + clearColor(background.bgclearcolor[1], background.bgclearcolor[2], background.bgclearcolor[3]) + --draw layerno = 0 backgrounds + bgDraw(background.BGDef, 0) + --draw overlay + rectDraw(overlay) + --draw title + textImgDraw(titleData) + --draw text + textImgDraw(textData) + --draw layerno = 1 backgrounds + bgDraw(background.BGDef, 1) + --tick preload + main.f_preloadTick(2) + --end loop + refresh() + end + resetTokenGuard() + return ret +end + +function main.f_drawInput(textData, text, sec, background, overlay, defaultInput) + local input = defaultInput or '' + resetKey() + while true do + if esc() then + input = '' + break + end + if getKey(sec.textinput.confirm.keycode) then + break + elseif getKey(sec.textinput.trim.keycode) then + input = input:sub(2) + elseif getKey(sec.textinput.truncate.keycode) then + input = input:sub(1, -2) + elseif getKey(sec.textinput.paste.keycode) then + input = input .. getClipboardString() + else + input = input .. getKeyText() + end + resetKey() + --draw clearcolor + clearColor(background.bgclearcolor[1], background.bgclearcolor[2], background.bgclearcolor[3]) + --draw layerno = 0 backgrounds + bgDraw(background.BGDef, 0) + --draw overlay + rectDraw(overlay) + --draw text + textImgReset(textData) + textImgSetText(textData, text) + textImgAddText(textData, '\\n\\n' .. input) + textImgDraw(textData) + --draw layerno = 1 backgrounds + bgDraw(background.BGDef, 1) + --tick preload + main.f_preloadTick(2) + --end loop + refresh() + end + resetKey() + resetTokenGuard() + return input +end + +--add characters and stages using select.def +function main.f_charParam(t, c) + if c:match('%.[Dd][Ee][Ff]$') then --stage + c = c:gsub('\\', '/') + if main.f_fileExists(c) then + if t.stage == nil then + t.stage = {} + end + table.insert(t.stage, c) + else + print("Stage doesn't exist: " .. c) + end + else --param = value + local param, value = c:match('^(.-)%s*=%s*(.-)$') + if param ~= nil and value ~= nil and param ~= '' and value ~= '' then + t[param] = tonumber(value) + if t[param] == nil then + t[param] = value + end + end + end +end + +-- Converts character order params to a roster order-table key: +local function orderParamMode(param) + if param == 'order' then + return 'default' + end + local mode = tostring(param or ''):match('^order(.+)$') + if mode ~= nil and mode ~= '' then + return mode + end + return nil +end + +-- Add char ref to unified per-mode order table. +local function addOrderChar(mode, order, ref) + mode = mode or 'default' + order = tonumber(order) + if order == nil or ref == nil then + return + end + if main.t_orderChars[mode] == nil then + main.t_orderChars[mode] = {} + end + if main.t_orderChars[mode][order] == nil then + main.t_orderChars[mode][order] = {} + end + table.insert(main.t_orderChars[mode][order], ref) +end + +function main.f_addChar(line, playable, loading, slot) + table.insert(main.t_selChars, {}) + local row = #main.t_selChars + local slot = slot or false + local valid = false + --store 'unlock' param and get rid of everything that follows it + local unlock = '' + line = line:gsub(',%s*unlock%s*=%s*(.-)%s*$', function(m1) + unlock = (m1 or ''):match('^%s*(.-)%s*$') + return '' + end) + --parse rest of the line + for i, c in ipairs(main.f_strsplit(',', line)) do --split using "," delimiter + c = c:match('^%s*(.-)%s*$') + if i == 1 then + if c == '' then + playable = false + break + end + c = c:gsub('\\', '/') + c = tostring(c) + addChar(c, line) + if c:lower() == 'skipslot' then + main.t_selChars[row].skip = 1 + playable = false + break + end + if getCharName(row - 1) == 'dummyslot' then + playable = false + break + end + main.t_charDef[c:lower()] = row - 1 + if c:lower() == 'randomselect' then + main.t_selChars[row].char = c:lower() + playable = false + break + end + main.t_selChars[row].char = c + valid = true + main.t_selChars[row].playable = playable + local t_info = getCharInfo(row - 1) + main.t_selChars[row] = main.f_tableMerge(main.t_selChars[row], t_info) + main.t_selChars[row].dir = main.t_selChars[row].def:gsub('[^/]+%.def$', '') + if playable then + for _, v in ipairs({'intro', 'ending', 'arcadepath'}) do + if main.t_selChars[row][v] ~= '' then + main.t_selChars[row][v] = searchFile(main.t_selChars[row][v], {main.t_selChars[row].dir, '', motif.def, 'data/'}) + end + end + hook.run("main.f_addChar.files", main.t_selChars[row]) + main.t_selChars[row].order = 1 + end + else + main.f_charParam(main.t_selChars[row], c) + end + end + if main.t_selChars[row].hidden == nil then + main.t_selChars[row].hidden = 0 + end + if main.t_selChars[row].char ~= nil then + main.t_selChars[row].char_ref = main.t_charDef[main.t_selChars[row].char:lower()] + end + if playable then + -- order / order params + local hasSurvivalOrder = false + for k, v in pairs(main.t_selChars[row]) do + local mode = orderParamMode(k) + if mode ~= nil then + if mode == 'survival' then + hasSurvivalOrder = true + end + addOrderChar(mode, v, row - 1) + end + end + -- Preserve legacy Survival behavior: chars without ordersurvival still belong to survival order 1. + if not hasSurvivalOrder then + addOrderChar('survival', 1, row - 1) + end + --bonus games mode + if main.t_selChars[row].bonus ~= nil and main.t_selChars[row].bonus == 1 then + table.insert(main.t_bonusChars, row - 1) + end + --unlock + if unlock ~= '' then + --main.t_selChars[row].unlock = unlock + main.t_unlockLua.chars[row] = unlock + end + --cell data + main.t_selChars[row].cell_data = animNew(nil, '-1,0, 0,0, -1') + main.t_selChars[row].cell_data_ready = false + if gameOption('Config.BootLoadingMode') == 0 then + main.f_syncCharPaletteData(main.t_selChars[row].char_ref) + main.f_materializeCharCell(row) + end + end + --slots + if not slot then + table.insert(main.t_selGrid, {['chars'] = {row}, ['slot'] = 1}) + else + table.insert(main.t_selGrid[#main.t_selGrid].chars, row) + -- marks all chars using this slot + for _, idx in ipairs(main.t_selGrid[#main.t_selGrid].chars) do + main.t_selChars[idx].hasSlot = true + end + end + for _, v in ipairs({'next', 'previous', 'select'}) do + if main.t_selChars[row][v] ~= nil then + commandAdd(main.t_selChars[row][v], main.t_selChars[row][v]) + if main.t_selGrid[#main.t_selGrid][v] == nil then + main.t_selGrid[#main.t_selGrid][v] = {} + end + if main.t_selGrid[#main.t_selGrid][v][main.t_selChars[row][v]] == nil then + main.t_selGrid[#main.t_selGrid][v][main.t_selChars[row][v]] = {} + end + table.insert(main.t_selGrid[#main.t_selGrid][v][main.t_selChars[row][v]], #main.t_selGrid[#main.t_selGrid].chars) + end + end + if loading then + main.f_loadingRefresh() + end + return valid +end + +function main.f_addStage(file, hidden, line) + file = file:gsub('\\', '/') + if file:match('/$') then + return + end + if not addStage(file, line) then + return + end + local stageNo = #main.t_selStages + 1 + local t_info = getStageInfo(stageNo) + table.insert(main.t_selStages, { + name = t_info.name, + def = file, + dir = t_info.def:gsub('[^/]+%.def$', ''), + portraitscale = t_info.portraitscale, + localcoord = t_info.localcoord + }) + main.t_stageDef[file:lower()] = stageNo + --attachedchar + if t_info.attachedchardef ~= '' then + local attachedList = t_info.attachedchardef + if type(attachedList) ~= 'table' then + attachedList = {attachedList} -- Convert string to list + end + main.t_selStages[stageNo].attachedChar = {} + for i = 1, #attachedList do + local acInfo = getCharAttachedInfo(attachedList[i]) + if acInfo ~= nil then + acInfo.dir = acInfo.def:gsub('[^/]+%.def$', '') + table.insert(main.t_selStages[stageNo].attachedChar, acInfo) + end + end + end + --anim data + if hidden ~= nil and hidden ~= 0 then + main.t_selStages[stageNo].hidden = hidden + end + main.t_selStages[stageNo].anim_data = animNew(nil, '-1,0, 0,0, -1') + main.t_selStages[stageNo].vs_anim_data = animNew(nil, '-1,0, 0,0, -1') + main.t_selStages[stageNo].anim_data_ready = false + if gameOption('Config.BootLoadingMode') == 0 then + main.f_materializeStagePortrait(stageNo) + end + return stageNo +end + +main.t_includeStage = {{}, {}} --includestage = 1, includestage = -1 +main.t_orderChars = {default = {}} +main.t_orderStages = {} +main.t_bonusChars = {} +main.t_selGrid = {} +main.t_selOptions = {} +main.t_selStoryMode = {} +local t_storyModeList = {} +local t_addExluded = {} +local tmp = '' +local section = 0 +local row = 0 +local slot = false +local csCell = 0 +local content = main.f_fileRead(motif.files.select) +content = content:gsub('([^\r\n;]*)%s*;[^\r\n]*', '%1') +content = content:gsub('\n%s*\n', '\n') + +lanChars = false +lanStages = false +lanOptions = false +lanStory = false +for line in content:gmatch('[^\r\n]+') do + local lineCase = line:lower() + if lineCase:match('^%s*%[%s*' .. gameOption('Config.Language') .. '.characters' .. '%s*%]') then + lanChars = true + elseif lineCase:match('^%s*%[%s*' .. gameOption('Config.Language') .. '.extrastages' .. '%s*%]') then + lanStages = true + elseif lineCase:match('^%s*%[%s*' .. gameOption('Config.Language') .. '.options' .. '%s*%]') then + lanOptions = true + elseif lineCase:match('^%s*%[%s*' .. gameOption('Config.Language') .. '.storymode' .. '%s*%]') then + lanStory = true + end +end + +for line in content:gmatch('[^\r\n]+') do +--for line in io.lines("data/select.def") do + local lineCase = line:lower() + if lineCase:match('^%s*%[%s*characters%s*%]') then + row = 0 + section = 1 + elseif lineCase:match('^%s*%[%s*' .. gameOption('Config.Language') .. '.characters' .. '%s*%]') then + if lanChars then + row = 0 + section = 1 + else + section = -1 + end + elseif lineCase:match('^%s*%[%s*extrastages%s*%]') then + row = 0 + section = 2 + elseif lineCase:match('^%s*%[%s*' .. gameOption('Config.Language') .. '.extrastages' .. '%s*%]') then + if lanStages then + row = 0 + section = 2 + else + section = -1 + end + elseif lineCase:match('^%s*%[%s*options%s*%]') then + row = 0 + section = 3 + elseif lineCase:match('^%s*%[%s*' .. gameOption('Config.Language') .. '.options' .. '%s*%]') then + if lanOptions then + row = 0 + section = 3 + else + section = -1 + end + elseif lineCase:match('^%s*%[%s*storymode%s*%]') then + row = 0 + section = 4 + elseif lineCase:match('^%s*%[%s*' .. gameOption('Config.Language') .. '.storymode' .. '%s*%]') then + if lanStory then + row = 0 + section = 4 + else + section = -1 + end + elseif lineCase:match('^%s*%[%w+%]$') then + section = -1 + elseif section == 1 then --[Characters] + local csCol = (csCell % motif.select_info.columns) + 1 + local csRow = math.floor(csCell / motif.select_info.columns) + 1 + local cellKey = (csCol - 1) .. '-' .. (csRow - 1) + while not slot and motif.select_info.cell[cellKey] ~= nil and motif.select_info.cell[cellKey].skip do + main.f_addChar('skipslot', true, true, false, line) + csCell = csCell + 1 + csCol = (csCell % motif.select_info.columns) + 1 + csRow = math.floor(csCell / motif.select_info.columns) + 1 + cellKey = (csCol - 1) .. '-' .. (csRow - 1) + end + local slotStart = lineCase:match('^%s*slot%s*=%s*{%s*()') + if slotStart ~= nil then + table.insert(main.t_selGrid, {['chars'] = {}, ['slot'] = 1}) + slot = true + line = line:sub(slotStart) + lineCase = line:lower() + end + local slotEnd = false + if slot then + local slotLine = line:match('^(.-)%s*}%s*$') + if slotLine ~= nil then + line = slotLine + lineCase = line:lower() + slotEnd = true + end + end + if lineCase:match(',%s*exclude%s*=%s*1') then --character should be added after all slots are filled + table.insert(t_addExluded, line) + elseif line:match('%S') then + if slot then + for _, entry in ipairs(main.f_strsplit('|', line)) do + entry = entry:match('^%s*(.-)%s*$') + if entry ~= '' then + main.f_addChar(entry, true, true, true) + end + end + else + main.f_addChar(line, true, true, false) + csCell = csCell + 1 + end + end + if slotEnd then + slot = false + csCell = csCell + 1 + end + elseif section == 2 then --[ExtraStages] + --store 'unlock' param and get rid of everything that follows it + local unlock = '' + local hidden = 0 --TODO: temporary flag, won't be used once stage selection screen is ready + line = line:gsub(',%s*unlock%s*=%s*(.-)%s*$', function(m1) + unlock = (m1 or ''):match('^%s*(.-)%s*$') + hidden = 1 + return '' + end) + --parse rest of the line + for i, c in ipairs(main.f_strsplit(',', line)) do --split using "," delimiter + c = c:gsub('^%s*(.-)%s*$', '%1') + if i == 1 then + row = main.f_addStage(c, hidden, line) + if row == nil then + break + end + table.insert(main.t_includeStage[1], row) + table.insert(main.t_includeStage[2], row) + else + local param, value = c:match('^(.-)%s*=%s*(.-)$') + if param ~= nil and value ~= nil and param ~= '' and value ~= '' then + main.t_selStages[row][param] = tonumber(value) + --order (more than 1 order param can be set at the same time) + if param:match('order') then + if main.t_orderStages[main.t_selStages[row].order] == nil then + main.t_orderStages[main.t_selStages[row].order] = {} + end + table.insert(main.t_orderStages[main.t_selStages[row].order], row) + end + end + end + end + if row ~= nil then + --default order (only if no explicit order was set) + if main.t_selStages[row].order == nil then + main.t_selStages[row].order = 1 + if main.t_orderStages[main.t_selStages[row].order] == nil then + main.t_orderStages[main.t_selStages[row].order] = {} + end + table.insert(main.t_orderStages[main.t_selStages[row].order], row) + end + --unlock param + if unlock ~= '' then + --main.t_selStages[row].unlock = unlock + main.t_unlockLua.stages[row] = unlock + end + end + elseif section == 3 then --[Options] + if lineCase:match('%.maxmatches%s*=') then + local rowName, line = lineCase:match('^%s*(.-)%.maxmatches%s*=%s*(.+)') + rowName = rowName:gsub('%.', '_') + main.t_selOptions[rowName .. 'maxmatches'] = {} + for i, c in ipairs(main.f_strsplit(',', line:gsub('%s*(.-)%s*', '%1'))) do --split using "," delimiter + main.t_selOptions[rowName .. 'maxmatches'][i] = tonumber(c) + end + end + hook.run("main.selectDef.options", main.t_selOptions, lineCase) + elseif section == 4 then --[StoryMode] + local param, value = line:match('^%s*(.-)%s*=%s*(.-)%s*$') + if param ~= nil and value ~= nil and param ~= '' and value ~= '' then + if param:match('^name$') then + table.insert(main.t_selStoryMode, {name = value, displayname = '', path = '', unlock = 'true'}) + t_storyModeList[value] = true + elseif main.t_selStoryMode[#main.t_selStoryMode][param] ~= nil then + main.t_selStoryMode[#main.t_selStoryMode][param] = value + end + end + end +end + +for k, v in ipairs(main.t_selStoryMode) do + main.t_unlockLua.modes[v.name] = v.unlock +end + +--add excluded characters once all slots are filled +for i = #main.t_selGrid, motif.select_info.rows * motif.select_info.columns - 1 do + table.insert(main.t_selChars, {}) + table.insert(main.t_selGrid, {['chars'] = {}, ['slot'] = 1}) + addChar('dummyslot') --Must match Select.AddChar() in system.go +end +for i = 1, #t_addExluded do + main.f_addChar(t_addExluded[i], true, true) +end + +--add Training char if defined and not included in select.def +if gameOption('Config.TrainingChar') ~= '' and main.t_charDef[gameOption('Config.TrainingChar'):lower()] == nil then + main.f_addChar(gameOption('Config.TrainingChar') .. ', order = 0, ordersurvival = 0, exclude = 1', false, true) +end + +--add remaining character parameters +--for each character loaded +for i = 1, #main.t_selChars do + --character stage param + if main.t_selChars[i].stage ~= nil then + for j, v in ipairs(main.t_selChars[i].stage) do + --add 'stage' param stages if needed or reference existing ones + if main.t_stageDef[v:lower()] == nil then + main.t_selChars[i].stage[j] = main.f_addStage(v) + if main.t_selChars[i].includestage == nil or main.t_selChars[i].includestage == 1 then --stage available all the time + table.insert(main.t_includeStage[1], main.t_selChars[i].stage[j]) + table.insert(main.t_includeStage[2], main.t_selChars[i].stage[j]) + elseif main.t_selChars[i].includestage == -1 then --excluded stage that can be still manually selected + table.insert(main.t_includeStage[2], main.t_selChars[i].stage[j]) + end + else --already added + main.t_selChars[i].stage[j] = main.t_stageDef[v:lower()] + end + end + end +end + +-- (Re)build list of characters allowed to be randomly selected. Must be called after any unlock/hidden state changes. +main.t_randomChars = {} +function main.f_updateRandomChars() + local t = {} + for i = 1, #main.t_selChars do + local ch = main.t_selChars[i] + -- only real character entries + if ch ~= nil and ch.name ~= nil then + -- generate table with characters allowed to be randomly selected + if ch.playable + and (ch.hidden == nil or ch.hidden <= 1) + and (ch.exclude == nil or ch.exclude == 0) then + table.insert(t, i - 1) + end + end + end + main.t_randomChars = t + if gameOption('Debug.DumpLuaTables') then main.f_printTable(main.t_randomChars, "debug/t_randomChars.txt") end +end + +-- build initial pool (may be refreshed later after unlock() runs) +main.f_updateRandomChars() + +--add default starting stage if no stages have been added via select.def +if #main.t_includeStage[1] == 0 or #main.t_includeStage[2] == 0 then + local row = main.f_addStage(gameOption('Debug.StartStage')) + table.insert(main.t_includeStage[1], row) + table.insert(main.t_includeStage[2], row) +end + +--update selectableStages table +function main.f_updateSelectableStages() + main.t_selectableStages = {} + for _, v in ipairs(main.t_includeStage[2]) do + if main.t_selStages[v].hidden == nil or main.t_selStages[v].hidden == 0 then + table.insert(main.t_selectableStages, v) + end + end +end +main.f_updateSelectableStages() +if gameOption('Config.BootLoadingMode') > 0 then + main.f_queueAllPreloadsLow() +end + +--add default maxmatches values if config is missing in select.def +if main.t_selOptions.arcademaxmatches == nil then main.t_selOptions.arcademaxmatches = {6, 1, 1, 0, 0, 0, 0, 0, 0, 0} end +if main.t_selOptions.teammaxmatches == nil then main.t_selOptions.teammaxmatches = {4, 1, 1, 0, 0, 0, 0, 0, 0, 0} end +if main.t_selOptions.timeattackmaxmatches == nil then main.t_selOptions.timeattackmaxmatches = {6, 1, 1, 0, 0, 0, 0, 0, 0, 0} end +if main.t_selOptions.survivalmaxmatches == nil then main.t_selOptions.survivalmaxmatches = {-1, 0, 0, 0, 0, 0, 0, 0, 0, 0} end + +hook.run("main.selectDef.defaults", main.t_selOptions) + +--uppercase title +function main.f_itemnameUpper(title, uppercase) + if title == nil then + return '' + end + if uppercase then + return title:upper() + end + return title +end + +--returns table storing menu window coordinates +function main.f_menuWindow(t, offset) + local offset = offset or {0, 0} + if t.window.margins.y[1] ~= 0 or t.window.margins.y[2] ~= 0 then + return { + 0, + math.max(0, t.pos[2] + offset[2] - t.window.margins.y[1]), + motif.info.localcoord[1], + t.pos[2] + offset[2] + (t.window.visibleitems - 1) * t.item.spacing[2] + t.window.margins.y[2] + } + end + return {0, 0, motif.info.localcoord[1], motif.info.localcoord[2]} +end + +function main.f_storyboard(path) + local s = loadStoryboard(path) + if s == nil then + return false + end + if gameOption('Debug.DumpLuaTables') then + -- get filename without extension from full path + local name = path:match("([^/\\]+)$") or "unknown" -- last path segment + name = name:gsub("%.[^%.]+$", "") -- strip last extension + main.f_printTable(s, 'debug/loadStoryboard_' .. name .. '.txt') + end + while true do + if not runStoryboard() then + break + end + main.f_preloadTick(2) + refresh() + end + return storyboardCanceled() +end + +function main.f_hiscore(mode, place) + while true do + if not runHiscore(mode, place) then + break + end + main.f_preloadTick(2) + refresh() + end +end + +setPlayers() + +--Load additional scripts +start = require('external.script.start') +options = require('external.script.options') +menu = require('external.script.menu') + +if getCommandLineValue("-storyboard") ~= nil then + main.f_storyboard(getCommandLineValue("-storyboard")) + os.exit() +end + +--;=========================================================== +--; MENUS +--;=========================================================== +if motif.attract_mode.enabled then + main.group = 'attract_mode' + main.background = 'attractbgdef' +else + main.group = 'title_info' + main.background = 'titlebgdef' +end + +local function enterSyncedNetplayMenu() + main.f_clearShuffleTables() + main.f_menuSnap(motif[main.group]) + main.f_menuItemBgAnimReset(motif[main.group]) + fadeInInit(motif[main.group].fadein.FadeData) + main.menu.submenu.server.loop() +end + +local function isValidIp(address) + local a, b, c, d = address:match('^(%d+)%.(%d+)%.(%d+)%.(%d+)$') + if a ~= nil then + a, b, c, d = tonumber(a), tonumber(b), tonumber(c), tonumber(d) + return a <= 255 and b <= 255 and c <= 255 and d <= 255 + end + if address:match('^[0-9A-Fa-f:]+$') and not address:match(':::') then + local _, dbl = address:gsub('::', '') + if dbl <= 1 then + local parts, bad = 0, false + for h in address:gmatch('[^:]+') do + parts = parts + 1 + if #h > 4 then bad = true break end + end + return not bad and ((dbl == 1 and parts < 8) or (dbl == 0 and parts == 8)) + end + end + return false +end + +function main.f_default() + main.aiRamp = false --if AI ramping should be active + main.charparam = { --which select.def charparam should be used + ai = false, + arcadepath = false, + music = false, + rounds = false, + single = false, + stage = false, + time = false, + } + main.coop = false --if mode should be recognized as coop + main.cpuSide = {false, true} --which side is controlled by CPU + main.dropDefeated = false --if defeated turns members should be skipped in the next match + main.elimination = false --if single lose should stop further lua execution + main.exitSelect = false --if "clearing" the mode (matchno == -1) should go back to main menu + main.forceChar = {nil, nil} --predefined P1/P2 characters + main.forceRosterSize = false --if roster size should be enforced even if there are not enough characters to fill it (not used but may be useful for external modules) + main.fightscreen = { --which fight screen elements should be rendered (these defaults are overwritten by fight.def, depending on game mode) + active = true, + bars = true, + match = false, + mode = true, + p1ailevel = false, + p1score = false, + p1wincount = false, + p2ailevel = false, + p2score = false, + p2wincount = false, + timer = false, + guardbar = gameOption('Options.GuardBreak'), + stunbar = gameOption('Options.Dizzy'), + redlifebar = gameOption('Options.RedLife'), + } + main.defaultLuaPath = 'external/script/default.lua' + main.luaPath = main.defaultLuaPath + main.pauseMenu = true + main.makeRoster = false --if default roster for each match should be generated before first match + main.matchWins = { --amount of rounds to win for each team side and team mode + draw = {gameOption('Options.Match.MaxDrawGames'), gameOption('Options.Match.MaxDrawGames')}, + simul = {gameOption('Options.Simul.Match.Wins'), gameOption('Options.Simul.Match.Wins')}, + single = {gameOption('Options.Match.Wins'), gameOption('Options.Match.Wins')}, + tag = {gameOption('Options.Tag.Match.Wins'), gameOption('Options.Tag.Match.Wins')}, + } + main.motif = { --which motif elements should be rendered + challenger = false, + continuescreen = false, + demo = true, + dialogue = true, + hiscore = false, + vsscreen = false, + vsmatchno = false, + victoryscreen = false, + winscreen = false, + losescreen = false, + menu = true, + } + main.numSimul = {gameOption('Options.Simul.Min'), gameOption('Options.Simul.Max')} --min/max number of simul characters + main.numTag = {gameOption('Options.Tag.Min'), gameOption('Options.Tag.Max')} --min/max number of tag characters + main.numTurns = {gameOption('Options.Turns.Min'), gameOption('Options.Turns.Max')} --min/max number of turn characters + main.orderSelect = {false, false} --if versus screen order selection should be active + main.persistLife = false --if life should be maintained after match + main.persistMusic = false --if the music that was playing previously should be stopped at the start of the match + main.persistRounds = false --if fight screen should use consecutive wins for round numbers + main.quickContinue = false --if by default continuing should skip player selection + main.rankingCondition = false --if winning (clearing) whole mode is needed for rankings to be saved + main.resetScore = false --if loosing should set score for the next match to lose count + main.rotationChars = false --flags modes where gameOption('Arcade.AI.SurvivalColor') should be used instead of gameOption('Arcade.AI.RandomColor') + main.roundTime = gameOption('Options.Time') --sets round time + main.selectMenu = {true, false} --which team side should be allowed to select players + main.stageMenu = false --if manual stage selection is allowed + main.stageOrder = false --if select.def stage order param should be used + main.storyboard = {intro = false, ending = false, credits = false, gameover = false} --which storyboards should be active + main.teamMenu = { + {simul = false, single = false, tag = false, turns = false}, --which team modes should be selectable by P1 side + {simul = false, single = false, tag = false, turns = false}, --which team modes should be selectable by P2 side + } + resetAILevel() + resetRemapInput() + if not motif.attract_mode.enabled and start.challenger == 0 then + setCredits(-1) --amount of credits from the start (-1 = disabled) + end + setConsecutiveWins(1, 0) + setConsecutiveWins(2, 0) + setGameMode('') + setHomeTeam(2) --http://mugenguild.com/forum/topics/ishometeam-triggers-169132.0.html + setFightScreenElements(main.fightscreen) + setMotifElements(main.motif) + setTimeFramesPerCount(fightScreenVar("time.framespercount")) + setRoundTime(math.max(-1, main.roundTime * fightScreenVar("time.framespercount"))) + setWinCount(1, 0) + setWinCount(2, 0) + textImgReset(motif.select_info.title.TextSpriteData) + demoFrameCounter = 0 + hook.run("main.f_default") +end + +-- Associative elements table storing functions controlling behaviour of each +-- menu item (modes configuration). Can be appended via external module. +main.t_itemname = { + --ARCADE / TEAM ARCADE + ['arcade'] = function(t, item) + main.aiRamp = true + main.charparam.ai = true + main.charparam.arcadepath = true + main.charparam.music = true + main.charparam.rounds = true + main.charparam.single = true + main.charparam.stage = true + main.charparam.time = true + main.exitSelect = true + --main.fightscreen.p1score = true + --main.fightscreen.p2ailevel = true + main.makeRoster = true + main.motif.challenger = true + main.motif.continuescreen = true + main.motif.hiscore = true + main.motif.vsscreen = true + main.motif.vsmatchno = true + main.motif.victoryscreen = true + main.motif.winscreen = true + main.orderSelect[1] = true + main.orderSelect[2] = true + main.resetScore = true + main.stageOrder = true + main.storyboard.credits = true + main.storyboard.ending = true + main.storyboard.gameover = true + main.storyboard.intro = true + if (t ~= nil and t[item].itemname == 'arcade') or (t == nil and not main.teamarcade) then + main.teamMenu[1].single = true + main.teamMenu[2].single = true + textImgSetText(motif.select_info.title.TextSpriteData, motif.select_info.title.text.arcade) + main.teamarcade = false + else --teamarcade + main.teamMenu[1].simul = true + main.teamMenu[1].single = true + main.teamMenu[1].tag = true + main.teamMenu[1].turns = true + main.teamMenu[2].simul = true + main.teamMenu[2].single = true + main.teamMenu[2].tag = true + main.teamMenu[2].turns = true + textImgSetText(motif.select_info.title.TextSpriteData, motif.select_info.title.text.teamarcade) + main.teamarcade = true + end + main.f_setCredits() + remapInput(1, getLastInputController()) + remapInput(getLastInputController(), 1) + setGameMode('arcade') + hook.run("main.t_itemname", t, item) + if start.challenger == 0 then + return start.f_selectMode + end + return nil + end, + --BONUS CHAR + ['bonus'] = function(t, item) + main.charparam.ai = true + main.charparam.music = true + main.charparam.rounds = true + main.charparam.single = true + main.charparam.stage = true + main.charparam.time = true + main.forceChar[2] = {main.t_bonusChars[item]} + main.selectMenu[2] = true + main.teamMenu[1].single = true + main.teamMenu[2].single = true + textImgSetText(motif.select_info.title.TextSpriteData, motif.select_info.title.text.bonus) + remapInput(1, getLastInputController()) + remapInput(getLastInputController(), 1) + setGameMode('bonus') + hook.run("main.t_itemname", t, item) + return start.f_selectMode + end, + --DEMO + ['demo'] = function(t, item) + hook.run("main.t_itemname", t, item) + return main.f_demoStart + end, + --FREE BATTLE (QUICK VS) + ['freebattle'] = function(t, item) + --main.fightscreen.p1score = true + --main.fightscreen.p2ailevel = true + main.motif.vsscreen = true + main.motif.victoryscreen = true + main.orderSelect[1] = true + main.orderSelect[2] = true + main.selectMenu[2] = true + main.stageMenu = true + main.teamMenu[1].simul = true + main.teamMenu[1].single = true + main.teamMenu[1].tag = true + main.teamMenu[1].turns = true + main.teamMenu[2].simul = true + main.teamMenu[2].single = true + main.teamMenu[2].tag = true + main.teamMenu[2].turns = true + textImgSetText(motif.select_info.title.TextSpriteData, motif.select_info.title.text.freebattle) + remapInput(1, getLastInputController()) + remapInput(getLastInputController(), 1) + setGameMode('freebattle') + hook.run("main.t_itemname", t, item) + return start.f_selectMode + end, + --JOIN (NEW ADDRESS) + ['joinadd'] = function(t, item) + sndPlay(motif.Snd, motif[main.group].cursor.move.snd[1], motif[main.group].cursor.move.snd[2]) + local name = main.f_drawInput( + motif[main.group].textinput.TextSpriteData, + motif[main.group].textinput.text.name, + motif[main.group], + motif[main.background], + motif[main.group].textinput.overlay.RectData + ) + if name ~= '' then + sndPlay(motif.Snd, motif[main.group].cursor.move.snd[1], motif[main.group].cursor.move.snd[2]) + local address = main.f_drawInput( + motif[main.group].textinput.TextSpriteData, + motif[main.group].textinput.text.address, + motif[main.group], + motif[main.background], + motif[main.group].textinput.overlay.RectData + ) + if isValidIp(address) then + sndPlay(motif.Snd, motif[main.group].cursor.done.snd.default[1], motif[main.group].cursor.done.snd.default[2]) + modifyGameOption('Netplay.IP.' .. name, address) + table.insert(t, #t, {itemname = 'ip_' .. name, displayname = name}) + saveGameOption(getCommandLineValue("-config")) + else + sndPlay(motif.Snd, motif[main.group].cancel.snd[1], motif[main.group].cancel.snd[2]) + end + else + sndPlay(motif.Snd, motif[main.group].cancel.snd[1], motif[main.group].cancel.snd[2]) + end + hook.run("main.t_itemname", t, item) + return t + end, + --NETPLAY SURVIVAL + ['netplaysurvivalcoop'] = function(t, item) + main.aiRamp = true + main.charparam.ai = true + main.charparam.music = true + main.charparam.single = true + main.charparam.stage = true + main.charparam.time = true + main.coop = true + main.elimination = true + main.exitSelect = true + --main.fightscreen.match = true + --main.fightscreen.p2ailevel = true + main.makeRoster = true + main.motif.losescreen = true + main.motif.winscreen = true + main.matchWins.draw = {0, 0} + main.matchWins.simul = {1, 1} + main.matchWins.single = {1, 1} + main.matchWins.tag = {1, 1} + main.numSimul = {2, 2} + main.numTag = {2, 2} + main.pauseMenu = false + main.persistLife = true + main.persistMusic = true + main.persistRounds = true + main.stageMenu = true + main.storyboard.credits = true + main.storyboard.gameover = true + main.teamMenu[1].simul = true + main.teamMenu[1].tag = true + main.teamMenu[2].simul = true + main.teamMenu[2].single = true + main.teamMenu[2].tag = true + main.teamMenu[2].turns = true + textImgSetText(motif.select_info.title.TextSpriteData, motif.select_info.title.text.netplaysurvivalcoop) + setGameMode('netplaysurvivalcoop') + hook.run("main.t_itemname", t, item) + return start.f_selectMode + end, + --NETPLAY CO-OP + ['netplayteamcoop'] = function(t, item) + main.aiRamp = true + main.charparam.ai = true + main.charparam.arcadepath = true + main.charparam.music = true + main.charparam.rounds = true + main.charparam.single = true + main.charparam.stage = true + main.charparam.time = true + main.coop = true + main.exitSelect = true + --main.fightscreen.p1score = true + --main.fightscreen.p2ailevel = true + main.makeRoster = true + main.motif.continuescreen = true + main.motif.vsscreen = true + main.motif.vsmatchno = true + main.motif.victoryscreen = true + main.motif.winscreen = true + main.numSimul = {2, 2} + main.numTag = {2, 2} + main.pauseMenu = false + main.resetScore = true + main.stageOrder = true + main.storyboard.credits = true + main.storyboard.ending = true + main.storyboard.gameover = true + main.storyboard.intro = true + main.teamMenu[1].simul = true + main.teamMenu[1].tag = true + main.teamMenu[2].simul = true + main.teamMenu[2].single = true + main.teamMenu[2].tag = true + main.teamMenu[2].turns = true + main.f_setCredits() + textImgSetText(motif.select_info.title.TextSpriteData, motif.select_info.title.text.netplayteamcoop) + setGameMode('netplayteamcoop') + hook.run("main.t_itemname", t, item) + return start.f_selectMode + end, + --NETPLAY VERSUS + ['netplayversus'] = function(t, item) + main.cpuSide[2] = false + --main.fightscreen.p1wincount = true + --main.fightscreen.p2wincount = true + main.motif.vsscreen = true + main.motif.victoryscreen = true + main.orderSelect[1] = true + main.orderSelect[2] = true + main.pauseMenu = false + main.selectMenu[2] = true + main.stageMenu = true + main.teamMenu[1].simul = true + main.teamMenu[1].single = true + main.teamMenu[1].tag = true + main.teamMenu[1].turns = true + main.teamMenu[2].simul = true + main.teamMenu[2].single = true + main.teamMenu[2].tag = true + main.teamMenu[2].turns = true + textImgSetText(motif.select_info.title.TextSpriteData, motif.select_info.title.text.netplayversus) + setGameMode('netplayversus') + setHomeTeam(1) + hook.run("main.t_itemname", t, item) + return start.f_selectMode + end, + --OPTIONS + ['options'] = function(t, item) + hook.run("main.t_itemname", t, item) + return options.menu.loop + end, + --RANDOMTEST + ['randomtest'] = function(t, item) + main.pauseMenu = false + setGameMode('randomtest') + hook.run("main.t_itemname", t, item) + return main.f_randomtest + end, + --REPLAY + ['replay'] = function(t, item) + hook.run("main.t_itemname", t, item) + return main.f_replay + end, + --SERVER CONNECT + ['serverconnect'] = function(t, item) + main.f_waitForPreloads(true) + local doneSnd = motif[main.group].cursor.done.snd.serverconnect or motif[main.group].cursor.done.snd.default + sndPlay(motif.Snd, doneSnd[1], doneSnd[2]) + hook.run("main.t_itemname", t, item) + if main.f_connect(gameOption('Netplay.IP.' .. t[item].itemname:gsub('^ip_', '')), t[item].displayname) then + if synchronize() then + enterSyncedNetplayMenu() + end + replayStop() + exitNetPlay() + exitReplay() + showSessionWarning() + end + return nil + end, + --SERVER HOST + ['serverhost'] = function(t, item) + main.f_waitForPreloads(true) + local doneSnd = motif[main.group].cursor.done.snd.serverhost or motif[main.group].cursor.done.snd.default + sndPlay(motif.Snd, doneSnd[1], doneSnd[2]) + hook.run("main.t_itemname", t, item) + if main.f_connect("", gameOption('Netplay.ListenPort')) then + if synchronize() then + enterSyncedNetplayMenu() + end + replayStop() + exitNetPlay() + exitReplay() + showSessionWarning() + end + return nil + end, + --STORY MODE ARC + ['storyarc'] = function(t, item) + main.motif.continuescreen = true + main.selectMenu[1] = false + for _, v in ipairs(main.t_selStoryMode) do + if v.name == t[item].itemname then + main.luaPath = v.path + break + end + end + remapInput(1, getLastInputController()) + remapInput(getLastInputController(), 1) + setGameMode(t[item].itemname) + hook.run("main.t_itemname", t, item) + return start.f_selectMode + end, + --SURVIVAL + ['survival'] = function(t, item) + main.aiRamp = true + main.charparam.ai = true + main.charparam.music = true + main.charparam.single = true + main.charparam.stage = true + main.charparam.time = true + main.dropDefeated = true + main.elimination = true + main.exitSelect = true + --main.fightscreen.match = true + --main.fightscreen.p2ailevel = true + main.makeRoster = true + main.motif.hiscore = true + main.motif.losescreen = true + main.motif.winscreen = true + main.matchWins.draw = {0, 0} + main.matchWins.simul = {1, 1} + main.matchWins.single = {1, 1} + main.matchWins.tag = {1, 1} + main.orderSelect[1] = true + main.orderSelect[2] = true + main.persistLife = true + main.persistMusic = true + main.persistRounds = true + main.rotationChars = true + main.stageMenu = true + main.storyboard.credits = true + main.storyboard.gameover = true + main.teamMenu[1].simul = true + main.teamMenu[1].single = true + main.teamMenu[1].tag = true + main.teamMenu[1].turns = true + main.teamMenu[2].simul = true + main.teamMenu[2].single = true + main.teamMenu[2].tag = true + main.teamMenu[2].turns = true + textImgSetText(motif.select_info.title.TextSpriteData, motif.select_info.title.text.survival) + remapInput(1, getLastInputController()) + remapInput(getLastInputController(), 1) + setGameMode('survival') + hook.run("main.t_itemname", t, item) + return start.f_selectMode + end, + --SURVIVAL CO-OP + ['survivalcoop'] = function(t, item) + main.aiRamp = true + main.charparam.ai = true + main.charparam.music = true + main.charparam.single = true + main.charparam.stage = true + main.charparam.time = true + main.coop = true + main.elimination = true + main.exitSelect = true + --main.fightscreen.match = true + --main.fightscreen.p2ailevel = true + main.makeRoster = true + main.motif.hiscore = true + main.motif.losescreen = true + main.motif.winscreen = true + main.matchWins.draw = {0, 0} + main.matchWins.simul = {1, 1} + main.matchWins.single = {1, 1} + main.matchWins.tag = {1, 1} + main.numSimul = {2, math.min(4, gameOption('Config.Players'))} + main.numTag = {2, math.min(4, gameOption('Config.Players'))} + main.persistLife = true + main.persistMusic = true + main.persistRounds = true + main.rotationChars = true + main.stageMenu = true + main.storyboard.credits = true + main.storyboard.gameover = true + main.teamMenu[1].simul = true + main.teamMenu[1].tag = true + main.teamMenu[2].simul = true + main.teamMenu[2].single = true + main.teamMenu[2].tag = true + main.teamMenu[2].turns = true + textImgSetText(motif.select_info.title.TextSpriteData, motif.select_info.title.text.survivalcoop) + setGameMode('survivalcoop') + hook.run("main.t_itemname", t, item) + return start.f_selectMode + end, + --TEAM CO-OP + ['teamcoop'] = function(t, item) + main.aiRamp = true + main.charparam.ai = true + main.charparam.arcadepath = true + main.charparam.music = true + main.charparam.rounds = true + main.charparam.single = true + main.charparam.stage = true + main.charparam.time = true + main.coop = true + main.exitSelect = true + --main.fightscreen.p1score = true + --main.fightscreen.p2ailevel = true + main.makeRoster = true + main.motif.continuescreen = true + main.motif.hiscore = true + main.motif.vsscreen = true + main.motif.vsmatchno = true + main.motif.victoryscreen = true + main.motif.winscreen = true + main.numSimul = {2, math.min(4, gameOption('Config.Players'))} + main.numTag = {2, math.min(4, gameOption('Config.Players'))} + main.resetScore = true + main.stageOrder = true + main.storyboard.credits = true + main.storyboard.ending = true + main.storyboard.gameover = true + main.storyboard.intro = true + main.teamMenu[1].simul = true + main.teamMenu[1].tag = true + main.teamMenu[2].simul = true + main.teamMenu[2].single = true + main.teamMenu[2].tag = true + main.teamMenu[2].turns = true + main.f_setCredits() + textImgSetText(motif.select_info.title.TextSpriteData, motif.select_info.title.text.teamcoop) + setGameMode('teamcoop') + hook.run("main.t_itemname", t, item) + return start.f_selectMode + end, + --TIME ATTACK + ['timeattack'] = function(t, item) + main.aiRamp = true + main.charparam.ai = true + main.charparam.music = true + main.charparam.rounds = true + main.charparam.single = true + main.charparam.stage = true + main.charparam.time = true + main.exitSelect = true + --main.fightscreen.p2ailevel = true + --main.fightscreen.timer = true + main.makeRoster = true + main.motif.continuescreen = true + main.motif.hiscore = true + main.motif.vsscreen = true + main.motif.vsmatchno = true + main.motif.winscreen = true + main.quickContinue = true + main.orderSelect[1] = true + main.orderSelect[2] = true + main.resetScore = true + main.stageOrder = true + main.storyboard.credits = true + main.storyboard.gameover = true + main.teamMenu[1].simul = true + main.teamMenu[1].single = true + main.teamMenu[1].tag = true + main.teamMenu[1].turns = true + main.teamMenu[2].simul = true + main.teamMenu[2].single = true + main.teamMenu[2].tag = true + main.teamMenu[2].turns = true + main.f_setCredits() + textImgSetText(motif.select_info.title.TextSpriteData, motif.select_info.title.text.timeattack) + remapInput(1, getLastInputController()) + remapInput(getLastInputController(), 1) + setGameMode('timeattack') + hook.run("main.t_itemname", t, item) + return start.f_selectMode + end, + --TRAINING + ['training'] = function(t, item) + if main.t_charDef[gameOption('Config.TrainingChar'):lower()] ~= nil then + main.forceChar[2] = {main.t_charDef[gameOption('Config.TrainingChar'):lower()]} + end + --main.fightscreen.p1score = true + --main.fightscreen.p2ailevel = true + main.roundTime = -1 + main.selectMenu[2] = true + if gameOption('Config.TrainingStage') == '' then + main.stageMenu = true + end + main.teamMenu[1].simul = true + main.teamMenu[1].single = true + main.teamMenu[1].tag = true + main.teamMenu[1].turns = true + main.teamMenu[2].single = true + main.matchWins.draw = {0, 0} + main.matchWins.simul = {0, 0} + main.matchWins.single = {0, 0} + main.matchWins.tag = {0, 0} + textImgSetText(motif.select_info.title.TextSpriteData, motif.select_info.title.text.training) + remapInput(1, getLastInputController()) + remapInput(getLastInputController(), 1) + setGameMode('training') + setHomeTeam(1) + hook.run("main.t_itemname", t, item) + return start.f_selectMode + end, + --VS MODE / TEAM VERSUS + ['versus'] = function(t, item) + main.cpuSide[2] = false + --main.fightscreen.p1wincount = true + --main.fightscreen.p2wincount = true + main.motif.vsscreen = true + main.motif.victoryscreen = true + main.orderSelect[1] = true + main.orderSelect[2] = true + main.selectMenu[2] = true + main.stageMenu = true + if (start.challenger == 0 and t[item].itemname == 'versus') or (start.challenger ~= 0 and not main.teamarcade) then + main.teamMenu[1].single = true + main.teamMenu[2].single = true + textImgSetText(motif.select_info.title.TextSpriteData, motif.select_info.title.text.versus) + else --teamversus + main.teamMenu[1].simul = true + main.teamMenu[1].single = true + main.teamMenu[1].tag = true + main.teamMenu[1].turns = true + main.teamMenu[2].simul = true + main.teamMenu[2].single = true + main.teamMenu[2].tag = true + main.teamMenu[2].turns = true + textImgSetText(motif.select_info.title.TextSpriteData, motif.select_info.title.text.teamversus) + end + if start.challenger > 0 then + setGameMode('challenger') + else + setGameMode('versus') + end + setHomeTeam(1) + hook.run("main.t_itemname", t, item) + if start.challenger == 0 then + return start.f_selectMode + end + return nil + end, + --VERSUS CO-OP + ['versuscoop'] = function(t, item) + main.coop = true + main.cpuSide[2] = false + --main.fightscreen.p1wincount = true + --main.fightscreen.p2wincount = true + main.motif.vsscreen = true + main.motif.victoryscreen = true + main.numSimul = {2, math.min(4, math.max(2, math.ceil(gameOption('Config.Players') / 2)))} + main.numTag = {2, math.min(4, math.max(2, math.ceil(gameOption('Config.Players') / 2)))} + main.selectMenu[2] = true + main.stageMenu = true + main.teamMenu[1].simul = true + main.teamMenu[1].tag = true + main.teamMenu[2].simul = true + main.teamMenu[2].tag = true + textImgSetText(motif.select_info.title.TextSpriteData, motif.select_info.title.text.versuscoop) + setGameMode('versuscoop') + setHomeTeam(1) + hook.run("main.t_itemname", t, item) + return start.f_selectMode + end, + --WATCH + ['watch'] = function(t, item) + main.cpuSide[1] = true + --main.fightscreen.p1ailevel = true + --main.fightscreen.p2ailevel = true + main.motif.vsscreen = true + main.motif.victoryscreen = true + main.selectMenu[2] = true + main.stageMenu = true + main.teamMenu[1].simul = true + main.teamMenu[1].single = true + main.teamMenu[1].tag = true + main.teamMenu[1].turns = true + main.teamMenu[2].simul = true + main.teamMenu[2].single = true + main.teamMenu[2].tag = true + main.teamMenu[2].turns = true + textImgSetText(motif.select_info.title.TextSpriteData, motif.select_info.title.text.watch) + remapInput(1, getLastInputController()) + remapInput(getLastInputController(), 1) + setGameMode('watch') + setHomeTeam(1) + hook.run("main.t_itemname", t, item) + return start.f_selectMode + end, +} +main.t_itemname.teamarcade = main.t_itemname.arcade +main.t_itemname.teamversus = main.t_itemname.versus +if gameOption('Debug.DumpLuaTables') then main.f_printTable(main.t_itemname, 'debug/t_mainItemname.txt') end + +function main.f_deleteIP(item, t) + if t[item].itemname:match('^ip_') then + sndPlay(motif.Snd, motif.title_info.cancel.snd[1], motif.title_info.cancel.snd[2]) + resetKey() + modifyGameOption('Netplay.IP.' .. t[item].itemname:gsub('^ip_', ''), nil) + saveGameOption(getCommandLineValue("-config")) + for i = 1, #t do + if t[i].itemname == t[item].itemname then + table.remove(t, i) + break + end + end + end + return t +end + +--return table without hidden modes (present in main.t_unlockLua.modes table) +function main.f_hiddenItems(t_items) + local t = {} + for _, v in ipairs(t_items) do + if main.t_unlockLua.modes[v.itemname] == nil then + table.insert(t, v) + end + end + return t +end + +local demoFrameCounter = 0 +local introWaitCycles = 0 + +-- Returns the action function name and visible items table if the given menu table has exactly one actionable entry. +function main.f_getSingleMenuAction(tbl) + if tbl == nil or tbl.items == nil then + return nil + end + local cnt = 0 + local f = nil + for _, v in ipairs(tbl.items) do + if tbl.name == 'bonusgames' --[[or tbl.name == 'storymode']] or v.itemname == 'joinadd' then + return nil + elseif v.itemname ~= 'back' and main.t_unlockLua.modes[v.itemname] == nil then + local fname = v.itemname + if main.t_itemname[fname] == nil then + if t_storyModeList[fname] then + fname = 'storyarc' + elseif fname:match('^bonus_') then + fname = 'bonus' + elseif fname:match('^ip_') then + fname = 'serverconnect' + end + end + cnt = cnt + 1 + f = fname + if cnt > 1 then + return nil + end + end + end + if f ~= nil and main.t_itemname[f] ~= nil and cnt == 1 then + local t = main.f_hiddenItems(tbl.items) + return f, t + end + return nil +end + +-- Shared menu loop logic +function main.f_createMenu(tbl, bool_bgreset, bool_main, bool_f1, bool_del) + return function() + hook.run("main.menu.loop") + local cursorPosY = 1 + local moveTxt = 0 + local item = 1 + local t = main.f_hiddenItems(tbl.items) + local call_t_override = nil + local call_item_override = nil + --skip showing menu if there is only 1 valid item + main.f_menuSnap(motif[main.group]) + -- Reset menu item background animations + main.f_menuItemBgAnimReset(motif[main.group]) + -- Only auto-run here for menus that are entered directly (no parent submenu), so the fadeout is handled in the caller for submenus. + local single_f, single_t = main.f_getSingleMenuAction(tbl) + if single_f ~= nil and bool_bgreset then + main.f_default() + main.menu.f = main.t_itemname[single_f](single_t, item) + main.f_unlock(false) + if main.menu.f ~= nil then + main.menu.f() + end + main.f_default() + main.f_unlock(false) + local itemNum = #t + t = main.f_hiddenItems(tbl.items) + main.menu.f = nil + if itemNum == #t then + return + end + end + --more than 1 item (or newly unlocked ones), continue loop + if bool_main then + if motif.files.logo.storyboard ~= '' then + main.f_storyboard(motif.files.logo.storyboard) + end + if motif.files.intro.storyboard ~= '' then + main.f_storyboard(motif.files.intro.storyboard) + end + end + if bool_bgreset then + if not motif.attract_mode.enabled then + bgReset(motif[main.background].BGDef) + playBgm({source = "motif.title", interrupt = true}) + end + fadeInInit(motif[main.group].fadein.FadeData) + end + main.menu.f = nil + while true do + if tbl.reset then + tbl.reset = false + else + main.f_menuCommonDraw(t, item, cursorPosY, moveTxt, motif[main.group], motif[main.background], false) + end + -- While fading, ignore normal menu inputs, but still allow ESC / menu-cancel to skip the fade. + if fadeActive() then + if esc() or getInput(-1, motif[main.group].menu.cancel.key) then + fadeSkip() + end + elseif main.menu.f ~= nil then + main.f_unlock(false) + main.menu.f() + main.f_default() + main.f_unlock(false) + t = main.f_hiddenItems(tbl.items) + main.menu.f = nil + else + if bool_main then + main.f_demo() + end + local item_sav = item + cursorPosY, moveTxt, item = main.f_menuCommonCalc(t, item, cursorPosY, moveTxt, motif[main.group], motif[main.group].cursor) + textImgSetText(motif[main.group].title.TextSpriteData, tbl.title) + if item_sav ~= item then + demoFrameCounter = 0 + introWaitCycles = 0 + end + local cancelInputTime = getInputTime(-1, motif[main.group].menu.cancel.key) + if esc() or cancelInputTime > 0 then + if not bool_main then + sndPlay(motif.Snd, motif[main.group].cancel.snd[1], motif[main.group].cancel.snd[2]) + elseif not esc() and t[item].itemname ~= 'exit' then + --menu key moves cursor to exit without exiting the game + for i = 1, #t do + if t[i].itemname == 'exit' then + sndPlay(motif.Snd, motif[main.group].cancel.snd[1], motif[main.group].cancel.snd[2]) + item = i + cursorPosY = math.min(item, motif[main.group].menu.window.visibleitems) + if cursorPosY >= motif[main.group].menu.window.visibleitems then + moveTxt = (item - motif[main.group].menu.window.visibleitems) * motif[main.group].menu.item.spacing[2] + end + break + end + end + end + -- If held for 30 frames or longer, show info text + if cancelInputTime > 30 then + main.f_warning( + motif.infobox.text.text, + motif[main.group], + motif[main.background], + motif.infobox.overlay.RectData, + motif.infobox.title.TextSpriteData, + motif.infobox.text.TextSpriteData + ) + end + if not bool_main or esc() then + break + end + elseif bool_f1 and (getKey(motif.infobox.keycode) or gameOption('Config.FirstRun')) then + if gameOption('Config.FirstRun') then + modifyGameOption('Config.FirstRun', false) + options.f_saveCfg(false) + end + main.f_warning( + motif.infobox.text.text, + motif[main.group], + motif[main.background], + motif.infobox.overlay.RectData, + motif.infobox.title.TextSpriteData, + motif.infobox.text.TextSpriteData + ) + elseif motif.attract_mode.enabled and getKey(motif.attract_mode.options.keycode) then + main.f_default() + main.menu.f = main.t_itemname.options() + sndPlay(motif.Snd, motif[main.group].cursor.done.snd.default[1], motif[main.group].cursor.done.snd.default[2]) + fadeOutInit(motif[main.group].fadeout.FadeData) + resetKey() + elseif bool_del and getKey(motif[main.group].menu.item.delete.keycode) then + tbl.items = main.f_deleteIP(item, t) + elseif main.f_hiscoreDisplay(t[item].itemname) then + demoFrameCounter = 0 + elseif getInput(-1, motif[main.group].menu.done.key) then + demoFrameCounter = 0 + local f = t[item].itemname + if f == 'back' then + sndPlay(motif.Snd, motif[main.group].cancel.snd[1], motif[main.group].cancel.snd[2]) + break + elseif f == 'exit' then + break + elseif main.t_itemname[f] == nil then + if t_storyModeList[f] then + f = 'storyarc' + elseif f:match('^bonus_') then + f = 'bonus' + elseif f:match('^ip_') then + f = 'serverconnect' + elseif tbl.submenu[f].loop ~= nil and #tbl.submenu[f].items > 0 then + -- Check if the target submenu would immediately auto-run a single actionable item. + -- If so, treat that as if it was selected directly here, so fadeout uses the current menu. + local single_f2, single_t2 = main.f_getSingleMenuAction(tbl.submenu[f]) + if single_f2 ~= nil then + f = single_f2 + call_t_override = single_t2 + call_item_override = 1 + else + local doneSnd = motif[main.group].cursor.done.snd[f] or motif[main.group].cursor.done.snd.default + sndPlay(motif.Snd, doneSnd[1], doneSnd[2]) + tbl.submenu[f].loop() + f = '' + main.f_menuSnap(motif[main.group]) + main.f_menuItemBgAnimReset(motif[main.group]) + end + else + break + end + end + if f ~= '' then + main.f_default() + if f == 'joinadd' then + tbl.items = main.t_itemname[f](t, item) + elseif main.t_itemname[f] ~= nil then + local call_t = call_t_override or t + local call_item = call_item_override or item + main.menu.f = main.t_itemname[f](call_t, call_item) + end + call_t_override = nil + call_item_override = nil + if main.menu.f ~= nil then + local doneSnd = motif[main.group].cursor.done.snd[f] or motif[main.group].cursor.done.snd.default + sndPlay(motif.Snd, doneSnd[1], doneSnd[2]) + fadeOutInit(motif[main.group].fadeout.FadeData) + end + end + end + end + end + end +end + +-- Recursively remove pruned items/submenus. +function main.f_pruneMenu(tbl, excluded) + if type(tbl) ~= 'table' or type(excluded) ~= 'table' then + return + end + -- Remove items + if type(tbl.items) == 'table' then + for i = #tbl.items, 1, -1 do + local it = tbl.items[i] + if type(it) == 'table' and excluded[it.itemname] then + table.remove(tbl.items, i) + end + end + end + -- Remove / recurse submenus + if type(tbl.submenu) == 'table' then + for k, sub in pairs(tbl.submenu) do + if excluded[k] then + tbl.submenu[k] = nil + else + main.f_pruneMenu(sub, excluded) + end + end + end +end + +-- Remove vardisplay pointer entries for items that were pruned from the menu. +function main.f_prunePointers(ptrs, excluded) + if type(ptrs) ~= 'table' or type(excluded) ~= 'table' then + return + end + for i = #ptrs, 1, -1 do + local v = ptrs[i] + if type(v) == 'table' and excluded[v.itemname] then + table.remove(ptrs, i) + end + end +end + +-- Dynamically generates all menus and submenus +function main.f_start() + main.menu = {title = main.f_itemnameUpper(motif[main.group].title.text, motif[main.group].menu.title.uppercase), submenu = {}, items = {}} + main.menu.loop = main.f_createMenu(main.menu, true, main.group == 'title_info', main.group == 'title_info', false) + local w = main.f_menuWindow(motif[main.group].menu) + local t_pos = {} --for storing current main.menu table position + local t_skipGroup = {} + local lastNum = 0 + local bonusUpper = true + for i, suffix in ipairs(motif[main.group].menu.itemname_order) do + for j, c in ipairs(main.f_strsplit('_', suffix)) do --split using "_" delimiter + --exceptions for expanding the menu table + if motif[main.group].menu.itemname[suffix] == '' and c ~= 'server' then --items and groups without displayname are skipped + t_skipGroup[c] = true + break + elseif t_skipGroup[c] then --named item but inside a group without displayname + break + elseif c == 'bonusgames' and #main.t_bonusChars == 0 then --skip bonus mode if there are no characters with bonus param set to 1 + t_skipGroup[c] = true + break + elseif c == 'storymode' and #main.t_selStoryMode == 0 then --skip story mode if there are no story arc declared + t_skipGroup[c] = true + break + elseif c == 'versuscoop' and gameOption('Config.Players') < 4 then --skip versus coop if there are not enough players + t_skipGroup[c] = true + break + end + --appending the menu table + if j == 1 then --first string after menu.itemname (either reserved one or custom submenu assignment) + if main.menu.submenu[c] == nil then + main.menu.submenu[c] = {title = main.f_itemnameUpper(motif[main.group].menu.itemname[suffix], motif[main.group].menu.title.uppercase), submenu = {}, items = {}} + main.menu.submenu[c].loop = main.f_createMenu(main.menu.submenu[c], false, false, true, c == 'serverjoin') + if not suffix:match(c .. '_') then + table.insert(main.menu.items, { + itemname = c, + displayname = motif[main.group].menu.itemname[suffix], + paramname = suffix, + }) + if c == 'bonusgames' then bonusUpper = main.menu.items[#main.menu.items].displayname == main.menu.items[#main.menu.items].displayname:upper() end + end + end + t_pos = main.menu.submenu[c] + t_pos.name = c + else --following strings + if t_pos.submenu[c] == nil then + t_pos.submenu[c] = {title = main.f_itemnameUpper(motif[main.group].menu.itemname[suffix], motif[main.group].menu.title.uppercase), submenu = {}, items = {}} + t_pos.submenu[c].loop = main.f_createMenu(t_pos.submenu[c], false, false, true, c == 'serverjoin') + table.insert(t_pos.items, { + itemname = c, + displayname = motif[main.group].menu.itemname[suffix], + paramname = suffix, + }) + if c == 'bonusgames' then bonusUpper = t_pos.items[#t_pos.items].displayname == t_pos.items[#t_pos.items].displayname:upper() end + end + if j > lastNum then + t_pos = t_pos.submenu[c] + t_pos.name = c + end + end + lastNum = j + --add bonus character names to bonusgames submenu + if suffix:match('bonusgames_back$') and c == 'bonusgames' then --j == main.f_countSubstring(suffix, '_') then + for k = 1, #main.t_bonusChars do + local name = start.f_getCharData(main.t_bonusChars[k]).name + local itemname = 'bonus_' .. name:gsub('%s+', '_') + table.insert(t_pos.items, { + itemname = itemname, + displayname = main.f_itemnameUpper(name, bonusUpper), + paramname = suffix:gsub('back$', itemname), + }) + end + end + --add story arcs to storymode submenu + if suffix:match('storymode_back$') and c == 'storymode' then --j == main.f_countSubstring(suffix, '_') then + for k, v in ipairs(main.t_selStoryMode) do + local itemname = v.name:gsub('%s+', '_') + table.insert(t_pos.items, { + itemname = itemname, + displayname = v.displayname, + paramname = suffix:gsub('back$', itemname), + }) + end + end + --add IP addresses for serverjoin submenu + if suffix:match('_serverjoin_back$') and c == 'serverjoin' then --j == main.f_countSubstring(suffix, '_') then + for k, v in pairs(gameOption('Netplay.IP')) do + local itemname = 'ip_' .. k + table.insert(t_pos.items, { + itemname = itemname, + displayname = k, + paramname = suffix:gsub('back$', itemname), + }) + end + end + end + end + textImgSetWindow(motif[main.group].menu.item.selected.active.TextSpriteData, w[1], w[2], w[3], w[4]) + textImgSetWindow(motif[main.group].menu.item.active.TextSpriteData, w[1], w[2], w[3], w[4]) + textImgSetWindow(motif[main.group].menu.item.value.active.TextSpriteData, w[1], w[2], w[3], w[4]) + textImgSetWindow(motif[main.group].menu.item.selected.TextSpriteData, w[1], w[2], w[3], w[4]) + textImgSetWindow(motif[main.group].menu.item.TextSpriteData, w[1], w[2], w[3], w[4]) + textImgSetWindow(motif[main.group].menu.item.value.TextSpriteData, w[1], w[2], w[3], w[4]) + --for _, v in pairs(motif[main.group].menu.item.bg) do + -- animSetWindow(v.AnimData, w[1], w[2], w[3], w[4]) + --end + --for _, v in pairs(motif[main.group].menu.item.active.bg) do + -- animSetWindow(v.AnimData, w[1], w[2], w[3], w[4]) + --end + if gameOption('Debug.DumpLuaTables') then main.f_printTable(main.menu, 'debug/t_mainMenu.txt') end +end + +function main.f_clearShuffleTables() + start.shuffleChars = nil + start.shuffleStages = nil + start.shufflePals = nil + start.lastRandomChar = nil + start.lastRandomPal = nil + start.lastStageIdx = nil +end + +function main.f_deleteReplay(item, t) + if t[item] == nil or t[item].itemname == 'back' or not t[item].itemname:match('%.replay$') then + return t, item + end + + local ok, err = os.remove(t[item].itemname) + if not ok then + print('Unable to delete replay: ' .. t[item].itemname .. (err and ' (' .. tostring(err) .. ')' or '')) + return t, item + end + + sndPlay(motif.Snd, motif.replay_info.cancel.snd[1], motif.replay_info.cancel.snd[2]) + resetKey() + table.remove(t, item) + item = math.max(1, math.min(item, #t)) + return t, item +end + +function main.f_renameReplay(item, t) + if t[item] == nil or t[item].itemname == 'back' or not t[item].itemname:match('%.replay$') then + return t, item + end + local oldPath, oldName, ext = t[item].itemname:match('^(.-)([^\\/]+)%.([^%.\\/]-)$') + if oldPath == nil or oldName == nil or ext == nil then + return t, item + end + sndPlay(motif.Snd, motif.replay_info.cursor.move.snd[1], motif.replay_info.cursor.move.snd[2]) + local newName = main.f_drawInput( + motif.title_info.textinput.TextSpriteData, + motif.title_info.textinput.text.replay, + motif.title_info, + motif.replaybgdef, + motif.title_info.textinput.overlay.RectData, + oldName + ) + newName = (newName or ''):match('^%s*(.-)%s*$') + newName = newName:gsub('%.[Rr][Ee][Pp][Ll][Aa][Yy]$', '') + if newName == '' or newName == oldName then + sndPlay(motif.Snd, motif.replay_info.cancel.snd[1], motif.replay_info.cancel.snd[2]) + return t, item + end + if newName:match('[\\/:%*%?"<>|]') then + sndPlay(motif.Snd, motif.replay_info.cancel.snd[1], motif.replay_info.cancel.snd[2]) + return t, item + end + local newFile = oldPath .. newName .. '.' .. ext + if main.f_fileExists(newFile) then + sndPlay(motif.Snd, motif.replay_info.cancel.snd[1], motif.replay_info.cancel.snd[2]) + return t, item + end + local ok, err = os.rename(t[item].itemname, newFile) + if not ok then + print('Unable to rename replay: ' .. t[item].itemname .. ' -> ' .. newFile .. (err and ' (' .. tostring(err) .. ')' or '')) + sndPlay(motif.Snd, motif.replay_info.cancel.snd[1], motif.replay_info.cancel.snd[2]) + return t, item + end + sndPlay(motif.Snd, motif.replay_info.cursor.done.snd[1], motif.replay_info.cursor.done.snd[2]) + t[item].itemname = newFile + t[item].displayname = newName + return t, item +end + +--replay menu +function main.f_replay() + local w = main.f_menuWindow(motif.replay_info.menu) + textImgSetWindow(motif.replay_info.menu.item.selected.active.TextSpriteData, w[1], w[2], w[3], w[4]) + textImgSetWindow(motif.replay_info.menu.item.active.TextSpriteData, w[1], w[2], w[3], w[4]) + textImgSetWindow(motif.replay_info.menu.item.value.active.TextSpriteData, w[1], w[2], w[3], w[4]) + textImgSetWindow(motif.replay_info.menu.item.value.TextSpriteData, w[1], w[2], w[3], w[4]) + textImgSetWindow(motif.replay_info.menu.item.selected.TextSpriteData, w[1], w[2], w[3], w[4]) + textImgSetWindow(motif.replay_info.menu.item.TextSpriteData, w[1], w[2], w[3], w[4]) + for _, v in pairs(motif.replay_info.menu.item.bg) do + animSetWindow(v.AnimData, w[1], w[2], w[3], w[4]) + end + for _, v in pairs(motif.replay_info.menu.item.active.bg) do + animSetWindow(v.AnimData, w[1], w[2], w[3], w[4]) + end + textImgReset(motif.replay_info.title.TextSpriteData) + textImgSetText(motif.replay_info.title.TextSpriteData, main.f_itemnameUpper(motif.replay_info.title.text, motif.replay_info.menu.title.uppercase)) + local cursorPosY = 1 + local moveTxt = 0 + local item = 1 + local t = {} + for k, v in ipairs(getDirectoryFiles('save/replays')) do + v:gsub('^(.-)([^\\/]+)%.([^%.\\/]-)$', function(path, filename, ext) + path = path:gsub('\\', '/') + ext = ext:lower() + if ext == 'replay' then + table.insert(t, {itemname = path .. filename .. '.' .. ext, displayname = filename}) + end + end) + end + table.insert(t, {itemname = 'back', displayname = motif.replay_info.menu.itemname.back}) + bgReset(motif.replaybgdef.BGDef) + fadeInInit(motif.replay_info.fadein.FadeData) + playBgm({source = "motif.replay"}) + main.close = false + while true do + main.f_menuCommonDraw(t, item, cursorPosY, moveTxt, motif.replay_info, motif.replaybgdef, false) + cursorPosY, moveTxt, item = main.f_menuCommonCalc(t, item, cursorPosY, moveTxt, motif.replay_info, motif.replay_info.cursor) + if main.close and not fadeActive() then + bgReset(motif[main.background].BGDef) + fadeInInit(motif[main.group].fadein.FadeData) + playBgm({source = "motif.title", interrupt = true}) + main.close = false + break + elseif esc() or getInput(-1, motif[main.group].menu.cancel.key) or (t[item].itemname == 'back' and getInput(-1, motif[main.group].menu.done.key)) then + sndPlay(motif.Snd, motif.replay_info.cancel.snd[1], motif.replay_info.cancel.snd[2]) + fadeOutInit(motif.replay_info.fadeout.FadeData) + main.close = true + elseif getKey(motif.replay_info.menu.item.delete.keycode) then + t, item = main.f_deleteReplay(item, t) + local visibleItems = motif.replay_info.menu.window.visibleitems + if visibleItems == nil or visibleItems <= 0 then + visibleItems = #t + end + cursorPosY = math.max(1, math.min(cursorPosY, item, visibleItems)) + elseif getKey(motif.replay_info.menu.item.rename.keycode) then + t, item = main.f_renameReplay(item, t) + elseif getInput(-1, motif[main.group].menu.done.key) then + main.f_waitForPreloads(true) + sndPlay(motif.Snd, motif[main.group].cursor.done.snd.default[1], motif[main.group].cursor.done.snd.default[2]) + if enterReplay(t[item].itemname) and synchronize() then + main.replayActive = true + enterSyncedNetplayMenu() + end + main.replayActive = false + replayStop() + exitNetPlay() + exitReplay() + showSessionWarning() + end + end +end + +function main.f_connect(server, str) + enterNetPlay(server) + while not connected() do + if esc() or getInput(-1, motif.title_info.menu.cancel.key) then + sndPlay(motif.Snd, motif.title_info.cancel.snd[1], motif.title_info.cancel.snd[2]) + exitNetPlay() + return false + end + --draw clearcolor + clearColor(motif[main.background].bgclearcolor[1], motif[main.background].bgclearcolor[2], motif[main.background].bgclearcolor[3]) + --draw layerno = 0 backgrounds + bgDraw(motif[main.background].BGDef, 0) + --draw overlay + rectDraw(motif.title_info.connecting.overlay.RectData) + --draw text + local txt = string.format(motif.title_info.connecting.text.default, str) + if server ~= '' then + txt = string.format(motif.title_info.connecting.text.join, server, str) + end + textImgReset(motif.title_info.connecting.TextSpriteData) + textImgSetText(motif.title_info.connecting.TextSpriteData, txt) + textImgDraw(motif.title_info.connecting.TextSpriteData) + --draw layerno = 1 backgrounds + bgDraw(motif[main.background].BGDef, 1) + refresh() + end + replayRecord('save/replays/' .. os.date("%Y-%m-%d_%Hh%Mm%Ss") .. '.replay') + return true +end + +--asserts content unlock conditions +function main.f_unlock(permanent) + local refreshRandom = false + local stats = jsonDecode(getCommandLineValue("-stats")) or {} + local env = setmetatable({stats = stats}, {__index = _G}) + for group, t in pairs(main.t_unlockLua) do + local t_del = {} + for k, v in pairs(t) do + local func, err = loadstring('return ' .. v) + if func == nil then + panicError("\nmain.t_unlockLua." .. group .. "[" .. k .. "]\n" .. + "Invalid Lua code: \n" .. v .. "\n" .. tostring(err) .. "\n") + end + setfenv(func, env) + local bool = func() + if type(bool) == 'boolean' then + if group == 'chars' then + if main.f_unlockChar(k, bool, false) then + refreshRandom = true + end + elseif group == 'stages' then + main.f_unlockStage(k, bool) + elseif group == 'modes' then + -- already handled via t_del cleaning + end + if bool and (permanent or group == 'modes') then + table.insert(t_del, k) + end + else + panicError("\nmain.t_unlockLua." .. group .. "[" .. k .. "]\n" .. + "Following Lua code does not return boolean value: \n" .. v .. "\n") + end + end + -- clean lua code that already returned true + for _, v in ipairs(t_del) do + t[v] = nil + end + end + -- If any character visibility changed, rebuild random pool and clear shuffle bags so RandomSelect immediately reflects the updated roster. + if refreshRandom then + main.f_updateRandomChars() + if start ~= nil then + main.f_clearShuffleTables() + end + end +end + +--unlock characters (select screen grid only) +function main.f_unlockChar(num, bool, reset) + local changed = false + if bool then + if main.t_selChars[num].hidden ~= 0 then + main.t_selChars[num].hidden_default = main.t_selChars[num].hidden + main.t_selChars[num].hidden = 0 + for k, v in pairs(main.t_selChars[num]) do + local mode = orderParamMode(k) + local order = tonumber(v) + if mode ~= nil and order ~= nil and order < 0 then + main.t_selChars[num][k] = 0 - order + addOrderChar(mode, main.t_selChars[num][k], main.t_selChars[num].char_ref) + end + end + start.t_grid[main.t_selChars[num].row][main.t_selChars[num].col].hidden = main.t_selChars[num].hidden + if reset then start.f_resetGrid() end + changed = true + end + elseif main.t_selChars[num].hidden_default == nil then + return false + elseif main.t_selChars[num].hidden ~= main.t_selChars[num].hidden_default then + main.t_selChars[num].hidden = main.t_selChars[num].hidden_default + start.t_grid[main.t_selChars[num].row][main.t_selChars[num].col].hidden = main.t_selChars[num].hidden + if reset then start.f_resetGrid() end + changed = true + end + return changed +end + +--unlock stages (stage selection menu only) +function main.f_unlockStage(num, bool) + if bool then + if main.t_selStages[num].hidden ~= 0 then + main.t_selStages[num].hidden_default = main.t_selStages[num].hidden + main.t_selStages[num].hidden = 0 + main.f_updateSelectableStages() + end + elseif main.t_selStages[num].hidden_default == nil then + return + elseif main.t_selStages[num].hidden ~= main.t_selStages[num].hidden_default then + main.t_selStages[num].hidden = main.t_selStages[num].hidden_default + main.f_updateSelectableStages() + end +end + +main.t_hiscoreMap = { + teamarcade = 'arcade', +} +function main.f_hiscoreDisplay(itemname) + local stats = jsonDecode(getCommandLineValue("-stats")) + local mode = main.t_hiscoreMap[itemname] or itemname + if not motif.hiscore_info.enabled or stats.modes == nil or stats.modes[mode] == nil or stats.modes[mode].ranking == nil then + return false + end + if not getInput(-1, motif[main.group].menu.hiscore.key) then + return false + end + sndPlay(motif.Snd, motif[main.group].cursor.done.snd.default[1], motif[main.group].cursor.done.snd.default[2]) + main.f_hiscore(mode, -1) + --fadeInInit(motif[main.group].fadein.FadeData) + playBgm({source = "motif.title", interrupt = true}) + return true +end + +--attract mode start screen +function main.f_attractStart() + local timerActive = getCredits() ~= 0 + local timer = 0 + local counter = 0 - motif.attract_mode.fadein.time + local press_blinktime, insert_blinktime = 0, 0 + local press_switched, insert_switched = false, false + local drawPress, drawInsert = true, true + clearColor(motif.attractbgdef.bgclearcolor[1], motif.attractbgdef.bgclearcolor[2], motif.attractbgdef.bgclearcolor[3]) + bgReset(motif.attractbgdef.BGDef) + fadeInInit(motif.attract_mode.fadein.FadeData) + local fadeOutStarted = false + playBgm({source = "motif.title", interrupt = true}) + local creditsCnt = getCredits() + while true do + counter = counter + 1 + --draw layerno = 0 backgrounds + bgDraw(motif.attractbgdef.BGDef, 0) + --draw text + if getCredits() ~= 0 then + if motif.attract_mode.start.press.blinktime > 0 and not fadeOutStarted then + if press_blinktime < motif.attract_mode.start.press.blinktime then + press_blinktime = press_blinktime + 1 + elseif press_switched then + drawPress = true + press_switched = false + press_blinktime = 0 + else + drawPress = false + press_switched = true + press_blinktime = 0 + end + end + if drawPress then + textImgDraw(motif.attract_mode.start.press.TextSpriteData) + end + else + if motif.attract_mode.start.insert.blinktime > 0 and not fadeOutStarted then + if insert_blinktime < motif.attract_mode.start.insert.blinktime then + insert_blinktime = insert_blinktime + 1 + elseif insert_switched then + drawInsert = true + insert_switched = false + insert_blinktime = 0 + else + drawInsert = false + insert_switched = true + insert_blinktime = 0 + end + end + if drawInsert then + textImgDraw(motif.attract_mode.start.insert.TextSpriteData) + end + end + --draw timer + if motif.attract_mode.start.timer.count ~= -1 and timerActive then + timer, timerActive = main.f_drawTimer(timer, motif.attract_mode.start.timer) + end + --draw credits text + if getCredits() ~= -1 then + textImgReset(motif.attract_mode.credits.TextSpriteData) + textImgSetText(motif.attract_mode.credits.TextSpriteData, string.format(motif.attract_mode.credits.text, getCredits())) + textImgDraw(motif.attract_mode.credits.TextSpriteData) + end + --credits + if creditsCnt ~= getCredits() then + timerActive = true + timer = motif.attract_mode.start.timer.displaytime + creditsCnt = getCredits() + end + --options + if motif.attract_mode.enabled and getKey(motif.attract_mode.options.keycode) then + main.f_default() + main.menu.f = main.t_itemname.options() + local doneSnd = motif[main.group].cursor.done.snd.options or motif[main.group].cursor.done.snd.default + sndPlay(motif.Snd, doneSnd[1], doneSnd[2]) + fadeOutInit(motif[main.group].fadeout.FadeData) + fadeOutStarted = true + resetKey() + main.menu.f() + return false + end + --draw layerno = 1 backgrounds + bgDraw(motif.attractbgdef.BGDef, 1) + --draw fadein / fadeout + if not fadeOutStarted and not fadeActive() and ((getCredits() ~= 0 and getInput(-1, motif.attract_mode.start.press.key)) or (not timerActive and counter >= motif.attract_mode.start.time)) then + if getCredits() ~= 0 then + sndPlay(motif.Snd, motif.attract_mode.start.done.snd[1], motif.attract_mode.start.done.snd[2]) + end + fadeOutInit(motif.attract_mode.fadeout.FadeData) + fadeOutStarted = true + end + --frame transition + if esc() --[[or getInput(-1, motif.attract_mode.menu.cancel.key)]] then + esc(false) + return false + end + if fadeOutStarted and not fadeActive() then + return getCredits() ~= 0 + end + main.f_preloadTick(2) + refresh() + end +end + +--attract mode loop +function main.f_attractMode() + setCredits(0) + while true do --outer loop + local startScreen = false + while true do --inner loop (attract mode) + --logo storyboard + if motif.attract_mode.logo.storyboard ~= '' and main.f_storyboard(motif.attract_mode.logo.storyboard) then + break + end + --intro storyboard + if motif.attract_mode.intro.storyboard ~= '' and main.f_storyboard(motif.attract_mode.intro.storyboard) then + break + end + --demo + main.f_demoStart() + if getCredits() > 0 then break end + --hiscores + main.f_hiscore("arcade", -1) + if getCredits() > 0 then break end + --start + if main.f_attractStart() then + startScreen = true + break + end + --demo + main.f_demoStart() + if getCredits() > 0 then break end + --hiscores + main.f_hiscore("arcade", -1) + if getCredits() > 0 then break end + end + if startScreen or main.f_attractStart() then + --attract storyboard + if motif.attract_mode.start.storyboard ~= '' then + main.f_storyboard(motif.attract_mode.start.storyboard) + end + --eat credit + if getCredits() > 0 then + setCredits(getCredits() - 1) + end + --enter menu + main.menu.loop() + elseif getCredits() > 0 then + setCredits(getCredits() - 1) + end + end +end + +setCredits(-1) +function main.f_setCredits() + if motif.attract_mode.enabled or start.challenger ~= 0 then + return + end + setCredits(gameOption('Options.Credits') - 1) +end + +--demo mode +function main.f_demo() + if #main.t_randomChars == 0 then + return + end + if fadeActive() or not motif.demo_mode.enabled then + demoFrameCounter = 0 + return + end + demoFrameCounter = demoFrameCounter + 1 + if demoFrameCounter < motif.demo_mode.title.waittime then + return + end + demoFrameCounter = 0 + fadeOutInit(motif[main.group].fadeout.FadeData) + main.menu.f = main.t_itemname.demo() +end + +-- prevents mirrored palette in demo mode / randomtest mirror matches +function main.f_getUniquePalette(ch, state) + local charData = start.f_getCharData(ch) + local pals = charData and charData.pal or {1} + state = state or {} + state.used = state.used or {} + state.used[ch] = state.used[ch] or {} + local used = state.used[ch] + + -- build list of palettes not yet used for this character + local available = {} + for _, p in ipairs(pals) do + if not used[p] then + table.insert(available, p) + end + end + + -- If we've exhausted all palettes, start cycling again for this character + if #available == 0 then + used = {} + state.used[ch] = used + for _, p in ipairs(pals) do + table.insert(available, p) + end + end + + local pal = available[math.random(#available)] + used[pal] = true + state.last = {ch = ch, pal = pal} + return pal +end + +function main.f_demoStart() + main.f_default() + main.pauseMenu = false + local palState = {} + setFightScreenElements({bars = motif.demo_mode.fight.bars.display}) + setGameMode('demo') + for side = 1, 2 do + setTeamMode(side, 0, 1) + setCom(side, 8) + local ch = main.t_randomChars[math.random(1, #main.t_randomChars)] + local pal = main.f_getUniquePalette(ch, palState) + selectChar(side, ch, pal) + end + start.f_setStage() + if motif.demo_mode.fight.stopbgm then + stopBgm() + end + hook.run("main.t_itemname", t, item) + --clearColor(motif[main.background].bgclearcolor[1], motif[main.background].bgclearcolor[2], motif[main.background].bgclearcolor[3]) + loadStart(start.f_buildLoadStartParams()) + game() + if not motif.attract_mode.enabled then + if introWaitCycles >= motif.demo_mode.intro.waitcycles then + main.f_hiscore("arcade", -1) + if motif.files.intro.storyboard ~= '' then + main.f_storyboard(motif.files.intro.storyboard) + end + introWaitCycles = 0 + else + introWaitCycles = introWaitCycles + 1 + end + bgReset(motif[main.background].BGDef) + --start title BGM only if it has been interrupted + if motif.demo_mode.fight.stopbgm or motif.demo_mode.fight.playbgm or (introWaitCycles == 0 and motif.files.intro.storyboard ~= '') then + playBgm({source = "motif.title", interrupt = true}) + end + end + fadeInInit(motif[main.group].fadein.FadeData) +end + +--randomtest +function main.f_randomtest() + while true do + clearSelected() + resetGameParams() + local palState = {} + local teamMode = math.random(0, 3) + local numChars = 1 + if teamMode == 1 then + numChars = math.random(gameOption('Options.Simul.Min'), gameOption('Options.Simul.Max')) + elseif teamMode == 2 then + numChars = math.random(gameOption('Options.Turns.Min'), gameOption('Options.Turns.Max')) + elseif teamMode == 3 then + numChars = math.random(gameOption('Options.Tag.Min'), gameOption('Options.Tag.Max')) + end + for side = 1, 2 do + start.p[side].teamMode = teamMode + start.p[side].numChars = numChars + start.p[side].turnsOffset = 0 + start.p[side].t_selected = {} + start.p[side].t_selTemp = {} + setTeamMode(side, teamMode, numChars) + for i = 1, numChars do + local pn = (i - 1) * 2 + side + if pn <= 12 then + setCom(pn, 8) + end + local ch = main.t_randomChars[math.random(1, #main.t_randomChars)] + local pal = main.f_getUniquePalette(ch, palState) + selectChar(side, ch, pal) + table.insert(start.p[side].t_selected, { + ref = ch, + pal = pal, + pn = start.f_getPlayerNo(side, i), + }) + end + end + start.f_setRounds(nil, {}) + start.f_setStage() + loadStart(start.f_buildLoadStartParams()) + game() + refresh() + if getWinnerTeam() == -1 then + bgReset(motif[main.background].BGDef) + playBgm({source = "motif.title", interrupt = true}) + fadeInInit(motif[main.group].fadein.FadeData) + break + end + end +end + +--calculate menu.tween and boxcursor.tween +local function f_tweenStep(val, target, factor) + if not factor or factor <= 0 then + return target + end + local newVal = val + (target - val) * math.min(factor, 1) + if math.abs(newVal - target) < 1 then + return target + end + return newVal +end + +--common menu calculations +function main.f_menuCommonCalc(t, item, cursorPosY, moveTxt, sec, cursorParams, forcedDir) + local m = sec.menu or sec + -- persistent scroll tween per section + if not sec.menuTweenData then + sec.menuTweenData = { + currentPos = 0, + targetPos = 0, + slideOffset = 0 + } + end + local item_before = item + local startItem = 1 + for _, v in ipairs(t) do + if not v.itemname:match("^spacer%d*$") then + break + end + startItem = startItem + 1 + end + -- effective visible-items: treat 0 / nil as "all items" + local visible = #t + if m.window and m.window.visibleitems ~= nil then + if m.window.visibleitems > 0 then + visible = m.window.visibleitems + end + end + -- movement: forcedDir: 1 = next (down), -1 = previous (up), 0/nil = no forced move + local moveDir = 0 + if forcedDir ~= nil then + moveDir = forcedDir + elseif getInput(-1, m.next.key) then + moveDir = 1 + elseif getInput(-1, m.previous.key) then + moveDir = -1 + end + if moveDir == 1 then + if forcedDir == nil then + sndPlay(motif.Snd, cursorParams.move.snd[1], cursorParams.move.snd[2]) + end + while true do + item = item + 1 + if cursorPosY < visible then + cursorPosY = cursorPosY + 1 + end + if t[item] == nil or not t[item].itemname:match("^spacer%d*$") then + break + end + end + elseif moveDir == -1 then + if forcedDir == nil then + sndPlay(motif.Snd, cursorParams.move.snd[1], cursorParams.move.snd[2]) + end + while true do + item = item - 1 + if cursorPosY > startItem then + cursorPosY = cursorPosY - 1 + end + if t[item] == nil or not t[item].itemname:match("^spacer%d*$") then + break + end + end + end + main.menuWrapped = false + if item > #t or (item == 1 and t[item].itemname:match("^spacer%d*$")) then + item = 1 + while true do + if not t[item].itemname:match("^spacer%d*$") or item >= #t then break end + item = item + 1 + end + cursorPosY = item + if m.tween.wrap.snap then + main.menuSnap = true + end + main.menuWrapped = true + elseif item < 1 then + item = #t + while true do + if not t[item].itemname:match("^spacer%d*$") or item <= 1 then break end + item = item - 1 + end + if item > visible then + cursorPosY = visible + else + cursorPosY = item + end + if m.tween.wrap.snap then + main.menuSnap = true + end + main.menuWrapped = true + end + -- Reset active background animation when cursor selection changes + if item_before ~= item and t ~= nil and t[item] ~= nil then + local bgTable = m.item and m.item.active and m.item.active.bg + if bgTable ~= nil then + local params = bgTable[t[item].paramname] or bgTable.default + if params ~= nil and params.AnimData ~= nil then + animReset(params.AnimData) + animUpdate(params.AnimData) + end + end + end + -- compute target: determine first visible item to keep cursor at row `cursorPosY`, clamp to valid range, and convert to pixel offset + local spacing = m.item.spacing[2] + -- max index that can appear at the top of the window + local maxFirst = math.max(1, #t - visible + 1) + local t_factor = m.tween.factor + + -- which list index should be drawn on the very first row + local desiredFirst = item - cursorPosY + 1 + -- clamp so we never scroll before the first row or past the end + if desiredFirst < 1 then + desiredFirst = 1 + elseif desiredFirst > maxFirst then + desiredFirst = maxFirst + end + + -- Measure scroll offset from the first drawn row. + local targetMove = (desiredFirst - 1) * spacing + -- update target and offset if changed, snap immediately if requested, otherwise apply tween or direct move + if sec.menuTweenData.targetPos ~= targetMove then + sec.menuTweenData.targetPos = targetMove + sec.menuTweenData.slideOffset = sec.menuTweenData.currentPos - sec.menuTweenData.targetPos + end + + if main.menuSnap then + sec.menuTweenData.currentPos = sec.menuTweenData.targetPos + sec.menuTweenData.slideOffset = 0 + main.menuSnap = false + moveTxt = sec.menuTweenData.currentPos + return cursorPosY, moveTxt, item + end + + if t_factor[1] > 0 then + sec.menuTweenData.slideOffset = f_tweenStep(sec.menuTweenData.slideOffset, 0, t_factor[1]) + sec.menuTweenData.currentPos = sec.menuTweenData.targetPos + sec.menuTweenData.slideOffset + else + sec.menuTweenData.currentPos = sec.menuTweenData.targetPos + sec.menuTweenData.slideOffset = 0 + end + moveTxt = sec.menuTweenData.currentPos + return cursorPosY, moveTxt, item +end + +--common menu draw +function main.f_menuCommonDraw(t, item, cursorPosY, moveTxt, sec, bg, skipClear, opts) + main.f_preloadTick(2) + local m = sec.menu or sec + -- opts: + -- offx, offy : per-call offsets + -- skipBG0, skipBG1 : skip bg layer 0 / 1 + -- skipTitle : skip drawing the title + -- forceInactive : treat "selected" row as inactive (no highlight, no cursor) + opts = opts or {} + local offx = opts.offx or 0 + local offy = opts.offy or 0 + local forceInactive = (opts.forceInactive == true) + + -- effective visible-items: treat 0 or 'unlimitedItems' as "all" + local visible = (m.window and m.window.visibleitems) or #t + if not visible or visible <= 0 then + visible = #t + end + + if not skipClear then + clearColor(bg.bgclearcolor[1], bg.bgclearcolor[2], bg.bgclearcolor[3]) + end + --draw layerno = 0 backgrounds + if not opts.skipBG0 then + bgDraw(bg.BGDef, 0) + end + + --draw menu box + if m.boxbg.visible then + local x1 = offx + m.pos[1] + m.boxcursor.coords[1] + local y1 = offy + m.pos[2] + m.boxcursor.coords[2] + local w = m.boxcursor.coords[3] - m.boxcursor.coords[1] + 1 + local h = m.boxcursor.coords[4] - m.boxcursor.coords[2] + 1 + + (math.min(#t, visible) - 1) * m.item.spacing[2] + rectSetWindow(m.boxbg.RectData, x1, y1, x1 + w, y1 + h) + rectUpdate(m.boxbg.RectData) + rectDraw(m.boxbg.RectData) + end + --draw title + if not opts.skipTitle and sec.title and sec.title.TextSpriteData then + textImgDraw(sec.title.TextSpriteData) + end + --draw menu items + local cur = moveTxt + local tgt = moveTxt + if sec.menuTweenData then + cur = sec.menuTweenData.currentPos or sec.menuTweenData.slideOffset or cur + tgt = sec.menuTweenData.targetPos or tgt + end + local tweenDone = math.abs((cur or 0) - (tgt or 0)) < 1 + + local items_shown = item + visible - cursorPosY + if items_shown > #t or (visible > 0 and items_shown < #t and (m.window.margins.y[1] ~= 0 or m.window.margins.y[2] ~= 0)) then + items_shown = #t + end + + -- helper that draws a single item either as active or inactive + local function drawItem(i, isActive) + local itemData = t[i] + -- display name + local displayname = main.f_itemnameUpper(itemData.displayname, m.item.uppercase) + if itemData.itemname:match("^spacer%d*$") then + displayname = "" + end + -- shared position + local posX = offx + (i - 1) * m.item.spacing[1] + local posY = offy + (i - 1) * m.item.spacing[2] - moveTxt + -- background params + local bgTable = isActive and m.item.active.bg or m.item.bg + local params = bgTable[itemData.paramname] or bgTable.default + -- draw background + local bgPosX = offx + local bgPosY = offy + if bgTable.default.spacing[1] ~= 0 or bgTable.default.spacing[2] ~= 0 then + bgPosX = bgPosX + (i - 1) * bgTable.default.spacing[1] + bgPosY = bgPosY + (i - 1) * bgTable.default.spacing[2] - moveTxt + end + main.f_animPosDraw(params.AnimData, bgPosX, bgPosY) + -- text sprite for label + local labelSprite + if itemData.selected then + labelSprite = isActive and m.item.selected.active.TextSpriteData or m.item.selected.TextSpriteData + else + labelSprite = isActive and m.item.active.TextSpriteData or m.item.TextSpriteData + end + textImgReset(labelSprite) + textImgAddPos(labelSprite, posX, posY) + textImgSetText(labelSprite, displayname) + textImgDraw(labelSprite) + -- value / info sprites + if itemData.vardisplay ~= nil then + if itemData.conflict and m.item.value.conflict and m.item.value.conflict.TextSpriteData then + local spr = m.item.value.conflict.TextSpriteData + textImgReset(spr) + textImgAddPos(spr, posX, posY) + textImgSetText(spr, itemData.vardisplay) + textImgDraw(spr) + else + local spr = isActive and m.item.value.active.TextSpriteData or m.item.value.TextSpriteData + textImgReset(spr) + textImgAddPos(spr, posX, posY) + textImgSetText(spr, itemData.vardisplay) + textImgDraw(spr) + end + elseif itemData.infodisplay ~= nil then + local spr = isActive and m.item.info.active.TextSpriteData or m.item.info.TextSpriteData + textImgReset(spr) + textImgAddPos(spr, posX, posY) + textImgSetText(spr, itemData.infodisplay) + textImgDraw(spr) + end + end + -- draw not active items + for i = 1, items_shown do + if i > item - cursorPosY or not tweenDone then + local isSelected = (i == item) and (not forceInactive) + if not isSelected then + drawItem(i, false) + end + end + end + -- draw active items + for i = 1, items_shown do + if i > item - cursorPosY or not tweenDone then + local isSelected = (i == item) and (not forceInactive) + if isSelected then + drawItem(i, true) + end + end + end + --initialize storage for boxcursor per section if missing + if not sec.boxCursorData then + sec.boxCursorData = { + offsetY = 0, + snap = 0, + init = false + } + end + --calculate target Y position for cursor + local targetY = offy + m.pos[2] + m.boxcursor.coords[2] + (cursorPosY - 1) * m.item.spacing[2] + local t_factor = m.boxcursor.tween.factor + --snap cursor immediately if first use or snap enabled + if sec.boxCursorData.snap == 1 or not sec.boxCursorData.init then + sec.boxCursorData.offsetY = targetY + sec.boxCursorData.init = true + sec.boxCursorData.snap = -1 + end + if m.boxcursor.tween.wrap.snap and main.menuWrapped then + sec.boxCursorData.offsetY = targetY + end + --apply tween if enabled, otherwise snap to target + if t_factor[1] > 0 then + sec.boxCursorData.offsetY = f_tweenStep(sec.boxCursorData.offsetY, targetY, t_factor[1]) + else + sec.boxCursorData.offsetY = targetY + end + --draw menu cursor + if m.boxcursor.visible and not fadeActive() and not forceInactive then + local x1 = offx + m.pos[1] + m.boxcursor.coords[1] + (cursorPosY - 1) * m.item.spacing[1] + local y1 = sec.boxCursorData.offsetY + local w = m.boxcursor.coords[3] - m.boxcursor.coords[1] + 1 + local h = m.boxcursor.coords[4] - m.boxcursor.coords[2] + 1 + rectSetWindow(m.boxcursor.RectData, x1, y1, x1 + w, y1 + h) + rectUpdate(m.boxcursor.RectData) + rectDraw(m.boxcursor.RectData) + end + --draw scroll arrows + if #t > visible then + if item > cursorPosY then + animReset(m.arrow.up.AnimData, {'pos'}) + animAddPos(m.arrow.up.AnimData, offx, offy) + animUpdate(m.arrow.up.AnimData) + animDraw(m.arrow.up.AnimData) + end + if item >= cursorPosY and item + visible - cursorPosY < #t then + animReset(m.arrow.down.AnimData, {'pos'}) + animAddPos(m.arrow.down.AnimData, offx, offy) + animUpdate(m.arrow.down.AnimData) + animDraw(m.arrow.down.AnimData) + end + end + --draw credits text + if motif.attract_mode.enabled and getCredits() ~= -1 then + textImgReset(motif.attract_mode.credits.TextSpriteData) + textImgSetText(motif.attract_mode.credits.TextSpriteData, string.format(motif.attract_mode.credits.text, getCredits())) + textImgDraw(motif.attract_mode.credits.TextSpriteData) + end + --draw layerno = 1 backgrounds + if not opts.skipBG1 then + bgDraw(bg.BGDef, 1) + end + --draw footer + if sec.footer ~= nil then + rectDraw(sec.footer.overlay.RectData) + textImgDraw(sec.footer.title.TextSpriteData) + textImgDraw(sec.footer.info.TextSpriteData) + textImgDraw(sec.footer.version.TextSpriteData) + end + --frame transition + if not skipClear then + refresh() + end +end + +--force menu to snap, boxcursor snaps if enabled +function main.f_menuSnap(sec) + main.menuSnap = true + if sec.boxCursorData then + sec.boxCursorData.snap = sec.menu.boxcursor.tween.snap + end +end + +-- Reset all menu item background animations +function main.f_menuItemBgAnimReset(sec) + if sec == nil or sec.menu == nil or sec.menu.item == nil then + return + end + local function resetBgTable(bgTable) + if type(bgTable) ~= 'table' then return end + for _, params in pairs(bgTable) do + if type(params) == 'table' and params.AnimData ~= nil then + animReset(params.AnimData) + animUpdate(params.AnimData) + end + end + end + -- reset both inactive and active item backgrounds + if sec.menu.item.bg ~= nil then + resetBgTable(sec.menu.item.bg) + end + if sec.menu.item.active ~= nil and sec.menu.item.active.bg ~= nil then + resetBgTable(sec.menu.item.active.bg) + end +end + +--common timer draw code +function main.f_drawTimer(timer, params) + local num = main.f_round((params.count * params.framespercount - timer + params.displaytime) / params.framespercount) + local active = true + if num <= -1 then + active = false + timer = -1 + textImgReset(params.TextSpriteData) + textImgSetText(params.TextSpriteData, string.format(params.text, 0)) + elseif timer ~= -1 then + timer = timer + 1 + textImgReset(params.TextSpriteData) + textImgSetText(params.TextSpriteData, string.format(params.text, math.max(0, num))) + end + if timer == -1 or timer >= params.displaytime then + textImgDraw(params.TextSpriteData) + end + return timer, active +end + +--;=========================================================== +--; EXTERNAL LUA CODE +--;=========================================================== +local t_modules = {} +for _, v in ipairs(getDirectoryFiles('external/mods')) do + if v:lower():match('%.([^%.\\/]-)$') == 'lua' then + local fileName = v:match("[^/\\]+$") or v + -- Lua files prefixed with '-' are excluded from autoloading + if not fileName:match("^%-") then + table.insert(t_modules, v) + end + end +end + +for _, v in ipairs(gameOption('Common.Modules')) do + table.insert(t_modules, v) +end +if motif.files.module ~= '' then table.insert(t_modules, motif.files.module) end +for _, v in ipairs(t_modules) do + print('Loading module: ' .. v) + v = v:gsub('^%s*[%./\\]*', '') + v = v:gsub('%.[^%.]+$', '') + require(v:gsub('[/\\]+', '.')) +end + +main.f_unlock(false) + +--;=========================================================== +--; INITIALIZE LOOPS +--;=========================================================== +if gameOption('Debug.DumpLuaTables') then + main.f_printTable(main.t_selChars, "debug/t_selChars.txt") + main.f_printTable(main.t_selStages, "debug/t_selStages.txt") + main.f_printTable(main.t_selOptions, "debug/t_selOptions.txt") + main.f_printTable(main.t_selStoryMode, "debug/t_selStoryMode.txt") + main.f_printTable(main.t_orderChars, "debug/t_orderChars.txt") + main.f_printTable(main.t_orderStages, "debug/t_orderStages.txt") + main.f_printTable(main.t_randomChars, "debug/t_randomChars.txt") + main.f_printTable(main.t_bonusChars, "debug/t_bonusChars.txt") + main.f_printTable(main.t_stageDef, "debug/t_stageDef.txt") + main.f_printTable(main.t_charDef, "debug/t_charDef.txt") + main.f_printTable(main.t_includeStage, "debug/t_includeStage.txt") + main.f_printTable(main.t_selectableStages, "debug/t_selectableStages.txt") + main.f_printTable(main.t_selGrid, "debug/t_selGrid.txt") + main.f_printTable(main.t_unlockLua, "debug/t_unlockLua.txt") + main.f_printTable(loadGameOption(), "debug/config.txt") +end + +main.f_start() +menu.f_start() +options.f_start() + +if getCommandLineValue("-p1") ~= nil and getCommandLineValue("-p2") ~= nil and getCommandLineValue("-loadmotif") ~= nil then + main.f_commandLine() +end + +main.f_loadingRefresh() + +if motif.attract_mode.enabled then + main.f_attractMode() +else + main.menu.loop() +end + +-- Debug Info +--if gameOption('Debug.DumpLuaTables') then main.f_printTable(main, "debug/t_main.txt") end diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/script/menu.lua b/bios/Game Engines/Ikemen GO/ikemen/external/script/menu.lua new file mode 100644 index 00000000..e7c0adb2 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/external/script/menu.lua @@ -0,0 +1,969 @@ +local menu = {} + +--;=========================================================== +--; PAUSE MENU +--;=========================================================== + +-- Associative elements table storing arrays with training menu option names. +-- Can be appended via external module. +menu.t_valuename = { + dummycontrol = { + {itemname = 'cooperative', displayname = motif.pause_menu.training_pause_menu.menu.valuename.dummycontrol_cooperative}, + {itemname = 'ai', displayname = motif.pause_menu.training_pause_menu.menu.valuename.dummycontrol_ai}, + {itemname = 'manual', displayname = motif.pause_menu.training_pause_menu.menu.valuename.dummycontrol_manual}, + }, + ailevel = { + {itemname = '1', displayname = motif.pause_menu.training_pause_menu.menu.valuename.ailevel_1}, + {itemname = '2', displayname = motif.pause_menu.training_pause_menu.menu.valuename.ailevel_2}, + {itemname = '3', displayname = motif.pause_menu.training_pause_menu.menu.valuename.ailevel_3}, + {itemname = '4', displayname = motif.pause_menu.training_pause_menu.menu.valuename.ailevel_4}, + {itemname = '5', displayname = motif.pause_menu.training_pause_menu.menu.valuename.ailevel_5}, + {itemname = '6', displayname = motif.pause_menu.training_pause_menu.menu.valuename.ailevel_6}, + {itemname = '7', displayname = motif.pause_menu.training_pause_menu.menu.valuename.ailevel_7}, + {itemname = '8', displayname = motif.pause_menu.training_pause_menu.menu.valuename.ailevel_8}, + }, + dummymode = { + {itemname = 'stand', displayname = motif.pause_menu.training_pause_menu.menu.valuename.dummymode_stand}, + {itemname = 'crouch', displayname = motif.pause_menu.training_pause_menu.menu.valuename.dummymode_crouch}, + {itemname = 'jump', displayname = motif.pause_menu.training_pause_menu.menu.valuename.dummymode_jump}, + {itemname = 'wjump', displayname = motif.pause_menu.training_pause_menu.menu.valuename.dummymode_wjump}, + }, + guardmode = { + {itemname = 'none', displayname = motif.pause_menu.training_pause_menu.menu.valuename.guardmode_none}, + {itemname = 'auto', displayname = motif.pause_menu.training_pause_menu.menu.valuename.guardmode_auto}, + {itemname = 'all', displayname = motif.pause_menu.training_pause_menu.menu.valuename.guardmode_all}, + {itemname = 'random', displayname = motif.pause_menu.training_pause_menu.menu.valuename.guardmode_random}, + }, + fallrecovery = { + {itemname = 'none', displayname = motif.pause_menu.training_pause_menu.menu.valuename.fallrecovery_none}, + {itemname = 'ground', displayname = motif.pause_menu.training_pause_menu.menu.valuename.fallrecovery_ground}, + {itemname = 'air', displayname = motif.pause_menu.training_pause_menu.menu.valuename.fallrecovery_air}, + {itemname = 'random', displayname = motif.pause_menu.training_pause_menu.menu.valuename.fallrecovery_random}, + }, + distance = { + {itemname = 'any', displayname = motif.pause_menu.training_pause_menu.menu.valuename.distance_any}, + {itemname = 'close', displayname = motif.pause_menu.training_pause_menu.menu.valuename.distance_close}, + {itemname = 'medium', displayname = motif.pause_menu.training_pause_menu.menu.valuename.distance_medium}, + {itemname = 'far', displayname = motif.pause_menu.training_pause_menu.menu.valuename.distance_far}, + }, + buttonjam = { + {itemname = 'none', displayname = motif.pause_menu.training_pause_menu.menu.valuename.buttonjam_none}, + {itemname = 'a', displayname = motif.pause_menu.training_pause_menu.menu.valuename.buttonjam_a}, + {itemname = 'b', displayname = motif.pause_menu.training_pause_menu.menu.valuename.buttonjam_b}, + {itemname = 'c', displayname = motif.pause_menu.training_pause_menu.menu.valuename.buttonjam_c}, + {itemname = 'x', displayname = motif.pause_menu.training_pause_menu.menu.valuename.buttonjam_x}, + {itemname = 'y', displayname = motif.pause_menu.training_pause_menu.menu.valuename.buttonjam_y}, + {itemname = 'z', displayname = motif.pause_menu.training_pause_menu.menu.valuename.buttonjam_z}, + {itemname = 's', displayname = motif.pause_menu.training_pause_menu.menu.valuename.buttonjam_s}, + {itemname = 'd', displayname = motif.pause_menu.training_pause_menu.menu.valuename.buttonjam_d}, + {itemname = 'w', displayname = motif.pause_menu.training_pause_menu.menu.valuename.buttonjam_w}, + }, +} + +-- Shared logic for pause menu option change, returns 2 values: +-- * boolean depending if option has changed (via right/left button press) +-- * itemname read from t_valuename table based on currently active option +-- (or nil, if there was no option change in this frame) +function menu.f_valueChanged(t, sec) + local valueitem = menu[t.itemname] or 1 + local chk = valueitem + if getInput(-1, sec.menu.add.key) then + valueitem = valueitem + 1 + elseif getInput(-1, sec.menu.subtract.key) then + valueitem = valueitem - 1 + end + if valueitem > #menu.t_valuename[t.itemname] then + valueitem = 1 + elseif valueitem < 1 then + valueitem = #menu.t_valuename[t.itemname] + end + -- true upon option change + if chk ~= valueitem then + sndPlay(motif.Snd, sec.cursor.move.snd[1], sec.cursor.move.snd[2]) + t.vardisplay = menu.t_valuename[t.itemname][valueitem].displayname + menu[t.itemname] = valueitem + menu.itemname = t.itemname + return true, menu.t_valuename[t.itemname][valueitem].itemname + end + return false, nil +end + +-- Current pause menu itemname for internal use (key from menu.t_itemname table) +menu.itemname = '' + +-- Associative elements table storing functions controlling behaviour of each +-- pause menu item. Can be appended via external module. +menu.t_itemname = { + --Back + ['back'] = function(t, item, cursorPosY, moveTxt, sec) + if getInput(-1, sec.menu.done.key) then + if menu.currentMenu[1] == menu.currentMenu[2] then + sndPlay(motif.Snd, sec.exit.snd[1], sec.exit.snd[2]) + menu.pauseExitDelay = gameOption('Input.PauseExitDelay') + else + sndPlay(motif.Snd, sec.cancel.snd[1], sec.cancel.snd[2]) + end + if menu.currentMenu[1] ~= menu.currentMenu[2] then + main.f_menuSnap(sec) + end + menu.currentMenu[1] = menu.currentMenu[2] + return false + end + return true + end, + --Dummy Control + ['dummycontrol'] = function(t, item, cursorPosY, moveTxt, sec) + local ok, name = menu.f_valueChanged(t.items[item], sec) + if ok then + if name == 'cooperative' or name == 'manual' then + player(2) + setAILevel(0) + elseif name == 'ai' then + player(2) + setAILevel(menu.ailevel) + end + player(2) + mapSet('_iksys_trainingDummyControl', menu.dummycontrol - 1) + end + return true + end, + --AI Level + ['ailevel'] = function(t, item, cursorPosY, moveTxt, sec) + if menu.f_valueChanged(t.items[item], sec) then + if menu.t_valuename.dummycontrol[menu.dummycontrol or 1].itemname == 'ai' then + player(2) + setAILevel(menu.ailevel) + end + end + return true + end, + --Dummy Mode + ['dummymode'] = function(t, item, cursorPosY, moveTxt, sec) + if menu.f_valueChanged(t.items[item], sec) then + player(2) + mapSet('_iksys_trainingDummyMode', menu.dummymode - 1) + end + return true + end, + --Guard Mode + ['guardmode'] = function(t, item, cursorPosY, moveTxt, sec) + if menu.f_valueChanged(t.items[item], sec) then + player(2) + mapSet('_iksys_trainingGuardMode', menu.guardmode - 1) + end + return true + end, + --Fall Recovery + ['fallrecovery'] = function(t, item, cursorPosY, moveTxt, sec) + if menu.f_valueChanged(t.items[item], sec) then + player(2) + mapSet('_iksys_trainingFallRecovery', menu.fallrecovery - 1) + end + return true + end, + --Distance + ['distance'] = function(t, item, cursorPosY, moveTxt, sec) + if menu.f_valueChanged(t.items[item], sec) then + player(2) + mapSet('_iksys_trainingDistance', menu.distance - 1) + end + return true + end, + --Button Jam + ['buttonjam'] = function(t, item, cursorPosY, moveTxt, sec) + if menu.f_valueChanged(t.items[item], sec) then + player(2) + mapSet('_iksys_trainingButtonJam', menu.buttonjam - 1) + end + return true + end, + --Key Config + ['keyboard'] = function(t, item, cursorPosY, moveTxt, sec) + if getInput(-1, sec.menu.done.key) then + sndPlay(motif.Snd, sec.cursor.done.snd[1], sec.cursor.done.snd[2]) + options.f_keyCfgInit('Keys', t.submenu[t.items[item].itemname].title) + menu.itemname = t.items[item].itemname + end + return true + end, + --Joystick Config + ['gamepad'] = function(t, item, cursorPosY, moveTxt, sec) + if getInput(-1, sec.menu.done.key) then + sndPlay(motif.Snd, sec.cursor.done.snd[1], sec.cursor.done.snd[2]) + options.f_keyCfgInit('Joystick', t.submenu[t.items[item].itemname].title) + menu.itemname = t.items[item].itemname + end + return true + end, + --Default + ['inputdefault'] = function(t, item, cursorPosY, moveTxt, sec) + if getInput(-1, sec.menu.done.key) then + sndPlay(motif.Snd, sec.cursor.done.snd[1], sec.cursor.done.snd[2]) + options.f_keyDefault() + options.f_setKeyConfig('Keys') + if getCommandLineValue("-nojoy") == nil then + options.f_setKeyConfig('Joystick') + end + options.f_saveCfg(false) + end + return true + end, + --Round Reset + ['reset'] = function(t, item, cursorPosY, moveTxt, sec) + if getInput(-1, sec.menu.done.key) then + sndPlay(motif.Snd, sec.cursor.done.snd[1], sec.cursor.done.snd[2]) + --togglePause(false) + resetRound() + main.pauseMenuActive = false + return false + end + return true + end, + --Reload (Rematch) + ['reload'] = function(t, item, cursorPosY, moveTxt, sec) + if getInput(-1, sec.menu.done.key) then + sndPlay(motif.Snd, sec.cursor.done.snd[1], sec.cursor.done.snd[2]) + --togglePause(false) + reload() + main.pauseMenuActive = false + return false + end + return true + end, + --Command List + ['commandlist'] = function(t, item, cursorPosY, moveTxt, sec) + if getInput(-1, sec.menu.done.key) then + sndPlay(motif.Snd, sec.cursor.done.snd[1], sec.cursor.done.snd[2]) + menu.f_commandlistParse() + menu.itemname = t.items[item].itemname + end + return true + end, + --Character Change + ['characterchange'] = function(t, item, cursorPosY, moveTxt, sec) + if getInput(-1, sec.menu.done.key) then + sndPlay(motif.Snd, sec.cursor.done.snd[1], sec.cursor.done.snd[2], 100, 0, 0, 0, 0, true) + --togglePause(false) + endMatch() + start.characterchange = true + main.pauseMenuActive = false + return false + end + return true + end, + --Exit + ['exit'] = function(t, item, cursorPosY, moveTxt, sec) + if getInput(-1, sec.menu.done.key) then + sndPlay(motif.Snd, sec.cursor.done.snd[1], sec.cursor.done.snd[2], 100, 0, 0, 0, 0, true) + --togglePause(false) + endMatch() + start.exit = true + main.pauseMenuActive = false + return false + end + return true + end, +} +-- options.t_itemname table functions are also appended to this table, to make +-- option screen settings logic accessible from within pause menu. +for k, v in pairs(options.t_itemname) do + if menu.t_itemname[k] == nil then + menu.t_itemname[k] = v + end +end + +-- Shared menu loop logic +function menu.f_createMenu(tbl, sec, bg, bool_main) + return function() + hook.run("menu.menu.loop") + if menu._lastMenuTbl ~= tbl then + menu._lastMenuTbl = tbl + main.f_menuItemBgAnimReset(sec) + end + local t = tbl.items + if tbl.reset then + tbl.reset = false + else + main.f_menuCommonDraw(t, tbl.item, tbl.cursorPosY, tbl.moveTxt, sec, bg, true) + end + -- Draw during fades, but don't accept menu input until they finish. + if not main.pauseMenuActive or fadeActive() or menu.pauseExitDelay >= 0 then + return + end + tbl.cursorPosY, tbl.moveTxt, tbl.item = main.f_menuCommonCalc(t, tbl.item, tbl.cursorPosY, tbl.moveTxt, sec, sec.cursor) + textImgReset(sec.title.TextSpriteData) + textImgSetText(sec.title.TextSpriteData, tbl.title) + if esc() or getInput(-1, sec.menu.cancel.key) then + if bool_main then + sndPlay(motif.Snd, sec.exit.snd[1], sec.exit.snd[2]) + menu.pauseExitDelay = gameOption('Input.PauseExitDelay') + else + sndPlay(motif.Snd, sec.cancel.snd[1], sec.cancel.snd[2]) + end + if menu.currentMenu[1] ~= menu.currentMenu[2] then + main.f_menuSnap(sec) + end + menu.currentMenu[1] = menu.currentMenu[2] + return + elseif menu.t_itemname[t[tbl.item].itemname] ~= nil then + if not menu.t_itemname[t[tbl.item].itemname](tbl, tbl.item, tbl.cursorPosY, tbl.moveTxt, sec) then + return + end + elseif getInput(-1, sec.menu.done.key) then + local f = t[tbl.item].itemname + if tbl.submenu[f].loop ~= nil then + sndPlay(motif.Snd, sec.cursor.done.snd[1], sec.cursor.done.snd[2]) + menu.currentMenu[1] = tbl.submenu[f].loop + main.f_menuSnap(sec) + elseif not menu.t_itemname[f](tbl, tbl.item, tbl.cursorPosY, tbl.moveTxt, sec) then + return + end + end + end +end + +menu.t_vardisplayPointers = {} + +-- Associative elements table storing functions returning current setting values +-- rendered alongside menu item name. Can be appended via external module. +menu.t_vardisplay = { + ['dummycontrol'] = function() + return menu.t_valuename.dummycontrol[menu.dummycontrol or 1].displayname + end, + ['ailevel'] = function() + return menu.t_valuename.ailevel[menu.ailevel or gameOption('Options.Difficulty')].displayname + end, + ['dummymode'] = function() + return menu.t_valuename.dummymode[menu.dummymode or 1].displayname + end, + ['guardmode'] = function() + return menu.t_valuename.guardmode[menu.guardmode or 1].displayname + end, + ['fallrecovery'] = function() + return menu.t_valuename.fallrecovery[menu.fallrecovery or 1].displayname + end, + ['distance'] = function() + return menu.t_valuename.distance[menu.distance or 1].displayname + end, + ['buttonjam'] = function() + return menu.t_valuename.buttonjam[menu.buttonjam or 1].displayname + end, +} + +-- Returns setting value rendered alongside menu item name (calls appropriate +-- function from menu or options t_vardisplay table) +function menu.f_vardisplay(itemname) + if menu.t_vardisplay[itemname] ~= nil then + return menu.t_vardisplay[itemname]() + end + if options.t_vardisplay[itemname] ~= nil then + return options.t_vardisplay[itemname]() + end + return '' +end + +-- Table storing arrays with data used for different pause menu types generation. +-- Can be appended via external module but not necessary - can specify gamemode-specific [ Pause Menu] sections in `system.def` instead. +menu.t_menus = { + {id = 'menu', sec = motif.pause_menu.pause_menu, bg = motif.pausebgdef.pausebgdef, movelist = true}, + {id = 'training', sec = motif.pause_menu.training_pause_menu, bg = motif.pausebgdef.trainingpausebgdef, movelist = true}, +} +menu.t_menuIndex = {} + +local function f_pauseMenuKey(gamemodeName) + gamemodeName = tostring(gamemodeName or ''):lower() + gamemodeName = gamemodeName:gsub('%s+', '_') + if gamemodeName == '' then + return '' + end + return gamemodeName .. '_pause_menu' +end + +local function f_pauseMenuIdFromKey(key) + key = tostring(key or ''):lower() + if key:sub(-11) == '_pause_menu' then + key = key:sub(1, -12) + end + return key +end + +local function f_pauseMenuBgKey(gamemodeName) + gamemodeName = tostring(gamemodeName or ''):lower() + gamemodeName = gamemodeName:gsub('%s+', '_') + if gamemodeName == '' then + return '' + end + return gamemodeName .. 'pausebgdef' +end + +local function f_registerPauseMenu(id, sec, bg, movelist) + if id == '' or sec == nil then + return + end + for i = 1, #menu.t_menus do + if menu.t_menus[i].id == id then + return + end + end + table.insert(menu.t_menus, {id = id, sec = sec, bg = bg, movelist = movelist}) +end + +local function f_indexPauseMenus() + menu.t_menuIndex = {} + for i = 1, #menu.t_menus do + menu.t_menuIndex[menu.t_menus[i].id] = menu.t_menus[i] + end +end + +-- Dynamically generates all menus and submenus +function menu.f_start() + if motif.pause_menu ~= nil then + for k, sec in pairs(motif.pause_menu) do + local id = f_pauseMenuIdFromKey(k) + if id ~= '' and id ~= 'pause_menu' then + local bg = motif.pausebgdef.pausebgdef + local bgKey = f_pauseMenuBgKey(id) + if bgKey ~= '' and motif.pausebgdef ~= nil and motif.pausebgdef[bgKey] ~= nil then + bg = motif.pausebgdef[bgKey] + end + f_registerPauseMenu(id, sec, bg, true) + end + end + end + f_indexPauseMenus() + for k, v in ipairs(menu.t_menus) do + menu[v.id] = { + title = main.f_itemnameUpper(v.sec.title.text, v.sec.menu.title.uppercase), + cursorPosY = 1, + moveTxt = 0, + item = 1, + submenu = {}, + items = {} + } + menu[v.id].loop = menu.f_createMenu(menu[v.id], v.sec, v.bg, true) + local w = main.f_menuWindow(v.sec.menu) + local t_pos = {} --for storing current table position + local lastNum = 0 + for i, suffix in ipairs(v.sec.menu.itemname_order) do + for j, c in ipairs(main.f_strsplit('_', suffix)) do --split using "_" delimiter + --appending the menu table + if j == 1 then --first string after menu.itemname (either reserved one or custom submenu assignment) + if menu[v.id].submenu[c] == nil or c:match("^spacer%d*$") then + menu[v.id].submenu[c] = {} + menu[v.id].submenu[c].title = main.f_itemnameUpper(v.sec.menu.itemname[suffix], v.sec.menu.title.uppercase) + if menu.t_itemname[c] == nil and not c:match("^spacer%d*$") then + menu[v.id].submenu[c].cursorPosY = 1 + menu[v.id].submenu[c].moveTxt = 0 + menu[v.id].submenu[c].item = 1 + menu[v.id].submenu[c].submenu = {} + menu[v.id].submenu[c].items = {} + menu[v.id].submenu[c].loop = menu.f_createMenu(menu[v.id].submenu[c], v.sec, v.bg, false) + end + if not suffix:match(c .. '_') then + table.insert(menu[v.id].items, { + itemname = c, + displayname = v.sec.menu.itemname[suffix], + paramname = suffix, + vardisplay = menu.f_vardisplay(c), + selected = false, + }) + table.insert(menu.t_vardisplayPointers, menu[v.id].items[#menu[v.id].items]) + end + end + t_pos = menu[v.id].submenu[c] + t_pos.name = c + else --following strings + if t_pos.submenu[c] == nil or c:match("^spacer%d*$") then + t_pos.submenu[c] = {} + t_pos.submenu[c].title = main.f_itemnameUpper(v.sec.menu.itemname[suffix], v.sec.menu.title.uppercase) + if menu.t_itemname[c] == nil and not c:match("^spacer%d*$") then + t_pos.submenu[c].cursorPosY = 1 + t_pos.submenu[c].moveTxt = 0 + t_pos.submenu[c].item = 1 + t_pos.submenu[c].submenu = {} + t_pos.submenu[c].items = {} + t_pos.submenu[c].loop = menu.f_createMenu(t_pos.submenu[c], v.sec, v.bg, false) + end + table.insert(t_pos.items, { + itemname = c, + displayname = v.sec.menu.itemname[suffix], + paramname = suffix, + vardisplay = menu.f_vardisplay(c), + selected = false, + }) + table.insert(menu.t_vardisplayPointers, t_pos.items[#t_pos.items]) + end + if j > lastNum then + t_pos = t_pos.submenu[c] + t_pos.name = c + end + end + lastNum = j + end + end + -- Runtime platform filtering + if getRuntimeOS() == 'android' then + local excluded = {keyboard = true} + main.f_pruneMenu(menu[v.id], excluded) + main.f_prunePointers(menu.t_vardisplayPointers, excluded) + end + -- Menu windows + textImgSetWindow(v.sec.menu.item.selected.active.TextSpriteData, w[1], w[2], w[3], w[4]) + textImgSetWindow(v.sec.menu.item.active.TextSpriteData, w[1], w[2], w[3], w[4]) + textImgSetWindow(v.sec.menu.item.value.active.TextSpriteData, w[1], w[2], w[3], w[4]) + textImgSetWindow(v.sec.menu.item.selected.TextSpriteData, w[1], w[2], w[3], w[4]) + textImgSetWindow(v.sec.menu.item.TextSpriteData, w[1], w[2], w[3], w[4]) + textImgSetWindow(v.sec.menu.item.value.TextSpriteData, w[1], w[2], w[3], w[4]) + --for _, v2 in pairs(v.sec.menu.item.bg) do + -- animSetWindow(v2.AnimData, w[1], w[2], w[3], w[4]) + --end + --for _, v2 in pairs(v.sec.menu.item.active.bg) do + -- animSetWindow(v2.AnimData, w[1], w[2], w[3], w[4]) + --end + if gameOption('Debug.DumpLuaTables') then main.f_printTable(menu[v.id], 'debug/t_' .. v.id .. 'Menu.txt') end + -- Move list + if v.movelist then + local t = v.sec.movelist + if t.window.margins.y[1] ~= 0 or t.window.margins.y[2] ~= 0 then + local fontProps = motif.files.font['font' .. v.sec.movelist.text.font[1]] + if fontProps ~= nil then + menu.movelistW = { + 0, + math.max(0, t.pos[2] + t.text.offset[2] - t.window.margins.y[1]), + t.pos[1] + t.text.offset[1] + t.window.width, + t.pos[2] + t.text.offset[2] + (t.window.visibleitems - 1) * main.f_round((fontProps.size[2] + fontProps.spacing[2]) * t.text.scale[2] + t.text.spacing[2]) + t.window.margins.y[2] + math.max(0, t.glyphs.offset[2]) + } + textImgSetWindow(t.text.TextSpriteData, menu.movelistW[1], menu.movelistW[2], menu.movelistW[3], menu.movelistW[4]) + end + end + end + end +end + +-- Called from start.lua right before game() function to reset training menu values and p2 settings for a new match +function menu.f_trainingReset() + for k, _ in pairs(menu.t_valuename) do + menu[k] = 1 + end + menu.ailevel = gameOption('Options.Difficulty') + for _, v in ipairs(menu.t_vardisplayPointers) do + v.vardisplay = menu.f_vardisplay(v.itemname) + end + player(2) + setAILevel(0) +end + +hook.add('loop#training', 'trainingSettings', function() + if not roundStart() then return end + player(2) + setAILevel(menu.dummycontrol == 2 and menu.ailevel or 0) + mapSet('_iksys_trainingDummyControl', menu.dummycontrol - 1) + mapSet('_iksys_trainingDummyMode', menu.dummymode - 1) + mapSet('_iksys_trainingGuardMode', menu.guardmode - 1) + mapSet('_iksys_trainingFallRecovery', menu.fallrecovery - 1) + mapSet('_iksys_trainingDistance', menu.distance - 1) + mapSet('_iksys_trainingButtonJam', menu.buttonjam - 1) +end) + +menu.movelistChar = 1 +function menu.f_init() + esc(false) + main.pauseMenuActive = true + bgReset(motif.optionbgdef.BGDef) + local id = f_pauseMenuIdFromKey(f_pauseMenuKey(gameMode())) + if id == '' or menu.t_menuIndex == nil or menu.t_menuIndex[id] == nil then + id = 'menu' + end + if menu.t_menuIndex ~= nil and menu.t_menuIndex[id] ~= nil then + local entry = menu.t_menuIndex[id] + sndPlay(motif.Snd, entry.sec.enter.snd[1], entry.sec.enter.snd[2]) + bgReset(entry.bg.BGDef) + if menu[id] ~= nil and menu[id].loop ~= nil then + menu.currentMenu = {menu[id].loop, menu[id].loop} + menu.currentMenuId = id + else + menu.currentMenu = {menu.menu.loop, menu.menu.loop} + menu.currentMenuId = 'menu' + end + else + sndPlay(motif.Snd, motif.pause_menu.pause_menu.enter.snd[1], motif.pause_menu.pause_menu.enter.snd[2]) + bgReset(motif.pausebgdef.pausebgdef.BGDef) + menu.currentMenu = {menu.menu.loop, menu.menu.loop} + menu.currentMenuId = 'menu' + end +end + +menu.pauseExitDelay = -1 + +function menu.f_run() + local entry = nil + if menu.t_menuIndex ~= nil then + if menu.currentMenuId ~= nil and menu.t_menuIndex[menu.currentMenuId] ~= nil then + entry = menu.t_menuIndex[menu.currentMenuId] + else + local id = f_pauseMenuIdFromKey(f_pauseMenuKey(gameMode())) + if id ~= '' and menu.t_menuIndex[id] ~= nil then + entry = menu.t_menuIndex[id] + elseif menu.t_menuIndex['menu'] ~= nil then + entry = menu.t_menuIndex['menu'] + end + end + end + local sec = motif.pause_menu.pause_menu + local bg = motif.pausebgdef.pausebgdef + if entry ~= nil and entry.sec ~= nil and entry.bg ~= nil then + sec = entry.sec + bg = entry.bg + end + --draw overlay + rectDraw(sec.overlay.RectData) + --pause exit delay + if menu.pauseExitDelay >= 0 then + if menu.pauseExitDelay > 0 then + menu.pauseExitDelay = menu.pauseExitDelay - 1 + else + -- Keep the game paused. Go owns the fade-out/fade-in handoff and unpauses afterwards. + main.pauseMenuActive = false + end + end + --Button Config + if menu.itemname == 'keyboard' or menu.itemname == 'gamepad' then + if menu.itemname == 'keyboard' then + options.f_keyCfg('Keys', menu.itemname, bg, true) + else + options.f_keyCfg('Joystick', menu.itemname, bg, true) + end + --Command List + elseif menu.itemname == 'commandlist' then + menu.f_commandlistRender(sec, menu.t_movelists[menu.movelistChar]) + --Menu + else + menu.currentMenu[1]() + end + local active = main.pauseMenuActive + if not active then + menu.pauseExitDelay = -1 + end + return active +end + +-- Reset selection/scroll state recursively for a menu table (root + submenus) +local function f_resetMenuState(tbl) + if type(tbl) ~= "table" then return end + -- Reset cursor/scroll + tbl.cursorPosY = 1 + tbl.moveTxt = 0 + tbl.item = 1 + -- Clear any "selected" flags on items (if used by custom menus) + if type(tbl.items) == "table" then + for i = 1, #tbl.items do + if type(tbl.items[i]) == "table" then + tbl.items[i].selected = false + end + end + end + -- Recurse into submenus + if type(tbl.submenu) == "table" then + for _, sub in pairs(tbl.submenu) do + f_resetMenuState(sub) + end + end +end + +function menu.f_reset() + -- exit any special screens rendered by menu.f_run() + menu.itemname = '' + -- Reset movelist selector (command list screen) + menu.movelistChar = 1 + -- Reset tween caches + if menu.t_menus ~= nil then + for i = 1, #menu.t_menus do + local sec = menu.t_menus[i].sec + if sec ~= nil then + sec.menuTweenData = nil + sec.boxCursorData = nil + end + end + end + -- Determine which root menu is active and reset its cursor/item/scroll (and all submenus) + if menu.currentMenu ~= nil and menu.currentMenu[2] ~= nil then + if menu.currentMenuId ~= nil and menu[menu.currentMenuId] ~= nil then + f_resetMenuState(menu[menu.currentMenuId]) + elseif menu.training ~= nil and menu.training.loop ~= nil and menu.currentMenu[2] == menu.training.loop then + f_resetMenuState(menu.training) + else + f_resetMenuState(menu.menu) + end + end + -- Force snap on next calc so we don't keep old scroll offsets. + main.menuSnap = true + -- restore root menu loop + if menu.currentMenu ~= nil and menu.currentMenu[2] ~= nil then + menu.currentMenu[1] = menu.currentMenu[2] + end +end + +function menuInit() + return menu.f_init() +end + +function menuRun() + return menu.f_run() +end + +function menuReset() + return menu.f_reset() +end + +--;=========================================================== +--; COMMAND LIST +--;=========================================================== +function colorFromHex(h) + h = tostring(h) + if h:sub(0, 1) =="#" then h = h:sub(2, -1) end + if h:sub(0, 2) =="0x" then h = h:sub(3, -1) end + local r = tonumber(h:sub(1, 2), 16) or 255 + local g = tonumber(h:sub(3, 4), 16) or 255 + local b = tonumber(h:sub(5, 6), 16) or 255 + local src = tonumber(h:sub(7, 8), 16) or 255 + local dst = tonumber(h:sub(9, 10), 16) or 0 + return {r = r, g = g, b = b, src = src, dst = dst} +end + +local function f_commandlistData(t, str, align, col) + local t_insert = {} + str = str .. '<#>' + for m1, m2 in str:gmatch('(.-)<([^<>%s]+)>') do + if m1 ~= '' then + table.insert(t_insert, {glyph = false, text = m1, align = align, col = col}) + end + m2 = m2:gsub('<', '<'):gsub('>', '>'):gsub('&', '&') + if not m2:match('^#[A-Za-z0-9]+$') and not m2:match('^/$') and not m2:match('^#$') then + table.insert(t_insert, {glyph = true, text = m2, align = align, col = col}) + elseif m2:match('^#[A-Za-z0-9]+$') then + col = colorFromHex(m2) + elseif m2:match('^/$') then + col = {} + end + end + if align == -1 then + for i = #t_insert, 1, -1 do + table.insert(t, t_insert[i]) + end + else + for i = 1, #t_insert do + table.insert(t, t_insert[i]) + end + end + return t, col +end + +function menu.f_commandlistParse() + menu.t_movelists = {} + for side, tbl in ipairs({start.p[1].t_selected, start.p[2].t_selected}) do + for member, sel in ipairs(tbl) do + if sel.movelistLine == nil then + sel.movelistLine = 1 + end + local pn = side + if member > 1 then + pn = pn + (member - 1) * 2 + end + if player(pn) and aiLevel() == 0 then + local movelist = getMovelist() + if sel.movelistText ~= movelist then + sel.movelistText = movelist + sel.commandlist = nil + sel.movelistLine = 1 + if movelist ~= '' then + -- Replace glyph tokens with for later lookup in motif.glyphs. + for k, v in main.f_sortKeys(motif.glyphs, function(t, a, b) return string.len(a) > string.len(b) end) do + local s = movelist + movelist = s:gsub('()' .. main.f_escapePattern(k), function(pos) + -- If the match starts immediately after a '<', it's already inside a tag. + -- Leave it unchanged to prevent nested replacements. + if pos > 1 and s:sub(pos - 1, pos - 1) == '<' then + return k + end + local escaped = k:gsub('&', '&'):gsub('<', '<'):gsub('>', '>') + return '<' .. escaped .. '>' + end) + end + local t = {} + local col = {} + for line in movelist:gmatch('([^\n]*)\n?') do + line = line:gsub('%s+$', '') + local subt = {} + for m in line:gmatch('( *[^ ]+)') do + local tabs = 0 + m = m:gsub('^( *)', function(m1) + tabs = string.len(m1) + return '' + end) + local align = 1 --left align + if tabs == 1 then + align = 0 --center align + elseif tabs > 1 then + align = -1 --right align + end + subt, col = f_commandlistData(subt, m, align, col) + end + table.insert(t, subt) + end + t[#t] = nil --blank line produced by regexp matching + sel.commandlist = t + end + end + table.insert(menu.t_movelists, { + pn = pn, + name = displayName(), + tbl = sel, + commandlist = sel.commandlist, + }) + end + end + end + if #menu.t_movelists == 0 then + table.insert(menu.t_movelists, { + pn = 1, + name = "", + tbl = {movelistLine = 1}, + commandlist = nil, + }) + end + if menu.movelistChar > #menu.t_movelists then + menu.movelistChar = 1 + end + if gameOption('Debug.DumpLuaTables') then main.f_printTable(menu.t_movelists, "debug/t_movelists.txt") end +end + +function menu.f_commandlistRender(sec, t) + local cmdList = {} + if t.commandlist ~= nil then + cmdList = t.commandlist + else + table.insert(cmdList, {{glyph = false, text = sec.movelist.text.text, align = 1, col = {}}}) + end + if esc() or getInput(-1, sec.menu.cancel.key, sec.menu.done.key) then + sndPlay(motif.Snd, sec.cancel.snd[1], sec.cancel.snd[2]) + menu.itemname = '' + return + elseif getInput(-1, sec.menu.subtract.key) and #menu.t_movelists > 1 then + sndPlay(motif.Snd, sec.cursor.move.snd[1], sec.cursor.move.snd[2]) + menu.movelistChar = menu.movelistChar - 1 + if menu.movelistChar < 1 then + menu.movelistChar = #menu.t_movelists + end + elseif getInput(-1, sec.menu.add.key) and #menu.t_movelists > 1 then + sndPlay(motif.Snd, sec.cursor.move.snd[1], sec.cursor.move.snd[2]) + menu.movelistChar = menu.movelistChar + 1 + if menu.movelistChar > #menu.t_movelists then + menu.movelistChar = 1 + end + elseif getInput(-1, sec.menu.previous.key) and t.tbl.movelistLine > 1 then + sndPlay(motif.Snd, sec.cursor.move.snd[1], sec.cursor.move.snd[2]) + t.tbl.movelistLine = t.tbl.movelistLine - 1 + elseif getInput(-1, sec.menu.next.key) and t.tbl.movelistLine <= #cmdList - sec.movelist.window.visibleitems then + sndPlay(motif.Snd, sec.cursor.move.snd[1], sec.cursor.move.snd[2]) + t.tbl.movelistLine = t.tbl.movelistLine + 1 + end + --draw overlay + rectDraw(sec.movelist.overlay.RectData) + --draw title + textImgReset(sec.movelist.title.TextSpriteData) + textImgSetText(sec.movelist.title.TextSpriteData, main.f_itemnameUpper(string.format(sec.movelist.title.text, t.name), sec.movelist.title.uppercase)) + textImgDraw(sec.movelist.title.TextSpriteData) + --draw commands + local i = 0 + for n = t.tbl.movelistLine, math.min(t.tbl.movelistLine + sec.movelist.window.visibleitems + 1, #cmdList) do + i = i + 1 + local alignOffset = 0 + local lengthOffset = 0 + local align = 1 + local width = 0 + for k, v in ipairs(cmdList[n]) do + if v.text ~= '' then + alignOffset = 0 + if v.align == 0 then --center align + alignOffset = sec.movelist.window.width * 0.5 + elseif v.align == -1 then --right align + alignOffset = sec.movelist.window.width + end + if v.align ~= align then + lengthOffset = 0 + align = v.align + end + local fontProps = motif.files.font['font' .. sec.movelist.text.font[1]] + --render glyph + if v.glyph and motif.glyphs[v.text] ~= nil then + local g = motif.glyphs[v.text] + if g.Size ~= nil and g.AnimData ~= nil then + local scaleX = fontProps.size[2] * sec.movelist.text.scale[2] / g.Size[2] * sec.movelist.glyphs.scale[1] + local scaleY = fontProps.size[2] * sec.movelist.text.scale[2] / g.Size[2] * sec.movelist.glyphs.scale[2] + if v.align == -1 then + alignOffset = alignOffset - g.Size[1] * scaleX + end + animSetScale(g.AnimData, scaleX, scaleY) + --animSetFacing(g.AnimData, facing) + animSetPos( + g.AnimData, + math.floor(sec.movelist.pos[1] + sec.movelist.text.offset[1] + sec.movelist.glyphs.offset[1] + alignOffset + lengthOffset), + sec.movelist.pos[2] + sec.movelist.text.offset[2] + sec.movelist.glyphs.offset[2] + main.f_round((fontProps.size[2] + fontProps.spacing[2]) * sec.movelist.text.scale[2] + sec.movelist.text.spacing[2]) * (i - 1) + ) + animSetWindow(g.AnimData, menu.movelistW[1], menu.movelistW[2], menu.movelistW[3], menu.movelistW[4]) + --animUpdate(g.AnimData) + animDraw(g.AnimData) + if k < #cmdList[n] then + width = g.Size[1] * scaleX + sec.movelist.glyphs.spacing[1] + end + end + --render text + else + textImgReset(sec.movelist.text.TextSpriteData) + local align = v.align + if align == 0 and lengthOffset ~= 0 then + align = 1 + end + textImgSetAlign(sec.movelist.text.TextSpriteData, align) + textImgSetColor( + sec.movelist.text.TextSpriteData, + v.col.r or sec.movelist.text.font[4], + v.col.g or sec.movelist.text.font[5], + v.col.b or sec.movelist.text.font[6], + v.col.a or sec.movelist.text.font[7] + ) + textImgAddPos( + sec.movelist.text.TextSpriteData, + alignOffset + lengthOffset, + main.f_round((fontProps.size[2] + fontProps.spacing[2]) * sec.movelist.text.scale[2] + sec.movelist.text.spacing[2]) * (i - 1) + ) + textImgSetText(sec.movelist.text.TextSpriteData, v.text) + textImgDraw(sec.movelist.text.TextSpriteData) + if k < #cmdList[n] then + width = textImgGetTextWidth(sec.movelist.text.TextSpriteData, v.text) * sec.movelist.text.scale[1] + sec.movelist.text.spacing[1] + end + end + if v.align == 0 and not v.glyph and lengthOffset == 0 then + lengthOffset = lengthOffset + width / 2 + elseif v.align == -1 then + lengthOffset = lengthOffset - width + else + lengthOffset = lengthOffset + width + end + end + end + end + --draw scroll arrows + if #cmdList > sec.movelist.window.visibleitems then + if t.tbl.movelistLine > 1 then + animUpdate(sec.movelist.arrow.up.AnimData) + animDraw(sec.movelist.arrow.up.AnimData) + end + if t.tbl.movelistLine <= #cmdList - sec.movelist.window.visibleitems then + animUpdate(sec.movelist.arrow.down.AnimData) + animDraw(sec.movelist.arrow.down.AnimData) + end + end +end + +return menu diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/script/options.lua b/bios/Game Engines/Ikemen GO/ikemen/external/script/options.lua new file mode 100644 index 00000000..ec888cc5 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/external/script/options.lua @@ -0,0 +1,2376 @@ +local options = {} +--;=========================================================== +--; COMMON +--;=========================================================== +options.modified = false +options.needReload = false + +--return string depending on bool +function options.f_boolDisplay(bool, t, f) + if bool == true then + return t or motif.option_info.menu.valuename.yes + end + return f or motif.option_info.menu.valuename.no +end + +--return table entry (or ret if specified) if provided key exists in the table, otherwise return default argument +function options.f_definedDisplay(key, t, default, ret) + if key ~= nil and t[key] ~= nil then + return ret or t[key] + end + return default +end + +--return correct precision +function options.f_precision(v, decimal) + return tonumber(string.format(decimal, v)) +end + +--- Save the current configuration to the config file and handle common file modifications +local t_commonFilesOriginal = gameOption('Common') +function options.f_saveCfg(reload) + -- Restore the original content of the common files + local t_commonFiles = gameOption('Common') + for _, k in ipairs({'Air', 'Cmd', 'Const', 'States', 'Fx', 'Modules', 'Lua'}) do + modifyGameOption('Common.' .. k, t_commonFilesOriginal[k][k:lower()] or {}) + end + -- Save the current configuration to 'config.ini' + saveGameOption(getCommandLineValue("-config")) + hook.run("options.save", reload) + -- Reload the game if the reload parameter is true + if reload then + main.f_warning(motif.warning_info.text.text.reload, motif.option_info, motif.optionbgdef) + os.exit() + end + -- Reapply modified common file arrays after saving + for _, k in ipairs({'Air', 'Cmd', 'Const', 'States', 'Fx', 'Modules', 'Lua'}) do + modifyGameOption('Common.' .. k, t_commonFiles[k][k:lower()] or {}) + end +end + +--;=========================================================== +--; LOOPS +--;=========================================================== +local function f_switchLanguage(dir) + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + -- collect available language keys + local codes = {} + for code in pairs(motif.languages) do + table.insert(codes, code) + end + -- current language + local cur = gameOption('Config.Language') + -- find current index (fallback to 1 if not found) + local curIndex = 1 + for i, code in ipairs(codes) do + if code == cur then + curIndex = i + break + end + end + -- move index with wrap + local newIndex = curIndex + dir + if newIndex < 1 then + newIndex = #codes + elseif newIndex > #codes then + newIndex = 1 + end + -- apply + local newCode = codes[newIndex] + modifyGameOption('Config.Language', newCode) + options.modified = true + options.needReload = true +end + +-- Associative elements table storing functions controlling behaviour of each +-- option screen item. Can be appended via external module. +options.t_itemname = { + --Back + ['back'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cancel.snd[1], motif.option_info.cancel.snd[2]) + return false + end + return true + end, + --Default Values + ['default'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.done.snd[1], motif.option_info.cursor.done.snd[2]) + --modifyGameOption('Common.Air', {"data/common.air"}) + --modifyGameOption('Common.Cmd', {"data/common.cmd"}) + --modifyGameOption('Common.Const', {"data/common.const"}) + --modifyGameOption('Common.States', {"data/action.zss", "data/dizzy.zss", "data/guardbreak.zss", "data/score.zss", "data/system.zss", "data/tag.zss", "data/training.zss"}) + --modifyGameOption('Common.Fx', {}) + --modifyGameOption('Common.Modules', {}) + --modifyGameOption('Common.Lua', {"loop()"}) + modifyGameOption('Options.Difficulty', 5) + modifyGameOption('Options.Life', 100) + modifyGameOption('Options.Time', 99) + modifyGameOption('Options.GameSpeed', 0) + --modifyGameOption('Options.GameSpeedStep', 5) + modifyGameOption('Options.Match.Wins', 2) + modifyGameOption('Options.Match.MaxDrawGames', 1) + modifyGameOption('Options.Credits', 10) + modifyGameOption('Options.QuickContinue', false) + modifyGameOption('Options.AutoGuard', false) + modifyGameOption('Options.GuardBreak', false) + modifyGameOption('Options.Dizzy', false) + modifyGameOption('Options.RedLife', true) + modifyGameOption('Options.Team.Duplicates', true) + modifyGameOption('Options.Team.LifeShare', false) + modifyGameOption('Options.Team.PowerShare', true) + modifyGameOption('Options.Team.SingleVsTeamLife', 100) + modifyGameOption('Options.Simul.Min', 2) + modifyGameOption('Options.Simul.Max', 4) + modifyGameOption('Options.Simul.Match.Wins', 2) + modifyGameOption('Options.Simul.LoseOnKO', true) + modifyGameOption('Options.Tag.Min', 2) + modifyGameOption('Options.Tag.Max', 4) + modifyGameOption('Options.Tag.Match.Wins', 2) + modifyGameOption('Options.Tag.LoseOnKO', false) + modifyGameOption('Options.Tag.TimeScaling', 1) + modifyGameOption('Options.Turns.Min', 2) + modifyGameOption('Options.Turns.Max', 4) + modifyGameOption('Options.Turns.Recovery.Base', 12.5) + modifyGameOption('Options.Turns.Recovery.Bonus', 27.5) + --modifyGameOption('Config.Motif', "data/system.def") + modifyGameOption('Config.Players', 4) + modifyGameOption('Config.Language', "en") + --modifyGameOption('Config.AfterImageMax', 128) + --modifyGameOption('Config.ExplodMax', 512) + --modifyGameOption('Config.HelperMax', 56) + --modifyGameOption('Config.ProjectileMax', 256) + --modifyGameOption('Config.PaletteMax', 100) + --modifyGameOption('Config.TextMax', 128) + --modifyGameOption('Config.TickInterpolation', true) + --modifyGameOption('Config.ZoomActive', true) + --modifyGameOption('Config.EscOpensMenu', true) + modifyGameOption('Config.VsScreenLoading', false) + modifyGameOption('Config.TurnsLoading', false) + --modifyGameOption('Config.BootLoadingMode', 0) + --modifyGameOption('Config.FirstRun', false) + --modifyGameOption('Config.WindowTitle', "Ikemen GO") + --modifyGameOption('Config.WindowIcon', {"external/icons/IkemenCylia_256.png", "external/icons/IkemenCylia_96.png", "external/icons/IkemenCylia_48.png"}) + --modifyGameOption('Config.System', "external/script/main.lua") + --modifyGameOption('Config.ScreenshotFolder', "") + --modifyGameOption('Config.TrainingChar', "") + --modifyGameOption('Config.TrainingStage', "") + modifyGameOption('Config.GamepadMappings', "external/gamecontrollerdb.txt") + --modifyGameOption('Config.LegacyTime', 0) + modifyGameOption('Debug.AllowDebugMode', true) + modifyGameOption('Debug.AllowDebugKeys', true) + --modifyGameOption('Debug.ClipboardRows', 2) + --modifyGameOption('Debug.ConsoleRows', 15) + --modifyGameOption('Debug.ClsnDarken', true) + --modifyGameOption('Debug.DumpLuaTables', false) + --modifyGameOption('Debug.Font', "font/debug.def") + --modifyGameOption('Debug.FontScale', 1.0) + --modifyGameOption('Debug.StartStage', "stages/stage0-720.def") + --modifyGameOption('Debug.ForceStageZoomout', 0) + --modifyGameOption('Debug.ForceStageZoomin', 0) + --modifyGameOption('Debug.KeepSpritesOnReload', 0) + --modifyGameOption('Debug.MacOSUseCommandKey', 0) + --modifyGameOption('Debug.SpeedTest', 100) + -- This is platform dependent now + local runtimeOS = getRuntimeOS() + if runtimeOS == 'android' then + modifyGameOption('Video.RenderMode', 'OpenGL ES 3.2') + elseif runtimeOS == 'ios' then + modifyGameOption('Video.RenderMode', 'Vulkan 1.3') + else + modifyGameOption('Video.RenderMode', "OpenGL 3.3") + end + modifyGameOption('Video.GameWidth', 1280) + modifyGameOption('Video.GameHeight', 720) + --modifyGameOption('Video.WindowWidth', 0) + --modifyGameOption('Video.WindowHeight', 0) + modifyGameOption('Video.Fullscreen', false) + --modifyGameOption('Video.Borderless', false) + --modifyGameOption('Video.RGBSpriteBilinearFilter', true) + --modifyGameOption('Video.Framerate', 60) + modifyGameOption('Video.VSync', 1) + modifyGameOption('Video.MSAA', 0) + --modifyGameOption('Video.WindowCentered', true) + modifyGameOption('Video.ExternalShaders', {}) + modifyGameOption('Video.WindowScaleMode', true) + modifyGameOption('Video.FightAspectWidth', -1) + modifyGameOption('Video.FightAspectHeight', -1) + modifyGameOption('Video.KeepAspect', true) + modifyGameOption('Video.EnableModel', true) + modifyGameOption('Video.EnableModelShadow', true) + --modifyGameOption('Sound.SampleRate', 44100) + --modifyGameOption('Sound.SoundFont', "sound/soundfont.sf2") + modifyGameOption('Sound.StereoEffects', true) + modifyGameOption('Sound.PanningRange', 30) + --modifyGameOption('Sound.WavChannels', 32) + modifyGameOption('Sound.MasterVolume', 80) + --modifyGameOption('Sound.PauseMasterVolume', 100) + modifyGameOption('Sound.WavVolume', 80) + modifyGameOption('Sound.BGMVolume', 80) + --modifyGameOption('Sound.MaxBGMVolume', 100) + modifyGameOption('Sound.AudioDucking', false) + --modifyGameOption('Sound.BGMRAMBuffer', true) + --modifyGameOption('Sound.AudioResampleQuality', 4) + modifyGameOption('Arcade.AI.RandomColor', false) + modifyGameOption('Arcade.AI.SurvivalColor', true) + modifyGameOption('Arcade.AI.Ramping', true) + modifyGameOption('Netplay.RollbackNetcode', true) + modifyGameOption('Netplay.ListenPort', 7500) + modifyGameOption('Netplay.Rollback.Port', 7500) + modifyGameOption('Netplay.Rollback.FrameDelay', 2) + --modifyGameOption('Netplay.Rollback.DisconnectNotifyStart', 1000) + --modifyGameOption('Netplay.Rollback.DisconnectTimeout', 3000) + --modifyGameOption('Netplay.Rollback.StateLogsEnabled', false) + --modifyGameOption('Netplay.Rollback.GgpoLogsEnabled', false) + --modifyGameOption('Netplay.Rollback.SaveStageData', false) + --modifyGameOption('Netplay.Rollback.DesyncTest', false) + --modifyGameOption('Netplay.Rollback.DesyncTestFrames', false) + --modifyGameOption('Netplay.Rollback.DesyncTestAI', false) + --modifyGameOption('Netplay.IP.<>', "") + --modifyGameOption('Input.ButtonAssist', true) + --modifyGameOption('Input.SOCDResolution', 4) + --modifyGameOption('Input.ControllerStickSensitivity', 0.4) + --modifyGameOption('Input.XinputTriggerSensitivity', 0.5) + --modifyGameOption('Input.UiRepeatDelay', 30) + --modifyGameOption('Input.UiRepeatRate', 4) + --modifyGameOption('Input.PauseExitDelay', 10) + + loadFightScreen(motif.files.fight) + setPlayers() + for _, v in ipairs(options.t_vardisplayPointers) do + v.vardisplay = options.f_vardisplay(v.itemname) + end + toggleFullscreen(gameOption('Video.Fullscreen')) + toggleVSync(gameOption('Video.VSync')) + updateVolume() + options.modified = true + options.needReload = true + hook.run("options.default") + end + return true + end, + --Difficulty Level + ['difficulty'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Options.Difficulty') < 8 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Difficulty', gameOption('Options.Difficulty') + 1) + t.items[item].vardisplay = options.t_vardisplay['difficulty']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Options.Difficulty') > 1 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Difficulty', gameOption('Options.Difficulty') - 1) + t.items[item].vardisplay = options.t_vardisplay['difficulty']() + options.modified = true + end + return true + end, + --Time Limit + ['roundtime'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Options.Time') < 1000 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Time', gameOption('Options.Time') + 1) + t.items[item].vardisplay = options.t_vardisplay['roundtime']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Options.Time') > -1 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Time', gameOption('Options.Time') - 1) + t.items[item].vardisplay = options.t_vardisplay['roundtime']() + options.modified = true + end + return true + end, + --Language Setting + ['language'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and (main.f_tableLength(motif.languages) > 1 or motif.languages[gameOption('Config.Language')] == nil) then + f_switchLanguage(1) + t.items[item].vardisplay = options.t_vardisplay['language']() + elseif getInput(-1, motif.option_info.menu.subtract.key) and (main.f_tableLength(motif.languages) > 1 or motif.languages[gameOption('Config.Language')] == nil) then + f_switchLanguage(-1) + t.items[item].vardisplay = options.t_vardisplay['language']() + end + return true + end, + --Life + ['lifemul'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Options.Life') < 300 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Life', gameOption('Options.Life') + 10) + t.items[item].vardisplay = options.t_vardisplay['lifemul']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Options.Life') > 10 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Life', gameOption('Options.Life') - 10) + t.items[item].vardisplay = options.t_vardisplay['lifemul']() + options.modified = true + end + return true + end, + --Single VS Team Life + ['singlevsteamlife'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Options.Team.SingleVsTeamLife') < 300 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Team.SingleVsTeamLife', gameOption('Options.Team.SingleVsTeamLife') + 10) + t.items[item].vardisplay = options.t_vardisplay['singlevsteamlife']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Options.Team.SingleVsTeamLife') > 10 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Team.SingleVsTeamLife', gameOption('Options.Team.SingleVsTeamLife') - 10) + t.items[item].vardisplay = options.t_vardisplay['singlevsteamlife']() + options.modified = true + end + return true + end, + -- Game Speed + ['gamespeed'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Options.GameSpeed') < 9 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.GameSpeed', gameOption('Options.GameSpeed') + 1) + t.items[item].vardisplay = options.t_vardisplay['gamespeed']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Options.GameSpeed') > -9 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.GameSpeed', gameOption('Options.GameSpeed') - 1) + t.items[item].vardisplay = options.t_vardisplay['gamespeed']() + options.modified = true + end + return true + end, + --Rounds to Win (Single) + ['roundsnumsingle'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Options.Match.Wins') < 10 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Match.Wins', gameOption('Options.Match.Wins') + 1) + t.items[item].vardisplay = options.t_vardisplay['roundsnumsingle']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Options.Match.Wins') > 1 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Match.Wins', gameOption('Options.Match.Wins') - 1) + t.items[item].vardisplay = options.t_vardisplay['roundsnumsingle']() + options.modified = true + end + return true + end, + --Max Draw Games + ['maxdrawgames'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Options.Match.MaxDrawGames') < 10 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Match.MaxDrawGames', gameOption('Options.Match.MaxDrawGames') + 1) + t.items[item].vardisplay = options.t_vardisplay['maxdrawgames']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Options.Match.MaxDrawGames') > 0 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Match.MaxDrawGames', gameOption('Options.Match.MaxDrawGames') - 1) + t.items[item].vardisplay = options.t_vardisplay['maxdrawgames']() + options.modified = true + end + return true + end, + --Credits + ['credits'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Options.Credits') < 99 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Credits', gameOption('Options.Credits') + 1) + t.items[item].vardisplay = options.t_vardisplay['credits']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Options.Credits') > 0 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Credits', gameOption('Options.Credits') - 1) + t.items[item].vardisplay = options.t_vardisplay['credits']() + options.modified = true + end + return true + end, + --Arcade Palette + ['aipalette'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Arcade.AI.RandomColor') then + modifyGameOption('Arcade.AI.RandomColor', false) + else + modifyGameOption('Arcade.AI.RandomColor', true) + end + t.items[item].vardisplay = options.t_vardisplay['aipalette']() + options.modified = true + end + return true + end, + --Survival Palette + ['aisurvivalpalette'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Arcade.AI.SurvivalColor') then + modifyGameOption('Arcade.AI.SurvivalColor', false) + else + modifyGameOption('Arcade.AI.SurvivalColor', true) + end + t.items[item].vardisplay = options.t_vardisplay['aisurvivalpalette']() + options.modified = true + end + return true + end, + --AI Ramping + ['airamping'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Arcade.AI.Ramping') then + modifyGameOption('Arcade.AI.Ramping', false) + else + modifyGameOption('Arcade.AI.Ramping', true) + end + t.items[item].vardisplay = options.t_vardisplay['airamping']() + options.modified = true + end + return true + end, + --Quick Continue + ['quickcontinue'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Options.QuickContinue') then + modifyGameOption('Options.QuickContinue', false) + else + modifyGameOption('Options.QuickContinue', true) + end + t.items[item].vardisplay = options.t_vardisplay['quickcontinue']() + options.modified = true + end + return true + end, + --Auto-Guard + ['autoguard'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Options.AutoGuard') then + modifyGameOption('Options.AutoGuard', false) + else + modifyGameOption('Options.AutoGuard', true) + end + t.items[item].vardisplay = options.t_vardisplay['autoguard']() + options.modified = true + end + return true + end, + --Dizzy + ['dizzy'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Options.Dizzy') then + modifyGameOption('Options.Dizzy', false) + else + modifyGameOption('Options.Dizzy', true) + end + t.items[item].vardisplay = options.t_vardisplay['dizzy']() + options.modified = true + end + return true + end, + --Guard Break + ['guardbreak'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Options.GuardBreak') then + modifyGameOption('Options.GuardBreak', false) + else + modifyGameOption('Options.GuardBreak', true) + end + t.items[item].vardisplay = options.t_vardisplay['guardbreak']() + options.modified = true + end + return true + end, + --Red Life + ['redlife'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Options.RedLife') then + modifyGameOption('Options.RedLife', false) + else + modifyGameOption('Options.RedLife', true) + end + t.items[item].vardisplay = options.t_vardisplay['redlife']() + options.modified = true + end + return true + end, + --Team Duplicates + ['teamduplicates'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Options.Team.Duplicates') then + modifyGameOption('Options.Team.Duplicates', false) + else + modifyGameOption('Options.Team.Duplicates', true) + end + t.items[item].vardisplay = options.t_vardisplay['teamduplicates']() + options.modified = true + end + return true + end, + --Team Life Share + ['teamlifeshare'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Options.Team.LifeShare') then + modifyGameOption('Options.Team.LifeShare', false) + else + modifyGameOption('Options.Team.LifeShare', true) + end + t.items[item].vardisplay = options.t_vardisplay['teamlifeshare']() + options.modified = true + end + return true + end, + --Team Power Share + ['teampowershare'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Options.Team.PowerShare') then + modifyGameOption('Options.Team.PowerShare', false) + else + modifyGameOption('Options.Team.PowerShare', true) + end + t.items[item].vardisplay = options.t_vardisplay['teampowershare']() + options.modified = true + end + return true + end, + --Rounds to Win (Tag) + ['roundsnumtag'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Options.Tag.Match.Wins') < 10 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Tag.Match.Wins', gameOption('Options.Tag.Match.Wins') + 1) + t.items[item].vardisplay = options.t_vardisplay['roundsnumtag']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Options.Tag.Match.Wins') > 1 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Tag.Match.Wins', gameOption('Options.Tag.Match.Wins') - 1) + t.items[item].vardisplay = options.t_vardisplay['roundsnumtag']() + options.modified = true + end + return true + end, + --Partner KOed Lose + ['losekotag'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Options.Tag.LoseOnKO') then + modifyGameOption('Options.Tag.LoseOnKO', false) + else + modifyGameOption('Options.Tag.LoseOnKO', true) + end + t.items[item].vardisplay = options.t_vardisplay['losekotag']() + options.modified = true + end + return true + end, + --Min Tag Chars + ['mintag'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Options.Tag.Min') < gameOption('Options.Tag.Max') then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Tag.Min', gameOption('Options.Tag.Min') + 1) + t.items[item].vardisplay = options.t_vardisplay['mintag']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Options.Tag.Min') > 2 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Tag.Min', gameOption('Options.Tag.Min') - 1) + t.items[item].vardisplay = options.t_vardisplay['mintag']() + options.modified = true + end + return true + end, + --Max Tag Chars + ['maxtag'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Options.Tag.Max') < 4 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Tag.Max', gameOption('Options.Tag.Max') + 1) + t.items[item].vardisplay = options.t_vardisplay['maxtag']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Options.Tag.Max') > gameOption('Options.Tag.Min') then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Tag.Max', gameOption('Options.Tag.Max') - 1) + t.items[item].vardisplay = options.t_vardisplay['maxtag']() + options.modified = true + end + return true + end, + --Rounds to Win (Simul) + ['roundsnumsimul'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Options.Simul.Match.Wins') < 10 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Simul.Match.Wins', gameOption('Options.Simul.Match.Wins') + 1) + t.items[item].vardisplay = options.t_vardisplay['roundsnumsimul']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Options.Simul.Match.Wins') > 1 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Simul.Match.Wins', gameOption('Options.Simul.Match.Wins') - 1) + t.items[item].vardisplay = options.t_vardisplay['roundsnumsimul']() + options.modified = true + end + return true + end, + --Simul Player KOed Lose + ['losekosimul'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Options.Simul.LoseOnKO') then + modifyGameOption('Options.Simul.LoseOnKO', false) + else + modifyGameOption('Options.Simul.LoseOnKO', true) + end + t.items[item].vardisplay = options.t_vardisplay['losekosimul']() + options.modified = true + end + return true + end, + --Min Simul Chars + ['minsimul'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Options.Simul.Min') < gameOption('Options.Simul.Max') then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Simul.Min', gameOption('Options.Simul.Min') + 1) + t.items[item].vardisplay = options.t_vardisplay['minsimul']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Options.Simul.Min') > 2 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Simul.Min', gameOption('Options.Simul.Min') - 1) + t.items[item].vardisplay = options.t_vardisplay['minsimul']() + options.modified = true + end + return true + end, + --Max Simul Chars + ['maxsimul'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Options.Simul.Max') < 4 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Simul.Max', gameOption('Options.Simul.Max') + 1) + t.items[item].vardisplay = options.t_vardisplay['maxsimul']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Options.Simul.Max') > gameOption('Options.Simul.Min') then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Simul.Max', gameOption('Options.Simul.Max') - 1) + t.items[item].vardisplay = options.t_vardisplay['maxsimul']() + options.modified = true + end + return true + end, + --Turns Recovery Base + ['turnsrecoverybase'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Options.Turns.Recovery.Base') < 100 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Turns.Recovery.Base', gameOption('Options.Turns.Recovery.Base') + 0.5) + t.items[item].vardisplay = options.t_vardisplay['turnsrecoverybase']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Options.Turns.Recovery.Base') > 0 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Turns.Recovery.Base', gameOption('Options.Turns.Recovery.Base') - 0.5) + t.items[item].vardisplay = options.t_vardisplay['turnsrecoverybase']() + options.modified = true + end + return true + end, + --Turns Recovery Bonus + ['turnsrecoverybonus'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Options.Turns.Recovery.Bonus') < 100 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Turns.Recovery.Bonus', gameOption('Options.Turns.Recovery.Bonus') + 0.5) + t.items[item].vardisplay = options.t_vardisplay['turnsrecoverybonus']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Options.Turns.Recovery.Bonus') > 0 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Turns.Recovery.Bonus', gameOption('Options.Turns.Recovery.Bonus') - 0.5) + t.items[item].vardisplay = options.t_vardisplay['turnsrecoverybonus']() + options.modified = true + end + return true + end, + --Min Turns Chars + ['minturns'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Options.Turns.Min') < gameOption('Options.Turns.Max') then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Turns.Min', gameOption('Options.Turns.Min') + 1) + t.items[item].vardisplay = options.t_vardisplay['minturns']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Options.Turns.Min') > 1 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Turns.Min', gameOption('Options.Turns.Min') - 1) + t.items[item].vardisplay = options.t_vardisplay['minturns']() + options.modified = true + end + return true + end, + --Max Turns Chars + ['maxturns'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Options.Turns.Max') < 8 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Turns.Max', gameOption('Options.Turns.Max') + 1) + t.items[item].vardisplay = options.t_vardisplay['maxturns']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Options.Turns.Max') > gameOption('Options.Turns.Min') then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Options.Turns.Max', gameOption('Options.Turns.Max') - 1) + t.items[item].vardisplay = options.t_vardisplay['maxturns']() + options.modified = true + end + return true + end, + --Renderer (submenu) + ['renderer'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + for k, v in ipairs(t.submenu[t.items[item].itemname].items) do + if gameOption('Video.RenderMode') == v.itemname then + v.selected = true + else + v.selected = false + end + end + t.submenu[t.items[item].itemname].loop() + t.items[item].vardisplay = options.t_vardisplay['renderer']() + options.modified = true + options.needReload = true + end + return true + end, + --gles32 + ['gles32'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Video.RenderMode', "OpenGL ES 3.2") + options.modified = true + options.needReload = true + return false + end + return true + end, + --gl33 + ['gl33'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Video.RenderMode', "OpenGL 3.3") + options.modified = true + options.needReload = true + return false + end + return true + end, + --vk13 + ['vk13'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Video.RenderMode', "Vulkan 1.3") + options.modified = true + options.needReload = true + return false + end + return true + end, + --Resolution (submenu) + ['resolution'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + local t_pos = {} + local ok = false + for k, v in ipairs(t.submenu[t.items[item].itemname].items) do + local width, height = v.itemname:match('^([0-9]+)x([0-9]+)$') + if tonumber(width) == gameOption('Video.GameWidth') and tonumber(height) == gameOption('Video.GameHeight') then + v.selected = true + ok = true + else + v.selected = false + end + if v.itemname == 'customres' then + t_pos = v + end + end + if not ok and t_pos.selected ~= nil then + t_pos.selected = true + end + t.submenu[t.items[item].itemname].loop() + t.items[item].vardisplay = options.t_vardisplay['resolution']() + end + return true + end, + --Custom resolution + ['customres'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + local reswidth = tonumber(main.f_drawInput( + motif.option_info.textinput.TextSpriteData, + motif.option_info.textinput.text.reswidth, + motif.option_info, + motif.optionbgdef, + motif.option_info.textinput.overlay.RectData + )) + if reswidth ~= nil then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + local resheight = tonumber(main.f_drawInput( + motif.option_info.textinput.TextSpriteData, + motif.option_info.textinput.text.resheight, + motif.option_info, + motif.optionbgdef, + motif.option_info.textinput.overlay.RectData + )) + if resheight ~= nil then + modifyGameOption('Video.GameWidth', reswidth) + modifyGameOption('Video.GameHeight', resheight) + sndPlay(motif.Snd, motif.option_info.cursor.done.snd[1], motif.option_info.cursor.done.snd[2]) + options.modified = true + options.needReload = true + else + sndPlay(motif.Snd, motif.option_info.cancel.snd[1], motif.option_info.cancel.snd[2]) + end + else + sndPlay(motif.Snd, motif.option_info.cancel.snd[1], motif.option_info.cancel.snd[2]) + end + return false + end + return true + end, + --Fullscreen + ['fullscreen'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Video.Fullscreen') then + modifyGameOption('Video.Fullscreen', false) + else + modifyGameOption('Video.Fullscreen', true) + end + toggleFullscreen(gameOption('Video.Fullscreen')) + t.items[item].vardisplay = options.t_vardisplay['fullscreen']() + options.modified = true + end + return true + end, + --VSync + ['vsync'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Video.VSync') == 1 then + modifyGameOption('Video.VSync', 0) + else + modifyGameOption('Video.VSync', 1) + end + toggleVSync(gameOption('Video.VSync')) + t.items[item].vardisplay = options.t_vardisplay['vsync']() + options.modified = true + end + return true + end, + --MSAA + ['msaa'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Video.MSAA') < 32 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Video.MSAA') == 0 then + modifyGameOption('Video.MSAA', 2) + else + modifyGameOption('Video.MSAA', gameOption('Video.MSAA') * 2) + end + t.items[item].vardisplay = options.t_vardisplay['msaa']() + options.modified = true + options.needReload = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Video.MSAA') > 1 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Video.MSAA') == 2 then + modifyGameOption('Video.MSAA', 0) + else + modifyGameOption('Video.MSAA', gameOption('Video.MSAA') / 2) + end + t.items[item].vardisplay = options.t_vardisplay['msaa']() + options.modified = true + options.needReload = true + end + return true + end, + --Window scaling mode + ['windowscalemode'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Video.WindowScaleMode') then + modifyGameOption('Video.WindowScaleMode', false) + else + modifyGameOption('Video.WindowScaleMode', true) + end + t.items[item].vardisplay = options.t_vardisplay['windowscalemode']() + options.modified = true + end + return true + end, + -- Match Aspect Ratio (submenu) + ['aspectratio'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + local t_pos = {} + local ok = false + local currentWidth = gameOption('Video.FightAspectWidth') + local currentHeight = gameOption('Video.FightAspectHeight') + for k, v in ipairs(t.submenu[t.items[item].itemname].items) do + if v.itemname == 'defaultaspect' and currentWidth == 0 and currentHeight == 0 then + v.selected = true + ok = true + elseif v.itemname == 'stageaspect' and currentWidth == -1 and currentHeight == -1 then + v.selected = true + ok = true + else + local width, height = v.itemname:match('^([0-9]+)x([0-9]+)$') + if width and height and tonumber(width) == currentWidth and tonumber(height) == currentHeight then + v.selected = true + ok = true + else + v.selected = false + end + end + if v.itemname == 'customaspect' then + t_pos = v + end + end + if not ok and t_pos.selected ~= nil then + t_pos.selected = true + end + t.submenu[t.items[item].itemname].loop() + t.items[item].vardisplay = options.t_vardisplay['aspectratio']() + end + return true + end, + --Custom aspect ratio + ['customaspect'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + local aspectwidth = tonumber(main.f_drawInput( + motif.option_info.textinput.TextSpriteData, + motif.option_info.textinput.text.aspectwidth, + motif.option_info, + motif.optionbgdef, + motif.option_info.textinput.overlay.RectData + )) + if aspectwidth ~= nil and aspectwidth > 0 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + local aspectheight = tonumber(main.f_drawInput( + motif.option_info.textinput.TextSpriteData, + motif.option_info.textinput.text.aspectheight, + motif.option_info, + motif.optionbgdef, + motif.option_info.textinput.overlay.RectData + )) + if aspectheight ~= nil and aspectheight > 0 then + modifyGameOption('Video.FightAspectWidth', aspectwidth) + modifyGameOption('Video.FightAspectHeight', aspectheight) + sndPlay(motif.Snd, motif.option_info.cursor.done.snd[1], motif.option_info.cursor.done.snd[2]) + options.modified = true + options.needReload = true + else + sndPlay(motif.Snd, motif.option_info.cancel.snd[1], motif.option_info.cancel.snd[2]) + end + else + sndPlay(motif.Snd, motif.option_info.cancel.snd[1], motif.option_info.cancel.snd[2]) + end + return false + end + return true + end, + --Keep Aspect Ratio + ['keepaspect'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Video.KeepAspect') then + modifyGameOption('Video.KeepAspect', false) + else + modifyGameOption('Video.KeepAspect', true) + end + t.items[item].vardisplay = options.t_vardisplay['keepaspect']() + options.modified = true + end + return true + end, + --Shaders (submenu) + ['shaders'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if #options.t_shaders == 0 then + main.f_warning(motif.warning_info.text.text.shaders, motif.option_info, motif.optionbgdef) + return true + end + t.submenu[t.items[item].itemname].loop() + t.items[item].vardisplay = options.t_vardisplay['shaders']() + options.modified = true + options.needReload = true + end + return true + end, + --Disable (shader) + ['noshader'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cancel.snd[1], motif.option_info.cancel.snd[2]) + modifyGameOption('Video.ExternalShaders', {}) + options.modified = true + options.needReload = true + return false + end + return true + end, + --Enable Model + ['enablemodel'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Video.EnableModel') then + modifyGameOption('Video.EnableModel', false) + else + modifyGameOption('Video.EnableModel', true) + end + t.items[item].vardisplay = options.t_vardisplay['enablemodel']() + options.modified = true + options.needReload = true + end + return true + end, + --Enable Model Shadow + ['enablemodelshadow'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Video.EnableModelShadow') then + modifyGameOption('Video.EnableModelShadow', false) + else + modifyGameOption('Video.EnableModelShadow', true) + end + t.items[item].vardisplay = options.t_vardisplay['enablemodelshadow']() + options.modified = true + options.needReload = true + end + return true + end, + --Master Volume + ['mastervolume'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Sound.MasterVolume') < 200 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Sound.MasterVolume', gameOption('Sound.MasterVolume') + 1) + t.items[item].vardisplay = options.t_vardisplay['mastervolume']() + options.modified = true + updateVolume() + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Sound.MasterVolume') > 0 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Sound.MasterVolume', gameOption('Sound.MasterVolume') - 1) + t.items[item].vardisplay = options.t_vardisplay['mastervolume']() + options.modified = true + updateVolume() + end + return true + end, + --BGM Volume + ['bgmvolume'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Sound.BGMVolume') < 100 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Sound.BGMVolume', gameOption('Sound.BGMVolume') + 1) + t.items[item].vardisplay = options.t_vardisplay['bgmvolume']() + options.modified = true + updateVolume() + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Sound.BGMVolume') > 0 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Sound.BGMVolume', gameOption('Sound.BGMVolume') - 1) + t.items[item].vardisplay = options.t_vardisplay['bgmvolume']() + options.modified = true + updateVolume() + end + return true + end, + --SFX Volume + ['sfxvolume'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Sound.WavVolume') < 100 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Sound.WavVolume', gameOption('Sound.WavVolume') + 1) + t.items[item].vardisplay = options.t_vardisplay['sfxvolume']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Sound.WavVolume') > 0 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Sound.WavVolume', gameOption('Sound.WavVolume') - 1) + t.items[item].vardisplay = options.t_vardisplay['sfxvolume']() + options.modified = true + end + return true + end, + --Audio Ducking + ['audioducking'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Sound.AudioDucking') then + modifyGameOption('Sound.AudioDucking', false) + else + modifyGameOption('Sound.AudioDucking', true) + end + t.items[item].vardisplay = options.t_vardisplay['audioducking']() + options.modified = true + end + return true + end, + --Stereo Effects + ['stereoeffects'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Sound.StereoEffects') then + modifyGameOption('Sound.StereoEffects', false) + else + modifyGameOption('Sound.StereoEffects', true) + end + t.items[item].vardisplay = options.t_vardisplay['stereoeffects']() + options.modified = true + end + return true + end, + --Panning Range + ['panningrange'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Sound.PanningRange') < 100 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Sound.PanningRange', gameOption('Sound.PanningRange') + 1) + t.items[item].vardisplay = options.t_vardisplay['panningrange']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Sound.PanningRange') > 0 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Sound.PanningRange', gameOption('Sound.PanningRange') - 1) + t.items[item].vardisplay = options.t_vardisplay['panningrange']() + options.modified = true + end + return true + end, + --Key Config + ['keyboard'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.done.snd[1], motif.option_info.cursor.done.snd[2]) + options.f_keyCfgInit('Keys', t.submenu[t.items[item].itemname].title) + while true do + if not options.f_keyCfg('Keys', t.items[item].itemname, motif.optionbgdef, false) then + break + end + end + end + return true + end, + --Joystick Config + ['gamepad'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.done.snd[1], motif.option_info.cursor.done.snd[2]) + if getCommandLineValue("-nojoy") == nil then + options.f_keyCfgInit('Joystick', t.submenu[t.items[item].itemname].title) + while true do + if not options.f_keyCfg('Joystick', t.items[item].itemname, motif.optionbgdef, false) then + break + end + end + end + end + return true + end, + --Default + ['inputdefault'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.done.snd[1], motif.option_info.cursor.done.snd[2]) + options.f_keyDefault() + options.f_setKeyConfig('Keys') + if getCommandLineValue("-nojoy") == nil then + options.f_setKeyConfig('Joystick') + end + options.modified = true + end + return true + end, + --Players + ['players'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Config.Players') < 8 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Config.Players', math.min(8, gameOption('Config.Players') + 2)) + t.items[item].vardisplay = options.t_vardisplay['players']() + setPlayers() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Config.Players') > 2 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Config.Players', math.max(2, gameOption('Config.Players') - 2)) + t.items[item].vardisplay = options.t_vardisplay['players']() + setPlayers() + options.modified = true + end + return true + end, + --Debug Keys + ['debugkeys'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Debug.AllowDebugKeys') then + modifyGameOption('Debug.AllowDebugKeys', false) + else + modifyGameOption('Debug.AllowDebugKeys', true) + end + t.items[item].vardisplay = options.t_vardisplay['debugkeys']() + options.modified = true + end + return true + end, + --Debug Mode + ['debugmode'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Debug.AllowDebugMode') then + modifyGameOption('Debug.AllowDebugMode', false) + else + modifyGameOption('Debug.AllowDebugMode', true) + end + t.items[item].vardisplay = options.t_vardisplay['debugmode']() + options.modified = true + end + return true + end, + --Background Loading + ['vsscreenloading'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Config.VsScreenLoading') then + modifyGameOption('Config.VsScreenLoading', false) + else + modifyGameOption('Config.VsScreenLoading', true) + end + t.items[item].vardisplay = options.t_vardisplay['vsscreenloading']() + options.modified = true + end + return true + end, + --Turns Preloading + ['turnsloading'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Config.TurnsLoading') then + modifyGameOption('Config.TurnsLoading', false) + else + modifyGameOption('Config.TurnsLoading', true) + end + t.items[item].vardisplay = options.t_vardisplay['turnsloading']() + options.modified = true + end + return true + end, + --Rollback Netcode + ['netcode'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key, motif.option_info.menu.subtract.key, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + if gameOption('Netplay.RollbackNetcode') then + modifyGameOption('Netplay.RollbackNetcode', false) + else + modifyGameOption('Netplay.RollbackNetcode', true) + end + t.items[item].vardisplay = options.t_vardisplay['netcode']() + options.modified = true + end + return true + end, + --Host Port (TCP) + ['portchange'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + local port = tonumber(main.f_drawInput( + motif.option_info.textinput.TextSpriteData, + motif.option_info.textinput.text.port, + motif.option_info, + motif.optionbgdef, + motif.option_info.textinput.overlay.RectData + )) + if port ~= nil and port == math.floor(port) and port >= 1 and port <= 65535 then + sndPlay(motif.Snd, motif.option_info.cursor.done.snd[1], motif.option_info.cursor.done.snd[2]) + modifyGameOption('Netplay.ListenPort', port) + t.items[item].vardisplay = options.t_vardisplay['portchange']() + options.modified = true + else + sndPlay(motif.Snd, motif.option_info.cancel.snd[1], motif.option_info.cancel.snd[2]) + end + end + return true + end, + --Rollback Port (UDP) + ['rollbackport'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + local port = tonumber(main.f_drawInput( + motif.option_info.textinput.TextSpriteData, + motif.option_info.textinput.text.port, + motif.option_info, + motif.optionbgdef, + motif.option_info.textinput.overlay.RectData + )) + if port ~= nil and port == math.floor(port) and port >= 1 and port <= 65535 then + sndPlay(motif.Snd, motif.option_info.cursor.done.snd[1], motif.option_info.cursor.done.snd[2]) + modifyGameOption('Netplay.Rollback.Port', port) + t.items[item].vardisplay = options.t_vardisplay['rollbackport']() + options.modified = true + else + sndPlay(motif.Snd, motif.option_info.cancel.snd[1], motif.option_info.cancel.snd[2]) + end + end + return true + end, + --Rollback Frame Delay + ['framedelay'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.add.key) and gameOption('Netplay.Rollback.FrameDelay') < 10 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Netplay.Rollback.FrameDelay', gameOption('Netplay.Rollback.FrameDelay') + 1) + t.items[item].vardisplay = options.t_vardisplay['framedelay']() + options.modified = true + elseif getInput(-1, motif.option_info.menu.subtract.key) and gameOption('Netplay.Rollback.FrameDelay') > 0 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + modifyGameOption('Netplay.Rollback.FrameDelay', gameOption('Netplay.Rollback.FrameDelay') - 1) + t.items[item].vardisplay = options.t_vardisplay['framedelay']() + options.modified = true + end + return true + end, + --Save and Return + ['savereturn'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.done.snd[1], motif.option_info.cursor.done.snd[2]) + if options.modified then + options.f_saveCfg(options.needReload) + end + fadeOutInit(motif.option_info.fadeout.FadeData) + main.close = true + --return false + end + return true + end, + --Return Without Saving + ['return'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cancel.snd[1], motif.option_info.cancel.snd[2]) + if options.needReload then + main.f_warning(motif.warning_info.text.text.noreload, motif.option_info, motif.optionbgdef) + end + fadeOutInit(motif.option_info.fadeout.FadeData) + main.close = true + --return false + end + return true + end, + --Save Settings + ['savesettings'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.done.snd[1], motif.option_info.cursor.done.snd[2]) + if options.modified then + options.f_saveCfg(options.needReload) + end + end + return true + end, +} + +-- Shared menu loop logic +function options.f_createMenu(tbl, bool_main) + return function() + hook.run("options.menu.loop") + local cursorPosY = 1 + local moveTxt = 0 + local item = 1 + local t = tbl.items + main.f_menuSnap(motif.option_info) + main.f_menuItemBgAnimReset(motif.option_info) + if bool_main then + bgReset(motif.optionbgdef.BGDef) + fadeInInit(motif.option_info.fadein.FadeData) + playBgm({source = "motif.option"}) + main.close = false + end + while true do + if tbl.reset then + tbl.reset = false + else + main.f_menuCommonDraw(t, item, cursorPosY, moveTxt, motif.option_info, motif.optionbgdef, false) + end + -- While fading, ignore normal option-menu inputs, but still allow ESC / menu-cancel to skip the fade. + if fadeActive() then + if esc() or getInput(-1, motif.option_info.menu.cancel.key) then + fadeSkip() + end + else + cursorPosY, moveTxt, item = main.f_menuCommonCalc(t, item, cursorPosY, moveTxt, motif.option_info, motif.option_info.cursor) + textImgReset(motif.option_info.title.TextSpriteData) + textImgSetText(motif.option_info.title.TextSpriteData, tbl.title) + if main.close then + bgReset(motif[main.background].BGDef) + fadeInInit(motif[main.group].fadein.FadeData) + playBgm({source = "motif.title", interrupt = true}) + main.close = false + break + elseif esc() or getInput(-1, motif.option_info.menu.cancel.key) then + sndPlay(motif.Snd, motif.option_info.cancel.snd[1], motif.option_info.cancel.snd[2]) + if bool_main then + if options.modified then + --options.f_saveCfg(options.needReload) + end + if options.needReload then + main.f_warning(motif.warning_info.text.text.noreload, motif.option_info, motif.optionbgdef) + end + fadeOutInit(motif.option_info.fadeout.FadeData) + main.close = true + else + break + end + elseif options.t_itemname[t[item].itemname] ~= nil then + if not options.t_itemname[t[item].itemname](tbl, item, cursorPosY, moveTxt) then + break + end + elseif getInput(-1, motif.option_info.menu.done.key) then + local f = t[item].itemname + if tbl.submenu[f].loop ~= nil then + sndPlay(motif.Snd, motif.option_info.cursor.done.snd[1], motif.option_info.cursor.done.snd[2]) + tbl.submenu[f].loop() + main.f_menuSnap(motif.option_info) + main.f_menuItemBgAnimReset(motif.option_info) + elseif not options.t_itemname[f](tbl, item, cursorPosY, moveTxt) then + break + end + end + end + end + end +end + +options.t_vardisplayPointers = {} + +local function findItemnameBySuffix(sfx) + for _, k in ipairs(motif.option_info.menu.itemname_order) do + if k:match(sfx) then + return motif.option_info.menu.itemname[k] + end + end + return '' +end + +-- Associative elements table storing functions returning current setting values +-- rendered alongside menu item name. Can be appended via external module. +options.t_vardisplay = { + ['aipalette'] = function() + return options.f_boolDisplay(gameOption('Arcade.AI.RandomColor'), motif.option_info.menu.valuename.random, motif.option_info.menu.valuename.default) + end, + ['aisurvivalpalette'] = function() + return options.f_boolDisplay(gameOption('Arcade.AI.SurvivalColor'), motif.option_info.menu.valuename.random, motif.option_info.menu.valuename.default) + end, + ['airamping'] = function() + return options.f_boolDisplay(gameOption('Arcade.AI.Ramping')) + end, + ['aspectratio'] = function() + local width = gameOption('Video.FightAspectWidth') + local height = gameOption('Video.FightAspectHeight') + if width > 0 and height > 0 then + return width .. ':' .. height + elseif width < 0 and height < 0 then + return findItemnameBySuffix('stageaspect$') + else + return findItemnameBySuffix('defaultaspect$') + end + end, + ['audioducking'] = function() + return options.f_boolDisplay(gameOption('Sound.AudioDucking'), motif.option_info.menu.valuename.enabled, motif.option_info.menu.valuename.disabled) + end, + ['autoguard'] = function() + return options.f_boolDisplay(gameOption('Options.AutoGuard')) + end, + ['vsscreenloading'] = function() + return options.f_boolDisplay(gameOption('Config.VsScreenLoading'), motif.option_info.menu.valuename.enabled, motif.option_info.menu.valuename.disabled) + end, + ['turnsloading'] = function() + return options.f_boolDisplay(gameOption('Config.TurnsLoading'), motif.option_info.menu.valuename.enabled, motif.option_info.menu.valuename.disabled) + end, + ['bgmvolume'] = function() + return gameOption('Sound.BGMVolume') .. '%' + end, + ['credits'] = function() + return options.f_definedDisplay(gameOption('Options.Credits'), {[0] = motif.option_info.menu.valuename.disabled}, gameOption('Options.Credits')) + end, + ['debugkeys'] = function() + return options.f_boolDisplay(gameOption('Debug.AllowDebugKeys'), motif.option_info.menu.valuename.enabled, motif.option_info.menu.valuename.disabled) + end, + ['debugmode'] = function() + return options.f_boolDisplay(gameOption('Debug.AllowDebugMode'), motif.option_info.menu.valuename.enabled, motif.option_info.menu.valuename.disabled) + end, + ['difficulty'] = function() + return gameOption('Options.Difficulty') + end, + ['enablemodel'] = function() + return options.f_definedDisplay(gameOption('Video.EnableModel'), {[true] = motif.option_info.menu.valuename.enabled}, motif.option_info.menu.valuename.disabled) + end, + ['enablemodelshadow'] = function() + return options.f_definedDisplay(gameOption('Video.EnableModelShadow'), {[true] = motif.option_info.menu.valuename.enabled}, motif.option_info.menu.valuename.disabled) + end, + ['fullscreen'] = function() + return options.f_boolDisplay(gameOption('Video.Fullscreen')) + end, + ['gamespeed'] = function() + return options.f_boolDisplay(gameOption('Options.GameSpeed') == 0, motif.option_info.menu.valuename.normal, options.f_boolDisplay(gameOption('Options.GameSpeed') < 0, string.format(motif.option_info.menu.valuename.slow, 0 - gameOption('Options.GameSpeed')), string.format(motif.option_info.menu.valuename.fast, gameOption('Options.GameSpeed')))) + end, + ['guardbreak'] = function() + return options.f_boolDisplay(gameOption('Options.GuardBreak')) + end, + ['keepaspect'] = function() + return options.f_boolDisplay(gameOption('Video.KeepAspect'), motif.option_info.menu.valuename.enabled, motif.option_info.menu.valuename.disabled) + end, + ['language'] = function() + sfs = motif.languages[gameOption('Config.Language')] + return sfs or gameOption('Config.Language') + end, + ['lifemul'] = function() + return gameOption('Options.Life') .. '%' + end, + ['losekosimul'] = function() + return options.f_boolDisplay(gameOption('Options.Simul.LoseOnKO')) + end, + ['losekotag'] = function() + return options.f_boolDisplay(gameOption('Options.Tag.LoseOnKO')) + end, + ['mastervolume'] = function() + return gameOption('Sound.MasterVolume') .. '%' + end, + ['maxdrawgames'] = function() + return gameOption('Options.Match.MaxDrawGames') + end, + ['maxsimul'] = function() + return gameOption('Options.Simul.Max') + end, + ['maxtag'] = function() + return gameOption('Options.Tag.Max') + end, + ['maxturns'] = function() + return gameOption('Options.Turns.Max') + end, + ['minsimul'] = function() + return gameOption('Options.Simul.Min') + end, + ['mintag'] = function() + return gameOption('Options.Tag.Min') + end, + ['minturns'] = function() + return gameOption('Options.Turns.Min') + end, + ['msaa'] = function() + return options.f_definedDisplay(gameOption('Video.MSAA'), {[0] = motif.option_info.menu.valuename.disabled}, gameOption('Video.MSAA') .. 'x') + end, + ['panningrange'] = function() + return gameOption('Sound.PanningRange') .. '%' + end, + ['players'] = function() + return gameOption('Config.Players') + end, + ['portchange'] = function() + return gameOption('Netplay.ListenPort') + end, + ['quickcontinue'] = function() + return options.f_boolDisplay(gameOption('Options.QuickContinue')) + end, + ['redlife'] = function() + return options.f_boolDisplay(gameOption('Options.RedLife')) + end, + ['renderer'] = function() + return gameOption('Video.RenderMode') + end, + ['resolution'] = function() + return gameOption('Video.GameWidth') .. 'x' .. gameOption('Video.GameHeight') + end, + ['rollbackport'] = function() + return gameOption('Netplay.Rollback.Port') + end, + ['roundsnumsimul'] = function() + return gameOption('Options.Simul.Match.Wins') + end, + ['roundsnumsingle'] = function() + return gameOption('Options.Match.Wins') + end, + ['roundsnumtag'] = function() + return gameOption('Options.Tag.Match.Wins') + end, + ['roundtime'] = function() + return options.f_definedDisplay(gameOption('Options.Time'), {[-1] = motif.option_info.menu.valuename.none}, gameOption('Options.Time')) + end, + ['rumble'] = function(player) + return options.f_boolDisplay(gameOption('Joystick_P' .. player .. '.RumbleOn')) + end, + ['sfxvolume'] = function() + return gameOption('Sound.WavVolume') .. '%' + end, + ['shaders'] = function() + return options.f_boolDisplay(#gameOption('Video.ExternalShaders') > 0, motif.option_info.menu.valuename.enabled, motif.option_info.menu.valuename.disabled) + end, + ['singlevsteamlife'] = function() + return gameOption('Options.Team.SingleVsTeamLife') .. '%' + end, + ['stereoeffects'] = function() + return options.f_boolDisplay(gameOption('Sound.StereoEffects'), motif.option_info.menu.valuename.enabled, motif.option_info.menu.valuename.disabled) + end, + ['dizzy'] = function() + return options.f_boolDisplay(gameOption('Options.Dizzy')) + end, + ['teamduplicates'] = function() + return options.f_boolDisplay(gameOption('Options.Team.Duplicates')) + end, + ['teamlifeshare'] = function() + return options.f_boolDisplay(gameOption('Options.Team.LifeShare')) + end, + ['teampowershare'] = function() + return options.f_boolDisplay(gameOption('Options.Team.PowerShare')) + end, + ['turnsrecoverybase'] = function() + return gameOption('Options.Turns.Recovery.Base') .. '%' + end, + ['turnsrecoverybonus'] = function() + return gameOption('Options.Turns.Recovery.Bonus') .. '%' + end, + ['vsync'] = function() + return options.f_definedDisplay(gameOption('Video.VSync'), {[1] = motif.option_info.menu.valuename.enabled}, motif.option_info.menu.valuename.disabled) + end, + ['windowscalemode'] = function() + return options.f_boolDisplay(gameOption('Video.WindowScaleMode'), motif.option_info.menu.valuename.bilinear, motif.option_info.menu.valuename.nearest) + end, + ['netcode'] = function() + return options.f_boolDisplay(gameOption('Netplay.RollbackNetcode'), motif.option_info.menu.valuename.rollbacknetcode, motif.option_info.menu.valuename.delaynetcode) + end, + ['framedelay'] = function() + return gameOption('Netplay.Rollback.FrameDelay') + end, +} + +-- Returns setting value rendered alongside menu item name (calls appropriate +-- function from t_vardisplay table) +function options.f_vardisplay(itemname, player) + if options.t_vardisplay[itemname] ~= nil then + if itemname == 'rumble' then + return options.t_vardisplay[itemname](player) + end + return options.t_vardisplay[itemname]() + end + return '' +end + +-- Dynamically generates all menus and submenus +function options.f_start() + -- external shaders + options.t_shaders = {} + for _, v in ipairs(getDirectoryFiles('external/shaders')) do + v:gsub('^(.-)([^\\/]+)%.([^%.\\/]-)$', function(path, filename, ext) + path = path:gsub('\\', '/') + ext = ext:lower() + if ext == 'frag' then + table.insert(options.t_shaders, {path = path, filename = filename}) + end + if ext:match('vert') or ext:match('frag') --[[or ext:match('shader')]] then + options.t_itemname[path .. filename] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.done.snd[1], motif.option_info.cursor.done.snd[2]) + local t_externalShaders = gameOption('Video.ExternalShaders') + for k, v in ipairs(t.items) do + if v.itemname == path .. filename then + v.selected = not v.selected + if v.selected then + table.insert(t_externalShaders, v.itemname) + else + for k2, v2 in ipairs(t_externalShaders) do + if v2 == v.itemname then + table.remove(t_externalShaders, k2) + v.vardisplay = options.f_boolDisplay(v.selected, tostring(k2), '') + break + end + end + end + end + end + -- Need to correct ALL indices + for k, v in ipairs(t.items) do + for k2, v2 in ipairs(t_externalShaders) do + if v2 == v.itemname then + v.vardisplay = options.f_boolDisplay(v.selected, tostring(k2), '') + end + end + end + modifyGameOption('Video.ExternalShaders', t_externalShaders) + return true + end + return true + end + end + end) + end + for _, v in ipairs(motif.option_info.menu.itemname_order) do + -- resolution + if v:match('_resolution_[0-9]+x[0-9]+$') then + local width, height = v:match('_resolution_([0-9]+)x([0-9]+)$') + options.t_itemname[width .. 'x' .. height] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.done.snd[1], motif.option_info.cursor.done.snd[2]) + modifyGameOption('Video.GameWidth', tonumber(width)) + modifyGameOption('Video.GameHeight', tonumber(height)) + options.modified = true + options.needReload = true + return false + end + return true + end + -- aspect ratio + elseif v:match('_aspectratio_') then + -- aspect ratio default + if v:match('_aspectratio_defaultaspect$') then + options.t_itemname['defaultaspect'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.done.snd[1], motif.option_info.cursor.done.snd[2]) + modifyGameOption('Video.FightAspectWidth', 0) + modifyGameOption('Video.FightAspectHeight', 0) + options.modified = true + return false + end + return true + end + -- aspect ratio stage + elseif v:match('_aspectratio_stageaspect$') then + options.t_itemname['stageaspect'] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.done.snd[1], motif.option_info.cursor.done.snd[2]) + modifyGameOption('Video.FightAspectWidth', -1) + modifyGameOption('Video.FightAspectHeight', -1) + options.modified = true + return false + end + return true + end + -- aspect ratio presets (4x3, 16x9, etc.) + elseif v:match('_aspectratio_[0-9]+x[0-9]+$') then + local width, height = v:match('_aspectratio_([0-9]+)x([0-9]+)$') + options.t_itemname[width .. 'x' .. height] = function(t, item, cursorPosY, moveTxt) + if getInput(-1, motif.option_info.menu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.done.snd[1], motif.option_info.cursor.done.snd[2]) + modifyGameOption('Video.FightAspectWidth', tonumber(width)) + modifyGameOption('Video.FightAspectHeight', tonumber(height)) + options.modified = true + return false + end + return true + end + end + end + end + if gameOption('Debug.DumpLuaTables') then main.f_printTable(options.t_itemname, 'debug/t_optionsItemname.txt') end + -- create menu + options.menu = {title = main.f_itemnameUpper(motif.option_info.title.text, motif.option_info.menu.title.uppercase), submenu = {}, items = {}} + options.menu.loop = options.f_createMenu(options.menu, true) + local w = main.f_menuWindow(motif.option_info.menu) + local t_pos = {} --for storing current options.menu table position + local lastNum = 0 + for i, suffix in ipairs(motif.option_info.menu.itemname_order) do + for j, c in ipairs(main.f_strsplit('_', suffix)) do --split using "_" delimiter + --populate shaders submenu + if suffix:match('_shaders_back$') and c == 'back' then + for k = #options.t_shaders, 1, -1 do + local itemname = options.t_shaders[k].path .. options.t_shaders[k].filename + local idx = 0 + -- Has the shader been enabled? + local isSelected = false + for i, v in ipairs(gameOption('Video.ExternalShaders')) do + if itemname == v then + isSelected = true + idx = i + break + end + end + table.insert(t_pos.items, 1, { + itemname = itemname, + displayname = options.t_shaders[k].filename, + paramname = suffix:gsub('back$', itemname), + vardisplay = options.f_boolDisplay(idx > 0, tostring(idx), ''), + selected = isSelected, + }) + table.insert(options.t_vardisplayPointers, t_pos.items[#t_pos.items]) + end + end + --appending the menu table + if j == 1 then --first string after menu.itemname (either reserved one or custom submenu assignment) + if options.menu.submenu[c] == nil or c:match("^spacer%d*$") then + options.menu.submenu[c] = {title = main.f_itemnameUpper(motif.option_info.menu.itemname[suffix], motif.option_info.menu.title.uppercase), submenu = {}, items = {}} + options.menu.submenu[c].loop = options.f_createMenu(options.menu.submenu[c], false) + if not suffix:match(c .. '_') then + table.insert(options.menu.items, { + itemname = c, + displayname = motif.option_info.menu.itemname[suffix], + paramname = suffix, + vardisplay = c == 'rumble' and options.f_vardisplay(c, i) or options.f_vardisplay(c), + selected = false, + }) + table.insert(options.t_vardisplayPointers, options.menu.items[#options.menu.items]) + end + end + t_pos = options.menu.submenu[c] + t_pos.name = c + else --following strings + if t_pos.submenu[c] == nil or c:match("^spacer%d*$") then + t_pos.submenu[c] = {title = main.f_itemnameUpper(motif.option_info.menu.itemname[suffix], motif.option_info.menu.title.uppercase), submenu = {}, items = {}} + t_pos.submenu[c].loop = options.f_createMenu(t_pos.submenu[c], false) + table.insert(t_pos.items, { + itemname = c, + displayname = motif.option_info.menu.itemname[suffix], + paramname = suffix, + vardisplay = options.f_vardisplay(c), + selected = false, + }) + table.insert(options.t_vardisplayPointers, t_pos.items[#t_pos.items]) + end + if j > lastNum then + t_pos = t_pos.submenu[c] + t_pos.name = c + end + end + lastNum = j + end + end + -- Runtime platform filtering + local runtimeOS = getRuntimeOS() + local excluded = {gles32 = true} + if runtimeOS == 'android' then + excluded = {keyboard = true, gl33 = true} + elseif runtimeOS == 'ios' then + excluded = {keyboard = true, gl33 = true, gles32 = true} + end + main.f_pruneMenu(options.menu, excluded) + main.f_prunePointers(options.t_vardisplayPointers, excluded) + -- Menu windows + textImgSetWindow(motif.option_info.menu.item.selected.active.TextSpriteData, w[1], w[2], w[3], w[4]) + textImgSetWindow(motif.option_info.menu.item.active.TextSpriteData, w[1], w[2], w[3], w[4]) + textImgSetWindow(motif.option_info.menu.item.value.active.TextSpriteData, w[1], w[2], w[3], w[4]) + textImgSetWindow(motif.option_info.menu.item.selected.TextSpriteData, w[1], w[2], w[3], w[4]) + textImgSetWindow(motif.option_info.menu.item.TextSpriteData, w[1], w[2], w[3], w[4]) + textImgSetWindow(motif.option_info.menu.item.value.TextSpriteData, w[1], w[2], w[3], w[4]) + for _, v in pairs(motif.option_info.menu.item.bg) do + animSetWindow(v.AnimData, w[1], w[2], w[3], w[4]) + end + for _, v in pairs(motif.option_info.menu.item.active.bg) do + animSetWindow(v.AnimData, w[1], w[2], w[3], w[4]) + end + -- Keymenu windows + -- The first entry in t_keyCfg is a "spacer" row. We want that row to sit *above* the visible clipping area. + -- To do that we keep the same window height, but slide the window down by one row of keymenu item spacing. + -- Only the Y offset matters here (X uses full screen width). + local keyWinOffsetY = motif.option_info.keymenu.p1.menuoffset[2] + motif.option_info.keymenu.item.spacing[2] + local kw = main.f_menuWindow(motif.option_info.keymenu, {0, keyWinOffsetY}) + -- keep the window shifted down, but crop one row at the bottom + kw[4] = kw[4] - motif.option_info.keymenu.item.spacing[2] + -- base / selected label text + textImgSetWindow(motif.option_info.keymenu.item.TextSpriteData, kw[1], kw[2], kw[3], kw[4]) + textImgSetWindow(motif.option_info.keymenu.item.selected.TextSpriteData, kw[1], kw[2], kw[3], kw[4]) + -- value text (normal / active / conflict) + textImgSetWindow(motif.option_info.keymenu.item.value.TextSpriteData, kw[1], kw[2], kw[3], kw[4]) + textImgSetWindow(motif.option_info.keymenu.item.value.active.TextSpriteData, kw[1], kw[2], kw[3], kw[4]) + textImgSetWindow(motif.option_info.keymenu.item.value.conflict.TextSpriteData, kw[1], kw[2], kw[3], kw[4]) + textImgSetWindow(motif.option_info.keymenu.item.info.TextSpriteData, kw[1], kw[2], kw[3], kw[4]) + textImgSetWindow(motif.option_info.keymenu.item.info.active.TextSpriteData, kw[1], kw[2], kw[3], kw[4]) + -- selected / active label variants + textImgSetWindow(motif.option_info.keymenu.item.selected.active.TextSpriteData, kw[1], kw[2], kw[3], kw[4]) + textImgSetWindow(motif.option_info.keymenu.item.active.TextSpriteData, kw[1], kw[2], kw[3], kw[4]) + -- item backgrounds share the same clipping window + for _, v in pairs(motif.option_info.keymenu.item.bg) do + animSetWindow(v.AnimData, kw[1], kw[2], kw[3], kw[4]) + end + for _, v in pairs(motif.option_info.keymenu.item.active.bg) do + animSetWindow(v.AnimData, kw[1], kw[2], kw[3], kw[4]) + end + -- log + if gameOption('Debug.DumpLuaTables') then main.f_printTable(options.menu, 'debug/t_optionsMenu.txt') end +end + +--;=========================================================== +--; KEY SETTINGS +--;=========================================================== +local t_keyCfg = {} +table.insert(t_keyCfg, {itemname = 'spacer', displayname = '-', paramname = 'spacer'}) +for _, v in ipairs(motif.option_info.keymenu.itemname_order or {}) do + if isUIKeyAction(v) or v == "configall" then + table.insert(t_keyCfg, {itemname = v, displayname = motif.option_info.keymenu.itemname[v] or '', paramname = v, infodisplay = ''}) + end +end +table.insert(t_keyCfg, {itemname = 'page', displayname = '', paramname = 'page', infodisplay = ''}) + +-- find the index of the "Config all" row +local configall_start = 2 +for i, row in ipairs(t_keyCfg) do + if row.itemname == 'configall' then + configall_start = i + break + end +end +-- initial selection: keep it on the Config all row +local cursorPosY = configall_start +local item = configall_start +local item_start = configall_start +local captureActive = false +local captureMode = nil +local key = '' +local t_keyList = {} +local t_conflict = {} +local t_savedConfig = {} +local btnReleased = false +local player = 1 +local side = 1 +local btn = '' +local joyNum = 0 + +-- which actions we save / restore per player +local t_keyCfgFields = { + 'Joystick', 'up', 'down', 'left', 'right', + 'a', 'b', 'c', 'x', 'y', 'z', + 'start', 'd', 'w', 'menu', 'GUID', +} + +local t_btnEnabled = {} +for _, row in ipairs(t_keyCfg) do + if isUIKeyAction(row.itemname) then + t_btnEnabled[row.itemname] = true + end +end + +-- Restore saved key config for a single player from t_savedConfig +local function f_restoreKeyConfigPlayer(cfgType, pn) + local saved = t_savedConfig[pn] + if not saved then + return + end + for _, field in ipairs(t_keyCfgFields) do + local oldVal = saved[field] + if oldVal ~= nil then + modifyGameOption(string.format('%s_P%d.%s', cfgType, pn, field), oldVal) + end + end +end + +function options.f_keyDefault() + for i = 1, gameOption('Config.Players') do + setDefaultConfig('Keys', i, t_btnEnabled) + setDefaultConfig('Joystick', i, t_btnEnabled) + end + resetRemapInput() +end + +if gameOption('Config.FirstRun') then + options.f_keyDefault() +end + +function options.f_keyCfgReset(cfgType) + t_keyList = {} + for i = 1, gameOption('Config.Players') do + local c = gameOption(cfgType .. '_P' .. i) + if t_keyList[c.Joystick] == nil then + t_keyList[c.Joystick] = {} --creates subtable for each controller (1 for all keyboard configs, new one for each gamepad) + t_conflict[c.Joystick] = false --set default conflict flag for each controller + end + for k, v in ipairs(t_keyCfg) do + if t_btnEnabled[v.itemname] then + local btn = c[v.itemname] + t_keyCfg[k]['vardisplay' .. i] = btn + if btn ~= tostring(motif.option_info.menu.valuename.nokey) then --if button is not disabled + t_keyList[c.Joystick][btn] = (t_keyList[c.Joystick][btn] or 0) + 1 + end + elseif v.itemname == 'rumble' then + t_keyCfg[k]['vardisplay' .. i] = options.f_boolDisplay(c.RumbleOn) + end + end + end +end + +function options.f_setKeyConfig(cfgType) + for i = 1, gameOption('Config.Players') do + local c = gameOption(cfgType .. '_P' .. i) + setKeyConfig(i, c.Joystick, {c.up, c.down, c.left, c.right, c.a, c.b, c.c, c.x, c.y, c.z, c.start, c.d, c.w, c.menu}) + end +end + +function options.f_keyCfgInit(cfgType, title) + resetKey() + cursorPosY = configall_start + item = configall_start + item_start = configall_start + captureMode = nil + captureActive = false + key = '' + t_conflict = {} + t_savedConfig = {} + for i = 1, gameOption('Config.Players') do + table.insert(t_savedConfig, gameOption(cfgType .. '_P' .. i)) + end + btnReleased = false + player = 1 + side = 1 + btn = '' + textImgReset(motif.option_info.title.TextSpriteData) + textImgSetText(motif.option_info.title.TextSpriteData, title) + options.f_keyCfgReset(cfgType) + joyNum = gameOption(cfgType .. '_P' .. player .. '.Joystick') +end + +function options.f_keyCfg(cfgType, controller, bg, skipClear) + local t = t_keyCfg + local side_before = side + -- Dynamically add/remove the "Rumble" option based on type + if motif.option_info.keymenu.itemname.rumble ~= nil then + if cfgType ~= 'Joystick' then + for k,v in ipairs(t) do + if t[k].itemname == 'rumble' then + table.remove(t, k) + break + end + end + else + local found = false + for k,v in ipairs(t) do + if t[k].itemname == 'rumble' then + found = true + break + end + end + if not found then + table.insert(t, #t, {itemname = 'rumble', displayname = motif.option_info.keymenu.itemname.rumble, paramname = 'rumble', infodisplay = ''}) + options.f_keyCfgReset(cfgType) + end + end + end + local moveTxt = 0 + local forcedDir = nil + -- Config all / single-button capture + if captureActive then + -- esc while capturing (cancel) + if esc() --[[or getInput(-1, motif.option_info.menu.cancel.key)]] then + sndPlay(motif.Snd, motif.option_info.cancel.snd[1], motif.option_info.cancel.snd[2]) + esc(false) + for i = 1, gameOption('Config.Players') do + if i == player then + f_restoreKeyConfigPlayer(cfgType, i) + end + end + options.f_setKeyConfig(cfgType) + options.f_keyCfgReset(cfgType) + -- on cancel, Config all should always return to the Config all row, while single-button capture should keep the row it started from + local resetIndex + if captureMode == 'all' then + resetIndex = configall_start + else + resetIndex = item_start + end + captureMode = nil + captureActive = false + item = resetIndex + cursorPosY = resetIndex + -- unbind key + elseif getKey(motif.option_info.keymenu.unbind.keycode) then + key = '__UNBIND__' + --keyboard key detection + elseif cfgType == 'Keys' then + key = getKey() + --gamepad key detection + else + local tmp = getJoystickKey(joyNum) + local guid = getJoystickGUID(joyNum) + + -- Fix the joystick index so that configs are preserved between boots + if gameOption(cfgType .. '_P' .. player .. '.GUID') ~= guid and guid ~= '' then + modifyGameOption(cfgType .. '_P' .. player .. '.GUID', guid) + options.modified = true + end + + if tmp == '' then + btnReleased = true + elseif btnReleased then + key = tmp + btnReleased = false + end + end + -- while Config all is active we lock menu movement by default + forcedDir = 0 + --other keyboard or gamepad key + if key ~= '' and key ~= 'nil' then + if key == '__UNBIND__' then + sndPlay(motif.Snd, motif.option_info.cancel.snd[1], motif.option_info.cancel.snd[2]) + --decrease old button count + if t_keyList[joyNum][btn] ~= nil and t_keyList[joyNum][btn] > 1 then + t_keyList[joyNum][btn] = t_keyList[joyNum][btn] - 1 + else + t_keyList[joyNum][btn] = nil + end + --update vardisplay / config data + t[item]['vardisplay' .. player] = motif.option_info.menu.valuename.nokey + modifyGameOption(cfgType .. '_P' .. player .. '.' .. t[item].itemname, tostring(motif.option_info.menu.valuename.nokey)) + options.modified = true + elseif cfgType == 'Keys' or (cfgType == 'Joystick' and key ~= 'nil') then + sndPlay(motif.Snd, motif.option_info.cursor.done.snd[1], motif.option_info.cursor.done.snd[2]) + --decrease old button count + if t_keyList[joyNum][btn] ~= nil and t_keyList[joyNum][btn] > 1 then + t_keyList[joyNum][btn] = t_keyList[joyNum][btn] - 1 + else + t_keyList[joyNum][btn] = nil + end + --remove previous button assignment if already set + for k, v in ipairs(t) do + if v['vardisplay' .. player] == key then + v['vardisplay' .. player] = tostring(motif.option_info.menu.valuename.nokey) + modifyGameOption(cfgType .. '_P' .. player .. '.' .. v.itemname, tostring(motif.option_info.menu.valuename.nokey)) + if t_keyList[joyNum][key] ~= nil and t_keyList[joyNum][key] > 1 then + t_keyList[joyNum][key] = t_keyList[joyNum][key] - 1 + else + t_keyList[joyNum][key] = nil + end + end + end + --increase new button count + if t_keyList[joyNum][key] == nil then + t_keyList[joyNum][key] = 1 + else + t_keyList[joyNum][key] = t_keyList[joyNum][key] + 1 + end + --update vardisplay / config data + t[item]['vardisplay' .. player] = key + modifyGameOption(cfgType .. '_P' .. player .. '.' .. t[item].itemname, key) + options.modified = true + end + if captureMode == 'all' then + -- decide what to do next: move down or finish Config all + local nextIndex = item + 1 + local nextRow = t[nextIndex] + if nextRow == nil or nextRow.itemname == 'page' or nextRow.itemname == 'rumble' then + -- reached end sentinel, stop Config all and reset selection + item = configall_start + cursorPosY = configall_start + captureActive = false + captureMode = nil + options.f_setKeyConfig(cfgType) + forcedDir = 0 -- keep cursor where we reset it + else + -- continue Config all: simulate one "down" press so scrolling / wrapping is handled by common menu code + forcedDir = 1 + end + else + -- single-button capture: finish after one assignment, keep current scroll / cursor + captureActive = false + captureMode = nil + options.f_setKeyConfig(cfgType) + forcedDir = 0 + end + key = '' + end + if t_btnEnabled[t[item].itemname] then + btn = gameOption(cfgType .. '_P' .. player .. '.' .. t[item].itemname) + end + resetKey() + else + key = getKey() + --back + if esc() or getInput(-1, motif.option_info.menu.cancel.key) or (t[item].itemname == 'page' and (side == 1 or gameOption('Config.Players') <= 2) and getInput(-1, motif.option_info.keymenu.done.key)) then + if t_conflict[joyNum] then + if not main.f_warning(motif.warning_info.text.text.keys, motif.option_info, motif.optionbgdef) then + for i = 1, gameOption('Config.Players') do + f_restoreKeyConfigPlayer(cfgType, i) + end + options.f_setKeyConfig(cfgType) + menu.itemname = '' + return false + end + else + sndPlay(motif.Snd, motif.option_info.cancel.snd[1], motif.option_info.cancel.snd[2]) + options.f_setKeyConfig(cfgType) + menu.itemname = '' + return false + end + --switch page + elseif gameOption('Config.Players') > 2 and ((t[item].itemname == 'page' and side == 2 and getInput(-1, motif.option_info.keymenu.done.key)) or key == 'TAB') then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + player = player + 2 + if player > gameOption('Config.Players') then + player = side + else + side = main.f_playerSide(player) + end + joyNum = gameOption(cfgType .. '_P' .. player .. '.Joystick') + --move right + elseif getInput(-1, motif.option_info.menu.add.key) and player + 1 <= gameOption('Config.Players') then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + player = player + 1 + side = main.f_playerSide(player) + joyNum = gameOption(cfgType .. '_P' .. player .. '.Joystick') + --move left + elseif getInput(-1, motif.option_info.menu.subtract.key) and player - 1 >= 1 then + sndPlay(motif.Snd, motif.option_info.cursor.move.snd[1], motif.option_info.cursor.move.snd[2]) + player = player - 1 + side = main.f_playerSide(player) + joyNum = gameOption(cfgType .. '_P' .. player .. '.Joystick') + --Config all + elseif t[item].itemname == 'configall' or key:match('^F[0-9]+$') then + local pn = key:match('^F([0-9]+)$') + if pn ~= nil then + pn = tonumber(pn) + key = '' + end + if getInput(-1, motif.option_info.keymenu.done.key) or (pn ~= nil and pn >= 1 and pn <= gameOption('Config.Players')) then + sndPlay(motif.Snd, motif.option_info.cursor.done.snd[1], motif.option_info.cursor.done.snd[2]) + if pn ~= nil then + player = pn + side = main.f_playerSide(player) + joyNum = gameOption(cfgType .. '_P' .. player .. '.Joystick') + end + if cfgType == 'Joystick' and getJoystickPresent(joyNum) == false then + main.f_warning(motif.warning_info.text.text.pad, motif.option_info, motif.optionbgdef) + item = configall_start + cursorPosY = configall_start + else + -- start "Config all" capture + captureMode = 'all' + item = configall_start + 1 + cursorPosY = configall_start + 1 + btnReleased = false + captureActive = true + end + end + -- Single-button assignment + elseif t_btnEnabled[t[item].itemname] and getInput(-1, motif.option_info.keymenu.done.key) then + if cfgType == 'Joystick' and getJoystickPresent(joyNum) == false then + -- same behaviour as Config all when no gamepad is connected + main.f_warning(motif.warning_info.text.text.pad, motif.option_info, motif.optionbgdef) + item = configall_start + cursorPosY = configall_start + else + -- enter capture mode but only for this single row + sndPlay(motif.Snd, motif.option_info.cursor.done.snd[1], motif.option_info.cursor.done.snd[2]) + -- item_start remembers which row started this single-button capture; + item_start = item + btnReleased = false + captureMode = 'single' + captureActive = true + -- preload current button for this action (used by configall logic) + if t_btnEnabled[t[item].itemname] then + btn = gameOption(cfgType .. '_P' .. player .. '.' .. t[item].itemname) + else + btn = '' + end + end + -- Rumble toggle + elseif t[item].itemname == 'rumble' then + if getInput(-1, motif.option_info.keymenu.done.key) then + sndPlay(motif.Snd, motif.option_info.cursor.done.snd[1], motif.option_info.cursor.done.snd[2]) + local rgo = cfgType .. '_P' .. player .. '.RumbleOn' + local rumble = gameOption(rgo) + modifyGameOption(rgo, not rumble) + options.f_keyCfgReset(cfgType) + options.modified = true + end + end + resetKey() + end + + -- Reset active background animation when switching side + if side_before ~= side and t ~= nil and t[item] ~= nil then + local bgTable = motif.option_info.keymenu.item.active.bg + if bgTable ~= nil then + local params = bgTable[t[item].paramname] or bgTable.default + if params ~= nil and params.AnimData ~= nil then + animReset(params.AnimData) + animUpdate(params.AnimData) + end + end + end + + -- standard / forced menu movement (up/down) + -- When Config all is active, movement is driven by forcedDir (0 = locked, 1 = down). + cursorPosY, moveTxt, item = main.f_menuCommonCalc(t, item, cursorPosY, moveTxt, motif.option_info.keymenu, motif.option_info.cursor, forcedDir) + -- recompute current-player conflict flag (used on exit) + t_conflict[joyNum] = false + local curVal = nil + for i = 1, #t do + curVal = t[i]['vardisplay' .. player] + if curVal ~= nil then + local cnt = t_keyList[joyNum][tostring(curVal)] + if cnt ~= nil and cnt > 1 then + t_conflict[joyNum] = true + break + end + end + end + if not skipClear then + clearColor(bg.bgclearcolor[1], bg.bgclearcolor[2], bg.bgclearcolor[3]) + end + --draw layerno = 0 backgrounds + bgDraw(bg.BGDef, 0) + --draw title + textImgDraw(motif.option_info.title.TextSpriteData) + -- Build per-pane item arrays with correct vardisplay/infodisplay and conflict flags + local function buildPaneItems(pane) + local pn = pane + player - side + local joy = gameOption(cfgType .. '_P' .. pn .. '.Joystick') + local list = {} + for i = 1, #t do + local base = t[i] + local row = { + itemname = base.itemname, + displayname = base.displayname, + paramname = base.paramname, + selected = base.selected, + vardisplay = base['vardisplay' .. pn], + infodisplay = base.infodisplay, + } + -- contextual labels + if base.itemname == 'configall' then + row.infodisplay = string.format(motif.option_info.menu.valuename.f, pane + player - side) + elseif base.itemname == 'page' then + if pane == 1 then + row.displayname = motif.option_info.keymenu.itemname.back + row.infodisplay = motif.option_info.menu.valuename.esc + else + if gameOption('Config.Players') > 2 then + row.displayname = motif.option_info.keymenu.itemname.page + row.infodisplay = motif.option_info.menu.valuename.page + else + row.displayname = motif.option_info.keymenu.itemname.back + row.infodisplay = motif.option_info.menu.valuename.esc + end + end + end + -- custom vardisplay when single-button capture is waiting for input on this row + if captureMode == 'single' and captureActive and pn == player and i == item and t_btnEnabled[base.itemname] then + row.vardisplay = tostring(motif.option_info.menu.valuename.presskey) + end + -- conflict marker per pane + if row.vardisplay ~= nil then + local cnt = t_keyList[joy][tostring(row.vardisplay)] + row.conflict = (cnt ~= nil and cnt > 1) or false + end + table.insert(list, row) + end + return list + end + local leftItems = buildPaneItems(1) + local rightItems = buildPaneItems(2) + -- left pane (active highlight only if side == 1) + main.f_menuCommonDraw( + leftItems, item, cursorPosY, moveTxt, motif.option_info.keymenu, bg, true, + { + offx = motif.option_info.keymenu.p1.menuoffset[1], + offy = motif.option_info.keymenu.p1.menuoffset[2], + forceInactive = (side ~= 1), + skipBG0 = true, skipBG1 = true, skipTitle = true, + } + ) + -- right pane (active highlight only if side == 2) + main.f_menuCommonDraw( + rightItems, item, cursorPosY, moveTxt, motif.option_info.keymenu, bg, true, + { + offx = motif.option_info.keymenu.p2.menuoffset[1], + offy = motif.option_info.keymenu.p2.menuoffset[2], + forceInactive = (side ~= 2), + skipBG0 = true, skipBG1 = true, skipTitle = true, + } + ) + -- draw player labels on top of panels (above boxbg) + for i = 1, 2 do + textImgReset(motif.option_info.keymenu['p' .. i].playerno.TextSpriteData) + textImgSetText( + motif.option_info.keymenu['p' .. i].playerno.TextSpriteData, + string.format(motif.option_info.keymenu['p' .. i].playerno.text, i + player - side) + ) + textImgDraw(motif.option_info.keymenu['p' .. i].playerno.TextSpriteData) + end + --draw layerno = 1 backgrounds + bgDraw(bg.BGDef, 1) + if not skipClear then + refresh() + end + return true +end + +return options diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/script/start.lua b/bios/Game Engines/Ikemen GO/ikemen/external/script/start.lua new file mode 100644 index 00000000..dc6bdbe2 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/external/script/start.lua @@ -0,0 +1,4531 @@ +local start = {} + +--team side specific data storage +start.p = {{}, {}} +--cell data storage +start.c = {} +for i = 1, --[[gameOption('Config.Players')]]8 do + table.insert(start.c, {selX = 0, selY = 0, cell = -1, randCnt = 0, randRef = nil}) +end +--globally accessible temp data +start.challenger = 0 +--local variables +local restoreCursor = false +local selScreenEnd = false +local stageEnd = false +local stageRandom = false +local stageListNo = 0 +local t_aiRamp = {} +local t_reservedChars = {{}, {}} +local t_portraitPriority = {1, 1} +local timerSelect = 0 +local cursorActive = {} +local cursorDone = {} + +--;=========================================================== +--; COMMON FUNCTIONS +--;=========================================================== +-- Returns the unified order table used by the active mode. +-- Priority: order, order, order +function start.f_getOrderChars(baseMode) + local mode = gameMode() or '' + local checked = {} + for _, key in ipairs({mode, baseMode, 'default'}) do + if key ~= nil and key ~= '' and not checked[key] then + checked[key] = true + if type(main.t_orderChars[key]) == 'table' then + return main.t_orderChars[key] + end + end + end + return {} +end + +--; ROSTER +--converts '.maxmatches' style table (key = order, value = max matches) to key = match number, value = subtable with char num and order data +function start.f_unifySettings(t, t_chars) + local ret = {} + for i = 1, #t do --for each order number + if t_chars[i] ~= nil then --only if there are any characters available with this order + local infinite = false + local num = t[i] + if num == -1 then --infinite matches + num = #t_chars[i] --assign max amount of characters with this order + infinite = true + end + for j = 1, num do --iterate up to max amount of matches versus characters with this order + table.insert(ret, {['rmin'] = start.p[2].numChars, ['rmax'] = start.p[2].numChars, ['order'] = i}) + end + if infinite then + table.insert(ret, {['rmin'] = start.p[2].numChars, ['rmax'] = start.p[2].numChars, ['order'] = -1}) + break --no point in appending additional matches + end + end + end + return ret +end + +-- start.t_makeRoster is a table storing functions returning table data used +-- by start.f_makeRoster function, depending on game mode. Can be appended via +-- external module, without conflicting with default scripts. +start.t_makeRoster = {} +function start.f_rosterMaxMatches(baseMode) + local charData = start.f_getCharData(start.p[1].t_selected[1].ref) + local mode = gameMode() or '' + local t_chars = start.f_getOrderChars(baseMode) + local fallback = start.p[2].teamMode == 0 and 'arcade' or 'team' + local useMode = mode ~= '' and mode ~= 'arcade' and mode ~= 'team' + local candidates = {} + local function add(prefix, name) + if name == nil or name == '' then + return + end + if prefix ~= nil and prefix ~= '' then + table.insert(candidates, prefix .. '_' .. name .. 'maxmatches') + else + table.insert(candidates, name .. 'maxmatches') + end + end + if charData.maxmatches ~= nil then + if useMode then + add(charData.maxmatches, mode) + end + if baseMode ~= nil and baseMode ~= mode then + add(charData.maxmatches, baseMode) + end + add(charData.maxmatches, fallback) + end + if useMode then + add(nil, mode) + end + if baseMode ~= nil and baseMode ~= mode then + add(nil, baseMode) + end + add(nil, fallback) + for _, key in ipairs(candidates) do + if main.t_selOptions[key] ~= nil then + return start.f_unifySettings(main.t_selOptions[key], t_chars), t_chars + end + end + return start.f_unifySettings(main.t_selOptions[fallback .. 'maxmatches'], t_chars), t_chars +end + +start.t_makeRoster.arcade = function() + return start.f_rosterMaxMatches('arcade') +end +start.t_makeRoster.teamcoop = start.t_makeRoster.arcade +start.t_makeRoster.netplayteamcoop = start.t_makeRoster.arcade +start.t_makeRoster.timeattack = start.t_makeRoster.arcade + +start.t_makeRoster.survival = function() + return start.f_rosterMaxMatches('survival') +end +start.t_makeRoster.survivalcoop = start.t_makeRoster.survival +start.t_makeRoster.netplaysurvivalcoop = start.t_makeRoster.survival + +-- generates roster table +function start.f_makeRoster(t_ret) + t_ret = t_ret or {} + --prepare correct settings tables + if start.t_makeRoster[gameMode()] == nil then + panicError("\n" .. gameMode() .. " game mode unrecognized by start.f_makeRoster()\n") + end + local t, t_static = start.t_makeRoster[gameMode()]() + --generate roster + local t_removable = main.f_tableCopy(t_static) --copy into editable order table + for i = 1, #t do --for each match number + if t[i].order == -1 then --infinite matches for this order detected + table.insert(t_ret, {-1}) --append infinite matches flag at the end + break + end + if t_removable[t[i].order] ~= nil then + if #t_removable[t[i].order] == 0 and main.forceRosterSize then + t_removable = main.f_tableCopy(t_static) --allows character repetition, if needed to fill whole roster + end + if #t_removable[t[i].order] >= 1 then --there is at least 1 character with this order available + local remaining = t[i].rmin - #t_removable[t[i].order] + table.insert(t_ret, {}) --append roster table with new subtable + local t_toinsert = {} + local t_removableTemp = main.f_tableCopy(t_removable) + for j = 1, math.random(math.min(t[i].rmin, #t_removableTemp[t[i].order]), math.min(t[i].rmax, #t_removableTemp[t[i].order])) do --for randomized characters count + local rand = math.random(1, #t_removableTemp[t[i].order]) --randomize which character will be taken + local ref = t_removableTemp[t[i].order][rand] + if not main.charparam.single or not start.f_getCharData(ref).single then + table.insert(t_toinsert, ref) --append character if 'single' param is not blocking larger team size + table.remove(t_removableTemp[t[i].order], rand) --remove it from the t_removableTemp table + else --otherwise only this character is added to roster + t_toinsert = {ref} + remaining = 0 + break + end + end + for _, v in ipairs(t_toinsert) do + table.insert(t_ret[#t_ret], v) --add such character into roster subtable + main.f_tableRemove(t_removable[t[i].order], v) --and remove it from the available character pool + end + --fill the remaining slots randomly if there are not enough players available with this order + while remaining > 0 do + table.insert(t_ret[#t_ret], t_static[t[i].order][math.random(1, #t_static[t[i].order])]) + remaining = remaining - 1 + end + end + end + end + if gameOption('Debug.DumpLuaTables') then main.f_printTable(t_ret, 'debug/t_roster.txt') end + return t_ret +end + +--;=========================================================== +--; AI RAMPING +-- start.t_aiRampData is a table storing functions returning variable data used +-- by start.f_aiRamp function, depending on game mode. Can be appended via +-- external module, without conflicting with default scripts. +start.t_aiRampData = {} +start.t_aiRampData.arcade = function() + if start.p[2].teamMode == 0 then --Single + return gameOption('Arcade.arcade.AIramp.start')[1], gameOption('Arcade.arcade.AIramp.start')[2], gameOption('Arcade.arcade.AIramp.end')[1], gameOption('Arcade.arcade.AIramp.end')[2] + else --Simul / Turns / Tag + return gameOption('Arcade.team.AIramp.start')[1], gameOption('Arcade.team.AIramp.start')[2], gameOption('Arcade.team.AIramp.end')[1], gameOption('Arcade.team.AIramp.end')[2] + end +end +start.t_aiRampData.teamcoop = start.t_aiRampData.arcade +start.t_aiRampData.netplayteamcoop = start.t_aiRampData.arcade +start.t_aiRampData.timeattack = start.t_aiRampData.arcade +start.t_aiRampData.survival = function() + return gameOption('Arcade.survival.AIramp.start')[1], gameOption('Arcade.survival.AIramp.start')[2], gameOption('Arcade.survival.AIramp.end')[1], gameOption('Arcade.survival.AIramp.end')[2] +end +start.t_aiRampData.survivalcoop = start.t_aiRampData.survival +start.t_aiRampData.netplaysurvivalcoop = start.t_aiRampData.survival + +-- generates AI ramping table +function start.f_aiRamp(currentMatch) + if start.t_aiRampData[gameMode()] == nil then + panicError("\n" .. gameMode() .. " game mode unrecognized by start.f_aiRamp()\n") + end + local start_match, start_diff, end_match, end_diff = start.t_aiRampData[gameMode()]() + local startAI = gameOption('Options.Difficulty') + start_diff + if startAI > 8 then + startAI = 8 + elseif startAI < 1 then + startAI = 1 + end + local endAI = gameOption('Options.Difficulty') + end_diff + if endAI > 8 then + endAI = 8 + elseif endAI < 1 then + endAI = 1 + end + if currentMatch == 1 then + t_aiRamp = {} + end + for i = math.min(#t_aiRamp, currentMatch), math.max(#start.t_roster, currentMatch) do + if i - 1 <= start_match then + table.insert(t_aiRamp, startAI) + elseif i - 1 <= end_match then + local curMatch = i - (start_match + 1) + table.insert(t_aiRamp, curMatch * (endAI - startAI) / (end_match - start_match) + startAI) + else + table.insert(t_aiRamp, endAI) + end + end + if gameOption('Debug.DumpLuaTables') then main.f_printTable(t_aiRamp, 'debug/t_aiRamp.txt') end +end +--;=========================================================== + +--calculates AI level +function start.f_difficulty(player, offset) + local t = {} + if main.f_playerSide(player) == 1 then + t = start.f_getCharData(start.p[1].t_selected[math.floor(player / 2 + 0.5)].ref) + else + t = start.f_getCharData(start.p[2].t_selected[math.floor(player / 2)].ref) + end + if t.ai ~= nil then + return t.ai + else + return gameOption('Options.Difficulty') + offset + end +end + +--assigns AI level, remaps input +function start.f_remapAI(ai) + --Offset + local offset = 0 + if gameOption('Arcade.AI.Ramping') and main.aiRamp then + if t_aiRamp[matchNo()] == nil then + start.f_aiRamp(matchNo()) + end + offset = t_aiRamp[matchNo()] - gameOption('Options.Difficulty') + end + local t_ex = {} + for side = 1, 2 do + if main.coop then + for k, v in ipairs(start.p[side].t_selCmd) do + if gameMode('versuscoop') then + remapInput(v.player, v.cmd) + setCom(v.player, 0) + t_ex[v.player] = true + else + local pn = v.player * 2 - 1 + remapInput(pn, v.cmd) + setCom(pn, 0) + t_ex[pn] = true + end + end + end + if start.p[side].teamMode == 0 or start.p[side].teamMode == 2 then --Single or Turns + if (not main.cpuSide[side] and not main.coop) or start.challenger > 0 or gameMode('training') then + setCom(side, 0) + else + setCom(side, ai or start.f_difficulty(side, offset)) + end + elseif start.p[side].teamMode == 1 then --Simul + if not t_ex[side] then + if (not main.cpuSide[side] and not main.coop) or start.challenger > 0 then + setCom(side, 0) + else + setCom(side, ai or start.f_difficulty(side, offset)) + end + end + for i = side + 2, #start.p[side].t_selected * 2 do + if not t_ex[i] and (i - 1) % 2 + 1 == side then + remapInput(i, side) --P3/5/7 => P1 controls, P4/6/8 => P2 controls + setCom(i, ai or start.f_difficulty(i, offset)) + end + end + else --Tag + for i = side, #start.p[side].t_selected * 2 do + if not t_ex[i] and (i - 1) % 2 + 1 == side then + if (not main.cpuSide[side] and not main.coop) or start.challenger > 0 then + remapInput(i, getRemapInput(side)) --P1/3/5/7 => P1 controls, P2/4/6/8 => P2 controls + setCom(i, 0) + else + setCom(i, ai or start.f_difficulty(i, offset)) + end + end + end + end + end +end + +--sets lifebar elements, round time, rounds to win +function start.f_setRounds(roundTime, t_rounds) + setMotifElements(main.motif) + setFightScreenElements(main.fightscreen) + -- Round time + local frames = fightScreenVar("time.framespercount") + local p1FramesMul = 1 + local p2FramesMul = 1 + if start.p[1].teamMode == 3 then -- Tag + p1FramesMul = start.p[1].numChars + end + if start.p[2].teamMode == 3 then -- Tag + p2FramesMul = start.p[2].numChars + end + if (start.p[1].teamMode == 3 or start.p[2].teamMode == 3) and gameOption('Options.Tag.TimeScaling') > 0 then + -- Calculate the maximum team size + local maxTeamSize = math.max(p1FramesMul, p2FramesMul) + -- Apply a base multiplier for team size + local adjustedFrames = frames * (1 + (maxTeamSize - 1) * gameOption('Options.Tag.TimeScaling')) + -- Enforce a minimum threshold to avoid overly short rounds + frames = main.f_round(math.max(adjustedFrames, frames), 0) + end + setTimeFramesPerCount(frames) + if roundTime ~= nil then + setRoundTime(math.max(-1, roundTime * frames)) --round time predefined + elseif main.charparam.time and start.f_getCharData(start.p[2].t_selected[1].ref).time ~= nil then --round time assigned as character param + setRoundTime(math.max(-1, start.f_getCharData(start.p[2].t_selected[1].ref).time * frames)) + else --default round time + setRoundTime(math.max(-1, main.roundTime * frames)) + end + --Rounds to win. Determined by enemy team mode + for side = 1, 2 do + local enemy = 3 - side + if start.p[enemy].teamMode == 2 then --Turns mode always uses team size + setMatchWins(side, start.p[enemy].numChars) + elseif t_rounds[side] ~= nil then --Use override if it exists + setMatchWins(side, t_rounds[side]) + elseif enemy == 2 and main.charparam.rounds and start.f_getCharData(start.p[2].t_selected[1].ref).rounds ~= nil then --round num assigned as character param + setMatchWins(side, start.f_getCharData(start.p[2].t_selected[1].ref).rounds) + elseif start.p[enemy].teamMode == 1 then --default rounds num (Simul) + setMatchWins(side, main.matchWins.simul[enemy]) + elseif start.p[enemy].teamMode == 3 then --default rounds num (Tag) + setMatchWins(side, main.matchWins.tag[enemy]) + else --default rounds num (Single) + setMatchWins(side, main.matchWins.single[enemy]) + end + setMatchMaxDrawGames(side, main.matchWins.draw[side]) + end + --timer / score counter + local timer, t_score = start.f_prefightHUD() + setFightScreenTimer(timer) + setFightScreenScore(t_score[1], t_score[2]) +end + +local function f_listCharRefs(t) + local ret = {} + for i = 1, #t do + table.insert(ret, start.f_getCharData(t[i].ref).char:lower()) + end + return ret +end + +--;=========================================================== +-- Accumulators derived from game stats +--;=========================================================== +-- Fold matches up to 'upto' (inclusive) +function start.f_accStats(upto) + local ret = { + win = {0,0}, lose = {0,0}, + time = { total = 0, matches = {} }, + score = { total = {0,0}, matches = {} }, + consecutive = {0,0}, + } + local gameStats = getGameStats() + local matches = (gameStats and gameStats.Matches) or {} + local n = math.min(upto or #matches, #matches) + local streak = {0,0} + for i = 1, n do + local m = matches[i] or {} + ret.time.total = ret.time.total + (m.MatchTime or 0) + if m.TotalScore then + ret.score.total[1] = m.TotalScore[1] or ret.score.total[1] + ret.score.total[2] = m.TotalScore[2] or ret.score.total[2] + end + local tr, sr = {}, {} + if m.Rounds then + for j, r in ipairs(m.Rounds) do + tr[j] = r.Timer or 0 + sr[j] = { [1] = (r.Score and r.Score[1]) or 0, [2] = (r.Score and r.Score[2]) or 0 } + end + end + table.insert(ret.time.matches, tr) + table.insert(ret.score.matches, sr) + if m.WinSide == 1 then + ret.win[1] = ret.win[1] + 1; ret.lose[2] = ret.lose[2] + 1 + streak[1] = streak[1] + 1; streak[2] = 0 + elseif m.WinSide == 2 then + ret.win[2] = ret.win[2] + 1; ret.lose[1] = ret.lose[1] + 1 + streak[2] = streak[2] + 1; streak[1] = 0 + end + for s = 1, 2 do + if streak[s] > ret.consecutive[s] then ret.consecutive[s] = streak[s] end + end + end + return ret +end + +-- Compute HUD timer/score to show at the beginning of the *next* match +function start.f_prefightHUD() + -- "Next match index" is current matchNo(); we want totals of already-finished matches. + local prev = math.max((matchNo() or 1) - 1, 0) + local acc = start.f_accStats(prev) + local t_score = {acc.score.total[1], acc.score.total[2]} + local timer = acc.time.total + if start.challenger > 0 and gameMode('versus') then + return 0, {0, 0} + end + -- emulate resetScore-on-loss behavior for the next match HUD + local gameStats = getGameStats() + local last = (gameStats and gameStats.Matches and gameStats.Matches[prev]) or nil + if last and main.resetScore and matchNo() ~= -1 then + if last.WinSide == 2 then + t_score[1] = acc.lose[1] + end + end + return timer, t_score +end + +--;=========================================================== + +--returns the next stage path from the given pool +function start.stageShuffleBag(id, pool) + -- safety check: prevent nil or invalid pools + if not pool or type(pool) ~= 'table' or #pool == 0 then + return nil + end + + -- safety check: prevent nil id + id = id or 'defaultStageBag' + start.shuffleStages = start.shuffleStages or {} + start.shuffleStages[id] = start.shuffleStages[id] or {} + + if #start.shuffleStages[id] == 0 then + local t = {} + for i = 1, #pool do + table.insert(t, i) + end + start.f_shuffleTable(t) + -- prevent immediate repetition if the bag was just refilled + if start.lastStageIdx and #pool > 1 and t[#t] == start.lastStageIdx then + table.insert(t, 1, table.remove(t)) -- rotate + end + start.shuffleStages[id] = t + end + + local idx = table.remove(start.shuffleStages[id]) + start.lastStageIdx = idx + -- Pool entries are already resolved stage refs + return pool[idx] +end + +--sets stage +function start.f_setStage(num, assigned) + if main.stageMenu then + local pool = main.t_selectableStages + if stageListNo == 0 then + num = start.stageShuffleBag('stageMenu', pool) + stageListNo = num -- comment out to randomize stage after each fight in survival mode, when random stage is chosen + stageRandom = true + else + num = pool[stageListNo] + end + assigned = true + end + if not assigned then + local sel = start.p[2] and start.p[2].t_selected and start.p[2].t_selected[1] + local charData = sel and sel.ref and start.f_getCharData(sel.ref) + if charData and charData.stage and #charData.stage > 0 and not (gameMode('training') and gameOption('Config.TrainingStage')) then --stage assigned as character param + num = start.stageShuffleBag('char:' .. sel.ref, charData.stage) + elseif charData and main.stageOrder and main.t_orderStages[charData.order] then --stage assigned as stage order param + num = start.stageShuffleBag(charData.order, main.t_orderStages[charData.order]) + elseif gameMode('training') and gameOption('Config.TrainingStage') ~= '' then --training stage + num = start.f_getStageRef(gameOption('Config.TrainingStage')) + else + num = start.stageShuffleBag('includeStage', main.t_includeStage[1]) + end + end + selectStage(num) + main.f_preloadBoostStage(num) + return num +end + +-- generate table with palette entries already used by this char ref +function start.f_setAssignedPal(ref, t_assignedPals) + for side = 1, 2 do + for k, v in pairs(start.p[side].t_selected) do + if v.ref == ref then + t_assignedPals[start.p[side].t_selected[k].pal] = true + end + end + end +end + +--remaps palette based on button press and character's keymap settings +function start.f_keyPalMap(ref, num) + return start.f_getCharData(ref).pal_keymap[num] or num +end + +-- returns palette number +function start.f_selectPal(ref, palno) + -- generate table with palette entries already used by this char ref + local t_assignedPals = {} + start.f_setAssignedPal(ref, t_assignedPals) + + local charData = start.f_getCharData(ref) + local availablePals = charData.pal + + -- selected palette by player input + if palno ~= nil and palno > 0 then + local mappedPal = start.f_keyPalMap(ref, palno) + + -- Check if the mapped palette is defined and not already used. (MUGEN doesn't do this) + -- This leads to issues with certain characters who don't have the entire group 1's indices + -- filled out, so it's been commented out for compatibility. + + -- local isDefined = false + -- for _, p in ipairs(availablePals) do + -- if p == mappedPal then + -- isDefined = true + -- break + -- end + -- end + + if not t_assignedPals[mappedPal] then + return mappedPal + end + + -- If the desired palette is not available, find the next available one. + + -- 1. Dynamically build the list of palettes to cycle through + local cycleList = {1, 2, 3, 4, 5, 6} + local customDefaults = false + + if charData.pal_defaults then + local defaultsSet = {} + for _, p_val in ipairs(charData.pal_defaults) do + if p_val > 6 then + -- To avoid duplicates in cycleList + if not defaultsSet[p_val] then + table.insert(cycleList, p_val) + defaultsSet[p_val] = true + customDefaults = true + end + end + end + if customDefaults then + table.sort(cycleList) -- Ensure a consistent cycle order + end + end + + -- Exception: If a palette from 7 to 12 was chosen directly, cycle through all 12 + if mappedPal > 6 and not customDefaults then + cycleList = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12} + end + + -- 2. Find the starting index for our search in the cycleList + local startIndex = 1 + for i, p_val in ipairs(cycleList) do + if p_val == mappedPal then + startIndex = i + break + end + end + + -- 3. Search for the next available palette in a circular manner + for i = 1, #cycleList do + -- Get the index for the next palette in the cycle + local nextIndex = (startIndex - 1 + i) % #cycleList + 1 + local nextPal = cycleList[nextIndex] + + -- Check if this next palette is defined for the character + local isNextDefined = false + for _, p in ipairs(availablePals) do + if p == nextPal then + isNextDefined = true + break + end + end + + -- If it's defined and not used, assign it. + if isNextDefined and not t_assignedPals[nextPal] then + return nextPal + end + end + + -- If all palettes in the cycle list are taken, return the originally mapped one as a fallback. + return mappedPal + + -- default palette for AI or no-input selection + elseif (not main.rotationChars and not gameOption('Arcade.AI.RandomColor')) or (main.rotationChars and not gameOption('Arcade.AI.SurvivalColor')) then + for _, v in ipairs(charData.pal_defaults) do + if not t_assignedPals[v] then + return v + end + end + end + + -- random palette + local t = main.f_tableCopy(availablePals) + if #t_assignedPals >= #t then -- not enough palettes for unique selection + if #t > 0 then + return t[math.random(1, #t)] + else + return 1 + end + end + main.f_tableShuffle(t) + for _, v in ipairs(t) do + if not t_assignedPals[v] then + return v + end + end + panicError("\n" .. charData.name .. " palette was not selected\n") +end + +--returns player number +function start.f_getPlayerNo(side, member) + if main.coop and not gameMode('versuscoop') then + return side + member - 1 + end + if side == 1 then + return member * 2 - 1 + end + return member * 2 +end + +--Convert number to name and get rid of the "" +function start.f_getName(ref, side) + if ref == nil or start.f_getCharData(ref).hidden == 2 then + return '' + end + if start.f_getCharData(ref).char == 'randomselect' or start.f_getCharData(ref).hidden == 3 then + return motif.select_info['p' .. (side or 1)].name.random.text + end + return start.f_getCharData(ref).name +end + +-- Resolve per-member motif tables (p3/p4/..), fallback to p1/p2 when undefined. +local function f_getMotifP(t, pn, side) + if type(t) ~= "table" then return nil end + local p = t["p" .. pn] + if p ~= nil then return p end + return t["p" .. side] +end + +--reset temp data values +function start.f_resetTempData(t, subname) + -- reset AnimData + local seenTables = {} + local seenAnim = {} + local function walk(t) + if type(t) ~= "table" or seenTables[t] then return end + seenTables[t] = true + for k, v in pairs(t) do + if k == "AnimData" and type(v) == "userdata" then + if not seenAnim[v] then + animReset(v) + animUpdate(v) + seenAnim[v] = true + end + elseif type(v) == "table" then + walk(v) + end + end + end + walk(t) + -- generate t_selTemp + for side = 1, 2 do + if #start.p[side].t_selTemp == 0 then + for member, v in ipairs(start.p[side].t_selected) do + table.insert(start.p[side].t_selTemp, {ref = v.ref}) + end + end + for member, v in ipairs(start.p[side].t_selTemp) do + local pn = 2 * (member - 1) + side + local pCfg = f_getMotifP(t, pn, side) + if subname == '' then + v.face_anim = pCfg.anim + v.face_data = start.f_animGet(v.ref, side, member, pCfg, nil, true) + else + v.face_anim = pCfg[subname].anim + v.face_data = start.f_animGet(v.ref, side, member, pCfg[subname], nil, true) + end + v.face2_anim = pCfg.face2.anim + v.face2_data = start.f_animGet(v.ref, side, member, pCfg.face2, nil, true) + end + start.p[side].screenDelay = 0 + end +end + +function start.f_animGet(ref, side, member, params, velParams, loop, srcAnim) + if not ref then return nil end + local velParams = velParams or params + local pn = 2 * (member - 1) + side + -- Animation/sprite priority order + for _, v in ipairs({{params.anim, -1}, params.spr}) do + local anim = v[1] + if anim ~= nil and anim ~= -1 then + -- Determine whether to apply palette + local usePal = params.applypal or false + -- Try to load the animation + local a = animGetPreloadedCharData(ref, anim, v[2], loop) + if a then + local charData = start.f_getCharData(ref) + local xscale = start.f_getCharData(ref).portraitscale * motif.info.localcoord[1] / start.f_getCharData(ref).localcoord + local yscale = xscale + if v[2] == -1 then + xscale = xscale * (charData.cns_scale[1] or 1) + yscale = yscale * (charData.cns_scale[2] or 1) + end + animSetLocalcoord(a, motif.info.localcoord[1], motif.info.localcoord[2]) + animSetLayerno(a, params.layerno) + animSetVelocity(a, velParams.velocity[1], velParams.velocity[2]) + animSetMaxDist(a, velParams.maxdist[1], velParams.maxdist[2]) + animSetAccel(a, velParams.accel[1], velParams.accel[2]) + animSetFriction(a, velParams.friction[1], velParams.friction[2]) + animSetPos(a, 0, 0) + animSetScale(a, params.scale[1] * xscale, params.scale[2] * yscale) + animSetFacing(a, params.facing) + animSetXShear(a, params.xshear) + animSetAngle(a, params.angle) + animSetXAngle(a, params.xangle) + animSetYAngle(a, params.yangle) + animSetProjection(a, params.projection) + animSetFocalLength(a, params.focallength) + animSetWindow(a, params.window[1], params.window[2], params.window[3], params.window[4]) + if srcAnim ~= nil then + animApplyVel(a, srcAnim) + end + -- Apply palette if needed + if usePal then + local sel = start.p[side].t_selected[member] + if sel and sel.ref then + a = start.loadPalettes(a, ref, sel.pal) + end + end + animUpdate(a) + return a + end + end + end + return nil +end + +--calculate portraits x pos +local function f_portraitsXCalc(side, member, paramsSide, params, skipOffset, offsetKey) + local x = paramsSide.pos[1] + if not skipOffset then + x = x + params.offset[1] + end + if paramsSide.padding then + return x + (2 * member - 1) * paramsSide.spacing[1] * paramsSide.num / (2 * math.min(paramsSide.num, math.max(start.p[side].numChars, #start.p[side].t_selected))) + end + if offsetKey and not motifIsInherited(offsetKey) then + return x + end + return x + (member - 1) * paramsSide.spacing[1] +end + +local function getParams(side, member, t, subname) + local paramsSide = t['p' .. side] + local pn = 2 * (member - 1) + side + local params = f_getMotifP(t, pn, side) + if subname and subname ~= '' then + paramsSide = paramsSide[subname] + params = params[subname] + end + return paramsSide, params +end + +local function drawPortraitRandom(randomCfg, side, member, paramsSide, offsetKey) + if not randomCfg then + return false + end + local spr = randomCfg.spr + if randomCfg.anim >= 0 or (spr and spr[1] >= 0 and spr[2] >= 0) then + local x = f_portraitsXCalc(side, member, paramsSide, randomCfg, false, offsetKey) + local y = paramsSide.pos[2] + randomCfg.offset[2] + (member - 1) * paramsSide.spacing[2] + animSetPos(randomCfg.AnimData, x, y) + animDraw(randomCfg.AnimData) + animUpdate(randomCfg.AnimData) + return true + end + return false +end + +local function drawPortraitSlot(slotCfg, side, member, paramsSide, offsetKey) + if not slotCfg then + return false + end + local spr = slotCfg.spr + if slotCfg.anim >= 0 or (spr and spr[1] >= 0 and spr[2] >= 0) then + local x = f_portraitsXCalc(side, member, paramsSide, slotCfg, false, offsetKey) + local y = paramsSide.pos[2] + slotCfg.offset[2] + (member - 1) * paramsSide.spacing[2] + animSetPos(slotCfg.AnimData, x, y) + animDraw(slotCfg.AnimData) + animUpdate(slotCfg.AnimData) + return true + end + return false +end + +local function hasPortraitAnim(params) + return params ~= nil and params.AnimData ~= nil and ((params.anim or -1) ~= -1 or (params.spr ~= nil and params.spr[1] ~= -1)) +end + +local function getPortraitDrawData(v, side, member, params, dataField) + local data = v[dataField] + local drawParams = params + if not v.skipCurrent and data ~= nil then + local state = v.ref ~= nil and getCharPreloadStatus(v.ref) or 'ready' + if state ~= 'ready' and hasPortraitAnim(params.loading) then + data = params.loading.AnimData + drawParams = params.loading + end + elseif not v.skipCurrent and v.ref ~= nil then + local state = getCharPreloadStatus(v.ref) + if state == 'ready' then + data = start.f_animGet(v.ref, side, member, params, nil, true) + v[dataField] = data + elseif hasPortraitAnim(params.loading) then + data = params.loading.AnimData + drawParams = params.loading + end + end + return data, drawParams, drawParams == params.loading +end + +local function drawPortraitLayer(t_portraits, side, t, subname, last, dataField) + local lastIdx = #t_portraits + local skipField = dataField == 'face2_data' and 'skipCurrentFace2' or 'skipCurrentFace' + -- "next player replaces previous one" case + local idx = clamp(t_portraitPriority[side] or 1, 1, lastIdx) + local paramsSide, params = getParams(side, idx, t, subname) + local pn = 2 * (1 - 1) + side + local offsetKey = 'select_info.p' .. pn .. '.face.offset' + if paramsSide.num == 1 and last then + local v = t_portraits[idx] + local data, drawParams, skipOffset = getPortraitDrawData(v, side, idx, params, dataField) + if not v[skipField] and data ~= nil then + main.f_animPosDraw( + data, + f_portraitsXCalc(side, 1, paramsSide, drawParams, skipOffset, offsetKey), + paramsSide.pos[2] + (skipOffset and 0 or drawParams.offset[2]) + ) + end + -- we're done for this layer in this mode + return + end + -- stacked portraits up to num + local order = {} + for member = 1, lastIdx do + local paramsSide, params = getParams(side, member, t, subname) + order[#order + 1] = {m = member, o = params.draworder} + end + table.sort(order, function(a, b) + if a.o == b.o then + return a.m > b.m + end + return a.o < b.o + end) + for _, it in ipairs(order) do + local member = it.m + local paramsSide, params = getParams(side, member, t, subname) + local v = t_portraits[member] + local pn = 2 * (member - 1) + side + local offsetKey = 'select_info.p' .. pn .. '.face.offset' + local data, drawParams, skipOffset = getPortraitDrawData(v, side, member, params, dataField) + if member <= paramsSide.num and not v[skipField] and data ~= nil then + main.f_animPosDraw( + data, + f_portraitsXCalc(side, member, paramsSide, drawParams, skipOffset, offsetKey), + paramsSide.pos[2] + (skipOffset and 0 or drawParams.offset[2]) + (member - 1) * paramsSide.spacing[2] + ) + end + end +end + +-- draw portraits +function start.f_drawPortraits(t_portraits, side, t, subname, last, iconDone) + if #t_portraits == 0 then + return + end + -- reset skip flags + for m = 1, #t_portraits do + t_portraits[m].skipCurrentFace = false + t_portraits[m].skipCurrentFace2 = false + end + -- draw random portraits (per member; required for co-op) + for m = 1, #t_portraits do + local paramsSide, params = getParams(side, m, t, subname) + if t_portraits[m].inRandom then + local pn = 2 * (m - 1) + side + local pData = f_getMotifP(t, pn, side) + -- face2 layer random portrait + if pData.face2.random and drawPortraitRandom(pData.face2.random, side, m, paramsSide, 'select_info.p' .. pn .. '.face2.random.offset') then + t_portraits[m].skipCurrentFace2 = true + end + -- primary face random portrait + local baseFace = pData + if subname and subname ~= '' then + baseFace = baseFace[subname] + end + if baseFace.random and drawPortraitRandom(baseFace.random, side, m, paramsSide, 'select_info.p' .. pn .. '.face.random.offset') then + t_portraits[m].skipCurrentFace = true + end + end + end + -- draw slot indicator + for m = 1, #t_portraits do + local pn = 2 * (m - 1) + side + local pData = f_getMotifP(t, pn, side) + + local baseFace = pData + if subname and subname ~= '' then + baseFace = baseFace[subname] + end + -- only show slot indicator while the char is not confirmed + if t_portraits[m].ref ~= nil and not start.p[side].t_selTemp[m].slotConfirmed then + local paramsSide, params = getParams(side, m, t, subname) + local charInfo = main.t_selChars[t_portraits[m].ref + 1] + if charInfo and charInfo.hasSlot then + -- face2 slot + if pData.face2.slot then + drawPortraitSlot(pData.face2.slot, side, m, paramsSide, 'select_info.p' .. pn .. '.face2.slot.offset') + end + -- primary face slot + if baseFace.slot then + drawPortraitSlot(baseFace.slot, side, m, paramsSide, 'select_info.p' .. pn .. '.face.slot.offset') + end + end + end + end + -- face2 layer (if present) + drawPortraitLayer(t_portraits, side, t, 'face2', last, 'face2_data') + -- primary face layer + drawPortraitLayer(t_portraits, side, t, subname, last, 'face_data') + -- draw order icons (unchanged, still using main face params) + if iconDone == nil then + return + end + for member = 1, #t_portraits do + local paramsSide, params = getParams(side, member, t, subname) + if member > paramsSide.num then + break + end + local animData = params.icon.AnimData + if iconDone then + animData = params.icon.done.AnimData + end + main.f_animPosDraw( + animData, + f_portraitsXCalc(side, member, paramsSide, params), + paramsSide.pos[2] + params.offset[2] + (member - 1) * paramsSide.spacing[2] + ) + end +end + +--returns correct cell position after moving the cursor +function start.f_cellMovement(selX, selY, cmd, side, snd, dir) + local tmpX = selX + local tmpY = selY + local found = false + if getInput(cmd, motif.select_info.cell.up.key) or dir == 'U' then + for i = 1, motif.select_info.rows do + selY = selY - 1 + if selY < 0 then + if motif.select_info.wrapping or dir ~= nil then + selY = motif.select_info.rows - 1 + else + selY = tmpY + end + end + if dir ~= nil then + found, selX = start.f_searchEmptyBoxes(selX, selY, side, -1) + elseif (start.t_grid[selY + 1][selX + 1].char ~= nil or motif.select_info.moveoveremptyboxes) and start.t_grid[selY + 1][selX + 1].skip ~= 1 and (gameOption('Options.Team.Duplicates') or start.t_grid[selY + 1][selX + 1].char == 'randomselect' or not t_reservedChars[side][start.t_grid[selY + 1][selX + 1].char_ref]) and start.t_grid[selY + 1][selX + 1].hidden ~= 2 then + break + elseif motif.select_info.searchemptyboxesup then + found, selX = start.f_searchEmptyBoxes(selX, selY, side, 1) + end + if found then + break + end + end + elseif getInput(cmd, motif.select_info.cell.down.key) or dir == 'D' then + for i = 1, motif.select_info.rows do + selY = selY + 1 + if selY >= motif.select_info.rows then + if motif.select_info.wrapping or dir ~= nil then + selY = 0 + else + selY = tmpY + end + end + if dir ~= nil then + found, selX = start.f_searchEmptyBoxes(selX, selY, side, 1) + elseif (start.t_grid[selY + 1][selX + 1].char ~= nil or motif.select_info.moveoveremptyboxes) and start.t_grid[selY + 1][selX + 1].skip ~= 1 and (gameOption('Options.Team.Duplicates') or start.t_grid[selY + 1][selX + 1].char == 'randomselect' or not t_reservedChars[side][start.t_grid[selY + 1][selX + 1].char_ref]) and start.t_grid[selY + 1][selX + 1].hidden ~= 2 then + break + elseif motif.select_info.searchemptyboxesdown then + found, selX = start.f_searchEmptyBoxes(selX, selY, side, 1) + end + if found then + break + end + end + elseif getInput(cmd, motif.select_info.cell.left.key) or dir == 'B' then + if dir ~= nil then + found, selX = start.f_searchEmptyBoxes(selX, selY, side, -1) + else + for i = 1, motif.select_info.columns do + selX = selX - 1 + if selX < 0 then + if motif.select_info.wrapping then + selX = motif.select_info.columns - 1 + else + selX = tmpX + end + end + if (start.t_grid[selY + 1][selX + 1].char ~= nil or motif.select_info.moveoveremptyboxes) and start.t_grid[selY + 1][selX + 1].skip ~= 1 and (gameOption('Options.Team.Duplicates') or start.t_grid[selY + 1][selX + 1].char == 'randomselect' or not t_reservedChars[side][start.t_grid[selY + 1][selX + 1].char_ref]) and start.t_grid[selY + 1][selX + 1].hidden ~= 2 then + break + end + end + end + elseif getInput(cmd, motif.select_info.cell.right.key) or dir == 'F' then + if dir ~= nil then + found, selX = start.f_searchEmptyBoxes(selX, selY, side, 1) + else + for i = 1, motif.select_info.columns do + selX = selX + 1 + if selX >= motif.select_info.columns then + if motif.select_info.wrapping then + selX = 0 + else + selX = tmpX + end + end + if (start.t_grid[selY + 1][selX + 1].char ~= nil or motif.select_info.moveoveremptyboxes) and start.t_grid[selY + 1][selX + 1].skip ~= 1 and (gameOption('Options.Team.Duplicates') or start.t_grid[selY + 1][selX + 1].char == 'randomselect' or not t_reservedChars[side][start.t_grid[selY + 1][selX + 1].char_ref]) and start.t_grid[selY + 1][selX + 1].hidden ~= 2 then + break + end + end + end + end + if (tmpX ~= selX or tmpY ~= selY) then + if dir == nil then + sndPlay(motif.Snd, snd[1], snd[2]) + end + end + return selX, selY +end + +--used by above function to find valid cell in case of dummy character entries +function start.f_searchEmptyBoxes(x, y, side, direction) + if direction > 0 then --right + while true do + x = x + 1 + if x >= motif.select_info.columns then + return false, 0 + elseif start.t_grid[y + 1][x + 1].skip ~= 1 and start.t_grid[y + 1][x + 1].char ~= nil and (start.t_grid[y + 1][x + 1].char == 'randomselect' or not t_reservedChars[side][start.t_grid[y + 1][x + 1].char_ref]) and start.t_grid[y + 1][x + 1].hidden ~= 2 then + return true, x + end + end + elseif direction < 0 then --left + while true do + x = x - 1 + if x < 0 then + return false, motif.select_info.columns - 1 + elseif start.t_grid[y + 1][x + 1].skip ~= 1 and start.t_grid[y + 1][x + 1].char ~= nil and (start.t_grid[y + 1][x + 1].char == 'randomselect' or not t_reservedChars[side][start.t_grid[y + 1][x + 1].char_ref]) and start.t_grid[y + 1][x + 1].hidden ~= 2 then + return true, x + end + end + end +end + +-- Returns player cursor data +function start.f_getCursorData(pn) + -- In coop/multi, p3+ may be undefined in motif; fallback to p1/p2 by parity. + if main.coop then + return motif.select_info['p' .. pn] or motif.select_info['p' .. ((pn - 1) % 2 + 1)] + end + return motif.select_info['p' .. ((pn - 1) % 2 + 1)] +end + +-- Returns the '-' entry matching the cell, falling back to wildcards +-- Nil coordinates match nothing, which is how cell transformations are skipped +local function getOverride(t, col, row) + if t == nil or col == nil or row == nil then + return nil + end + return t[col .. '-' .. row] or t[col .. '-*'] or t['*-' .. row] or t['*-*'] +end + +-- Reset cursor animation for a specific slot only +local function resetCursorData(pn, param) + local pData = start.f_getCursorData(pn) + local cursorCfg = pData.cursor[param] + local cursorParams = getOverride(cursorCfg, start.c[pn].selX, start.c[pn].selY) or cursorCfg.default + local anim = cursorParams.AnimData + if anim then + animReset(anim) + animUpdate(anim) + end +end + +-- Calculate cursor.tween +local function cursorTween(val, target, factor) + if not factor or not target then + return val + end + for i = 1, 2 do + local t = target[i] or 0 + local f = math.min(math.abs(factor[i] or 0.5), 1) + val[i] = val[i] + (t - val[i]) * f + end + return val +end + +local function getCellOverride(col, row) + return getOverride(motif.select_info.cell, col, row) +end + +function getCellFacing(default, col, row) + local override = getCellOverride(col, row) + if override ~= nil and override.facing ~= 0 then + return override.facing + end + return default +end + +function getCellOffset(col, row) + local override = getCellOverride(col, row) + if override ~= nil and override.offset ~= nil then + return override.offset + end + return {0, 0} +end + +function getCellSpacing(col, row) + local override = getCellOverride(col, row) + if override ~= nil and override.spacing ~= nil then + if override.spacing[1] ~= 0 then + if override.spacing[2] == 0 then + return {override.spacing[1], override.spacing[1]} + end + return override.spacing + end + if override.spacing[2] ~= 0 then + return override.spacing + end + end + return motif.select_info.cell.spacing +end + +function getCellSkip(col, row) + local override = getCellOverride(col, row) + if override ~= nil then + return override.skip + end + return false +end + +function getCellTransform(col, row, paramName, default) + local override = getCellOverride(col, row) + if override ~= nil then + local val = override[paramName] + -- Table Validation + if type(val) == "table" then + if paramName == "scale" then + if val[1] ~= 0 or val[2] ~= 0 then return val end + else + return val + end + elseif type(val) == "string" then + if val ~= "" then + return val + end + elseif type(val) == "number" then + if val ~= 0 then + return val + end + end + end + return default +end + +--draw cursor +function start.f_drawCursor(pn, x, y, param, done) + local pData = start.f_getCursorData(pn) + -- select appropriate cursor table and initialize if needed + local store = done and cursorDone or cursorActive + store[pn] = store[pn] or {} + local cd = store[pn] + cd.currentPos = cd.currentPos or {0, 0} + cd.targetPos = cd.targetPos or {0, 0} + cd.startPos = cd.startPos or {0, 0} + cd.slideOffset = cd.slideOffset or {0, 0} + cd.init = cd.init or false + if not done then + cd.snap = cd.snap or false -- only used by active cursors + end + -- calculate target cell coordinates using the pre-calculated grid + local cellData = start.t_grid[y + 1] and start.t_grid[y + 1][x + 1] + local baseX, baseY + if cellData then + -- cellData already includes all spacing and offsets + baseX = motif.select_info.pos[1] + cellData.x + baseY = motif.select_info.pos[2] + cellData.y + end + -- initialization or snap: set cursor directly + if not cd.init or done or cd.snap then + for i = 1, 2 do + cd.currentPos[i] = (i == 1) and baseX or baseY + cd.targetPos[i] = cd.currentPos[i] + cd.startPos[i] = cd.currentPos[i] + cd.slideOffset[i]= 0 + end + cd.init, cd.snap = true, false + -- new cell selected: recalc tween offsets + elseif cd.targetPos[1] ~= baseX or cd.targetPos[2] ~= baseY then + cd.startPos[1], cd.startPos[2] = cd.currentPos[1], cd.currentPos[2] + cd.targetPos[1], cd.targetPos[2] = baseX, baseY + cd.slideOffset[1] = cd.startPos[1] - baseX + cd.slideOffset[2] = cd.startPos[2] - baseY + end + local t_factor = { + pData.cursor.tween.factor[1], + pData.cursor.tween.factor[2] + } + -- apply tween if enabled, otherwise snap to target + if not done and t_factor[1] > 0 and t_factor[2] > 0 then + cursorTween(cd.slideOffset, {0, 0}, t_factor) + else + cd.slideOffset[1], cd.slideOffset[2] = 0, 0 + end + if pData.cursor.tween.wrap.snap then + local dx = cd.targetPos[1] - cd.startPos[1] + local dy = cd.targetPos[2] - cd.startPos[2] + if math.abs(dx) > motif.select_info.cell.size[1] * (motif.select_info.columns - 1) or math.abs(dy) > motif.select_info.cell.size[2] * (motif.select_info.rows - 1) then + cd.slideOffset[1], cd.slideOffset[2] = 0, 0 + end + end + -- update final cursor position + cd.currentPos[1] = cd.targetPos[1] + cd.slideOffset[1] + cd.currentPos[2] = cd.targetPos[2] + cd.slideOffset[2] + -- draw + -- per cell cursor variant fully defines the cursor on its cell, so cell transformations apply to cursors that have no variant there + local variant = getOverride(pData.cursor[param], x, y) + local params = variant or pData.cursor[param].default + local cx, cy + if variant == nil then + cx, cy = x, y + end + local a = params.AnimData + local facing = getCellFacing(params.facing, cx, cy) + animSetFacing(a, facing) + local scale = getCellTransform(cx, cy, "scale", params.scale) + animSetScale(a, scale[1], scale[2]) + animSetXShear(a, getCellTransform(cx, cy, "xshear", params.xshear)) + animSetAngle(a, getCellTransform(cx, cy, "angle", params.angle)) + animSetXAngle(a, getCellTransform(cx, cy, "xangle", params.xangle)) + animSetYAngle(a, getCellTransform(cx, cy, "yangle", params.yangle)) + animSetProjection(a, getCellTransform(cx, cy, "projection", params.projection)) + animSetFocalLength(a, getCellTransform(cx, cy, "focallength", params.focallength)) + main.f_animPosDraw(a, cd.currentPos[1], cd.currentPos[2], facing) +end + +-- snaps the cursor instantly to its target cell +local function f_snapCursor() + for k, v in pairs(cursorActive) do + v.snap = true + end +end + +--returns t_selChars table out of cell number +function start.f_selGrid(cell, slot) + if main.t_selGrid[cell] == nil or #main.t_selGrid[cell].chars == 0 then + local csCol = ((cell - 1) % motif.select_info.columns) + 1 + local csRow = math.floor((cell - 1) / motif.select_info.columns) + 1 + local cellCfg = motif.select_info.cell[(csCol - 1) .. '-' .. (csRow - 1)] + if cellCfg ~= nil and cellCfg.skip then + return {skip = 1} + end + return {} + end + return main.t_selChars[main.t_selGrid[cell].chars[(slot or main.t_selGrid[cell].slot)]] +end + +--returns t_selChars table out of char ref +function start.f_getCharData(ref) + return main.t_selChars[ref + 1] +end + +--returns stage ref out of def filename +function start.f_getStageRef(def) + if def == '' then + return getStageNo() + end + if main.t_stageDef[def:lower()] == nil then + main.f_addStage(def) + end + return main.t_stageDef[def:lower()] +end + +--returns char ref out of def filename +function start.f_getCharRef(def) + if main.t_charDef[def:lower()] == nil then + if not main.f_addChar(def .. ', order = 0, ordersurvival = 0, exclude = 1', true, false) then + panicError("\nUnable to add character. No such file or directory: " .. def .. "\n") + end + end + return main.t_charDef[def:lower()] +end + +--returns teammode int from string +function start.f_stringToTeamMode(tm) + if tm == 'single' then + return 0 + elseif tm == 'simul' then + return 1 + elseif tm == 'turns' then + return 2 + elseif tm == 'tag' then + return 3 + end + return nil +end + +--returns formatted clear time string +function start.f_clearTimeText(text, totalSec) + local h = tostring(math.floor(totalSec / 3600)) + local m = tostring(math.floor((totalSec / 3600 - h) * 60)) + local s = tostring(math.floor(((totalSec / 3600 - h) * 60 - m) * 60)) + local x = tostring(math.floor((((totalSec / 3600 - h) * 60 - m) * 60 - s) * 100)) + if string.len(m) < 2 then + m = '0' .. m + end + if string.len(s) < 2 then + s = '0' .. s + end + if string.len(x) < 2 then + x = '0' .. x + end + return text:gsub('%%h', h):gsub('%%m', m):gsub('%%s', s):gsub('%%x', x) +end + +local function getCharDefByName(name) + -- First, try the direct key + if main.t_charDef[name] ~= nil then + return main.t_charDef[name] + end + -- Search by the .def filename + for charDef, charIndex in pairs(main.t_charDef) do + local defName = charDef:match('([^/\\]+)%.def$') + if defName ~= nil and defName:lower() == name:lower() then + return charIndex + end + end + return nil +end + +--returns formatted record text table +function start.f_getRecordText() + local text = motif.select_info.record.text[gameMode()] + if text == nil then + return "" + end + local stats = jsonDecode('save/stats.json') + if stats.modes == nil or stats.modes[gameMode()] == nil or stats.modes[gameMode()].ranking == nil or stats.modes[gameMode()].ranking[1] == nil then + return "" + end + local t = stats.modes[gameMode()].ranking[1] + --time + text = start.f_clearTimeText(text, t.time) + --score + text = text:gsub('%%p', tostring(t.score)) + --win + text = text:gsub('%%r', tostring(t.win)) + --char name + local name = '?' --in case character being removed from roster + local charDef = getCharDefByName(t.chars[1]) + if charDef ~= nil then + name = start.f_getCharData(charDef).name + end + text = text:gsub('%%c', name) + --player name + text = text:gsub('%%n', t.name) + return text +end + +--cursor sound data, play cursor sound +function start.f_playWave(ref, name, g, n, loops) + if g < 0 or n < 0 then return 0 end + if name == 'stage' then + local a = main.t_selStages[ref].attachedChar + if a == nil or a.sound == nil then + return 0 + end + if main.t_selStages[ref][name .. '_wave_data'] == nil then + main.t_selStages[ref][name .. '_wave_data'] = waveNew(a.dir .. a.sound, g, n, loops or -1) + end + wavePlay(main.t_selStages[ref][name .. '_wave_data'], g, n) + else + local sound = start.f_getCharData(ref).sound + if sound == nil or sound == '' then + return 0 + end + local key = name .. '_wave_data_' .. g .. '_' .. n + if start.f_getCharData(ref)[key] == nil then + start.f_getCharData(ref)[key] = + waveNew(start.f_getCharData(ref).dir .. start.f_getCharData(ref).sound, g, n, loops or -1) + end + wavePlay(start.f_getCharData(ref)[key], g, n) + end +end + +--removes char with particular ref from table +function start.f_excludeChar(t, ref) + for _, list in pairs(t) do + if type(list) == 'table' then + for i = #list, 1, -1 do + if list[i] == ref then + table.remove(list, i) + end + end + end + end + return t +end + +--shuffles a table in-place (using synced RNG) +function start.f_shuffleTable(t, last) + for i = #t, 2, -1 do + local j = math.random(i) + t[i], t[j] = t[j], t[i] + end + -- prevent first element from repeating the last of previous cycle + if last and #t > 1 and t[#t] == last then + -- swap the first element with a random other position + local swap = math.random(#t - 1) + t[#t], t[swap] = t[swap], t[#t] + end +end + +--returns random char ref +function start.f_randomChar(pn) + if #main.t_randomChars == 0 then + return nil + end + start.shuffleChars = start.shuffleChars or {} + + if not start.shuffleChars[pn] or #start.shuffleChars[pn] == 0 then + local last = start.lastRandomChar and start.lastRandomChar[pn] + local t = {} + for _, v in ipairs(main.t_randomChars) do + if gameOption('Options.Team.Duplicates') or not t_reservedChars[pn][v] then + table.insert(t, v) + end + end + start.f_shuffleTable(t, last) + start.shuffleChars[pn] = t + end + -- draw one char from the bag + local result = table.remove(start.shuffleChars[pn]) + -- store the last drawn value + start.lastRandomChar = start.lastRandomChar or {} + start.lastRandomChar[pn] = result + return result +end + +--return true if slot is selected, update start.t_grid +function start.f_slotSelected(cell, side, cmd, player, x, y) + if cmd == nil then + return false, false + end + local original_slot = main.t_selGrid[cell].slot + if #main.t_selGrid[cell].chars > 0 then + -- select.def 'slot' parameter special keys detection + for _, cmdType in ipairs({'select', 'next', 'previous'}) do + if main.t_selGrid[cell][cmdType] ~= nil then + for k, v in pairs(main.t_selGrid[cell][cmdType]) do + if commandGetState(cmd, k) then + if cmdType == 'next' then + local ok = false + for i = main.t_selGrid[cell].slot + 1, #v do + if start.f_getCharData(start.f_selGrid(cell, v[i]).char_ref).hidden < 2 then + main.t_selGrid[cell].slot = v[i] + ok = true + break + end + end + if not ok then + for i = 1, main.t_selGrid[cell].slot - 1 do + if start.f_getCharData(start.f_selGrid(cell, v[i]).char_ref).hidden < 2 then + main.t_selGrid[cell].slot = v[i] + ok = true + break + end + end + end + if ok then + sndPlay(motif.Snd, motif.select_info['p' .. side].swap.snd[1], motif.select_info['p' .. side].swap.snd[2]) + end + elseif cmdType == 'previous' then + local ok = false + for i = main.t_selGrid[cell].slot -1, 1, -1 do + if start.f_getCharData(start.f_selGrid(cell, v[i]).char_ref).hidden < 2 then + main.t_selGrid[cell].slot = v[i] + ok = true + break + end + end + if not ok then + for i = #v, main.t_selGrid[cell].slot + 1, -1 do + if start.f_getCharData(start.f_selGrid(cell, v[i]).char_ref).hidden < 2 then + main.t_selGrid[cell].slot = v[i] + ok = true + break + end + end + end + if ok then + sndPlay(motif.Snd, motif.select_info['p' .. side].swap.snd[1], motif.select_info['p' .. side].swap.snd[2]) + end + else --select + main.t_selGrid[cell].slot = v[math.random(#v)] + start.c[player].selRef = start.f_selGrid(cell).char_ref + end + start.t_grid[y + 1][x + 1].char = start.f_selGrid(cell).char + start.t_grid[y + 1][x + 1].char_ref = start.f_selGrid(cell).char_ref + start.t_grid[y + 1][x + 1].hidden = start.f_selGrid(cell).hidden + start.t_grid[y + 1][x + 1].skip = start.f_selGrid(cell).skip + return cmdType == 'select', (main.t_selGrid[cell].slot ~= original_slot) + end + end + end + end + end + -- returns true on pressed key if current slot is not blocked by TeamDuplicates feature + return main.f_btnPalNo(cmd) > 0 and (not t_reservedChars[side][start.t_grid[y + 1][x + 1].char_ref] or start.t_grid[start.c[player].selY + 1][start.c[player].selX + 1].char == 'randomselect'),false +end + +--generate start.t_grid table, assign row and cell to main.t_selChars +local cnt = motif.select_info.columns + 1 +local row = 1 +local col = 0 +start.t_grid = {[row] = {}} +for i = 1, motif.select_info.rows * motif.select_info.columns do + if i == cnt then + row = row + 1 + cnt = cnt + motif.select_info.columns + start.t_grid[row] = {} + end + col = #start.t_grid[row] + 1 + local cell_spacing = getCellSpacing(col - 1, row - 1) + local cell_offset = getCellOffset(col - 1, row - 1) + start.t_grid[row][col] = { + x = (col - 1) * (motif.select_info.cell.size[1] + cell_spacing[1]) + cell_offset[1], + y = (row - 1) * (motif.select_info.cell.size[2] + cell_spacing[2]) + cell_offset[2] + } + if start.f_selGrid(i).char ~= nil then + start.t_grid[row][col].char = start.f_selGrid(i).char + start.t_grid[row][col].char_ref = start.f_selGrid(i).char_ref + start.t_grid[row][col].hidden = start.f_selGrid(i).hidden + for j = 1, #main.t_selGrid[i].chars do + start.f_selGrid(i, j).row = row + start.f_selGrid(i, j).col = col + end + end + local overrideSkip = getCellSkip(col - 1, row - 1) + if start.f_selGrid(i).skip == 1 or overrideSkip then + start.t_grid[row][col].skip = 1 + end +end +if gameOption('Debug.DumpLuaTables') then main.f_printTable(start.t_grid, 'debug/t_grid.txt') end + +local function updateCommon(common, add) + for k, values in pairs(common) do + if values ~= nil and #values > 0 then + local optionName = 'Common.' .. k:gsub('^%l', string.upper) + local t = gameOption(optionName) + if add then + local existing = {} + local changed = false + for _, v in ipairs(t) do + existing[v] = true + end + for _, v in ipairs(values) do + if v ~= '' and not existing[v] then + table.insert(t, v) + existing[v] = true + changed = true + end + end + if changed then + modifyGameOption(optionName, t) + end + else + local toRemove = {} + local changed = false + for _, v in ipairs(values) do + if v ~= '' then + toRemove[v] = true + end + end + for i = #t, 1, -1 do + if toRemove[t[i]] then + table.remove(t, i) + changed = true + end + end + if changed then + modifyGameOption(optionName, t) + end + end + end + end +end + +-- return amount of life to recover +local function f_lifeRecovery(lifeMax, fighter) + local ret = hook.runFirst("start.f_lifeRecovery", lifeMax, fighter) + if ret ~= nil then return ret end + local bonus = lifeMax * gameOption('Options.Turns.Recovery.Bonus') / 100 + local base = lifeMax * gameOption('Options.Turns.Recovery.Base') / 100 + return base + main.f_round(timeRemaining() / (timeRemaining() + timeElapsed()) * bonus) +end + +-- match persistence +function start.f_matchPersistence() + -- checked only after at least 1 match + if matchNo() >= 2 then + local gameStats = getGameStats() + local matches = (getGameStats().Matches) or {} + local idx = #matches + if idx <= (start.matchPersistenceStatsIdx or 0) then + return start.p[1].numChars + end + start.matchPersistenceStatsIdx = idx + local roundStats = matches[idx].Rounds + -- set 'existed' flag (decides if var/fvar should be persistent between matches) + if roundStats then + for _, round in ipairs(roundStats) do + for side = 1, 2 do + local fighters = (round.Fighters and round.Fighters[side]) or {} + for _, f in ipairs(fighters) do + local memberIdx = (f.MemberNo or 0) + 1 + if start.p[side].t_selected[memberIdx] ~= nil then + start.p[side].t_selected[memberIdx].existed = true + end + end + end + end + end + -- if defeated members should be skipped from next match, or if life should be maintained + if main.dropDefeated or main.persistLife then + local turnsOffset = start.p[1].turnsOffset or 0 + -- Turns + if start.p[1].teamMode == 2 then + --for each round in the last match + if roundStats then + for _, round in ipairs(roundStats) do + -- P1 active fighter snapshot for the round + local f1 = (round.Fighters and round.Fighters[1] and round.Fighters[1][1]) or nil + if f1 then + local memberIdx = (f1.MemberNo or 0) + 1 + -- if defeated + if f1.KO and (f1.Life or 0) <= 0 then + -- Keep full roster for lifebar faces + hiscore, but advance turnsOffset + -- so defeated members are skipped in the next match. + if main.dropDefeated then + turnsOffset = math.max(turnsOffset, memberIdx) + if start.p[1].t_selected[memberIdx] ~= nil then + start.p[1].t_selected[memberIdx].life = 0 + end + -- or resurrect and recover character's life + elseif main.persistLife then + start.p[1].t_selected[memberIdx].life = math.max(1, f_lifeRecovery(f1.LifeMax or 0, f1)) + end + -- otherwise maintain character's life + elseif main.persistLife then + start.p[1].t_selected[memberIdx].life = f1.Life or start.p[1].t_selected[memberIdx].life + end + end + end + end + if main.dropDefeated then + start.p[1].turnsOffset = turnsOffset + local total = #start.p[1].t_selected + start.p[1].numChars = math.max(0, total - turnsOffset) + end + -- Single / Simul / Tag + else + -- for each player data in the last round (new format) + if roundStats and #roundStats > 0 then + local lastRound = roundStats[#roundStats] + for side = 1, 2 do + local fighters = (lastRound.Fighters and lastRound.Fighters[side]) or {} + -- only check player-controlled side + if not main.cpuSide[side] then + for _, f in ipairs(fighters) do + local memberIdx = (f.MemberNo or 0) + 1 + -- if defeated + if f.KO and (f.Life or 0) <= 0 then + if main.persistLife then + start.p[1].t_selected[memberIdx].life = math.max(1, f_lifeRecovery(f.LifeMax or 0, f)) + end + -- otherwise maintain character's life + elseif main.persistLife then + start.p[1].t_selected[memberIdx].life = f.Life or start.p[1].t_selected[memberIdx].life + end + end + end + end + end + end + end + end + return start.p[1].numChars +end + +--start game +function start.f_game(common) + clearColor(0, 0, 0) + if gameOption('Debug.DumpLuaTables') and start ~= nil then + main.f_printTable(start.p, 'debug/t_p.txt') + end + if gameMode('training') then + menu.f_trainingReset() + end + local winner = -1 + winner, start.challenger = game() + if gameOption('Debug.DumpLuaTables') then + main.f_printTable(getGameStats(), 'debug/t_gameStats.txt') + end + main.f_restoreInput() + updateCommon(common, false) + if shutdown() then + clearColor(0, 0, 0) + os.exit() + end + return winner +end + +--;=========================================================== +--; MODES LOOP +--;=========================================================== +function start.f_selectMode() + start.f_selectReset(true) + while true do + --select screen + if gameOption('Config.BootLoadingMode') == 1 then + main.f_waitForPreloads() + end + if not start.f_selectScreen() then + bgReset(motif[main.background].BGDef) + fadeInInit(motif[main.group].fadein.FadeData) + playBgm({source = "motif.title", interrupt = true}) + return + end + -- lua file with custom arcade path detection + local path = main.luaPath + if main.charparam.arcadepath then + if start.f_getCharData(start.p[1].t_selected[1].ref).arcadepath ~= '' then + path = start.f_getCharData(start.p[1].t_selected[1].ref).arcadepath + end + path = hook.runFirst("start.f_selectMode.luaPath", path) or path + if path ~= '' and path ~= main.defaultLuaPath then + if not main.f_fileExists(path) then + local label = "arcadepath" + if path ~= main.luaPath then + label = start.f_getCharData(start.p[1].t_selected[1].ref).name .. " arcadepath" + end + panicError("\n" .. label .. " doesn't exist: " .. path .. "\n") + end + end + end + local customArcadePath = main.charparam.arcadepath and path ~= main.defaultLuaPath + --first match + if start.reset then + -- Save current remap state. main.f_restoreInput() should restore to this. + main.f_saveBaseRemapInput() + if customArcadePath then + main.t_availableChars = main.f_tableCopy(main.t_orderChars.default) + else + main.t_availableChars = main.f_tableCopy(start.f_getOrderChars()) + end + --generate default roster + if main.makeRoster and not customArcadePath then + start.t_roster = start.f_makeRoster() + else + start.t_roster = {} + end + --generate AI ramping table + if main.aiRamp then + start.f_aiRamp(1) + end + start.reset = false + end + --external script execution + local oldCustomArcadePath = start.customArcadePath + start.customArcadePath = customArcadePath + assert(loadFile(path))() + start.customArcadePath = oldCustomArcadePath + --infinite matches flag detected + if main.makeRoster and start.t_roster[matchNo()] ~= nil and start.t_roster[matchNo()][1] == -1 then + table.remove(start.t_roster, matchNo()) + start.t_roster = start.f_makeRoster(start.t_roster) + if main.aiRamp then + start.f_aiRamp(matchNo()) + end + --otherwise + else + if matchNo() == -1 then --no more matches left + -- hiscore & stats handled in Go; returns (cleared, place) + local cleared, place = computeRanking(gameMode()) + if main.motif.hiscore and place > 0 then + main.f_hiscore(gameMode(), place) + end + --credits + if cleared and main.storyboard.credits and motif.end_credits.enabled and main.f_fileExists(motif.end_credits.storyboard) then + main.f_storyboard(motif.end_credits.storyboard) + end + --game over + if main.storyboard.gameover and motif.game_over_screen.enabled and main.f_fileExists(motif.game_over_screen.storyboard) then + if cleared or not main.motif.continuescreen or (not continued() and motif.continue_screen.gameover.enabled) then + main.f_storyboard(motif.game_over_screen.storyboard) + end + end + --exit to main menu + if main.exitSelect then + if motif.files.intro.storyboard ~= '' and not motif.attract_mode.enabled then + main.f_storyboard(motif.files.intro.storyboard) + end + end + start.exit = start.exit or main.exitSelect or not main.selectMenu[1] + end + if start.exit then + bgReset(motif[main.background].BGDef) + fadeInInit(motif[main.group].fadein.FadeData) + playBgm({source = "motif.title", interrupt = true}) + start.exit = false + return + end + if not continued() or esc() then + start.f_selectReset(false) + else + t_reservedChars = {{}, {}} + end + end + end +end + +--resets various data +function start.f_selectReset(hardReset, preserveProgress) + esc(false) + if not preserveProgress then + resetGameStats() + start.matchPersistenceStatsIdx = 0 + setMatchNo(1) + if main.elimination then + setWinCount(1, 0) + setWinCount(2, 0) + end + setConsecutiveWins(1, 0) + setConsecutiveWins(2, 0) + end + local col = 1 + local row = 1 + for i = 1, #main.t_selGrid do + if i > motif.select_info.columns * row then + row = row + 1 + col = 1 + end + if main.t_selGrid[i].slot ~= 1 then + main.t_selGrid[i].slot = 1 + start.t_grid[row][col].char = start.f_selGrid(i).char + start.t_grid[row][col].char_ref = start.f_selGrid(i).char_ref + start.t_grid[row][col].hidden = start.f_selGrid(i).hidden + start.t_grid[row][col].skip = start.f_selGrid(i).skip + end + col = col + 1 + end + if hardReset then + if motif.select_info.stage.randomselect == 0 or motif.select_info.stage.randomselect == 2 then + stageListNo = 1 + else + stageListNo = 0 + end + restoreCursor = false + --cursor start cell + for i = 1, gameOption('Config.Players') do + if start.f_getCursorData(i).cursor.startcell[1] < motif.select_info.rows then + start.c[i].selY = start.f_getCursorData(i).cursor.startcell[1] + else + start.c[i].selY = 0 + end + if start.f_getCursorData(i).cursor.startcell[2] < motif.select_info.columns then + start.c[i].selX = start.f_getCursorData(i).cursor.startcell[2] + else + start.c[i].selX = 0 + end + start.c[i].cell = -1 + start.c[i].randCnt = 0 + start.c[i].randRef = nil + end + end + if stageRandom then + stageListNo = 0 + stageRandom = false + end + for side = 1, 2 do + if hardReset then + start.p[side].numSimul = math.max(2, gameOption('Options.Simul.Min')) + start.p[side].numTag = math.max(2, gameOption('Options.Tag.Min')) + start.p[side].numTurns = math.max(2, gameOption('Options.Turns.Min')) + start.p[side].teamMenu = 1 + start.p[side].t_cursor = {} + start.p[side].teamMode = 0 + end + start.p[side].numSimul = math.min(start.p[side].numSimul, gameOption('Options.Simul.Max')) + start.p[side].numTag = math.min(start.p[side].numTag, gameOption('Options.Tag.Max')) + start.p[side].numTurns = math.min(start.p[side].numTurns, gameOption('Options.Turns.Max')) + start.p[side].numChars = 1 + start.p[side].teamEnd = main.cpuSide[side] and (side == 2 or not main.cpuSide[1]) and main.forceChar[side] == nil + start.p[side].selEnd = not main.selectMenu[side] + start.p[side].t_selected = {} + start.p[side].t_selTemp = {} + start.p[side].t_selCmd = {} + -- Tracks how many leading Turns members are already defeated across matches. + -- Used by Survival Turns to skip them without removing from roster. + start.p[side].turnsOffset = 0 + hook.run("start.f_selectReset.side", side, hardReset, preserveProgress, start.p[side]) + end + for _, v in ipairs(start.c) do + v.cell = -1 + end + selScreenEnd = false + stageEnd = false + t_reservedChars = {{}, {}} + cursorActive = {} + cursorDone = {} + if main.preload ~= nil and main.preload.charHighlight ~= nil then + for _, ref in pairs(main.preload.charHighlight) do + queueCharPreload(ref, 1) + end + main.preload.charHighlight = {} + end + t_portraitPriority = {1, 1} + if start.challenger == 0 and not preserveProgress then + start.t_roster = {} + start.reset = true + end + menu.movelistChar = 1 + hook.run("start.f_selectReset") +end + +-- Which command list should drive menu navigation for a given side. +function start.f_menuCmd(side) + if not main.coop and side == 2 and main.cpuSide[2] then + return 1 + end + return side +end + +local function makeChallengerResumeSnapshot(pendingFightData, stageNo) + local resume = { + p = main.f_tableCopy(start.p), + c = main.f_tableCopy(start.c), + roster = main.f_tableCopy(start.t_roster), + availableChars = main.f_tableCopy(main.t_availableChars), + pendingFight = main.f_tableCopy(pendingFightData or {}), + matchNo = matchNo(), + matchPersistenceStatsIdx = start.matchPersistenceStatsIdx or 0, + p1ConsecutiveWins = getConsecutiveWins(1), + p2ConsecutiveWins = getConsecutiveWins(2), + gameStatsJson = getGameStatsJson(), + teamarcade = main.teamarcade, + } + if stageNo ~= nil then + resume.pendingFight.stageNo = stageNo + end + return resume +end + +local function applyWinnerSelectMemory(resume, winnerSide, challengerState) + if resume == nil or challengerState == nil or winnerSide < 1 or winnerSide > 2 then + return + end + resume.p = resume.p or {{}, {}} + resume.c = resume.c or {} + local srcSide = challengerState.p and challengerState.p[winnerSide] or nil + if srcSide ~= nil then + resume.p[1] = resume.p[1] or {} + -- Preserve the winner's last confirmed selection cells / team menu state. + resume.p[1].t_cursor = main.f_tableCopy(srcSide.t_cursor or {}) + if srcSide.teamMenu ~= nil then resume.p[1].teamMenu = srcSide.teamMenu end + if srcSide.teamMode ~= nil then resume.p[1].teamMode = srcSide.teamMode end + if srcSide.numSimul ~= nil then resume.p[1].numSimul = srcSide.numSimul end + if srcSide.numTag ~= nil then resume.p[1].numTag = srcSide.numTag end + if srcSide.numTurns ~= nil then resume.p[1].numTurns = srcSide.numTurns end + end + if challengerState.c ~= nil then + -- Promote the winner-side cursor slots onto the new arcade P1 slots: + -- side 1: 1/3/5/7 -> 1/3/5/7 + -- side 2: 2/4/6/8 -> 1/3/5/7 + for srcPn = winnerSide, gameOption('Config.Players'), 2 do + if challengerState.c[srcPn] ~= nil then + local dstPn = srcPn + if winnerSide == 2 then + dstPn = srcPn - 1 + end + resume.c[dstPn] = main.f_tableCopy(challengerState.c[srcPn]) + end + end + end + hook.run("start.f_selectChallenger.resume", resume, winnerSide, challengerState) +end + +function start.f_selectChallenger(resume) + esc(false) + resume = resume or makeChallengerResumeSnapshot() + local challengerCmd = start.challenger + local arcadeP1Controller = getRemapInput(1) + local challengerController = getRemapInput(challengerCmd) + + -- Start challenger match from a clean state. + main.f_default() + + -- Build a clean, non-chained input mapping: + -- cmd list 1 -> arcade P1 physical controller + -- cmd list 2 -> challenger physical controller + -- Keep the rest as a swap-based permutation (no dual-feeding / chaining). + local function swapCmd(a, b) + if a == b then return end + local ra = getRemapInput(a) + local rb = getRemapInput(b) + remapInput(a, rb) + remapInput(b, ra) + end + -- Put arcade P1 controller on cmd 1. + swapCmd(1, arcadeP1Controller) + -- Find which cmd currently owns challengerController and swap it onto cmd 2. + local holder = 2 + for i = 1, gameOption('Config.Players') do + if getRemapInput(i) == challengerController then + holder = i + break + end + end + swapCmd(2, holder) + -- Keep challenger flag (>0) so versus() enters challenger mode + start.challenger = challengerCmd + + main.t_itemname.versus() + + start.f_selectReset(false) + if not start.f_selectScreen() then + start.exit = true + start.challenger = 0 + main.f_restoreInput() + return false + end + local ok = launchFight{challenger = true} + local challengerSelectState = { + p = main.f_tableCopy(start.p), + c = main.f_tableCopy(start.c), + } + local challengerWinner = getWinnerTeam() + + start.challenger = 0 + if not ok or challengerWinner < 1 or challengerWinner > 2 or start.exit or esc() then + main.f_restoreInput() + return false + end + -- Winner of the challenger match becomes the new arcade P1 owner. + local resumeController = arcadeP1Controller + if challengerWinner == 2 then + resumeController = challengerController + end + + -- Rebuild arcade mode with the winner's controller mapped to P1. + main.teamarcade = resume.teamarcade + main.f_default() + setLastInputController(resumeController) + main.t_itemname.arcade() + main.f_saveBaseRemapInput() + + -- Restore interrupted arcade progress before going back to select screen. + applyWinnerSelectMemory(resume, challengerWinner, challengerSelectState) + start.p = main.f_tableCopy(resume.p) + start.c = main.f_tableCopy(resume.c) + start.t_roster = main.f_tableCopy(resume.roster) + main.t_availableChars = main.f_tableCopy(resume.availableChars) + setGameStatsJson(resume.gameStatsJson) + setMatchNo(resume.matchNo) + start.matchPersistenceStatsIdx = resume.matchPersistenceStatsIdx or 0 + setConsecutiveWins(1, resume.p1ConsecutiveWins) + setConsecutiveWins(2, resume.p2ConsecutiveWins) + start.reset = false + start.exit = false + + -- Preserve the interrupted opponent. P1 is cleared for re-selection, + -- but P2 stays selected so resuming does not roll a new random opponent. + local p2 = main.f_tableCopy(start.p[2]) + start.f_selectReset(false, true) + start.p[2] = p2 + start.reset = false + + if not start.f_selectScreen() then + start.exit = true + return false + end + + -- Resume the exact interrupted arcade fight using the original caller args. + resume.pendingFight.p2char = {} + return launchFight(resume.pendingFight) +end + +local function buildMusicParams(data) + local out = {} + for k, v in pairs(data) do + if type(k) == "string" and k:match("music$") then + if type(v) == "string" then + out[#out + 1] = k .. "=" .. v + elseif type(v) == "table" and #v > 0 then + local first = v[1] + -- If table looks like { "path.mp3", 100, 123, 456 } => positional args + local positional = (type(first) == "string") and (#v == 1 or type(v[2]) ~= "string") + if positional then + local pieces = {} + for i = 1, #v do + pieces[i] = tostring(v[i]) + end + -- space-separated to avoid commas inside the value + out[#out + 1] = k .. "=" .. table.concat(pieces, " ") + else + -- Treat as multiple candidate tracks: {"a.mp3","b.mp3",...} + for i = 1, #v do + out[#out + 1] = k .. "=" .. tostring(v[i]) + end + end + end + end + end + return table.concat(out, ", ") +end + +local function defaultQuickContinue() + return (not main.selectMenu[1] and not main.selectMenu[2]) + or main.quickContinue + or gameOption('Options.QuickContinue') +end + +function launchFight(data) + local data = data or {} + local t = {} + if continued() then -- on rematch all arguments are ignored and values are restored from last match + t = main.f_tableCopy(start.launchFightSav) + start.p[2].t_selTemp = {} -- in case it's not cleaned already (preserved p2 side during select screen) + else -- otherwise take all arguments and settings into account + t.p1numchars = start.p[1].numChars + t.p1teammode = start.p[1].teamMode + t.p2numchars = start.p[2].numChars + t.p2teammode = start.p[2].teamMode + t.challenger = main.f_arg(data.challenger, false) + t.continue = main.f_arg(data.continue, main.motif.continuescreen) + t.quickcontinue = main.f_arg(data.quickcontinue, defaultQuickContinue()) + t.order = data.order or 1 + t.orderselect = {main.f_arg(data.p1orderselect, main.orderSelect[1]), main.f_arg(data.p2orderselect, main.orderSelect[2])} + t.p1char = data.p1char or {} + t.p1pal = data.p1pal + t.p1rounds = data.p1rounds or nil + t.p2char = data.p2char or {} + t.p2pal = data.p2pal + t.p2rounds = data.p2rounds or nil + t.exclude = data.exclude or {} + t.musicParams = buildMusicParams(data) + t.stage = data.stage or '' + t.ai = data.ai or nil + t.vsscreen = main.f_arg(data.vsscreen, main.motif.vsscreen) + t.victoryscreen = main.f_arg(data.victoryscreen, main.motif.victoryscreen) + t.winscreen = main.f_arg(data.winscreen, main.motif.winscreen) + --t.frames = data.frames or fightScreenVar("time.framespercount") + t.roundtime = data.time or nil + t.lua = data.lua or '' + t.stageNo = start.f_getStageRef(t.stage) + t.stageAssigned = data.stageNo ~= nil or t.stage ~= '' + t.stageNo = data.stageNo or start.f_getStageRef(t.stage) + start.p[1].numChars = data.p1numchars or math.max(start.p[1].numChars, #t.p1char) + start.p[1].teamMode = start.f_stringToTeamMode(data.p1teammode) or start.p[1].teamMode + start.p[2].numChars = data.p2numchars or math.max(start.p[2].numChars, #t.p2char) + start.p[2].teamMode = start.f_stringToTeamMode(data.p2teammode) or start.p[2].teamMode + t.p1numchars = start.f_matchPersistence() + -- add P1 chars forced via function arguments (ignore char param restrictions) + local reset = false + local cnt = 0 + for _, v in main.f_sortKeys(t.p1char) do + if not reset then + start.p[1].t_selected = {} + start.p[1].t_selTemp = {} + reset = true + end + cnt = cnt + 1 + local ref = start.f_getCharRef(v) + local pal = t.p1pal + if type(pal) == 'table' then + pal = pal[cnt] + end + table.insert(start.p[1].t_selected, { + ref = ref, + pal = pal or start.f_selectPal(ref), + pn = start.f_getPlayerNo(1, #start.p[1].t_selected + 1), + --cursor = {}, + }) + hook.run("start.launchFight.selected", 1, #start.p[1].t_selected, start.p[1].t_selected[#start.p[1].t_selected], start.p[1], t) + main.t_availableChars = start.f_excludeChar(main.t_availableChars, ref) + end + if #start.p[1].t_selected == 0 then + panicError("\n" .. "launchFight(): no valid P1 characters\n") + start.exit = true + return false -- return to main menu + end + -- add P2 chars forced via function arguments (ignore char param restrictions) + local onlyme = false + cnt = 0 + for _, v in main.f_sortKeys(t.p2char) do + cnt = cnt + 1 + local ref = start.f_getCharRef(v) + local pal = t.p2pal + if type(pal) == 'table' then + pal = pal[cnt] + end + table.insert(start.p[2].t_selected, { + ref = ref, + pal = pal or start.f_selectPal(ref), + pn = start.f_getPlayerNo(2, #start.p[2].t_selected + 1), + --cursor = {}, + }) + hook.run("start.launchFight.selected", 2, #start.p[2].t_selected, start.p[2].t_selected[#start.p[2].t_selected], start.p[2], t) + main.t_availableChars = start.f_excludeChar(main.t_availableChars, ref) + if not onlyme then onlyme = start.f_getCharData(ref).single end + end + -- add remaining P2 chars of particular order if there are still free slots in the selected team mode + if main.cpuSide[2] and #start.p[2].t_selected < start.p[2].numChars and not onlyme then + -- get list of available chars + local t_chars = main.f_tableCopy(main.t_availableChars) + -- remove chars temporary excluded from this match + for _, v in ipairs(t.exclude) do + t_chars = start.f_excludeChar(t_chars, start.f_getCharRef(v)) + end + -- remove chars with 'single' param if some characters are forced into team + if #start.p[2].t_selected > 0 then + for _, v in ipairs(t_chars[t.order]) do + if start.f_getCharData(v).single then + t_chars = start.f_excludeChar(t_chars, v) + end + end + end + -- fill free slots + local t_remaining = main.f_tableCopy(t_chars) + local t_tmp = {} + for i = #start.p[2].t_selected, start.p[2].numChars - 1 do + if t_chars[t.order] ~= nil and #t_chars[t.order] > 0 then + local rand = math.random(1, #t_chars[t.order]) + local ref = t_chars[t.order][rand] + if not start.f_getCharData(ref).single then + table.remove(t_chars[t.order], rand) + table.insert(t_tmp, ref) + else --one entry if 'single' param is detected on any opponent + t_tmp = {ref} + onlyme = true + break + end + end + end + -- not enough unique characters of particular order, take into account only if skiporder parameter = false + while not t.skiporder and #t_tmp + #start.p[2].t_selected < start.p[2].numChars and not onlyme and t_remaining[t.order] ~= nil and #t_remaining[t.order] > 0 do + table.insert(t_tmp, t_remaining[t.order][math.random(1, #t_remaining[t.order])]) + end + -- append remaining characters + for _, v in ipairs(t_tmp) do + table.insert(start.p[2].t_selected, { + ref = v, + pal = start.f_selectPal(v), + pn = start.f_getPlayerNo(2, #start.p[2].t_selected + 1), + --cursor = {}, + }) + hook.run("start.launchFight.selected", 2, #start.p[2].t_selected, start.p[2].t_selected[#start.p[2].t_selected], start.p[2], t) + main.t_availableChars = start.f_excludeChar(main.t_availableChars, v) + end + -- team conversion if 'single' param is set on randomly added chars + if onlyme and #start.p[2].t_selected > 1 then + panicError("Unexpected launchFight state.\nPlease write down everything that lead to this error and report it to K4thos.\n") + --[[for i = 1, #start.p[2].t_selected do + if not start.f_getCharData(start.p[2].t_selected[i].ref).single then + table.insert(main.t_availableChars[t.order], start.p[2].t_selected[i].ref) + table.remove(start.p[2].t_selected, k) + end + end]] + end + end + if onlyme then + start.p[2].numChars = #start.p[2].t_selected + end + -- skip match if needed + if #start.p[2].t_selected < start.p[2].numChars then + start.p[2].t_selected = {} + start.p[2].t_selTemp = {} + printConsole("launchFight(): not enough P2 characters, skipping execution") + setMatchNo(matchNo() + 1) + return true --continue lua code execution + end + end + clearSelected() + local ok = false + local loopCount = 0 + while true do + -- fight initialization + setTeamMode(1, start.p[1].teamMode, start.p[1].numChars) + setTeamMode(2, start.p[2].teamMode, start.p[2].numChars) + start.f_remapAI(t.ai) + start.f_setRounds(t.roundtime, {t.p1rounds, t.p2rounds}) + t.stageNo = start.f_setStage(t.stageNo, t.stageAssigned or continued() or loopCount > 0) + local challengerResume = nil + if not t.challenger then + -- Snapshot before game() runs. If a challenger interrupts the fight, this is the last clean arcade state. + challengerResume = makeChallengerResumeSnapshot(data, t.stageNo) + end + local common = {lua = {}} + if t.lua ~= '' then + table.insert(common.lua, t.lua) + end + -- Hooks may mutate "common" in place before loading starts. + hook.run("launchFight", common, t, data) + updateCommon(common, true) + -- Resolve match-scoped params before VS can start background loading. + local winscreen = main.f_arg(t.winscreen, main.motif.winscreen) + if winscreen and data.winscreen == nil then + if start.customArcadePath or (main.makeRoster and start.t_roster[matchNo() + 1] ~= nil) then + winscreen = false + end + end + local loadStartParams = main.f_tableCopy(t) + loadStartParams.winscreen = winscreen + + if not start.f_selectVersus(t.vsscreen, t.orderselect, loadStartParams) then break end + -- If VS started background loading, do not restart the loader here. + if gameOption('Config.VsScreenLoading') and start.bgLoadStarted then + clearAllSound() + elseif not start.f_selectLoading(loadStartParams) then + break + end + start.f_game(common) + clearColor(motif.selectbgdef.bgclearcolor[1], motif.selectbgdef.bgclearcolor[2], motif.selectbgdef.bgclearcolor[3]) + if start.exit or start.characterchange then + if start.characterchange then + start.f_selectReset(false) + end + start.characterchange = false + break + -- here comes a new challenger + elseif start.challenger > 0 then + if t.challenger then -- end function called by f_arcadeChallenger() regardless of outcome + ok = not start.exit and not esc() + break + else + return start.f_selectChallenger(challengerResume) + end + -- player exit the game via ESC + elseif getWinnerTeam() == -1 then + if not main.selectMenu[1] and not main.selectMenu[2] then + setMatchNo(-1) + end + break + -- player lost in modes that ends after 1 lose + elseif getWinnerTeam() ~= 1 and main.elimination then + setMatchNo(-1) + break + -- player won or continuing is disabled + elseif getWinnerTeam() == 1 or not t.continue then + start.p[2].t_selected = {} + start.p[2].t_selTemp = {} + setMatchNo(matchNo() + 1) + ok = true -- continue lua code execution + break + -- continue = no + elseif not continued() then + setMatchNo(-1) + break + -- continue = yes + elseif not t.quickcontinue then -- if 'Quick Continue' is disabled + for i = 1, 2 do + for _, v in ipairs(start.p[i].t_selCmd) do + v.selectState = 0 + end + end + start.p[1].t_selected = {} + start.p[1].t_selTemp = {} + start.p[1].selEnd = false + start.launchFightSav = main.f_tableCopy(t) + --start.p[2].t_selTemp = {} -- uncomment to disable enemy team showing up in select screen + selScreenEnd = false + return + end + start.challenger = 0 + loopCount = loopCount + 1 + end + -- restore original values + start.p[1].numChars = t.p1numchars + start.p[1].teamMode = t.p1teammode + start.p[2].numChars = t.p2numchars + start.p[2].teamMode = t.p2teammode + return ok +end + +function launchStoryboard(path) + if path == nil or path == '' then + return false + end + main.f_storyboard(path) + return true +end + +function codeInput(name) + return commandGetState(getLastInputController(), name) +end + +--;=========================================================== +--; SELECT SCREEN +--;=========================================================== +local function refreshActiveFacePortraits() + for side = 1, 2 do + for k, v in ipairs(start.p[side].t_selCmd) do + local member = main.f_tableLength(start.p[side].t_selected) + k + if main.coop and (side == 1 or gameMode('versuscoop')) then + member = k + end + local st = start.p[side].t_selTemp[member] + local player = v.player + local selRef = start.c[player].selRef + if v.selectState == 0 and st ~= nil and selRef ~= nil and st.ref == selRef then + local state = getCharPreloadStatus(selRef) + if state == 'ready' then + local pn = 2 * (member - 1) + side + local pCfg = f_getMotifP(motif.select_info, pn, side) + local updated = false + if st.face_data == nil then + st.face_anim = pCfg.face.anim + st.face_data = start.f_animGet(selRef, side, member, pCfg.face, nil, true, st.face_data) + updated = updated or st.face_data ~= nil + end + if st.face2_data == nil then + st.face2_anim = pCfg.face2.anim + st.face2_data = start.f_animGet(selRef, side, member, pCfg.face2, nil, true, st.face2_data) + updated = updated or st.face2_data ~= nil + end + if updated then + start.needUpdateDrawList = true + end + end + end + end + end +end + +function start.updateDrawList() + local drawList = {} + + for row = 1, motif.select_info.rows do + for col = 1, motif.select_info.columns do + local cellIndex = (row - 1) * motif.select_info.columns + col + local t = start.t_grid[row][col] + local c = col - 1 + local r = row - 1 + + if t.skip ~= 1 then + local charData = start.f_selGrid(cellIndex) + local function getTransforms(base) + return { + facing = getCellFacing(base.facing, c, r), + scale = getCellTransform(c, r, "scale", base.scale), + xshear = getCellTransform(c, r, "xshear", base.xshear), + angle = getCellTransform(c, r, "angle", base.angle), + xangle = getCellTransform(c, r, "xangle", base.xangle), + yangle = getCellTransform(c, r, "yangle", base.yangle), + projection = getCellTransform(c, r, "projection", base.projection), + focallength = getCellTransform(c, r, "focallength", base.focallength) + } + end + + if (charData and charData.char ~= nil and (charData.hidden == 0 or charData.hidden == 3)) or motif.select_info.showemptyboxes then + local item = getTransforms(motif.select_info.cell.bg) + item.anim = motif.select_info.cell.bg.AnimData + item.x = motif.select_info.pos[1] + t.x + item.y = motif.select_info.pos[2] + t.y + table.insert(drawList, item) + end + + if charData and (charData.char == 'randomselect' or charData.hidden == 3) then + local item = getTransforms(motif.select_info.cell.random) + item.anim = motif.select_info.cell.random.AnimData + item.x = motif.select_info.pos[1] + t.x + motif.select_info.portrait.offset[1] + item.y = motif.select_info.pos[2] + t.y + motif.select_info.portrait.offset[2] + table.insert(drawList, item) + end + + if charData and charData.char_ref ~= nil and charData.hidden == 0 and charData.char ~= 'randomselect' then + local portrait = motif.select_info.portrait + local loadingPortrait = false + if getCharPreloadStatus(charData.char_ref) ~= 'ready' and hasPortraitAnim(portrait.loading) then + portrait = portrait.loading + loadingPortrait = true + end + local item = getTransforms(portrait) + item.anim = loadingPortrait and portrait.AnimData or charData.cell_data + item.x = motif.select_info.pos[1] + t.x + item.y = motif.select_info.pos[2] + t.y + if not loadingPortrait then + item.x = item.x + portrait.offset[1] + item.y = item.y + portrait.offset[2] + end + -- apply cell scale override while preserving portrait resolution factor + -- loading portrait comes from system.sff, so don't apply character localcoord scaling to it + if item.scale ~= nil and not loadingPortrait then + local charInfo = main.t_selChars[charData.char_ref + 1] + if charInfo then + local portraitScale = charInfo.portraitscale or 1 + local charLocalcoord = charInfo.localcoord or motif.info.localcoord[1] + -- recompute resolution compensation factor + local resFix = portraitScale * motif.info.localcoord[1] / charLocalcoord + item.scale = { + item.scale[1] * resFix, + item.scale[2] * resFix + } + end + end + table.insert(drawList, item) + local grid = main.t_selGrid[cellIndex] + local hasMultipleChars = grid ~= nil and #grid.chars > 1 + -- draw slot indicator + if hasMultipleChars and hasPortraitAnim(motif.select_info.cell.slot) then + local icon = getTransforms(motif.select_info.cell.slot) + icon.anim = motif.select_info.cell.slot.AnimData + icon.x = motif.select_info.pos[1] + t.x + icon.y = motif.select_info.pos[2] + t.y + table.insert(drawList, icon) + end + end + end + end + end + + return drawList +end + +local function tickScreenDelay(side) + if start.p[side].screenDelay <= 0 then + return false + end + local selectComplete = start.p[1].selEnd and start.p[2].selEnd and start.p[1].teamEnd and start.p[2].teamEnd + local canSkip = not start.p[side].inPalMenu and ( + not start.p[side].selEnd + or (selectComplete and (not main.stageMenu or stageEnd)) + ) + if canSkip then + local owners = {} + local seen = {} + if main.coop and (side == 1 or gameMode('versuscoop')) then + for _, v in ipairs(start.p[side].t_selCmd) do + if v.cmd ~= nil and not seen[v.cmd] then + table.insert(owners, v.cmd) + seen[v.cmd] = true + end + end + else + local cmd = start.f_menuCmd(side) + if cmd ~= nil then + table.insert(owners, cmd) + end + end + if #owners > 0 and getInput(owners, motif.select_info.done.key) then + start.p[side].screenDelay = 0 + return true + end + end + start.p[side].screenDelay = start.p[side].screenDelay - 1 + return false +end + +-- Reset stage portrait animation data +local function resetStagePortraitAnim(stageNo, subname) + local st = main.t_selStages[stageNo] + if not st then + return + end + local anim = st[subname] + if anim then + animReset(anim) + animUpdate(anim) + end +end + +local function teamMenuSelectable(t) + if #t > 1 then + return true + elseif #t == 0 then + return false + end + local item = t[1].itemname + return item ~= 'single' + and (item ~= 'simul' or main.numSimul[1] ~= main.numSimul[2]) + and (item ~= 'turns' or main.numTurns[1] ~= main.numTurns[2]) + and (item ~= 'tag' or main.numTag[1] ~= main.numTag[2]) +end + +local function resetSelectMember(side, member, ref) + local st = start.p[side].t_selTemp[member] + local pn = 2 * (member - 1) + side + local pCfg = f_getMotifP(motif.select_info, pn, side) + st.face_data = start.f_animGet(ref, side, member, pCfg.face, nil, true, st.face_data) + st.face2_data = start.f_animGet(ref, side, member, pCfg.face2, nil, true, st.face2_data) + st.slotConfirmed = false + st.currentIdx = nil + st.validPals = nil + t_reservedChars[side][ref] = nil +end + +local function cancelSelectMember(side, cmdIndex) + local p = start.p[side] + local separateControls = main.coop and (side == 1 or gameMode('versuscoop')) + local selected = main.f_tableLength(p.t_selected) + local v = p.t_selCmd[cmdIndex] + local member = separateControls and cmdIndex or selected + cmdIndex + local st = p.t_selTemp[member] + + -- Character confirmed, but not committed to t_selected yet. + if st ~= nil and st.slotConfirmed and p.t_selected[member] == nil then + resetSelectMember(side, member, st.ref) + v.selectState = 0 + p.screenDelay = 0 + return true + end + + -- Already selecting the next member. + member = separateControls and not motif.select_info.coopqueue and cmdIndex or selected + local sel = p.t_selected[member] + if sel == nil or sel.cursor == nil then + return false + end + v = p.t_selCmd[separateControls and member or cmdIndex] + resetSelectMember(side, member, sel.ref) + p.t_selected[member] = nil + if not separateControls or motif.select_info.coopqueue then + for i = #p.t_selTemp, member + 1, -1 do + p.t_selTemp[i] = nil + end + end + v.selectState = 0 + p.selEnd = false + p.screenDelay = 0 + restoreCursor = true + return true +end + +local function cancelPreviousSide(side) + if side ~= 2 or not main.cpuSide[2] or not start.p[1].selEnd then + return false + end + local cmdIndex = main.coop and #start.p[1].t_selected or 1 + if cancelSelectMember(1, cmdIndex) then + local p = start.p[2] + p.teamEnd = true + p.selEnd = true + p.t_selCmd, p.t_selTemp, p.t_cursor = {}, {}, {} + p.screenDelay = 0 + return true + end + return false +end + +start.needUpdateDrawList = false +function start.f_selectScreen() + if (not main.selectMenu[1] and not main.selectMenu[2]) or selScreenEnd then + return true + end + bgReset(motif.selectbgdef.BGDef) + fadeInInit(motif.select_info.fadein.FadeData) + local fadeOutStarted = false + local function exitSelectScreen() + sndPlay(motif.Snd, motif.select_info.cancel.snd[1], motif.select_info.cancel.snd[2]) + fadeOutInit(motif.select_info.fadeout.FadeData) + fadeOutStarted = true + start.escFlag = true + end + playBgm({source = "motif.select", interrupt = true}) + start.f_resetTempData(motif.select_info, 'face') + f_snapCursor() + local stageActiveCount = 0 + local stageActiveState = false + timerSelect = 0 + start.escFlag = false + local t_teamMenu = {{}, {}} + local blinkCount = 0 + local counter = 0 - motif.select_info.fadein.time + local timerReset = false + local stageTextData = motif.select_info.stage.active.TextSpriteData + local stageRef = main.t_selectableStages[stageListNo] + + -- Reset stage portrait animation if it was already seen when entering the select screen + resetStagePortraitAnim(stageRef, 'anim_data') + + -- generate team mode items table + for side = 1, 2 do + -- read display names for the current gameMode (or default) + local params = motif.select_info.teammenu.itemname.default + if motif.select_info.teammenu.itemname[gameMode()] ~= nil then + params = motif.select_info.teammenu.itemname[gameMode()] + end + -- read itemname_order for the current gameMode (or default) + local itemname_order = motif.select_info.teammenu.itemname_order.default + if motif.select_info.teammenu.itemname_order[gameMode()] ~= nil then + itemname_order = motif.select_info.teammenu.itemname_order[gameMode()] + end + -- map itemname -> mode (kept from old defaults) + local modeByName = { + single = 0, + simul = 1, + turns = 2, + tag = 3, + } + -- itemname_order lists exactly what to render, in the correct order + for _, name in ipairs(itemname_order) do + local itemname = name + local mode = modeByName[itemname] + if mode ~= nil and main.teamMenu[side][itemname] then + table.insert(t_teamMenu[side], { + itemname = itemname, + displayname = params[itemname], + mode = mode, + }) + end + end + hook.run("start.selectScreen.teamMenu", side, t_teamMenu[side], params, itemname_order) + end + + textImgReset(motif.select_info.record.TextSpriteData) + textImgSetText(motif.select_info.record.TextSpriteData, start.f_getRecordText()) + + local staticDrawList = start.updateDrawList() + start.needUpdateDrawList = false + + while not selScreenEnd do + main.f_preloadTick(4) + refreshActiveFacePortraits() + counter = counter + 1 + --draw clearcolor + clearColor(motif.selectbgdef.bgclearcolor[1], motif.selectbgdef.bgclearcolor[2], motif.selectbgdef.bgclearcolor[3]) + --draw layerno = 0 backgrounds + bgDraw(motif.selectbgdef.BGDef, 0) + --draw title + textImgDraw(motif.select_info.title.TextSpriteData) + --draw portraits + for side = 1, 2 do + if #start.p[side].t_selTemp > 0 then + start.f_drawPortraits(start.p[side].t_selTemp, side, motif.select_info, 'face', true) + end + end + --draw cell art + if start.needUpdateDrawList then + staticDrawList = start.updateDrawList() + start.needUpdateDrawList = false + end + for _, item in ipairs(staticDrawList) do + animUpdate(item.anim) + end + batchDraw(staticDrawList) + --team and select menu + if blinkCount < motif.select_info.p2.cursor.switchtime then + blinkCount = blinkCount + 1 + else + blinkCount = 0 + end + local screenDelayInterrupted = false + for side = 1, 2 do + if not start.p[side].teamEnd then + start.f_teamMenu(side, t_teamMenu[side]) + elseif not start.p[side].selEnd then + --for each player with active controls + for k, v in ipairs(start.p[side].t_selCmd) do + local member = main.f_tableLength(start.p[side].t_selected) + k + local activeMember = true + if main.coop and (side == 1 or gameMode('versuscoop')) then + member = k + if motif.select_info.coopqueue then + activeMember = (k == main.f_tableLength(start.p[side].t_selected) + 1) + end + end + --member selection + local drawUpdateFlag + if activeMember then + v.selectState, drawUpdateFlag = start.f_selectMenu(side, v.cmd, v.player, member, v.selectState) + if not start.p[side].inPalMenu and getInput(v.cmd, motif.select_info.cancel.key) then + local selected = main.f_tableLength(start.p[side].t_selected) + if cancelSelectMember(side, k) then + timerSelect = motif.select_info.timer.displaytime + sndPlay(motif.Snd, motif.select_info.cancel.snd[1], motif.select_info.cancel.snd[2]) + activeMember = false + elseif selected == 0 then + if teamMenuSelectable(t_teamMenu[side]) then + start.p[side].teamEnd = false + start.p[side].t_selCmd, start.p[side].t_selTemp, start.p[side].t_cursor = {}, {}, {} + start.p[side].screenDelay = 0 + timerSelect = motif.select_info.timer.displaytime + sndPlay(motif.Snd, motif.select_info.cancel.snd[1], motif.select_info.cancel.snd[2]) + elseif cancelPreviousSide(side) then + timerSelect = motif.select_info.timer.displaytime + sndPlay(motif.Snd, motif.select_info.cancel.snd[1], motif.select_info.cancel.snd[2]) + else + exitSelectScreen() + end + activeMember = false + end + end + end + if drawUpdateFlag then + start.needUpdateDrawList = true + end + --draw active cursor + if activeMember then + if side == 2 and motif.select_info.p2.cursor.blink then + local sameCell = false + for _, v2 in ipairs(start.p[1].t_selCmd) do + if start.c[v.player].cell == start.c[v2.player].cell and v.selectState == 0 and v2.selectState == 0 then + if blinkCount == 0 then + start.c[v.player].blink = not start.c[v.player].blink + end + sameCell = true + break + end + end + if not sameCell then + start.c[v.player].blink = false + end + end + local cursorState = 'active' + if v.selectState > 0 and motif.select_info.paletteselect > 0 then + local cursorData = motif.select_info['p' .. side].cursor + if cursorData.preview and cursorData.preview.default and + (cursorData.preview.default.anim ~= -1 or cursorData.preview.default.spr[1] ~= -1) then + --cursorState when palmenu is active + cursorState = 'preview' + else + cursorState = 'done' + end + end + if v.selectState < 4 and start.f_selGrid(start.c[v.player].cell + 1).hidden ~= 1 and not start.c[v.player].blink then + start.f_drawCursor(v.player, start.c[v.player].selX, start.c[v.player].selY, cursorState, false) + end + end + end + end + --draw done cursors + local persist = motif.select_info['p' .. side].cursor.persist + local totalSelected = #start.p[side].t_selected + local drawnCells = {} -- Track drawn cells to avoid duplicates + for k, v in pairs(start.p[side].t_selected) do + if v.cursor ~= nil then + --get cell coordinates + local x = v.cursor[1] + local y = v.cursor[2] + local t = start.t_grid[y + 1][x + 1] + --retrieve proper cell coordinates in case of random selection + --TODO: doesn't work with slot feature + --if (t.char == 'randomselect' or t.hidden == 3) --[[and not gameOption('Options.Team.Duplicates')]] then + -- x = start.f_getCharData(v.ref).col - 1 + -- y = start.f_getCharData(v.ref).row - 1 + -- t = start.t_grid[y + 1][x + 1] + --end + --render only if cell is not hidden + if t.hidden ~= 1 and t.hidden ~= 2 then + local shouldDraw = false + if main.coop or persist then + shouldDraw = true + end + if start.p[side].selEnd and k == totalSelected then + shouldDraw = true + end + if shouldDraw then + local cellKey = x .. ',' .. y + if not drawnCells[cellKey] then + start.f_drawCursor(v.pn, x, y, 'done', true) + drawnCells[cellKey] = true + end + end + end + end + end + --delayed screen transition for the duration of face_done_anim or selection sound + if tickScreenDelay(side) then + screenDelayInterrupted = true + end + if start.p[side].inPalMenu then + local palActive = false + if motif.select_info.paletteselect > 0 then + for _, sv in ipairs(start.p[side].t_selCmd) do + if sv.selectState == 1 then + palActive = true + break + end + end + end + if not palActive then + start.p[side].inPalMenu = false + end + end + end + --Esc always exits; cancel goes back one step after character selection is complete + if not start.escFlag and esc() then + exitSelectScreen() + elseif not start.escFlag and not fadeOutStarted + and not (start.p[1].selEnd and start.p[2].selEnd and start.p[1].teamEnd and start.p[2].teamEnd) then + for side = 2, 1, -1 do + if start.p[side].selEnd and start.p[side].teamEnd then + for k, v in ipairs(start.p[side].t_selCmd) do + if getInput(v.cmd, motif.select_info.cancel.key) and cancelSelectMember(side, k) then + timerSelect = motif.select_info.timer.displaytime + sndPlay(motif.Snd, motif.select_info.cancel.snd[1], motif.select_info.cancel.snd[2]) + break + end + end + end + end + elseif not start.escFlag and not fadeOutStarted + and start.p[1].selEnd and start.p[2].selEnd and start.p[1].teamEnd and start.p[2].teamEnd then + if main.stageMenu and stageEnd and getInput(-1, motif.select_info.cancel.key) then + stageEnd = false + stageTextData = motif.select_info.stage.active.TextSpriteData + timerSelect = motif.select_info.timer.displaytime + sndPlay(motif.Snd, motif.select_info.cancel.snd[1], motif.select_info.cancel.snd[2]) + else + local cancelPressed = false + local cancelHandled = false + for side = 2, 1, -1 do + for k, v in ipairs(start.p[side].t_selCmd) do + if getInput(v.cmd, motif.select_info.cancel.key) then + cancelPressed = true + if cancelSelectMember(side, k) then + timerSelect = motif.select_info.timer.displaytime + if main.stageMenu then + timerReset = false + stageTextData = motif.select_info.stage.active.TextSpriteData + end + sndPlay(motif.Snd, motif.select_info.cancel.snd[1], motif.select_info.cancel.snd[2]) + cancelHandled = true + break + end + end + end + if cancelHandled then + break + end + end + if not cancelHandled and (cancelPressed or (main.stageMenu and getInput(-1, motif.select_info.cancel.key))) then + exitSelectScreen() + end + end + end + --draw names + for side = 1, 2 do + if #start.p[side].t_selTemp > 0 then + for i = 1, #start.p[side].t_selTemp do + if i <= motif.select_info['p' .. side].name.num then + local name = '' + if motif.select_info['p' .. side].name.num == 1 then + name = start.f_getName(start.p[side].t_selTemp[#start.p[side].t_selTemp].ref, side) + else + name = start.f_getName(start.p[side].t_selTemp[i].ref, side) + end + textImgReset(motif.select_info['p' .. side].name.TextSpriteData) + textImgAddPos( + motif.select_info['p' .. side].name.TextSpriteData, + (i - 1) * motif.select_info['p' .. side].name.spacing[1], + (i - 1) * motif.select_info['p' .. side].name.spacing[2] + ) + textImgSetText(motif.select_info['p' .. side].name.TextSpriteData, name) + textImgDraw(motif.select_info['p' .. side].name.TextSpriteData) + end + end + end + end + --team and character selection complete + if start.p[1].selEnd and start.p[2].selEnd and start.p[1].teamEnd and start.p[2].teamEnd then + restoreCursor = true + if main.stageMenu and not stageEnd then --Stage select + start.p[1].screenDelay, start.p[2].screenDelay = 0, 0 + start.f_stageMenu() + if not timerReset then + timerSelect = motif.select_info.timer.displaytime + timerReset = true + end + elseif start.p[1].screenDelay <= 0 and start.p[2].screenDelay <= 0 and not fadeOutStarted then + fadeOutInit(motif.select_info.fadeout.FadeData) + fadeOutStarted = true + end + --draw stage portrait + if main.stageMenu then + --draw stage portrait background + main.f_animPosDraw(motif.select_info.stage.portrait.bg.AnimData) + --draw stage portrait (random) + if stageListNo == 0 then + main.f_animPosDraw(motif.select_info.stage.portrait.random.AnimData) + --draw stage portrait loaded from stage SFF + else + stageRef = main.t_selectableStages[stageListNo] + local portrait = motif.select_info.stage.portrait + local anim = main.t_selStages[stageRef].anim_data + local loadingPortrait = false + if getStagePreloadStatus(stageRef) ~= 'ready' and hasPortraitAnim(portrait.loading) then + portrait = portrait.loading + anim = portrait.AnimData + loadingPortrait = true + end + local x = motif.select_info.stage.pos[1] + local y = motif.select_info.stage.pos[2] + if not loadingPortrait then + x = x + portrait.offset[1] + y = y + portrait.offset[2] + end + main.f_animPosDraw(anim, x, y) + end + if not stageEnd then + local canConfirmStage = (getInput(-1, motif.select_info.done.key) and not screenDelayInterrupted) or timerSelect == -1 + if canConfirmStage then + local preloadReady = true + if stageListNo > 0 then + local stageRef = main.t_selectableStages[stageListNo] + local state = getStagePreloadStatus(stageRef) + preloadReady = state == 'ready' + if not preloadReady then + main.f_preloadBoostStage(stageRef) + else + if main.f_materializeStagePortrait(stageRef) then + start.needUpdateDrawList = true + end + end + end + if not preloadReady and getInput(-1, motif.select_info.done.key) and not screenDelayInterrupted then + sndPlay(motif.Snd, motif.select_info.cancel.snd[1], motif.select_info.cancel.snd[2]) + end + if preloadReady then + sndPlay(motif.Snd, motif.select_info.stage.done.snd[1], motif.select_info.stage.done.snd[2]) + stageTextData = motif.select_info.stage.done.TextSpriteData + stageEnd = true + end + elseif stageActiveCount < motif.select_info.stage.active.switchtime then --delay change + stageActiveCount = stageActiveCount + 1 + else + if stageActiveState then + stageActiveState = false + stageTextData = motif.select_info.stage.active2.TextSpriteData + else + stageActiveState = true + stageTextData = motif.select_info.stage.active.TextSpriteData + end + stageActiveCount = 0 + end + end + --draw stage name + local stage_text = motif.select_info.stage.random.text + if stageListNo ~= 0 then + stage_text = main.f_formatBySpec(motif.select_info.stage.text, {i = stageListNo, s = main.t_selStages[main.t_selectableStages[stageListNo]].name}) + end + textImgReset(stageTextData) + textImgSetText(stageTextData, stage_text) + textImgDraw(stageTextData) + end + else + --draw record text + textImgDraw(motif.select_info.record.TextSpriteData) + end + --draw timer + if motif.select_info.timer.count ~= -1 and (not start.p[1].teamEnd or not start.p[2].teamEnd or not start.p[1].selEnd or not start.p[2].selEnd or (main.stageMenu and not stageEnd)) and counter >= 0 then + timerSelect = main.f_drawTimer(timerSelect, motif.select_info.timer) + end + -- hook + hook.run("start.f_selectScreen") + --draw layerno = 1 backgrounds + bgDraw(motif.selectbgdef.BGDef, 1) + --frame transition + if not fadeActive() and (fadeOutStarted or start.escFlag) then + selScreenEnd = true + break --skip last frame rendering + end + refresh() + end + return not start.escFlag +end + +--;=========================================================== +--; TEAM MENU +--;=========================================================== +local t_teamActiveCount = {0, 0} +local t_teamActiveState = {false, false} + +function start.f_teamMenu(side, t) + if #t == 0 then + start.p[side].teamEnd = true + -- Team menu has no renderable entries (e.g. itemname_order hides them). + -- Still allow character selection for this side if enabled. + if not start.p[side].selEnd and #start.p[side].t_selCmd == 0 then + table.insert(start.p[side].t_selCmd, {cmd = start.f_menuCmd(side), player = side, selectState = 0}) + end + return + end + --skip selection if only 1 team mode is available and team size is fixed + if not teamMenuSelectable(t) then + if t[1].itemname == 'single' then + start.p[side].numChars = 1 + elseif t[1].itemname == 'simul' then + start.p[side].numChars = start.p[side].numSimul + elseif t[1].itemname == 'turns' then + start.p[side].numChars = start.p[side].numTurns + elseif t[1].itemname == 'tag' then + start.p[side].numChars = start.p[side].numTag + end + start.p[side].teamMode = t[1].mode + start.p[side].teamEnd = true + --otherwise display team mode selection + else + --Commands + local t_cmd = {} + if main.coop then + for i = 1, gameOption('Config.Players') do + if not gameMode('versuscoop') or (i - 1) % 2 + 1 == side then + table.insert(t_cmd, i) + end + end + else + t_cmd = {start.f_menuCmd(side)} + end + --Calculate team cursor position + if start.p[side].teamMenu > #t then + start.p[side].teamMenu = 1 + end + if #t > 1 and getInput(t_cmd, motif.select_info['p' .. side].teammenu.previous.key) then + if start.p[side].teamMenu > 1 then + sndPlay(motif.Snd, motif.select_info['p' .. side].teammenu.move.snd[1], motif.select_info['p' .. side].teammenu.move.snd[2]) + start.p[side].teamMenu = start.p[side].teamMenu - 1 + elseif motif.select_info.teammenu.move.wrapping then + sndPlay(motif.Snd, motif.select_info['p' .. side].teammenu.move.snd[1], motif.select_info['p' .. side].teammenu.move.snd[2]) + start.p[side].teamMenu = #t + end + elseif #t > 1 and getInput(t_cmd, motif.select_info['p' .. side].teammenu.next.key) then + if start.p[side].teamMenu < #t then + sndPlay(motif.Snd, motif.select_info['p' .. side].teammenu.move.snd[1], motif.select_info['p' .. side].teammenu.move.snd[2]) + start.p[side].teamMenu = start.p[side].teamMenu + 1 + elseif motif.select_info.teammenu.move.wrapping then + sndPlay(motif.Snd, motif.select_info['p' .. side].teammenu.move.snd[1], motif.select_info['p' .. side].teammenu.move.snd[2]) + start.p[side].teamMenu = 1 + end + else + local handled = hook.runFirst("start.f_teamMenu.input", side, t, t_cmd) + if handled then + -- handled by external module + elseif t[start.p[side].teamMenu].itemname == 'simul' then + if getInput(t_cmd, motif.select_info['p' .. side].teammenu.subtract.key) then + if start.p[side].numSimul > main.numSimul[1] then + sndPlay(motif.Snd, motif.select_info['p' .. side].teammenu.value.snd[1], motif.select_info['p' .. side].teammenu.value.snd[2]) + start.p[side].numSimul = start.p[side].numSimul - 1 + end + elseif getInput(t_cmd, motif.select_info['p' .. side].teammenu.add.key) then + if start.p[side].numSimul < main.numSimul[2] then + sndPlay(motif.Snd, motif.select_info['p' .. side].teammenu.value.snd[1], motif.select_info['p' .. side].teammenu.value.snd[2]) + start.p[side].numSimul = start.p[side].numSimul + 1 + end + end + elseif t[start.p[side].teamMenu].itemname == 'turns' then + if getInput(t_cmd, motif.select_info['p' .. side].teammenu.subtract.key) then + if start.p[side].numTurns > main.numTurns[1] then + sndPlay(motif.Snd, motif.select_info['p' .. side].teammenu.value.snd[1], motif.select_info['p' .. side].teammenu.value.snd[2]) + start.p[side].numTurns = start.p[side].numTurns - 1 + end + elseif getInput(t_cmd, motif.select_info['p' .. side].teammenu.add.key) then + if start.p[side].numTurns < main.numTurns[2] then + sndPlay(motif.Snd, motif.select_info['p' .. side].teammenu.value.snd[1], motif.select_info['p' .. side].teammenu.value.snd[2]) + start.p[side].numTurns = start.p[side].numTurns + 1 + end + end + elseif t[start.p[side].teamMenu].itemname == 'tag' then + if getInput(t_cmd, motif.select_info['p' .. side].teammenu.subtract.key) then + if start.p[side].numTag > main.numTag[1] then + sndPlay(motif.Snd, motif.select_info['p' .. side].teammenu.value.snd[1], motif.select_info['p' .. side].teammenu.value.snd[2]) + start.p[side].numTag = start.p[side].numTag - 1 + end + elseif getInput(t_cmd, motif.select_info['p' .. side].teammenu.add.key) then + if start.p[side].numTag < main.numTag[2] then + sndPlay(motif.Snd, motif.select_info['p' .. side].teammenu.value.snd[1], motif.select_info['p' .. side].teammenu.value.snd[2]) + start.p[side].numTag = start.p[side].numTag + 1 + end + end + end + end + --Cancel is only a hard exit on the first team's root menu. + if not start.escFlag and getInput(t_cmd, motif.select_info['p' .. side].teammenu.cancel.key) then + local backed = cancelPreviousSide(side) + sndPlay(motif.Snd, motif.select_info.cancel.snd[1], motif.select_info.cancel.snd[2]) + if backed then + timerSelect = motif.select_info.timer.displaytime + else + fadeOutInit(motif.select_info.fadeout.FadeData) + start.escFlag = true + end + end + --Draw team background + main.f_animPosDraw(motif.select_info['p' .. side].teammenu.bg.default.AnimData) + --Draw team title + if side == 2 and main.cpuSide[2] then + main.f_animPosDraw(motif.select_info['p' .. side].teammenu.enemytitle.AnimData) + textImgDraw(motif.select_info['p' .. side].teammenu.enemytitle.TextSpriteData) + else + main.f_animPosDraw(motif.select_info['p' .. side].teammenu.selftitle.AnimData) + textImgDraw(motif.select_info['p' .. side].teammenu.selftitle.TextSpriteData) + end + --Draw team cursor + main.f_animPosDraw( + motif.select_info['p' .. side].teammenu.item.cursor.AnimData, + (start.p[side].teamMenu - 1) * motif.select_info['p' .. side].teammenu.item.spacing[1], + (start.p[side].teamMenu - 1) * motif.select_info['p' .. side].teammenu.item.spacing[2] + ) + local teammenu = motif.select_info['p' .. side].teammenu + local itemCfg = teammenu.item + local valueCfg = teammenu.value + local spacingX, spacingY = itemCfg.spacing[1], itemCfg.spacing[2] + local uppercase = itemCfg.uppercase + local gm = gameMode() + for i = 1, #t do + local x = (i - 1) * spacingX + local y = (i - 1) * spacingY + local itemname = t[i].itemname + local itemText = main.f_itemnameUpper(t[i].displayname, uppercase) + local textData = itemCfg.TextSpriteData + --Draw team items + if i == start.p[side].teamMenu then + if t_teamActiveCount[side] < itemCfg.active.switchtime then --delay change + t_teamActiveCount[side] = t_teamActiveCount[side] + 1 + else + if t_teamActiveState[side] then + t_teamActiveState[side] = false + else + t_teamActiveState[side] = true + end + t_teamActiveCount[side] = 0 + end + --Draw team active item background + if teammenu.active.bg[gm .. '-' .. itemname] ~= nil then + main.f_animPosDraw(teammenu.active.bg[gm .. '-' .. itemname].AnimData) + elseif teammenu.active.bg[itemname] ~= nil then + main.f_animPosDraw(teammenu.active.bg[itemname].AnimData) + end + --Draw team active item font + if t_teamActiveState[side] then + textData = itemCfg.active2.TextSpriteData + else + textData = itemCfg.active.TextSpriteData + end + else + --Draw team not active item background + if teammenu.bg[gm .. '-' .. itemname] ~= nil then + main.f_animPosDraw(teammenu.bg[gm .. '-' .. itemname].AnimData) + elseif teammenu.bg[itemname] ~= nil then + main.f_animPosDraw(teammenu.bg[itemname].AnimData) + end + end + --Draw item font + textImgReset(textData) + textImgAddPos(textData, x, y) + textImgSetText(textData, itemText) + textImgDraw(textData) + --Draw team icons + if itemname == 'simul' then + for j = 1, main.numSimul[2] do + local vx = x + (j - 1) * valueCfg.spacing[1] + local vy = y + (j - 1) * valueCfg.spacing[2] + if j <= start.p[side].numSimul then + main.f_animPosDraw(valueCfg.icon.AnimData, vx, vy) + else + main.f_animPosDraw(valueCfg.empty.icon.AnimData, vx, vy) + end + end + elseif itemname == 'turns' then + for j = 1, main.numTurns[2] do + local vx = x + (j - 1) * valueCfg.spacing[1] + local vy = y + (j - 1) * valueCfg.spacing[2] + if j <= start.p[side].numTurns then + main.f_animPosDraw(valueCfg.icon.AnimData, vx, vy) + else + main.f_animPosDraw(valueCfg.empty.icon.AnimData, vx, vy) + end + end + elseif itemname == 'tag' then + for j = 1, main.numTag[2] do + local vx = x + (j - 1) * valueCfg.spacing[1] + local vy = y + (j - 1) * valueCfg.spacing[2] + if j <= start.p[side].numTag then + main.f_animPosDraw(valueCfg.icon.AnimData, vx, vy) + else + main.f_animPosDraw(valueCfg.empty.icon.AnimData, vx, vy) + end + end + else + hook.runFirst("start.f_teamMenu.drawItemValue", side, t, i, x, y, valueCfg) + end + end + --Confirmed team selection + if getInput(t_cmd, motif.select_info['p' .. side].teammenu.done.key) or timerSelect == -1 then + timerSelect = motif.select_info.timer.displaytime + start.p[1].screenDelay, start.p[2].screenDelay = 0, 0 + sndPlay(motif.Snd, motif.select_info['p' .. side].teammenu.done.snd[1], motif.select_info['p' .. side].teammenu.done.snd[2]) + local confirmData = hook.runFirst("start.f_teamMenu.confirm", side, t, t_cmd) + if confirmData ~= nil then + local defaultMode = t[start.p[side].teamMenu].mode + local teamMode = confirmData.teamMode or defaultMode + local numChars = confirmData.numChars or start.p[side].numChars + for k, v in pairs(confirmData) do + start.p[side][k] = v + end + start.p[side].teamMode = teamMode + start.p[side].numChars = numChars + elseif t[start.p[side].teamMenu].itemname == 'single' then + start.p[side].teamMode = t[start.p[side].teamMenu].mode + start.p[side].numChars = 1 + elseif t[start.p[side].teamMenu].itemname == 'simul' then + start.p[side].teamMode = t[start.p[side].teamMenu].mode + start.p[side].numChars = start.p[side].numSimul + elseif t[start.p[side].teamMenu].itemname == 'turns' then + start.p[side].teamMode = t[start.p[side].teamMenu].mode + start.p[side].numChars = start.p[side].numTurns + elseif t[start.p[side].teamMenu].itemname == 'tag' then + start.p[side].teamMode = t[start.p[side].teamMenu].mode + start.p[side].numChars = start.p[side].numTag + end + start.p[side].teamEnd = true + end + end + --t_selCmd table appending once team mode selection is finished + if start.p[side].teamEnd then + if main.coop and (side == 1 or gameMode('versuscoop')) then + for i = 1, start.p[side].numChars do + if gameMode('versuscoop') then + if side == 1 then + table.insert(start.p[side].t_selCmd, {cmd = getRemapInput(i * 2 - 1), player = start.f_getPlayerNo(side, #start.p[side].t_selCmd + 1), selectState = 0}) + else + table.insert(start.p[side].t_selCmd, {cmd = getRemapInput(i * 2), player = start.f_getPlayerNo(side, #start.p[side].t_selCmd + 1), selectState = 0}) + end + else + table.insert(start.p[1].t_selCmd, {cmd = getRemapInput(i), player = start.f_getPlayerNo(side, #start.p[1].t_selCmd + 1), selectState = 0}) + end + end + else + table.insert(start.p[side].t_selCmd, {cmd = start.f_menuCmd(side), player = start.f_getPlayerNo(side, #start.p[side].t_selCmd + 1), selectState = 0}) + end + end +end + +--=========================================================== +--; PALETTE SELECT +--=========================================================== +LoadedPals = {} +-- Tracks which characters have already had their palettes loaded to avoid redundant loading +local function ifCharPalsLoaded(ref) + for _, v in ipairs(LoadedPals) do + if v == ref then + return true + end + end + table.insert(LoadedPals, ref) + return false +end +-- Loads palettes for a character if needed, prepares the animation, and applies the palette +function start.loadPalettes(a, ref, pal) + if not ifCharPalsLoaded(ref) then + animLoadPalettes(a, ref) + end + local srcAnim = a + a = animPrepare(a, ref) + animApplyVel(a, srcAnim) + a = animSetColorPalette(a, pal) + return a +end + +--=========================================================== +-- Draw Palette Menu +--=========================================================== +function start.f_palMenuDraw(side, member, curIdx, validIdx ,maxIdx) + local charData = start.f_getCharData(start.p[side].t_selTemp[member].ref) + if not charData or not charData.pal then return end + local palIndex = start.p[side].t_selTemp[member].pal + local totalPals = #charData.pal + local pn = 2 * (member - 1) + side + local pCfg = f_getMotifP(motif.select_info, pn, side) + local displayText = (curIdx == maxIdx) and pCfg.palmenu.random.text or tostring(validIdx) + -- bg + main.f_animPosDraw(pCfg.palmenu.bg.AnimData) + -- draw number + textImgReset(pCfg.palmenu.number.TextSpriteData) + textImgSetText(pCfg.palmenu.number.TextSpriteData, displayText) + textImgDraw(pCfg.palmenu.number.TextSpriteData) + -- draw text + textImgReset(pCfg.palmenu.text.TextSpriteData) + textImgDraw(pCfg.palmenu.text.TextSpriteData) +end + +--returns a random palette (using synced RNG) +function start.f_randomPal(charRef, validPals) + start.shufflePals = start.shufflePals or {} + start.shufflePals[charRef] = start.shufflePals[charRef] or {} + + if #start.shufflePals[charRef] == 0 then + local last = start.lastRandomPal and start.lastRandomPal[charRef] + local t = {} + for _, v in ipairs(validPals) do + table.insert(t, v) + end + start.f_shuffleTable(t, last) + start.shufflePals[charRef] = t + end + -- draw one palette from the bag + local result = table.remove(start.shufflePals[charRef]) + -- store last drawn palette + start.lastRandomPal = start.lastRandomPal or {} + start.lastRandomPal[charRef] = result + return result +end + +local function resolvePalConflict(side, charRef, pal) + local charData = start.f_getCharData(charRef) + if not charData or not charData.pal then + return pal + end + local usedPals = {} + for s = 1, 2 do + for _, sel in ipairs(start.p[s].t_selected) do + if sel.ref == charRef and sel.pal then + usedPals[sel.pal] = true + end + end + end + -- if the chosen palette is not used, keep it + if not usedPals[pal] then + return validatePal(pal, charRef) + end + -- if it's in use, try to find the next free one + local maxPal = gameOption('Config.PaletteMax') + for i = pal + 1, maxPal do + if not usedPals[i] then + return validatePal(i, charRef) + end + end + for i = 1, pal - 1 do + if not usedPals[i] then + return validatePal(i, charRef) + end + end + + return validatePal(pal, charRef) +end + +local function applyPalette(sel, charData, palIndex) + if sel.face_data then + local srcAnim = sel.face_data + sel.face_data = animSetColorPalette(sel.face_data, palIndex) + end + if sel.face2_data then + local srcAnim = sel.face2_data + sel.face2_data = animSetColorPalette(sel.face2_data, palIndex) + end +end + +-- palette select menu +function start.f_palMenu(side, cmd, player, member, selectState) + local st = start.p[side].t_selTemp[member] + local charRef = st.ref + local charData = start.f_getCharData(charRef) + local pn = 2 * (member - 1) + side + local pCfg = f_getMotifP(motif.select_info, pn, side) + -- initialize palette list and index if character changed or not yet set + if st.validPalsCharRef ~= charRef or not st.validPals then + local valid, seen, cur = {}, {}, validatePal(1, charRef) + valid[1], seen[cur] = cur, true + for i = 1, #charData.pal do + local nextp = validatePal(cur + 1, charRef) + if seen[nextp] then break end + table.insert(valid, nextp) + seen[nextp], cur = true, nextp + end + st.validPals, st.validPalsCharRef = valid, charRef + -- set current index to match current palette (or default to first) + local curPal = st.pal or valid[1] + st.currentIdx = 1 + for i, p in ipairs(valid) do + if p == curPal then st.currentIdx = i; break end + end + end + + local validPals = st.validPals + local curIdx = st.currentIdx or 1 + local pal = st.pal or validPals[curIdx] + local maxIdx = #validPals + 1 + start.p[side].inPalMenu = true + + -- accept selection + local autoConfirm = #validPals <= 1 + if autoConfirm or getInput(cmd, motif.select_info['p' .. side].palmenu.done.key) or timerSelect == -1 then + -- TODO: There's an issue here where when the palette is selected there will be 1 frame without any cursor + -- Since the "done" cursor only appears in the next frame + pal = (curIdx == maxIdx) and (start.c[player].randPalPreview or start.f_randomPal(charRef, validPals)) or validPals[curIdx] + st.pal, st.currentIdx = pal, curIdx + + -- done anim after pal confirmation - primary face + local done_anim = pCfg.face.done.anim + local done_spr = pCfg.face.done.spr + local preview_anim = pCfg.palmenu.preview.anim + if done_anim ~= preview_anim or done_spr[1] ~= -1 then + if (st.face_anim ~= done_anim or done_spr[1] ~= -1) and ((main.coop and not motif.select_info.coopqueue) or motif.select_info['p' .. side].face.num > 1 or main.f_tableLength(start.p[side].t_selected) + 1 == start.p[side].numChars) then + local a = start.f_animGet(start.c[player].selRef, side, member, pCfg.face.done, pCfg.face, false, st.face_data) + if a then + st.face_data = start.loadPalettes(a, charRef, pal) + animUpdate(st.face_data) + start.p[side].screenDelay = math.min(120, math.max(start.p[side].screenDelay, animGetLength(st.face_data))) + end + end + end + + -- face2 "done" anim after pal confirmation + local done_anim2 = pCfg.face2.done.anim + if st.face2_anim ~= done_anim2 and ((main.coop and not motif.select_info.coopqueue) or motif.select_info['p' .. side].face2.num > 1 or main.f_tableLength(start.p[side].t_selected) + 1 == start.p[side].numChars) then + local a = start.f_animGet(start.c[player].selRef, side, member, pCfg.face2.done, pCfg.face2, false, st.face2_data) + if a then + st.face2_data = start.loadPalettes(a, charRef, pal) + animUpdate(st.face2_data) + start.p[side].screenDelay = math.min(120, math.max(start.p[side].screenDelay, animGetLength(st.face2_data))) + end + end + selectState = 3 + start.f_playWave(start.c[player].selRef, 'cursor', motif.select_info['p' .. side].select.snd[1], motif.select_info['p' .. side].select.snd[2]) + -- Skip cursor sound for auto-confirmation, since we already played the select character confirmation sound + if not autoConfirm then + sndPlay(motif.Snd, motif.select_info['p' .. side].palmenu.done.snd[1], motif.select_info['p' .. side].palmenu.done.snd[2]) + end + -- next palette + elseif getInput(cmd, motif.select_info['p' .. side].palmenu.next.key) then + curIdx = (curIdx == maxIdx) and 1 or curIdx + 1 + st.currentIdx = curIdx + if curIdx < maxIdx then + applyPalette(st, charData, validPals[curIdx]) + end + sndPlay(motif.Snd, motif.select_info['p' .. side].palmenu.value.snd[1], motif.select_info['p' .. side].palmenu.value.snd[2]) + -- previous palette + elseif getInput(cmd, motif.select_info['p' .. side].palmenu.previous.key) then + curIdx = (curIdx == 1) and maxIdx or curIdx - 1 + st.currentIdx = curIdx + if curIdx < maxIdx then + applyPalette(st, charData, validPals[curIdx]) + end + sndPlay(motif.Snd, motif.select_info['p' .. side].palmenu.value.snd[1], motif.select_info['p' .. side].palmenu.value.snd[2]) + -- cancel + elseif getInput(cmd, motif.select_info['p' .. side].palmenu.cancel.key) then + resetSelectMember(side, member, charRef) + selectState = 0 + sndPlay(motif.Snd, motif.select_info['p' .. side].palmenu.cancel.snd[1], motif.select_info['p' .. side].palmenu.cancel.snd[2]) + end + -- random hotkey + if getInput(cmd, motif.select_info['p' .. side].palmenu.random.key) then + curIdx, st.currentIdx = maxIdx, maxIdx + end + -- random preview update + if st.currentIdx == maxIdx then + if not start.c[player].randPalCnt or start.c[player].randPalCnt <= 0 then + start.c[player].randPalCnt = motif.select_info.palmenu.random.switchtime + start.c[player].randPalPreview = start.f_randomPal(charRef, validPals) + if motif.select_info.palmenu.random.applypal then + applyPalette(st, charData, start.c[player].randPalPreview) + else + applyPalette(st, charData, 1) + end + sndPlay(motif.Snd, motif.select_info['p' .. side].palmenu.value.snd[1], motif.select_info['p' .. side].palmenu.value.snd[2]) + else + start.c[player].randPalCnt = start.c[player].randPalCnt - 1 + end + end + start.f_palMenuDraw(side, member, curIdx, validPals[curIdx], maxIdx) + return selectState +end + +--;=========================================================== +--; SELECT MENU +--;=========================================================== +function start.f_selectMenu(side, cmd, player, member, selectState) + local needUpdateDrawList = false + --predefined selection + if main.forceChar[side] ~= nil then + local t = {} + for _, v in ipairs(main.forceChar[side]) do + if t[v] == nil then + t[v] = '' + end + table.insert(start.p[side].t_selected, { + ref = v, + pal = start.f_selectPal(v), + --pn = start.f_getPlayerNo(side, #start.p[side].t_selected + 1), + --cursor = = {}, + }) + end + start.p[side].selEnd = true + return 0, false + --manual selection + elseif not start.p[side].selEnd then + local pn = 2 * (member - 1) + side + local pCfg = f_getMotifP(motif.select_info, pn, side) + --cell not selected yet + if selectState == 0 then + --restore cursor coordinates + if restoreCursor then + -- remove entries if stored cursors exceeds team size + if #start.p[side].t_cursor > start.p[side].numChars then + for i = #start.p[side].t_cursor, start.p[side].numChars + 1, -1 do + start.p[side].t_cursor[i] = nil + end + end + -- restore saved position + if start.p[side].t_cursor[member] ~= nil then + local selX = start.p[side].t_cursor[member].x + local selY = start.p[side].t_cursor[member].y + if gameOption('Options.Team.Duplicates') or t_reservedChars[side][start.t_grid[selY + 1][selX + 1].char_ref] == nil then + start.c[player].selX = selX + start.c[player].selY = selY + end + start.p[side].t_cursor[member] = nil + end + end + --calculate current position + start.c[player].selX, start.c[player].selY = start.f_cellMovement(start.c[player].selX, start.c[player].selY, cmd, side, start.f_getCursorData(player).cursor.move.snd) + start.c[player].cell = start.c[player].selX + motif.select_info.columns * start.c[player].selY + start.c[player].selRef = start.f_selGrid(start.c[player].cell + 1).char_ref + main.f_preloadSetCharHighlight(player, start.c[player].selRef) + -- temp data not existing yet + if start.p[side].t_selTemp[member] == nil then + t_portraitPriority[side] = member + table.insert(start.p[side].t_selTemp, { + ref = start.c[player].selRef, + cell = start.c[player].cell, + inRandom = false, + slotConfirmed = false, + face_anim = pCfg.face.anim, + face_data = start.f_animGet(start.c[player].selRef, side, member, pCfg.face, nil, true), + face2_anim = pCfg.face2.anim, + face2_data = start.f_animGet(start.c[player].selRef, side, member, pCfg.face2, nil, true), + }) + else + local updateAnim = false + local slotSelected,slotChanged = start.f_slotSelected(start.c[player].cell + 1, side, cmd, player, start.c[player].selX, start.c[player].selY) + local timerExpired = motif.select_info.timer.count ~= -1 and timerSelect == -1 + needUpdateDrawList = slotChanged + local velCopy = false + if slotChanged then + start.c[player].selRef = start.f_selGrid(start.c[player].cell + 1).char_ref + end + if timerExpired then + if start.c[player].selRef == nil or main.t_selChars[start.c[player].selRef + 1] == nil then + start.c[player].selRef = start.f_randomChar(side) + end + end + -- cursor changed position or character change within current slot + if start.p[side].t_selTemp[member].cell ~= start.c[player].cell or start.p[side].t_selTemp[member].ref ~= start.c[player].selRef then + if start.p[side].t_selTemp[member].cell ~= start.c[player].cell then + t_portraitPriority[side] = member + end + --start.p[side].t_selTemp[member].pal = 1 + start.p[side].t_selTemp[member].ref = start.c[player].selRef + start.p[side].t_selTemp[member].cell = start.c[player].cell + start.p[side].t_selTemp[member].face_anim = pCfg.face.anim + start.p[side].t_selTemp[member].face2_anim = pCfg.face2.anim + if start.f_getCursorData(player).cursor.reset then + resetCursorData(player, 'active') + end + updateAnim = true + end + -- cursor at randomselect cell + if start.f_selGrid(start.c[player].cell + 1).char == 'randomselect' or start.f_selGrid(start.c[player].cell + 1).hidden == 3 then + local wasRandom = start.p[side].t_selTemp[member].inRandom + start.p[side].t_selTemp[member].inRandom = true + velCopy = wasRandom + -- re-entering random slot: reset random overlay anims so sliding restarts + if not wasRandom then + local pData = pCfg + if pData.face2.random then + animReset(pData.face2.random.AnimData) + animUpdate(pData.face2.random.AnimData) + end + if pData.face.random then + animReset(pData.face.random.AnimData) + animUpdate(pData.face.random.AnimData) + end + end + if start.c[player].randCnt > 0 then + start.c[player].randCnt = start.c[player].randCnt - 1 + start.c[player].selRef = start.c[player].randRef + else + if motif.select_info.random.move.snd.cancel then + sndStop(motif.Snd, start.f_getCursorData(player).random.move.snd[1], start.f_getCursorData(player).random.move.snd[2]) + end + sndPlay(motif.Snd, start.f_getCursorData(player).random.move.snd[1], start.f_getCursorData(player).random.move.snd[2]) + start.c[player].randCnt = motif.select_info.cell.random.switchtime + start.c[player].selRef = start.f_randomChar(side) + if start.c[player].randRef ~= start.c[player].selRef or start.p[side].t_selTemp[member].face_data == nil then + updateAnim = true + start.c[player].randRef = start.c[player].selRef + end + end + else + start.p[side].t_selTemp[member].inRandom = false + end + main.f_preloadSetCharHighlight(player, start.c[player].selRef) + -- update anim data + if updateAnim then + local face_data = velCopy and start.p[side].t_selTemp[member].face_data or nil + local face2_data = velCopy and start.p[side].t_selTemp[member].face2_data or nil + start.p[side].t_selTemp[member].face_data = start.f_animGet(start.c[player].selRef, side, member, pCfg.face, nil, true, face_data) + start.p[side].t_selTemp[member].face2_data = start.f_animGet(start.c[player].selRef, side, member, pCfg.face2, nil, true, face2_data) + end + -- cell selected or select screen timer reached 0 + local canConfirm = (slotSelected and start.f_selGrid(start.c[player].cell + 1).char ~= nil and start.f_selGrid(start.c[player].cell + 1).hidden ~= 2) or timerExpired + if canConfirm then + local preloadReady = true + if start.c[player].selRef ~= nil then + local state = getCharPreloadStatus(start.c[player].selRef) + preloadReady = state == 'ready' + if not preloadReady then + main.f_preloadBoostChar(start.c[player].selRef) + else + main.f_materializeCharByRef(start.c[player].selRef) + end + end + if not preloadReady then + if slotSelected then + sndPlay(motif.Snd, motif.select_info.cancel.snd[1], motif.select_info.cancel.snd[2]) + end + canConfirm = false + end + end + if canConfirm then + if motif.select_info.paletteselect ~= 0 then + timerSelect = motif.select_info.timer.displaytime + end + sndPlay(motif.Snd, start.f_getCursorData(player).cursor.done.default.snd[1], start.f_getCursorData(player).cursor.done.default.snd[2]) + if motif.select_info.paletteselect == 0 then + start.f_playWave(start.c[player].selRef, 'cursor', motif.select_info['p' .. side].select.snd[1], motif.select_info['p' .. side].select.snd[2]) + end + if motif.select_info.paletteselect > 0 then + resetCursorData(player, 'done') + end + start.p[side].t_selTemp[member].pal = main.f_btnPalNo(cmd) + start.p[side].t_selTemp[member].inRandom = false + start.p[side].t_selTemp[member].slotConfirmed = true + if not gameOption('Options.Team.Duplicates') then + t_reservedChars[side][start.c[player].selRef] = true + end + if start.p[side].t_selTemp[member].pal == nil or start.p[side].t_selTemp[member].pal == 0 then + start.p[side].t_selTemp[member].pal = 1 + end + -- done anim helper + local function setDoneAnim(ref, side, member, params, velParams, targetField) + local a = start.f_animGet(ref, side, member, params, velParams, false, start.p[side].t_selTemp[member][targetField]) + if a then + start.p[side].t_selTemp[member][targetField] = a + start.p[side].screenDelay = math.min(120, math.max(start.p[side].screenDelay, animGetLength(a))) + end + end + -- if select anim differs from done anim and coop or pX.face.num allows to display more than 1 portrait or it's the last team member + local done_anim = pCfg.face.done.anim + local done_anim2 = pCfg.face2.done.anim + local done_spr = pCfg.face.done.spr + local palmenu_preview_anim = pCfg.palmenu.preview.anim + local palmenu_preview_spr = pCfg.palmenu.preview.spr + local face_anim = start.p[side].t_selTemp[member].face_anim + local face2_anim = start.p[side].t_selTemp[member].face2_anim + local canShow = (main.coop and not motif.select_info.coopqueue) or motif.select_info['p' .. side].face.num > 1 or main.f_tableLength(start.p[side].t_selected) + 1 == start.p[side].numChars + local canShow2 = (main.coop and not motif.select_info.coopqueue) or motif.select_info['p' .. side].face2.num > 1 or main.f_tableLength(start.p[side].t_selected) + 1 == start.p[side].numChars + -- primary face "done" / preview + if canShow then + if motif.select_info.paletteselect == 0 then + if (face_anim ~= done_anim or done_spr[1] ~= -1) and (done_anim ~= -1 or done_spr[1] ~= -1) then + setDoneAnim(start.c[player].selRef, side, member, pCfg.face.done, pCfg.face, 'face_data') + end + elseif palmenu_preview_anim ~= -1 or palmenu_preview_spr[1] ~= -1 then + start.f_playWave(start.c[player].selRef, 'cursor', motif.select_info['p' .. side].palmenu.preview.snd[1], motif.select_info['p' .. side].palmenu.preview.snd[2]) + setDoneAnim(start.c[player].selRef, side, member, pCfg.palmenu.preview, pCfg.face, 'face_data') + end + end + -- face2 "done" anim + if face2_anim ~= done_anim and canShow2 and done_anim2 ~= -1 then + setDoneAnim(start.c[player].selRef, side, member, pCfg.face2.done, pCfg.face2, 'face2_data') + end + + start.p[side].t_selTemp[member].ref = start.c[player].selRef + local charRef = start.p[side].t_selTemp[member].ref + local charData = start.f_getCharData(charRef) + local pal = start.p[side].t_selTemp[member].pal + local finalPal + + if motif.select_info.paletteselect == 1 then + finalPal = 1 + elseif motif.select_info.paletteselect == 2 then + finalPal = pal + elseif motif.select_info.paletteselect == 3 then + finalPal = start.f_keyPalMap(charRef, pal) + else + finalPal = start.f_keyPalMap(charRef, pal) + end + + -- resolve visual palette conflict + finalPal = resolvePalConflict(side, charRef, finalPal) + + if motif.select_info.paletteselect > 0 then + start.p[side].t_selTemp[member].pal = finalPal + end + + if start.p[side].t_selTemp[member].face_data ~= nil then + local applyFlag = pCfg.face.applypal + if applyFlag then + start.p[side].t_selTemp[member].face_data = start.loadPalettes(start.p[side].t_selTemp[member].face_data, charRef, finalPal) + animUpdate(start.p[side].t_selTemp[member].face_data) + end + end + if start.p[side].t_selTemp[member].face2_data ~= nil then + local applyFlag = pCfg.face2.applypal + if applyFlag then + start.p[side].t_selTemp[member].face2_data = start.loadPalettes(start.p[side].t_selTemp[member].face2_data, charRef, finalPal) + animUpdate(start.p[side].t_selTemp[member].face2_data) + end + end + selectState = 1 + end + end + --selection menu + elseif selectState == 1 then + if motif.select_info.paletteselect and motif.select_info.paletteselect > 0 then + selectState = start.f_palMenu(side, cmd, player, member, selectState) + else + selectState = 3 + end + --confirm selection + elseif selectState == 3 then + local valid = {1,2,3} + local finalPal + for _, v in ipairs(valid) do + if motif.select_info.paletteselect == v then + finalPal = start.p[side].t_selTemp[member].pal + start.p[side].inPalMenu = false + break + end + end + finalPal = finalPal or start.f_selectPal(start.c[player].selRef, start.p[side].t_selTemp[member].pal) + finalPal = resolvePalConflict(side, start.c[player].selRef, finalPal) + applyPalette(start.p[side].t_selTemp[member], start.f_getCharData(start.c[player].selRef), finalPal) + start.p[side].t_selected[member] = { + ref = start.c[player].selRef, + pal = finalPal, + pn = start.f_getPlayerNo(side, member), + cursor = {start.c[player].selX, start.c[player].selY}, + } + main.f_preloadSetCharHighlight(player, nil) + hook.run("start.f_selectMenu.selected", side, member, start.p[side].t_selected[member], start.p[side], player) + if not gameOption('Options.Team.Duplicates') then + t_reservedChars[side][start.c[player].selRef] = true + end + -- If we just confirmed a pick while hovering Random Select, force the random preview to advance for the next team member. + -- This prevents mashing select from picking the same random character repeatedly. + local cellIdx = (start.c[player].cell or -1) + 1 + if cellIdx > 0 then + local g = start.f_selGrid(cellIdx) + if g.char == 'randomselect' or g.hidden == 3 then + start.c[player].randCnt = 0 + start.c[player].randRef = nil + end + end + start.p[side].t_cursor[member] = {x = start.c[player].selX, y = start.c[player].selY} + if main.f_tableLength(start.p[side].t_selected) == start.p[side].numChars then --if all characters have been chosen + if side == 1 and main.cpuSide[2] and start.reset then --if player1 is allowed to select p2 characters + start.p[2].selEnd = not main.selectMenu[2] + start.p[2].t_selCmd = {} + if timerSelect == -1 then + start.p[2].teamMode = start.p[1].teamMode + start.p[2].numChars = start.p[1].numChars + start.c[2].cell = start.c[1].cell + start.c[2].selX = start.c[1].selX + start.c[2].selY = start.c[1].selY + start.p[2].teamEnd = false + else + start.p[2].teamEnd = false + end + end + start.p[side].selEnd = true + elseif not gameOption('Options.Team.Duplicates') and start.t_grid[start.c[player].selY + 1][start.c[player].selX + 1].char ~= 'randomselect' then + local t_dirs = {'F', 'B', 'D', 'U'} + if start.c[player].selY + 1 >= motif.select_info.rows then --next row not visible on the screen + t_dirs = {'F', 'B', 'U', 'D'} + end + for _, v in ipairs(t_dirs) do + local selX, selY = start.f_cellMovement(start.c[player].selX, start.c[player].selY, cmd, side, start.f_getCursorData(player).cursor.move.snd, v) + if start.t_grid[selY + 1][selX + 1].char ~= nil and (selX ~= start.c[player].selX or selY ~= start.c[player].selY) then + start.c[player].selX, start.c[player].selY = selX, selY + break + end + end + end + if not start.p[1].teamEnd or not start.p[2].teamEnd or not start.p[1].selEnd or not start.p[2].selEnd then + timerSelect = motif.select_info.timer.displaytime + end + if main.coop and (side == 1 or gameMode('versuscoop')) then --remaining members are controlled by different players + selectState = 4 + elseif not start.p[side].selEnd then --next member controlled by this player should become selectable + selectState = 0 + end + end + end + return selectState, needUpdateDrawList +end + +--;=========================================================== +--; STAGE MENU +--;=========================================================== +function start.f_stageMenu() + local n = stageListNo + local randomMode = { + [0] = { init = 1, min = 1 }, -- disabled + [1] = { init = 0, min = 0 }, -- default + [2] = { init = 1, min = 0 }, -- random at the 'end' + } + + local r = randomMode[motif.select_info.stage_randomselect] or randomMode[1] + local stageListIdx = r.init + local stageListMinIdx = r.min + local stageListMaxIdx = #main.t_selectableStages + + if getInput(-1, motif.select_info.cell.left.key) then + sndPlay(motif.Snd, motif.select_info.stage.move.snd[1], motif.select_info.stage.move.snd[2]) + stageListNo = stageListNo - 1 + if stageListNo < stageListMinIdx then stageListNo = stageListMaxIdx end + elseif getInput(-1, motif.select_info.cell.right.key) then + sndPlay(motif.Snd, motif.select_info.stage.move.snd[1], motif.select_info.stage.move.snd[2]) + stageListNo = stageListNo + 1 + if stageListNo > stageListMaxIdx then stageListNo = stageListMinIdx end + elseif getInput(-1, motif.select_info.cell.up.key) then + sndPlay(motif.Snd, motif.select_info.stage.move.snd[1], motif.select_info.stage.move.snd[2]) + for i = 1, 10 do + stageListNo = stageListNo - 1 + if stageListNo < stageListMinIdx then stageListNo = stageListMaxIdx end + end + elseif getInput(-1, motif.select_info.cell.down.key) then + sndPlay(motif.Snd, motif.select_info.stage.move.snd[1], motif.select_info.stage.move.snd[2]) + for i = 1, 10 do + stageListNo = stageListNo + 1 + if stageListNo > stageListMaxIdx then stageListNo = stageListMinIdx end + end + end + if n ~= stageListNo and stageListNo > 0 then + animReset(main.t_selStages[main.t_selectableStages[stageListNo]].anim_data) + animUpdate(main.t_selStages[main.t_selectableStages[stageListNo]].anim_data) + end + if stageListNo > 0 then + main.f_preloadBoostStage(main.t_selectableStages[stageListNo]) + end +end + +--;=========================================================== +--; VERSUS SCREEN / ORDER SELECTION +--;=========================================================== +-- Build params for loadStart() +function start.f_buildLoadStartParams(arg, doSelectMissing, t_orderRemap) + local parts = {} + local t = {} + local musicParams = arg + if type(arg) == "table" then + t = arg + musicParams = t.musicParams + end + if musicParams and musicParams ~= "" then + parts[#parts + 1] = musicParams + end + local function addParam(k, v) + if v == nil or v == "" then + return + end + parts[#parts + 1] = k .. "=" .. tostring(v) + end + addParam("continue", main.f_arg(t.continue, main.motif.continuescreen)) + addParam("quickcontinue", main.f_arg(t.quickcontinue, defaultQuickContinue())) + addParam("vsscreen", main.f_arg(t.vsscreen, main.motif.vsscreen)) + addParam("victoryscreen", main.f_arg(t.victoryscreen, main.motif.victoryscreen)) + addParam("winscreen", main.f_arg(t.winscreen, main.motif.winscreen)) + addParam("order", t.order) + addParam("stage", t.stage) + addParam("ai", t.ai) + addParam("time", t.roundtime or t.time) + addParam("lua", t.lua) + addParam("charparam.ai", main.charparam.ai) + addParam("charparam.arcadepath", main.charparam.arcadepath) + addParam("charparam.music", main.charparam.music) + addParam("charparam.rounds", main.charparam.rounds) + addParam("charparam.single", main.charparam.single) + addParam("charparam.stage", main.charparam.stage) + addParam("charparam.time", main.charparam.time) + addParam("p1.turnsoffset", start.p[1].turnsOffset or 0) + addParam("p2.turnsoffset", start.p[2].turnsOffset or 0) + addParam("pausemenu", main.pauseMenu) + addParam("persistlife", main.persistLife) + addParam("persistmusic", main.persistMusic) + addParam("persistrounds", main.persistRounds) + addParam("rankingcondition", main.rankingCondition) + return table.concat(parts, ", ") +end + +-- Build per-member override params for selectChar(). +function start.f_buildOverrideParams(side, member, v) + local parts = {} + local function addParam(field, val) + if val == nil then return end + parts[#parts + 1] = string.format("p%d.%d.%s=%s", side, member, field, tostring(val)) + end + hook.run("start.f_selectLoading.member", v) + addParam("life", v.life) + addParam("lifemax", v.lifeMax) + addParam("power", v.power) + addParam("dizzypoints", v.dizzyPoints) + addParam("guardpoints", v.guardPoints) + addParam("existed", v.existed) + if type(v.maps) == "table" then + for mapName, mapValue in pairs(v.maps) do + if type(mapName) == "string" and mapValue ~= nil then + local key = mapName + if key:sub(1, 4):lower() == "map." then + key = key:sub(5) + end + if key ~= "" then + addParam("map." .. key, mapValue) + end + end + end + end + return table.concat(parts, ", ") +end + +function start.f_selectVersus(active, t_orderSelect, loadStartArg) + start.t_orderRemap = {{}, {}} + start.bgLoadStarted = false + for side = 1, 2 do + -- populate order remap table with default values + for i = 1, #start.p[side].t_selected do + table.insert(start.t_orderRemap[side], i) + end + -- prevent order select if not enabled in screenpack or if team size = 1 + if t_orderSelect[side] then + t_orderSelect[side] = motif.vs_screen.orderselect.enabled and #start.p[side].t_selected > 1 + -- In Turns Survival after any defeats, order selection would break the invariant that + -- defeated members are a prefix of the roster, so should be disabled. + if start.p[side].teamMode == 2 and (start.p[side].turnsOffset or 0) > 0 then + t_orderSelect[side] = false + end + end + -- reset order-confirm flags and selection flags + for _, v in ipairs(start.p[side].t_selected) do + main.f_preloadBoostChar(v.ref) + v.loading = false + v.selected = false + end + end + -- skip versus screen if vs screen is disabled or p2 side char has vsscreen select.def flag set to 0 + for _, v in ipairs(start.p[2].t_selected) do + if start.f_getCharData(v.ref).vsscreen == 0 then + active = false + break + end + end + if not active then + clearColor(motif.versusbgdef.bgclearcolor[1], motif.versusbgdef.bgclearcolor[2], motif.versusbgdef.bgclearcolor[3]) + return true + end + textImgReset(motif.vs_screen.match.TextSpriteData) + textImgSetText(motif.vs_screen.match.TextSpriteData, string.format(motif.vs_screen.match.text, matchNo())) + bgReset(motif.versusbgdef.BGDef) + fadeInInit(motif.vs_screen.fadein.FadeData) + local fadeOutStarted = false + playBgm({source = "motif.vs"}) + start.f_resetTempData(motif.vs_screen, '') + start.f_playWave(getStageNo(), 'stage', motif.vs_screen.stage.snd[1], motif.vs_screen.stage.snd[2]) + local counter = 0 - motif.vs_screen.fadein.time + local bgLoading = gameOption('Config.VsScreenLoading') + local done = (not t_orderSelect[1] and not t_orderSelect[2]) -- both sides having order disabled + local timerActive = not done + local timerCount = 0 + local escFlag = false + local doneKeyReady = done + local t_order = {{}, {}} + local cpuOrderFinalized = {false, false} + local t_icon = {false, false} + local selStageNo = getStageNo() + local loadStarted = false + local netReady = false + local readyToLeave = not bgLoading + local wantSkip = false + local wantDone = false + + -- Reset stage portrait animation if it was already seen when entering the VS screen + resetStagePortraitAnim(selStageNo, 'vs_anim_data') + + -- Background loading: start async loader immediately. + if bgLoading then + local params = start.f_buildLoadStartParams(loadStartArg, false, start.t_orderRemap) + if gameOption('Debug.DumpLuaTables') then main.f_printTable(params, "debug/loadStartParams.txt") end + resetGameParams() + loadStart(params) + loadStarted = true + start.bgLoadStarted = true + -- Sides without order select: select everyone immediately so loading can begin. + for side = 1, 2 do + if not t_orderSelect[side] then + for member, v in ipairs(start.p[side].t_selected) do + if not v.selected then + selectChar(side, v.ref, v.pal, start.f_buildOverrideParams(side, member, v)) + v.selected = true + end + v.loading = true + t_order[side][#t_order[side] + 1] = member + end + t_icon[side] = nil + end + end + end + + local function finishOrderSelection(side) + for member, v in ipairs(start.p[side].t_selected) do + if not v.loading then + t_order[side][#t_order[side] + 1] = member + local slot = #t_order[side] + if not v.selected then + if bgLoading then + selectChar(side, v.ref, v.pal, start.f_buildOverrideParams(side, slot, v)) + else + selectChar(side, v.ref, v.pal) + end + v.selected = true + end + v.loading = true + end + end + if #start.p[side].t_selected == #t_order[side] then + t_icon[side] = nil + end + end + while true do + main.f_preloadTick(4) + local snd = false + -- CPU order select: randomize first, then selectChar() using randomized slot order + for side = 1, 2 do + if main.cpuSide[side] and t_orderSelect[side] and not cpuOrderFinalized[side] then + t_order[side] = {} + for i = 1, #start.p[side].t_selected do + t_order[side][i] = i + end + main.f_tableShuffle(t_order[side]) + for slot, idx in ipairs(t_order[side]) do + local v = start.p[side].t_selected[idx] + if bgLoading and not v.selected then + selectChar(side, v.ref, v.pal, start.f_buildOverrideParams(side, slot, v)) + v.selected = true + end + v.loading = true + end + t_icon[side] = nil + cpuOrderFinalized[side] = true + end + end + -- for each team side member + for side = 1, 2 do + if not done and t_orderSelect[side] and not main.cpuSide[side] and getInput(side, motif.vs_screen.skip.key) then + finishOrderSelection(side) + if not snd then + sndPlay(motif.Snd, motif.vs_screen['p' .. side].value.snd[1], motif.vs_screen['p' .. side].value.snd[2]) + snd = true + end + end + for k, v in ipairs(start.p[side].t_selected) do + local pn = 2 * (k - 1) + side + local pCfg = f_getMotifP(motif.vs_screen, pn, side) + -- until loading flag is set + if not v.loading then + -- Timeout: append all remaining members in default order and confirm them. + if timerCount == -1 then + for kk, vv in ipairs(start.p[side].t_selected) do + if not vv.loading then + t_order[side][#t_order[side] + 1] = kk + local slot = #t_order[side] + if not vv.selected then + if bgLoading then + selectChar(side, vv.ref, vv.pal, start.f_buildOverrideParams(side, slot, vv)) + else + selectChar(side, vv.ref, vv.pal) + end + vv.selected = true + end + vv.loading = true + end + end + t_icon[side] = nil + if not snd then + sndPlay(motif.Snd, motif.vs_screen['p' .. side].value.snd[1], motif.vs_screen['p' .. side].value.snd[2]) + snd = true + end + -- CPU / no-key / auto-confirm path + elseif not t_orderSelect[side] or main.cpuSide[side] or (#pCfg.key == 0 and #t_order[side] == k - 1) then + t_order[side][#t_order[side] + 1] = k + local slot = #t_order[side] + if bgLoading and not v.selected then + selectChar(side, v.ref, v.pal, start.f_buildOverrideParams(side, slot, v)) + v.selected = true + end + v.loading = true + if #start.p[side].t_selected == #t_order[side] then + t_icon[side] = nil + end + elseif getInput(side, pCfg.key) or (#start.p[side].t_selected == #t_order[side] + 1) then + t_order[side][#t_order[side] + 1] = k + local slot = #t_order[side] + if bgLoading and not v.selected then + selectChar(side, v.ref, v.pal, start.f_buildOverrideParams(side, slot, v)) + v.selected = true + end + if not bgLoading and not v.selected then + selectChar(side, v.ref, v.pal) + v.selected = true + end + v.loading = true + -- if it's the last unordered team member + if #start.p[side].t_selected == #t_order[side] then + t_icon[side] = nil + end + -- play sound only once in particular frame + if not snd then + sndPlay(motif.Snd, motif.vs_screen['p' .. side].value.snd[1], motif.vs_screen['p' .. side].value.snd[2]) + snd = true + end + end + end + end + end + -- do once if both sides confirmed order selection + if not done and #start.p[1].t_selected == #t_order[1] and #start.p[2].t_selected == #t_order[2] then + for side = 1, 2 do + -- rearrange characters in selection order + for k, v in ipairs(t_order[side]) do + start.t_orderRemap[side][k] = v + end + -- rebuild portrait data using final order positions + for member, srcMember in ipairs(start.t_orderRemap[side]) do + local v = start.p[side].t_selected[srcMember] + local portrait = start.p[side].t_selTemp[srcMember] + local pn = 2 * (member - 1) + side + local pCfg = f_getMotifP(motif.vs_screen, pn, side) + local faceCfg = pCfg + if pCfg.done.anim ~= -1 or pCfg.done.spr[1] ~= -1 then + faceCfg = pCfg.done + end + portrait.face_anim = faceCfg.anim + portrait.face_data = start.f_animGet(v.ref, side, srcMember, faceCfg, pCfg, false, portrait.face_data) + local face2Cfg = pCfg.face2 + if pCfg.face2.done.anim ~= -1 or pCfg.face2.done.spr[1] ~= -1 then + face2Cfg = pCfg.face2.done + end + portrait.face2_anim = face2Cfg.anim + portrait.face2_data = start.f_animGet(v.ref, side, srcMember, face2Cfg, pCfg.face2, false, portrait.face2_data) + end + if t_orderSelect[side] then + t_icon[side] = true + end + end + counter = motif.vs_screen.time - motif.vs_screen.done.time + done = true + doneKeyReady = false + end + counter = counter + 1 + --draw clearcolor + clearColor(motif.versusbgdef.bgclearcolor[1], motif.versusbgdef.bgclearcolor[2], motif.versusbgdef.bgclearcolor[3]) + --draw layerno = 0 backgrounds + bgDraw(motif.versusbgdef.BGDef, 0) + --draw portraits and order icons + for side = 1, 2 do + start.f_drawPortraits(main.f_remapTable(start.p[side].t_selTemp, start.t_orderRemap[side]), side, motif.vs_screen, '', false, t_icon[side]) + end + --draw order values + for side = 1, 2 do + if t_orderSelect[side] then + for i = 1, math.min(#start.p[side].t_selected, motif.vs_screen['p' .. side].num) do + local pn = 2 * (i - 1) + side + local pCfg = f_getMotifP(motif.vs_screen, pn, side) + if i > #t_order[side] and #start.p[side].t_selected > #t_order[side] then + main.f_animPosDraw( + pCfg.value.empty.icon.AnimData, + (i - 1) * motif.vs_screen['p' .. side].value.icon.spacing[1], + (i - 1) * motif.vs_screen['p' .. side].value.icon.spacing[2] + ) + else + main.f_animPosDraw( + pCfg.value.icon.AnimData, + (i - 1) * motif.vs_screen['p' .. side].value.icon.spacing[1], + (i - 1) * motif.vs_screen['p' .. side].value.icon.spacing[2] + ) + end + end + end + end + --draw names + for side = 1, 2 do + for k, v in ipairs(main.f_remapTable(start.p[side].t_selTemp, start.t_orderRemap[side])) do + if k <= motif.vs_screen['p' .. side].name.num then + textImgReset(motif.vs_screen['p' .. side].name.TextSpriteData) + textImgAddPos( + motif.vs_screen['p' .. side].name.TextSpriteData, + (k - 1) * motif.vs_screen['p' .. side].name.spacing[1], + (k - 1) * motif.vs_screen['p' .. side].name.spacing[2] + ) + textImgSetText(motif.vs_screen['p' .. side].name.TextSpriteData, start.f_getName(v.ref, side)) + textImgDraw(motif.vs_screen['p' .. side].name.TextSpriteData) + end + end + end + --draw stage portrait + if selStageNo then + --draw stage portrait background + main.f_animPosDraw(motif.vs_screen.stage.portrait.bg.AnimData) + --draw stage portrait loaded from stage SFF + local portrait = motif.vs_screen.stage.portrait + local anim = main.t_selStages[selStageNo].vs_anim_data + local loadingPortrait = false + if getStagePreloadStatus(selStageNo) ~= 'ready' and hasPortraitAnim(portrait.loading) then + portrait = portrait.loading + anim = portrait.AnimData + loadingPortrait = true + end + if anim then + local x = motif.vs_screen.stage.pos[1] + local y = motif.vs_screen.stage.pos[2] + if not loadingPortrait then + x = x + portrait.offset[1] + y = y + portrait.offset[2] + end + main.f_animPosDraw(anim, x, y) + end + end + --draw stage name + if selStageNo and main.t_selStages[selStageNo] then + textImgReset(motif.vs_screen.stage.TextSpriteData) + local stage_text = main.f_formatBySpec(motif.vs_screen.stage.text, {i = selStageNo, s = main.t_selStages[selStageNo].name}) + textImgSetText(motif.vs_screen.stage.TextSpriteData, stage_text) + textImgDraw(motif.vs_screen.stage.TextSpriteData) + end + --draw match counter + if main.motif.vsmatchno then + textImgDraw(motif.vs_screen.match.TextSpriteData) + end + --draw timer + if not done and motif.vs_screen.timer.count ~= -1 and timerActive and counter >= 0 then + timerCount, timerActive = main.f_drawTimer(timerCount, motif.vs_screen.timer) + end + -- done key + if done and not doneKeyReady and not getInput(-1, motif.vs_screen.done.key) then + doneKeyReady = true + end + -- Background loading status + readyToLeave = not bgLoading + if bgLoading and loadStarted then + -- Latch leave input before netLoadingReady(), because the loading handshake stops the pre-match net input stream. + for side = 1, 2 do + if not main.cpuSide[side] and getInput(side, motif.vs_screen.skip.key) then + wantSkip = true + end + if done and doneKeyReady and getInput(side, motif.vs_screen.done.key) then + wantDone = true + end + end + local leaveRequested = (counter >= motif.vs_screen.time and (not (t_orderSelect[1] or t_orderSelect[2]) or done)) or wantSkip or wantDone + local localDone = not loading() + if localDone and leaveRequested and not netReady then + netReady = netLoadingReady() + end + readyToLeave = localDone and netReady + if not localDone then + main.f_animPosDraw(motif.vs_screen.loading.AnimData) + textImgDraw(motif.vs_screen.loading.TextSpriteData) + else + main.f_animPosDraw(motif.vs_screen.loading.done.AnimData) + textImgDraw(motif.vs_screen.loading.done.TextSpriteData) + end + end + --draw layerno = 1 backgrounds + bgDraw(motif.versusbgdef.BGDef, 1) + -- hook + hook.run("start.f_selectVersus") + --draw fadein / fadeout + for side = 1, 2 do + if not fadeOutStarted and ( + (counter >= motif.vs_screen.time and (not (t_orderSelect[1] or t_orderSelect[2]) or done) and readyToLeave) + or (readyToLeave and (not main.cpuSide[side] and (getInput(side, motif.vs_screen.skip.key) or wantSkip))) + or (readyToLeave and (done and doneKeyReady and (getInput(side, motif.vs_screen.done.key) or wantDone)))) then + fadeOutInit(motif.vs_screen.fadeout.FadeData) + fadeOutStarted = true + wantSkip = false + wantDone = false + break + end + end + --frame transition + if not escFlag and (esc() or getInput(-1, motif.vs_screen.cancel.key)) then + esc(false) + if bgLoading and loadStarted then + loadCancel() + clearSelected() + end + if main.replayActive then + start.exit = true + end + fadeOutInit(motif.vs_screen.fadeout.FadeData) + fadeOutStarted = true + escFlag = true + end + if not fadeActive() and (fadeOutStarted or start.escFlag) then + clearColor(motif.versusbgdef.bgclearcolor[1], motif.versusbgdef.bgclearcolor[2], motif.versusbgdef.bgclearcolor[3]) + break --skip last frame rendering + end + refresh() + end + esc(escFlag) --force Esc detection + return not escFlag +end + +--loading loop called after versus screen is finished +function start.f_selectLoading(arg) + clearAllSound() + local t = {} + if type(arg) == "table" then + t = arg + elseif type(arg) == "string" then + t.musicParams = arg + end + local params = start.f_buildLoadStartParams(t, true, start.t_orderRemap) + if gameOption('Debug.DumpLuaTables') then main.f_printTable(params, "debug/loadStartParams.txt") end + resetGameParams() + if not gameOption('Config.VsScreenLoading') then + -- If background loading is disabled, first select all chars, then start the loader. + for side = 1, 2 do + local remap = start.t_orderRemap and start.t_orderRemap[side] + for member = 1, #start.p[side].t_selected do + local src = remap and remap[member] or member + local v = start.p[side].t_selected[src] + if not v.selected then + selectChar(side, v.ref, v.pal, start.f_buildOverrideParams(side, member, v)) + v.selected = true + end + end + end + loadStart(params) + else + -- Background loading: start loader first, then feed selections. + loadStart(params) + for side = 1, 2 do + local remap = start.t_orderRemap and start.t_orderRemap[side] + for member = 1, #start.p[side].t_selected do + local src = remap and remap[member] or member + local v = start.p[side].t_selected[src] + if not v.selected then + selectChar(side, v.ref, v.pal, start.f_buildOverrideParams(side, member, v)) + v.selected = true + end + end + end + if main.f_storyboard(motif.vs_screen.loading.storyboard) then + loadCancel() + clearSelected() + return false + end + -- VS screen is normally responsible for showing loading progress. + -- If it was skipped/disabled, keep a small Lua render loop alive here. + local netReady = false + while loading() or not netReady do + if not loading() then + netReady = netLoadingReady() + end + if esc() then + loadCancel() + clearSelected() + return false + end + clearColor(0, 0, 0) + main.f_animPosDraw(motif.vs_screen.loading.wait.AnimData) + textImgDraw(motif.vs_screen.loading.wait.TextSpriteData) + refresh() + end + end + return true +end + +return start diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ2x.frag b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ2x.frag new file mode 100644 index 00000000..14e87f8a --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ2x.frag @@ -0,0 +1,54 @@ +#if __VERSION__ >= 450 + // VULKAN PATH + layout(push_constant, std430) uniform u { + layout(offset = 8) float CurrentTime; + }; + layout(binding = 0) uniform sampler2D Texture; + layout(location = 0) in vec4 TexCoord[7]; + layout(location = 0) out vec4 FragColor; +#else + // OPENGL / GLES PATH + uniform float CurrentTime; + uniform sampler2D Texture; + in vec4 TexCoord[7]; + out vec4 FragColor; +#endif + +#define COMPAT_TEXTURE texture + +const float mx = 0.325; // start smoothing wt. +const float k = -0.250; // wt. decrease factor +const float max_w = 0.25; // max filter weigth +const float min_w =-0.05; // min filter weigth +const float lum_add = 0.25; // effects smoothing + +void main() { + vec3 c00 = COMPAT_TEXTURE(Texture, TexCoord[1].xy).xyz; + vec3 c10 = COMPAT_TEXTURE(Texture, TexCoord[1].zw).xyz; + vec3 c20 = COMPAT_TEXTURE(Texture, TexCoord[2].xy).xyz; + vec3 c01 = COMPAT_TEXTURE(Texture, TexCoord[4].zw).xyz; + vec3 c11 = COMPAT_TEXTURE(Texture, TexCoord[0].xy).xyz; + vec3 c21 = COMPAT_TEXTURE(Texture, TexCoord[2].zw).xyz; + vec3 c02 = COMPAT_TEXTURE(Texture, TexCoord[4].xy).xyz; + vec3 c12 = COMPAT_TEXTURE(Texture, TexCoord[3].zw).xyz; + vec3 c22 = COMPAT_TEXTURE(Texture, TexCoord[3].xy).xyz; + vec3 dt = vec3(1.0, 1.0, 1.0); + float md1 = dot(abs(c00 - c22), dt); + float md2 = dot(abs(c02 - c20), dt); + float w1 = dot(abs(c22 - c11), dt) * md2; + float w2 = dot(abs(c02 - c11), dt) * md1; + float w3 = dot(abs(c00 - c11), dt) * md2; + float w4 = dot(abs(c20 - c11), dt) * md1; + float t1 = w1 + w3; + float t2 = w2 + w4; + float ww = max(t1, t2) + 0.0001; + c11 = (w1 * c00 + w2 * c20 + w3 * c22 + w4 * c02 + ww * c11) / (t1 + t2 + ww); + float lc1 = k / (0.12 * dot(c10 + c12 + c11, dt) + lum_add); + float lc2 = k / (0.12 * dot(c01 + c21 + c11, dt) + lum_add); + w1 = clamp(lc1 * dot(abs(c11 - c10), dt) + mx, min_w, max_w); + w2 = clamp(lc2 * dot(abs(c11 - c21), dt) + mx, min_w, max_w); + w3 = clamp(lc1 * dot(abs(c11 - c12), dt) + mx, min_w, max_w); + w4 = clamp(lc2 * dot(abs(c11 - c01), dt) + mx, min_w, max_w); + FragColor.xyz = w1 * c10 + w2 * c21 + w3 * c12 + w4 * c01 + (1.0 - w1 - w2 - w3 - w4) * c11; + FragColor.w = 1.0; +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ2x.frag.spv b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ2x.frag.spv new file mode 100644 index 00000000..5f88f04c Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ2x.frag.spv differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ2x.vert b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ2x.vert new file mode 100644 index 00000000..f73331ac --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ2x.vert @@ -0,0 +1,34 @@ +#if __VERSION__ >= 450 + // VULKAN PATH + layout(push_constant, std430) uniform u { + vec2 TextureSize; + }; + layout(location = 0) in vec2 VertCoord; + layout(location = 0) out vec4 TexCoord[7]; +#else + // OPENGL / GLES PATH + uniform vec2 TextureSize; + in vec2 VertCoord; + out vec4 TexCoord[7]; +#endif + +void main() { + gl_Position = vec4(VertCoord, 0.0, 1.0); + vec2 texCoord = (VertCoord + 1.0) / 2.0; + float x = 0.5 * (1.0 / TextureSize.x); + float y = 0.5 * (1.0 / TextureSize.y); + vec2 dg1 = vec2(x, y); + vec2 dg2 = vec2(-x, y); + vec2 dx = vec2(x, 0.0); + vec2 dy = vec2(0.0, y); + + TexCoord[0].xy = texCoord; + TexCoord[1].xy = texCoord - dg1; + TexCoord[1].zw = texCoord - dy; + TexCoord[2].xy = texCoord - dg2; + TexCoord[2].zw = texCoord + dx; + TexCoord[3].xy = texCoord + dg1; + TexCoord[3].zw = texCoord + dy; + TexCoord[4].xy = texCoord + dg2; + TexCoord[4].zw = texCoord - dx; +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ2x.vert.spv b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ2x.vert.spv new file mode 100644 index 00000000..209aab23 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ2x.vert.spv differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ4x.frag b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ4x.frag new file mode 100644 index 00000000..3794e1ce --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ4x.frag @@ -0,0 +1,61 @@ +#if __VERSION__ >= 450 + // VULKAN PATH + layout(push_constant, std430) uniform u { + layout(offset = 8) float CurrentTime; + }; + layout(binding = 0) uniform sampler2D Texture; + layout(location = 0) in vec4 TexCoord[7]; + layout(location = 0) out vec4 FragColor; +#else + // OPENGL / GLES PATH + uniform float CurrentTime; + uniform sampler2D Texture; + in vec4 TexCoord[7]; + out vec4 FragColor; +#endif + +#define COMPAT_TEXTURE texture + +const float mx = 1.00; // start smoothing wt. +const float k = -1.10; // wt. decrease factor +const float max_w = 0.75; // max filter weight +const float min_w = 0.03; // min filter weight +const float lum_add = 0.33; // effects smoothing + +void main() { + vec3 c = COMPAT_TEXTURE(Texture, TexCoord[0].xy).xyz; + vec3 i1 = COMPAT_TEXTURE(Texture, TexCoord[1].xy).xyz; + vec3 i2 = COMPAT_TEXTURE(Texture, TexCoord[2].xy).xyz; + vec3 i3 = COMPAT_TEXTURE(Texture, TexCoord[3].xy).xyz; + vec3 i4 = COMPAT_TEXTURE(Texture, TexCoord[4].xy).xyz; + vec3 o1 = COMPAT_TEXTURE(Texture, TexCoord[5].xy).xyz; + vec3 o3 = COMPAT_TEXTURE(Texture, TexCoord[6].xy).xyz; + vec3 o2 = COMPAT_TEXTURE(Texture, TexCoord[5].zw).xyz; + vec3 o4 = COMPAT_TEXTURE(Texture, TexCoord[6].zw).xyz; + vec3 s1 = COMPAT_TEXTURE(Texture, TexCoord[1].zw).xyz; + vec3 s2 = COMPAT_TEXTURE(Texture, TexCoord[2].zw).xyz; + vec3 s3 = COMPAT_TEXTURE(Texture, TexCoord[3].zw).xyz; + vec3 s4 = COMPAT_TEXTURE(Texture, TexCoord[4].zw).xyz; + vec3 dt = vec3(1.0, 1.0, 1.0); + float ko1 = dot(abs(o1 - c), dt); + float ko2 = dot(abs(o2 - c), dt); + float ko3 = dot(abs(o3 - c), dt); + float ko4 = dot(abs(o4 - c), dt); + float k1 = min(dot(abs(i1 - i3), dt), max(ko1, ko3)); + float k2 = min(dot(abs(i2 - i4), dt), max(ko2, ko4)); + float w1 = k2; if(ko3 < ko1) w1 *= ko3 / ko1; + float w2 = k1; if(ko4 < ko2) w2 *= ko4 / ko2; + float w3 = k2; if(ko1 < ko3) w3 *= ko1 / ko3; + float w4 = k1; if(ko2 < ko4) w4 *= ko2 / ko4; + c = (w1 * o1 + w2 * o2 + w3 * o3 + w4 * o4 + 0.001 * c) / (w1 + w2 + w3 + w4 + 0.001); + w1 = k * dot(abs(i1 - c) + abs(i3 - c), dt) / (0.125 * dot(i1 + i3, dt) + lum_add); + w2 = k * dot(abs(i2 - c) + abs(i4 - c), dt) / (0.125 * dot(i2 + i4, dt) + lum_add); + w3 = k * dot(abs(s1 - c) + abs(s3 - c), dt) / (0.125 * dot(s1 + s3, dt) + lum_add); + w4 = k * dot(abs(s2 - c) + abs(s4 - c), dt) / (0.125 * dot(s2 + s4, dt) + lum_add); + w1 = clamp(w1 + mx, min_w, max_w); + w2 = clamp(w2 + mx, min_w, max_w); + w3 = clamp(w3 + mx, min_w, max_w); + w4 = clamp(w4 + mx, min_w, max_w); + FragColor.xyz = (w1 * (i1 + i3) + w2 * (i2 + i4) + w3 * (s1 + s3) + w4 * (s2 + s4) + c) / (2.0 * (w1 + w2 + w3 + w4) + 1.0); + FragColor.a = 1.0; +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ4x.frag.spv b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ4x.frag.spv new file mode 100644 index 00000000..7e45697d Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ4x.frag.spv differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ4x.vert b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ4x.vert new file mode 100644 index 00000000..b0c18d6f --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ4x.vert @@ -0,0 +1,40 @@ +#if __VERSION__ >= 450 + // VULKAN PATH + layout(push_constant, std430) uniform u { + vec2 TextureSize; + }; + layout(location = 0) in vec2 VertCoord; + layout(location = 0) out vec4 TexCoord[7]; +#else + // OPENGL / GLES PATH + uniform vec2 TextureSize; + in vec2 VertCoord; + out vec4 TexCoord[7]; +#endif + +void main() { + gl_Position = vec4(VertCoord, 0.0, 1.0); + + vec2 texCoord = (VertCoord + 1.0) / 2.0; + + float x = 0.001; + float y = 0.001; + + vec2 dg1 = vec2(x, y); vec2 dg2 = vec2(-x, y); + vec2 sd1 = dg1 * 0.5; vec2 sd2 = dg2 * 0.5; + vec2 ddx = vec2(x, 0.0); vec2 ddy = vec2(0.0, y); + + TexCoord[0].xy = texCoord; + TexCoord[1].xy = texCoord - sd1; + TexCoord[2].xy = texCoord - sd2; + TexCoord[3].xy = texCoord + sd1; + TexCoord[4].xy = texCoord + sd2; + TexCoord[5].xy = texCoord - dg1; + TexCoord[6].xy = texCoord + dg1; + TexCoord[5].zw = texCoord - dg2; + TexCoord[6].zw = texCoord + dg2; + TexCoord[1].zw = texCoord - ddy; + TexCoord[2].zw = texCoord + ddx; + TexCoord[3].zw = texCoord + ddy; + TexCoord[4].zw = texCoord - ddx; +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ4x.vert.spv b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ4x.vert.spv new file mode 100644 index 00000000..eb3fbac2 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/HQ4x.vert.spv differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/shaders/Scanline.frag b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/Scanline.frag new file mode 100644 index 00000000..5333c3e5 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/Scanline.frag @@ -0,0 +1,30 @@ +#if __VERSION__ >= 450 + // VULKAN PATH + layout(push_constant, std430) uniform u { + vec2 TextureSize; + }; + layout(binding = 0) uniform sampler2D Texture; + layout(location = 0) in vec3 vTexCoord; + layout(location = 0) out vec4 FragColor; +#else + // OPENGL / GLES PATH + uniform vec2 TextureSize; + uniform sampler2D Texture; + in vec3 vTexCoord; + out vec4 FragColor; +#endif + +#define COMPAT_TEXTURE texture + +void main(void) { + vec4 rgb = COMPAT_TEXTURE(Texture, vTexCoord.xy); + vec4 intens; + + if (fract(gl_FragCoord.y * (0.5 * 4.0 / 3.0)) > 0.5) + intens = vec4(0); + else + intens = smoothstep(0.2, 0.8, rgb) + normalize(vec4(rgb.xyz, 1.0)); + + float level = (4.0 - vTexCoord.z) * 0.19; + FragColor = intens * (0.5 - level) + rgb * 1.1; +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/shaders/Scanline.frag.spv b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/Scanline.frag.spv new file mode 100644 index 00000000..defac70f Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/Scanline.frag.spv differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/shaders/Scanline.vert b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/Scanline.vert new file mode 100644 index 00000000..59767349 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/Scanline.vert @@ -0,0 +1,18 @@ +#if __VERSION__ >= 450 + // VULKAN PATH + layout(push_constant, std430) uniform u { + vec2 TextureSize; + }; + layout(location = 0) in vec2 VertCoord; + layout(location = 0) out vec3 vTexCoord; +#else + // OPENGL / GLES PATH + uniform vec2 TextureSize; + in vec2 VertCoord; + out vec3 vTexCoord; +#endif + +void main() { + gl_Position = vec4(VertCoord, 0.0, 1.0); + vTexCoord = vec3((VertCoord + 1.0) / 2.0, 0.0); +} \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/external/shaders/Scanline.vert.spv b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/Scanline.vert.spv new file mode 100644 index 00000000..5a92c265 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/external/shaders/Scanline.vert.spv differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans.def b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans.def new file mode 100644 index 00000000..0513dbf7 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans.def @@ -0,0 +1,24 @@ +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "Open Sans" +; Font author +author = "Steve Matteson" + +[Def] +; This is a truetype font. +Type = truetype +; Size of font: width, height. Only height is used for truetype fonts. +Size = 13,27 +; Spacing between font glyphs. Only height is used for truetype fonts. +Spacing = 1,1 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the font to load. Will search Windows font directory if not in current directory. +File = Open_Sans/OpenSans-Regular.ttf +; Preferred blending mode: 0 - none, 1 - blended. +Blend = 1 + +; Note: All units are in pixels. +; Text rendered with truetype fonts may be ASCII or UTF-8 \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-Bold.ttf b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-Bold.ttf new file mode 100644 index 00000000..efdd5e84 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-Bold.ttf differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-BoldItalic.ttf b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-BoldItalic.ttf new file mode 100644 index 00000000..9bf9b4e9 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-BoldItalic.ttf differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-ExtraBold.ttf b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-ExtraBold.ttf new file mode 100644 index 00000000..67fcf0fb Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-ExtraBold.ttf differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-ExtraBoldItalic.ttf b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-ExtraBoldItalic.ttf new file mode 100644 index 00000000..08672280 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-ExtraBoldItalic.ttf differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-Italic.ttf b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-Italic.ttf new file mode 100644 index 00000000..11785670 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-Italic.ttf differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-Light.ttf b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-Light.ttf new file mode 100644 index 00000000..6580d3a1 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-Light.ttf differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-LightItalic.ttf b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-LightItalic.ttf new file mode 100644 index 00000000..1e0c3319 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-LightItalic.ttf differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-Regular.ttf b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-Regular.ttf new file mode 100644 index 00000000..29bfd35a Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-Regular.ttf differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-SemiBold.ttf b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-SemiBold.ttf new file mode 100644 index 00000000..54e7059c Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-SemiBold.ttf differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-SemiBoldItalic.ttf b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-SemiBoldItalic.ttf new file mode 100644 index 00000000..aebcf142 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/Open_Sans/OpenSans-SemiBoldItalic.ttf differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/arcade.def b/bios/Game Engines/Ikemen GO/ikemen/font/arcade.def new file mode 100644 index 00000000..71f26f2e --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/font/arcade.def @@ -0,0 +1,36 @@ +; Arcade - 38 point font +; Indexed 8-bank +; Bank 0 - mono +; Bank 1 - red +; Bank 2 - green +; Bank 3 - blue +; Bank 4 - brown +; Bank 5 - cyan +; Bank 6 - purple +; Bank 7 - yellow + +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "Arcade" +; This font contains the numbers 0 through 9, letters A-Z and +; the symbols % ( ) ? - + +[Def] +; This is a bitmap font +Type = bitmap +; Bank numbers are mapped to palette numbers (0, bank). +BankType = palette +; Size of font: width, height. Width is used for spaces. +Size = 36,34 +; Spacing between font glyphs: width, height. +Spacing = -12,4 +; Drawing offset: x, y. +Offset = -2,3 +; Filename of the sff containing the glyphs. Use sff v2 only. +File = arcade.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. +; See files in work/font for information on creating the sff. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/arcade.sff b/bios/Game Engines/Ikemen GO/ikemen/font/arcade.sff new file mode 100644 index 00000000..ab4c7f35 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/arcade.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/debug.def b/bios/Game Engines/Ikemen GO/ikemen/font/debug.def new file mode 100644 index 00000000..9d0361d3 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/font/debug.def @@ -0,0 +1,24 @@ +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "Open Sans" +; Font author +author = "Steve Matteson" + +[Def] +; This is a truetype font. +Type = truetype +; Size of font: width, height. Only height is used for truetype fonts. +Size = 0,24 +; Spacing between font glyphs. Only height is used for truetype fonts. +Spacing = 1,4 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the font to load. Will search Windows font directory if not in current directory. +File = Open_Sans/OpenSans-Bold.ttf +; Preferred blending mode: 0 - none, 1 - blended. +Blend = 1 + +; Note: All units are in pixels. +; Text rendered with truetype fonts may be ASCII or UTF-8 \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/default-3x5-bold.def b/bios/Game Engines/Ikemen GO/ikemen/font/default-3x5-bold.def new file mode 100644 index 00000000..6410cded --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/font/default-3x5-bold.def @@ -0,0 +1,24 @@ +; Font used for the debug menu. +; Licensed under CC BY 3.0 with attribution to Gacel. + +[FNT v2] +; FNT v2 version number. +fntversion = 2,00 +; Name of the font. +name = "Debug" +; This font contains the full ANSI character set. + +[Def] +; This is a bitmap font +Type = bitmap +; Size of font: width, height. Width is used for spaces. +Size = 5,8 +; Spacing between font glyphs: width, height. +Spacing = -1,0 +; Drawing offset: x, y. +Offset = -1,0 +; Filename of the sff containing the glyphs. +File = default-3x5-bold.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/default-3x5-bold.sff b/bios/Game Engines/Ikemen GO/ikemen/font/default-3x5-bold.sff new file mode 100644 index 00000000..45d8730f Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/default-3x5-bold.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/default-3x5.def b/bios/Game Engines/Ikemen GO/ikemen/font/default-3x5.def new file mode 100644 index 00000000..f834d900 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/font/default-3x5.def @@ -0,0 +1,24 @@ +; Font used for the debug menu. +; Licensed under CC BY 3.0 with attribution to Gacel. + +[FNT v2] +; FNT v2 version number. +fntversion = 2,00 +; Name of the font. +name = "System" +; This font contains the full ANSI character set. + +[Def] +; This is a bitmap font +Type = bitmap +; Size of font: width, height. Width is used for spaces. +Size = 3,6 +; Spacing between font glyphs: width, height. +Spacing = 1,0 +; Drawing offset: x, y. +Offset = 0,-1 +; Filename of the sff containing the glyphs. +File = default-3x5.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/default-3x5.sff b/bios/Game Engines/Ikemen GO/ikemen/font/default-3x5.sff new file mode 100644 index 00000000..81a838d7 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/default-3x5.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/ending-2.sff b/bios/Game Engines/Ikemen GO/ikemen/font/ending-2.sff new file mode 100644 index 00000000..097c3a7b Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/ending-2.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/ending-bg.def b/bios/Game Engines/Ikemen GO/ikemen/font/ending-bg.def new file mode 100644 index 00000000..7d2010a7 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/font/ending-bg.def @@ -0,0 +1,23 @@ +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "end type" +; This font contains the full ANSI character set. +; All letters are uppercase. + +[Def] +; This is a bitmap font +Type = bitmap +; Size of font: width, height. Width is used for spaces. +Size = 16,19 +; Spacing between font glyphs: width, height. +Spacing = 1,1 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the sff containing the glyphs. Use sff v2 only. +File = ending-2.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. +; See work/font/f-4x6/f-4x6.def for information on creating the sff. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/enter48.def b/bios/Game Engines/Ikemen GO/ikemen/font/enter48.def new file mode 100644 index 00000000..f01d2a81 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/font/enter48.def @@ -0,0 +1,35 @@ +; Enter 48 - 48 point font +; Indexed 8-bank +; Bank 0 - mono +; Bank 1 - red +; Bank 2 - green +; Bank 3 - blue +; Bank 4 - brown +; Bank 5 - cyan +; Bank 6 - purple +; Bank 7 - yellow + +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "Enter 48" +; This font contains the full ANSI character set. + +[Def] +; This is a bitmap font +Type = bitmap +; Bank numbers are mapped to palette numbers (0, bank). +BankType = palette +; Size of font: width, height. Width is used for spaces. +Size = 24,48 +; Spacing between font glyphs: width, height. +Spacing = 1,2 +; Drawing offset: x, y. +Offset = 0,10 +; Filename of the sff containing the glyphs. Use sff v2 only. +File = enter48.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. +; See files in work/font for information on creating the sff. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/enter48.sff b/bios/Game Engines/Ikemen GO/ikemen/font/enter48.sff new file mode 100644 index 00000000..54303437 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/enter48.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/f-4x6.def b/bios/Game Engines/Ikemen GO/ikemen/font/f-4x6.def new file mode 100644 index 00000000..22601212 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/font/f-4x6.def @@ -0,0 +1,29 @@ +; 4x6 variable - 6 point font +; Indexed 1-bank +; Bank 0 - mono + +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "4x6 variable" +; This font contains the full ANSI character set. +; All letters are uppercase. + +[Def] +; This is a bitmap font +Type = bitmap +; Bank numbers are mapped to palette numbers (0, bank). +BankType = palette +; Size of font: width, height. Width is used for spaces. +Size = 3,6 +; Spacing between font glyphs: width, height. +Spacing = 1,0 +; Drawing offset: x, y. +Offset = 0,1 +; Filename of the sff containing the glyphs. Use sff v2 only. +File = f-4x6.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. +; See work/font/f-4x6/f-4x6.def for information on creating the sff. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/f-4x6.fnt b/bios/Game Engines/Ikemen GO/ikemen/font/f-4x6.fnt new file mode 100644 index 00000000..3fa64b6f Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/f-4x6.fnt differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/f-4x6.sff b/bios/Game Engines/Ikemen GO/ikemen/font/f-4x6.sff new file mode 100644 index 00000000..1d9ae059 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/f-4x6.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/f-6x8f.fnt b/bios/Game Engines/Ikemen GO/ikemen/font/f-6x8f.fnt new file mode 100644 index 00000000..dac325a4 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/f-6x8f.fnt differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/f-6x9.def b/bios/Game Engines/Ikemen GO/ikemen/font/f-6x9.def new file mode 100644 index 00000000..c6d1026a --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/font/f-6x9.def @@ -0,0 +1,29 @@ +; 6x9 variable - 9 point font +; Indexed 1-bank +; Bank 0 - mono + +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "6x9 variable" +; This font contains the full ANSI character set. +; All letters are uppercase. + +[Def] +; This is a bitmap font +Type = bitmap +; Bank numbers are mapped to palette numbers (0, bank). +BankType = palette +; Size of font: width, height. Width is used for spaces. +Size = 5,8 +; Spacing between font glyphs: width, height. +Spacing = 1,2 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the sff containing the glyphs. Use sff v2 only. +File = f-6x9.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. +; See work/font/f-4x6/f-4x6.def for information on creating the sff. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/f-6x9.fnt b/bios/Game Engines/Ikemen GO/ikemen/font/f-6x9.fnt new file mode 100644 index 00000000..77c29b0c Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/f-6x9.fnt differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/f-6x9.sff b/bios/Game Engines/Ikemen GO/ikemen/font/f-6x9.sff new file mode 100644 index 00000000..4e394166 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/f-6x9.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/f-6x9f.fnt b/bios/Game Engines/Ikemen GO/ikemen/font/f-6x9f.fnt new file mode 100644 index 00000000..f7b45b72 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/f-6x9f.fnt differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/font2.def b/bios/Game Engines/Ikemen GO/ikemen/font/font2.def new file mode 100644 index 00000000..b1bc0031 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/font/font2.def @@ -0,0 +1,29 @@ +; font2 - 8 point font +; Indexed 1-bank +; Bank 0 - mono + +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "font2" +; This font contains the full ANSI character set. +; All letters are uppercase. + +[Def] +; This is a bitmap font +Type = bitmap +; Bank numbers are mapped to palette numbers (0, bank). +BankType = palette +; Size of font: width, height. Width is used for spaces. +Size = 5,8 +; Spacing between font glyphs: width, height. +Spacing = 0,2 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the sff containing the glyphs. Use sff v2 only. +File = font2.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. +; See work/font/f-4x6/f-4x6.def for information on creating the sff. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/font2.sff b/bios/Game Engines/Ikemen GO/ikemen/font/font2.sff new file mode 100644 index 00000000..371ffd1d Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/font2.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/infofont.def b/bios/Game Engines/Ikemen GO/ikemen/font/infofont.def new file mode 100644 index 00000000..b82cfa30 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/font/infofont.def @@ -0,0 +1,24 @@ +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "Open Sans" +; Font author +author = "Steve Matteson" + +[Def] +; This is a truetype font. +Type = truetype +; Size of font: width, height. Only height is used for truetype fonts. +Size = 7,13 +; Spacing between font glyphs. Only height is used for truetype fonts. +Spacing = 1,3 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the font to load. Will search Windows font directory if not in current directory. +File = Open_Sans/OpenSans-Regular.ttf +; Preferred blending mode: 0 - none, 1 - blended. +Blend = 1 + +; Note: All units are in pixels. +; Text rendered with truetype fonts may be ASCII or UTF-8 \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/jg.fnt b/bios/Game Engines/Ikemen GO/ikemen/font/jg.fnt new file mode 100644 index 00000000..f8ab7957 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/jg.fnt differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/msgothic-tt36.def b/bios/Game Engines/Ikemen GO/ikemen/font/msgothic-tt36.def new file mode 100644 index 00000000..f8c5fac8 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/font/msgothic-tt36.def @@ -0,0 +1,24 @@ +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "MS ゴシック" +; Font author +author = "Microsoft" + +[Def] +; This is a truetype font. +Type = truetype +; Size of font: width, height. Only height is used for truetype fonts. +Size = 18,36 +; Spacing between font glyphs. Only height is used for truetype fonts. +Spacing = 1,1 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the font to load. Will search Windows font directory if not in current directory. +File = msgothic.ttc +; Preferred blending mode: 0 - none, 1 - blended. +Blend = 1 + +; Note: All units are in pixels. +; Text rendered with truetype fonts may be ASCII or UTF-8 \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/mssansserif-tt36.def b/bios/Game Engines/Ikemen GO/ikemen/font/mssansserif-tt36.def new file mode 100644 index 00000000..fc1baeb9 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/font/mssansserif-tt36.def @@ -0,0 +1,24 @@ +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "Arial" +; Font author +author = "Microsoft" + +[Def] +; This is a truetype font. +Type = truetype +; Size of font: width, height. Only height is used for truetype fonts. +Size = 18,36 +; Spacing between font glyphs. Only height is used for truetype fonts. +Spacing = 1,1 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the font to load. Will search Windows font directory if not in current directory. +File = arial.ttf +; Preferred blending mode: 0 - none, 1 - blended. +Blend = 1 + +; Note: All units are in pixels. +; Text rendered with truetype fonts may be ASCII or UTF-8 \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/name1.fnt b/bios/Game Engines/Ikemen GO/ikemen/font/name1.fnt new file mode 100644 index 00000000..652aeb94 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/name1.fnt differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/name14.def b/bios/Game Engines/Ikemen GO/ikemen/font/name14.def new file mode 100644 index 00000000..86a6fb8f --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/font/name14.def @@ -0,0 +1,36 @@ +; Name 14 - 14 point font +; Indexed 8-bank +; Bank 0 - mono +; Bank 1 - red +; Bank 2 - green +; Bank 3 - blue +; Bank 4 - brown +; Bank 5 - cyan +; Bank 6 - purple +; Bank 7 - yellow + +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "Name 14" +; This font contains the full ANSI character set. +; All letters are uppercase. + +[Def] +; This is a bitmap font +Type = bitmap +; Bank numbers are mapped to palette numbers (0, bank). +BankType = palette +; Size of font: width, height. Width is used for spaces. +Size = 16,14 +; Spacing between font glyphs: width, height. +Spacing = 1,1 +; Drawing offset: x, y. +Offset = 0,1 +; Filename of the sff containing the glyphs. Use sff v2 only. +File = name14.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. +; See files in work/font for information on creating the sff. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/name14.sff b/bios/Game Engines/Ikemen GO/ikemen/font/name14.sff new file mode 100644 index 00000000..61912a3f Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/name14.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/num1.def b/bios/Game Engines/Ikemen GO/ikemen/font/num1.def new file mode 100644 index 00000000..37f460a9 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/font/num1.def @@ -0,0 +1,36 @@ +; Number 1 - 14 point numeric font +; Indexed 8-bank +; Bank 0 - mono +; Bank 1 - red +; Bank 2 - green +; Bank 3 - blue +; Bank 4 - brown +; Bank 5 - cyan +; Bank 6 - purple +; Bank 7 - yellow + +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "Number 1" +; This font contains the numbers 0 through 9, and the infinity sign +; as the letter 'o'. + +[Def] +; This is a bitmap font +Type = bitmap +; Bank numbers are mapped to palette numbers (0, bank). +BankType = palette +; Size of font: width, height. Width is used for spaces. +Size = 9,13 +; Spacing between font glyphs: width, height. +Spacing = 1,1 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the sff containing the glyphs. Use sff v2 only. +File = num1.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. +; See files in work/font for information on creating the sff. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/num1.fnt b/bios/Game Engines/Ikemen GO/ikemen/font/num1.fnt new file mode 100644 index 00000000..dc3a83c1 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/num1.fnt differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/num1.sff b/bios/Game Engines/Ikemen GO/ikemen/font/num1.sff new file mode 100644 index 00000000..6902106f Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/num1.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/num48.def b/bios/Game Engines/Ikemen GO/ikemen/font/num48.def new file mode 100644 index 00000000..fd206d46 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/font/num48.def @@ -0,0 +1,36 @@ +; Number 48 - 48 point numeric font +; Indexed 8-bank +; Bank 0 - mono +; Bank 1 - red +; Bank 2 - green +; Bank 3 - blue +; Bank 4 - brown +; Bank 5 - cyan +; Bank 6 - purple +; Bank 7 - yellow + +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "Number 48" +; This font contains the numbers 0 through 9, and the infinity sign +; as the letter 'o'. + +[Def] +; This is a bitmap font +Type = bitmap +; Bank numbers are mapped to palette numbers (0, bank). +BankType = palette +; Size of font: width, height. Width is used for spaces. +Size = 40,48 +; Spacing between font glyphs: width, height. +Spacing = 0,0 +; Drawing offset: x, y. +Offset = 0,1 +; Filename of the sff containing the glyphs. Use sff v2 only. +File = num48.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. +; See files in work/font for information on creating the sff. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/num48.sff b/bios/Game Engines/Ikemen GO/ikemen/font/num48.sff new file mode 100644 index 00000000..5a4fd9ae Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/num48.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/num72.def b/bios/Game Engines/Ikemen GO/ikemen/font/num72.def new file mode 100644 index 00000000..a30c6aa9 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/font/num72.def @@ -0,0 +1,30 @@ +; Number 72 - 72 point numeric font +; RGBA 2-bank +; Bank 0 - yellow +; Bank 1 - blue + +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "Number 72" +; This font contains the numbers 0 through 9, and a sign representing +; infinite time as the letter 'o'. + +[Def] +; This is a bitmap font +Type = bitmap +; Bank numbers are mapped to sprite group numbers (required for RGBA fonts). +BankType = sprite +; Size of font: width, height. Width is used for spaces. +Size = 70,71 +; Spacing between font glyphs: width, height. +Spacing = 0,1 +; Drawing offset: x, y. +Offset = 0,3 +; Filename of the sff containing the glyphs. Use sff v2 only. +File = num72.sff + +; Note: All units are in pixels. +; Text rendered with bitmap fonts may be in ASCII only. +; See files in work/font for information on creating the sff. \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/num72.sff b/bios/Game Engines/Ikemen GO/ikemen/font/num72.sff new file mode 100644 index 00000000..4205236f Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/font/num72.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/font/options.def b/bios/Game Engines/Ikemen GO/ikemen/font/options.def new file mode 100644 index 00000000..6cc930e9 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/font/options.def @@ -0,0 +1,24 @@ +[FNT v2] +; FNT v2 version number. Don't change this. +fntversion = 2,00 +; Name of this font. +name = "Open Sans" +; Font author +author = "Steve Matteson" + +[Def] +; This is a truetype font. +Type = truetype +; Size of font: width, height. Only height is used for truetype fonts. +Size = 6,11 +; Spacing between font glyphs. Only height is used for truetype fonts. +Spacing = 1,0 +; Drawing offset: x, y. +Offset = 0,0 +; Filename of the font to load. Will search Windows font directory if not in current directory. +File = Open_Sans/OpenSans-Regular.ttf +; Preferred blending mode: 0 - none, 1 - blended. +Blend = 1 + +; Note: All units are in pixels. +; Text rendered with truetype fonts may be ASCII or UTF-8 \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage.def b/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage.def new file mode 100644 index 00000000..f3d9321a --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage.def @@ -0,0 +1,419 @@ +; Definition of Interactive Stage +; This stage adds Attached Chars +; The term "background" is used to mean both backgrounds and foregrounds. +; Licensed under CC BY 3.0. + +; ---------------------------------------------------------- +[Info] +name = "Interactive Training Stage" ; Internal name of the stage. +displayName = "Interactive Training Stage" ; Name to display on the select screen. +versionDate = 2026.01.22 ; Version / Date of stage. +ikemenVersion = 1.0 ; Version of Ikemen GO the stage is made for. +author = "Lasombra Demon, Phantom.of.the.Server" ; Stage author name. +attachedChar = interactivestage/interactivestageChar.def ; Location of attached character's DEF file. +;AttachedChar2 = AnotherAttachedChar.def ; Location of another character's DEF file, + ; you can have up to 4. +; ---------------------------------------------------------- +[Camera] +; Camera starting position: Usually 0 for both +startX = 0 +startY = 0 + +; Left and right bounds of camera +; You may want to fiddle a bit with these values to make sure the +; background doesn't move too far or too little +boundLeft = -30; +boundRight = 30; + +; High and low bound of camera +; High is a negative number. Make it more negative if you want to +; camera to be able to move higher. +; Low should usually be 0. +; If omitted, defaults to -25 and 0 respectively +boundHigh = -240 +boundLow = 0 + +; Horizontal distance player is from edge before camera starts to move +; left or right. Typically 50 or 60. +tension = 50 + +; These parameters control the distance between the highest and lowest +; characters where the camera will begin to move or zoom out +tensionhigh = 120 +tensionlow = 0 + +; Number of pixels beyond the top and bottom of the screen that may +; be drawn. Overdraw specifies the how much can be seen during an +; EnvShake. Overdraw pixels will also be used when the screen aspect +; is taller than the stage aspect. +overdrawhigh = 50 +overdrawlow = 50 + +; Number of pixels into the top and bottom of the screen that may be +; cut from drawing when the screen aspect is shorter than the stage +; aspect. These parameters suggest a guideline, and the actual +; number of pixels cut depends on the difference in aspect. +cuthigh = 60 +cutlow = 0 + +; Zoom parameters +startzoom = 1.00 +zoomout = 0.75 +zoomin = 1.00 + +; ---------------------------------------------------------- +[PlayerInfo] +; --- Player 1 --- +; Player 1 starting coordinates. +; p1StartX is typically -70 and p2startx is 70. +; p1StartY should be 0. +p1StartX = -70 ;Starting x coordinates +p1StartY = 0 ;Starting y coordinates +p1Facing = 1 ;Direction player faces: 1=right, -1=left + +; --- Player 2 --- +p2StartX = 70 +p2StartY = 0 +p2Facing = -1 + +; --- Common --- +; Absolute limit that any player can move on the X axis. +; These values should be larger than boundLeft and boundRight +leftBound = -1000 +rightBound = 1000 + +; ---------------------------------------------------------- +[Bound] +; Distance from left/right edge of screen that players can move to. +; Typically 15 +screenLeft = 30 +screenRight = 30 + +; ---------------------------------------------------------- +[StageInfo] +; "Ground" level where players stand at, measured in pixels from the top of the screen. +; Adjust this value to move the ground level up or down in the screen. +zoffset = 200 + +; Leave this at 1. It makes the players automatically face each other +autoturn = 1 + +; Set the following to 1 to have the background reset itself between rounds. +resetBG = 1 + +; Width and height of the local coordinate space of the stage. +localCoord = 320, 240 + +; Scale of the stage portrait in the select screen +portraitScale = 1.0 + +; Horizontal and vertical scaling factor for drawing. +xScale = 1 +yScale = 1 + +; ---------------------------------------------------------- +[Shadow] +; This is the shadow darkening intensity. Valid values range from +; 0 (lightest) to 256 (darkest). Defaults to 128 if omitted. +intensity = 128 + +; This is the shadow color given in r,g,b. Valid values for each +; range from 0 (lightest) to 255 (darkest). +; Defaults to "0, 0, 0" if omitted. +; intensity and color's effects add up to give the final shadow result. +color = 16, 16, 0 + +; This is the scale factor of the shadow. Use a big scale factor +; to make the shadow longer. You can use a NEGATIVE scale factor +; to make the shadow fall INTO the screen. +; Defaults to 0.4 if omitted. +yScale = -0.25 + +; This parameter lets you set the range over which the shadow is +; visible. The first value is the high level, and the second is +; the middle level. Both represent y-coordinates of the player. +; A shadow is invisible if the player is above the high level, +; and fully visible if below the middle level. The shadow is +; faded in between the two levels. This gives an effect of the +; shadow fading away as the player gets farther away from the +; ground. If omitted, defaults to no level effects (shadow is +; always fully visible). +fade.range = -120, 0 + +offset = 0, 0 + +; ---------------------------------------------------------- +[Reflection] +; Intensity of reflection (from 0 to 256). +; Set to 0 to have no reflection. Defaults to 0. +intensity = 64 + +; See shadow color +color = 202, 202, 256 + +; See shadow yScale +yScale = 0.67 + +offset = 0, 0 + +; ---------------------------------------------------------- +[Music] +; Put a filename for a MOD, MP3 or MIDI here, or just leave it +; blank if you don't want music. If an invalid filename is +; given, then no music will play. +bgMusic = + +; bgmLoopstart = +; bgmloopend = + + ;Adjust the volume. 100 is for 100%. +bgmVolume = 100 + +; ========================================================== + +; ---------------------------------------------------------- +; Background definition +; ---------------------------------------------------------- +; [BG x] +; type = ? "Normal"/"Parallax" (def: "normal") +; spriteNo = ?, ? Sprite group and number: groupno, imgno (req'd) +; start = ?, ? Starting location (integer) (def: 0, 0) +; delta = ?, ? Change in location per camera unit moved (float) (def: 1,1) +; trans = ? Transparency settings: "none"/"add"/"add1"/"sub"" (def: "none") +; mask = ? Masking (int): 0 - off, 1 - on (def: 0) +; velocity = ?, ? Velocity: x, y (float): speed background moves (def: 0, 0) +; tile = ?, ? Tiling: xtile, ytile (int): 0 - off, 1 - infinite, +; >1 - tile that number of times (def: 0, 0) - only for Normal BG +; tilespacing = ?, ? Tiling: x, y (int) : space between tiles (def: 0, 0) +; +; Parallax-only: +; xScale = ?, ? Top xscale, bottom xscale (float) +; width = ?, ? Top width, bottom width (int) (use either this or above, but not both) +; yScaleStart = ? Starting y-scale (float, in percent) (def: 100) +; yScaleDelta = ? Change in y-scale per unit (float, in percent) (def: 0) +; ---------------------------------------------------------- + +; For more information check the stage docs. + +; ---------------------------------------------------------- +; Main background definition +[BGdef] +; Filename of sprite data. +spr = interactivestage.sff + +; Set to 1 if you want to clear the screen to magenta before +; drawing layer 0 (the default background). +; Good for spotting "holes" in your background. +; Remember to turn this off when you are done debugging the background, +; because it slows down performance. +debugBg = 0 + +[BG Colour] +type = normal +spriteNo = 1, 1 +layerNo = -1 +start = 0, 0 +delta = 1, 1 +tile = 1, 0 +tileSpacing = 0, 0 +mask = 0 +ID = 1 + +[BG BackWallGrid] +type = normal +spriteNo = 1, 0 +layerNo = -1 +start = 0, -12 +delta = 0.6, 0.6 +tile = 1, 1 +tileSpacing = 0, 0 +mask = 1 +layerno = -1 +scalestart = 0.8,0.8 +ID = 2 + +[BG BackBannerMature] +type = normal +spriteNo = 5, 1 +layerNo = -1 +start = 0, 57 +delta = 0.6, 0.6 +mask = 1 +ID = 51 +scalestart = 0.65,0.45 +trans=addalpha +alpha = 0,256 + +[BG BackBannerTeen] +type = normal +spriteNo = 5, 0 +layerNo = -1 +start = 0, 57 +delta = 0.6, 0.6 +mask = 1 +ID = 50 +scalestart = 0.65,0.45 +trans=addalpha +alpha = 0,256 + +[BG WallWithHole] +type = normal +spriteNo = 3, 2 +layerNo = 0 +start = 0, -12 +delta = 0.8667, 1 +tileSpacing = 0, 0 +mask = 1 +layerno = 0 +tile = 1, 1 +tileSpacing = 0, 0 +ID = 3 + +[BG WallWithHoleGrid] +type = normal +spriteNo = 4, 2 +layerNo = 0 +start = 0, -12 +delta = 0.8667, 1 +tileSpacing = 0, 0 +mask = 1 +layerno = 0 +tile = 1, 1 +tileSpacing = 0, 0 +ID = 3 + +[BG Floor] +type = parallax +spriteno = 0, 0 +layerno = 0 +start = 0, 160 +delta = 0.8667, 1.0 +tile = 1, 0 +tilespacing = 0, 0 +width = 43, 63.15 +mask = 0 +ID = 4 + +[BG FloorFront] +type = parallax +spriteno = 0, 2 +layerno = 0 +start = 0, 160 +delta = 0.8667, 1.0 +tile = 1, 0 +tilespacing = 0, 0 +width = 43, 63.15 +mask = 0 +ID = 4 + +[BG ColumnLeft] +type = anim +actionno = 0 +layerNo = 0 +start = -230, 200 +delta = 1, 1 +mask = 1 +ID = 101 + +[BG ColumnLeftReflection] +type = normal +spriteNo = 3, 0 +layerNo = 0 +start = -230, 350 +delta = 1, 1 +mask = 1 +trans = addalpha +alpha = 128,128 +ID = 201 + +[BGCtrlDef Left] +looptime = -1;No loop reset +CTRLID=201;-> SAME AS ID IN BG ELEMENT +[BGCtrl ReflectionRight] +type=Enable +time=1,99999,-1 +value=1 +SCTRLID=301;-> SAME AS NUMBER IN ATTACHEDCHAR SCTRL + +[BG ColumnRight] +type = anim +actionno = 0 +layerNo = 0 +start = 230, 200 +delta = 1, 1 +mask = 1 +ID = 102 + +[Begin Action 0];Healthy Pillar +0,1, 0,0, -1 + +[Begin Action 1];Broken Pillar +-1,-1, 0,0, -1 + +[BG ColumnRightReflection] +type = normal +spriteNo = 3, 0 +layerNo = 0 +start = 230, 350 +delta = 1, 1 +mask = 1 +trans = addalpha +alpha = 128,128 +ID = 202 + +[BGCtrlDef Right] +looptime = -1;No loop reset +CTRLID=202;-> SAME AS ID IN BG ELEMENT +[BGCtrl ReflectionRight] +type=Enable +time=1,99999,-1 +value=1 +SCTRLID=302;-> SAME AS NUMBER IN ATTACHEDCHAR SCTRL + +[BG Window] +type = normal +spriteNo = 3, 1 +layerNo = 0 +start = 0, 11800 +delta = 0.8667, 1 +mask = 1 +scalestart = 0.5,0.5 +trans = addalpha +alpha = 196,196 +scalestart = 0.5,0.5 + +[BG WindowReflection] +type = normal +spriteNo = 3, 1 +layerNo = 0 +start = 0, 282 +delta = 0.8667, 1 +mask = 1 +trans = addalpha +alpha = 128,128 +scalestart = 0.65,0.65 +ID = 200 + +[BG WindowGrid] +type = normal +spriteNo = 4, 1 +layerNo = 0 +start = 0, 11800 +delta = 0.8667, 1 +mask = 1 +scalestart = 0.5,0.5 +trans = addalpha +alpha = 196,196 +scalestart = 0.5,0.5 + +[BG WindowGridReflection] +type = normal +spriteNo = 4, 1 +layerNo = 0 +start = 0, 282 +delta = 0.8667, 1 +mask = 1 +trans = addalpha +alpha = 128,128 +scalestart = 0.65,0.65 +ID = 2 diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage.sff b/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage.sff new file mode 100644 index 00000000..be8484de Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/interactivestageChar.air b/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/interactivestageChar.air new file mode 100644 index 00000000..34c0b952 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/interactivestageChar.air @@ -0,0 +1,76 @@ +;This has to be defined to avoid debug errors +[Begin Action 0] +-1, 0, 0, 0, 1 + +[Begin Action 598] +600,0, 0,0, -1, , , 99,99 + +[Begin Action 599] +Clsn2: 1 + Clsn2[0] = -34, -192, 34, 0 +-1, 0, 0, 0, 1 + +[Begin Action 600] +600, 0, 0, 0, 2 +-1, 0, 0, 0, 2 + +[Begin Action 601] +600, 1, 0, 0, 2 +-1, 0, 0, 0, 2 + +[Begin Action 602] +600, 2, 0, 0, 2 +-1, 0, 0, 0, 2 + +[Begin Action 603] +600, 3, 0, 0, 2 +-1, 0, 0, 0, 2 + +[Begin Action 604] +600, 4, 0, 0, 2 +-1, 0, 0, 0, 2 + +[Begin Action 605] +600, 5, 0, 0, 2 +-1, 0, 0, 0, 2 + +; Falling +[Begin Action 1003] +-1,0, 0,0, -1 +1010,0, 0,0, 10 +; Landing +[Begin Action 1004] +1010,1, 0,0, 4 +1010,2, 0,0, 4 +1010,3, 0,0, 4 +1010,4, 0,0, 4 +1010,5, 0,0, 4 +1010,6, 0,0, 4 +1010,7, 0,0, 4 +1010,16, 0,0, 5 +; Leggy +[Begin Action 1005] +1010,8, 0,0, 4 +1010,9, 0,0, 4 +1010,10, 0,0, 4 +1010,11, 0,0, 4 +1010,12, 0,0, 4 +1010,13, 0,0, 4 +1010,14, 0,0, 4 +1010,15, 0,0, 4 +1010,14, 0,0, 4 +1010,13, 0,0, 4 +1010,12, 0,0, 4 +1010,16, 0,0, 5 +; SideToSide +[Begin Action 1006] +1010,16, 0,0, 5 +1010,17, 0,0, 9 +1010,16, 0,0, 5 +1010,18, 0,0, 5 +1010,19, 0,0, 9 +1010,18, 0,0, 5 +1010,16, 0,0, 5 +; Idle +[Begin Action 1007] +1010,16, 0,0, 5 \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/interactivestageChar.sff b/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/interactivestageChar.sff new file mode 100644 index 00000000..18e2bac2 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/interactivestageChar.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/interactivestageChar.snd b/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/interactivestageChar.snd new file mode 100644 index 00000000..10609b6f Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/interactivestageChar.snd differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/interactivestageChar.zss b/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/interactivestageChar.zss new file mode 100644 index 00000000..d416a543 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/interactivestageChar.zss @@ -0,0 +1,421 @@ +# ZSS language: https: //github.com/ikemen-engine/Ikemen-GO/wiki/ZSS +# ZSS syntax highlighter for Notepad + + : https: //github.com/ikemen-engine/zss_npp +#------------------------------------------------------------------------------------------ +# Commenting in ZSS +# You may notice that the "; " character is now replaced with the "# " character. +# This is because "; " is now used to separate parameters in sctrls rather than a +# blank space. + +#========================================================================================== +# Attached Char player states +#========================================================================================== +# First we override this state from the common files to avoid debug warnings due to RemapPal +[StateDef 5900; +anim: -2;] + +changeState{value: 0} + +#========================================================================================== +[Statedef 0; +anim: -2;] + +#========================================================================================== +# We override this state from the common files to avoid debug warnings when the fight is over +[Statedef 175; +anim: -2;] + +#========================================================================================== +# Helper Pillar state +#========================================================================================== +# Helper Pillar - basic state +[StateDef 200; +type: S; +movetype: I; +physics: N; +ctrl: 0; +anim: -2; +velset: 0, 0;] + +# Now we'll define some aspects for the helper +assertSpecial{flag: nohardcodedkeys; flag2: noautoturn} +playerPush{value: 0} +notHitBy{value: SCA} + +# The left pillar has an anim with a CLSN, there is a reason for this +if pos X < 0 { + changeAnim{value: 599} +} + +#The right pillar has a very small chance of spawning Cartucho the cat +if pos X > 0 +&& map(BrokenObject) = 0 #only if the pillar is whole +&& NumExplod(1010) = 0 #no more than one Cartucho +&& randomRange(1,3000) = 1010 #one chance every 3000 +&& RoundState = 2 #only in active round time +{ + explod { + ID: 1010; + anim: 1003; + sprpriority: 9; + space: stage; + pos: 0,-screenHeight*2; + Vel: 0, 2; + bindtime: 1; + bindid: ID; + removetime: -1; + ownpal: 1; + scale: 1, 1; + } +} + +#Now all this code is only run if Cartucho has appeared +if pos X > 0 && NumExplod(1010) > 0 { + #if the Pillar is Destroyed, Cartucho will fly away + if map(BrokenObject) = 1 { + if explodVar(1010, 0,anim) != 1003 { + modifyExplod { + ID:1010; + Vel: RandomRange(-2,2)*2,-3; + accel:0,0.4; + anim:1003; + } + } + modifyExplod{ + ID:1010; + angle: -time*30; + } + } + #if the pillar is whole, Cartucho does his stuff + if map(BrokenObject) = 0 { + #Kitty is falling + if explodVar(1010, 0,pos y) + explodVar(1010, 0,vel y) <= -180 { + modifyExplod { + ID:1010; + angle: -time*20 + } + } + #Have him turn towards the ground + if explodVar(1010, 0,pos y) + explodVar(1010, 0,vel y) = -140 { + modifyExplod{ID:1010; angle: 0;} + } + #Kitty lands + if explodVar(1010, 0,pos y) + explodVar(1010, 0,vel y) >= -130 && explodVar(1010, 0,vel y) > 0 { + modifyExplod{ID:1010; Vel: 0,0;anim:1004;} + } + #Kitty goes Idle after an anim is over + if (explodVar(1010, 0,anim) = 1004 && explodVar(1010, 0,animElem) = 8) #after landing + || (explodVar(1010, 0,anim) = 1005 && explodVar(1010, 0,animElem) = 12) #after kneading + || (explodVar(1010, 0,anim) = 1006 && explodVar(1010, 0,animElem) = 7) { #after looking around + modifyExplod{ID:1010; Vel: 0,0;anim:1007;} + } + #This checks if someone has fallen + for i = 1 ; 8; 1 { + if playerNoExist($i) { + if player($i),stateNo = [5080,5120]{Map(SomeoneHasFallen):=1;} + } + } + #Kitty kneads when someone has fallen or EnvShake is triggered + if explodVar(1010, 0,anim) = 1007 && (EnvShakeVar(time) > 1 || Map( SomeoneHasFallen) = 1) { + Map(SomeoneHasFallen):=0; + modifyExplod{ID:1010; Vel: 0,0;anim:1005;} + } + #Kitty looks around randomly if he's idle + if explodVar(1010, 0,anim) = 1007 && RandomRange(1,1000) = 10 { + modifyExplod{ID:1010; Vel: 0,0;anim:1006;} + } + } +} + +# These two define the right pillar collision size +map(WidthDetect) := 30 * stageVar(StageInfo.XScale); +map(HeightDetect) := 180 * stageVar(StageInfo.YScale); +angleDraw{scale: stageVar(stageInfo.xScale), stageVar(stageInfo.yScale)} +transformClsn{scale: stageVar(stageInfo.xScale), stageVar(stageInfo.yScale)} + +# Objects should only be broken once and only after the fight starts +if map(BrokenObject) = 0 && roundState > 1 { + + # We'll run a loop to check if the player is airborne AND in a gethit state + # We iterate up until 8 because that's normally the maximum number of players in Ikemen GO + for i = 1; 8; 1 { + if playerNoExist($i) # This trigger is crucial in any code that loops through all players! + && player($i), hitFall = 1 + && player($i), stateType = A + && player($i), pos y != 0 + && player($i), sprPriority > -9 { # This is to avoid being affected when a stage fatal is triggered + # Now let's check if the player is near the object + # We'll use a local variable to make the code easier to follow + let breakPillar = 0; + + # The right helper will detect it via player position + if pos X > 0 && + abs((player($i), pos x + player($i), vel x - pos x)) < map(WidthDetect) + && abs((player($i), pos y + player($i), vel y - pos y)) < map(HeightDetect) { + let breakPillar = 1; + } + + # While the left helper checks Clsn box overlap + if pos x < 0 && + clsnOverLap(clsn2, player($i), ID, clsn2) { + let breakPillar = 1; + } + + if $breakPillar { + # This will define the object as "broken" + map(BrokenObject) := 1; + + playSnd{value: 0, 1; pan: pos x*facing} + + # For the left side pillar + if pos x < 0 { + # We expand the stage via modifyStageVar + modifyStageVar{camera.boundleft: -200} + # We hide the reflection from the pillars via modifyBGCtrl and a BGCtrl "Enable" + modifyBGCtrl{ID: 301; value: 0} + # We hide the pillars themselves via modifyStageBG and changing the anim + # which ends in an invisible frame! Alternative: shrink it via scalestart + modifyStageBG{ID: 101; actionno: 1} + } + + # For the right side pillar + if pos x > 0 { + modifyStageVar{camera.boundright: 200} + modifyBGCtrl{ID: 302; value: 0} + modifyStageBG{ID: 102; actionno: 1} + } + + # Let's throw some debris + for j = 1 ; randomRange(30, 40) { + explod{ + ID: 600; + anim: 600 + randomRange(0, 5); + sprpriority: 9; + space: stage; + pos: facing*30, -map(HeightDetect)/2; + vel: randomRange(-4, 4), randomRange(-7, -3); + accel: 0, 0.3; + bindtime: 1; + bindid: ID; + removetime: 120; + ownpal: 1; + scale: 1, 1; + trans: addalpha; + alpha: 128, 128; + angle: randomrange(1, 360); + random: map(WidthDetect)/2, map(HeightDetect)/2; + } + } + } + } + } +} + +# We don't want the debris going under the floor, but bouncing on it. +if numExplod(600) > 0 { + for t = 0; numExplod(600)-1 { + if abs(explodVar(600, $t, vel y)) > 2.5 { + modifyExplod{ID:600; index:$t; angle: explodVar(600, $t,angle) + (3*sign(603-explodVar(600, $t,anim)))} + } + + if explodVar(600, $t,pos y) + explodVar(600, $t,vel y) >= 0 + && explodVar(600, $t,vel y) > 0.2 { + modifyExplod{ID:600; index:$t; vel: explodVar(600, $t,vel x) * 0.8, explodVar(600, $t,vel y) * -0.5} + } + } +} + +# For the "slowdown" effect +if map(BrokenObject) = 1 && map(SlowDownTime) > 0 { + pause{time: 1} + map(SlowDownTime) := map(SlowDownTime) - 1; +} + +# Resetting the objects on load, but condition it to ResetBG! +if roundState = 0 && stageVar(StageInfo.ResetBG) = 1 { + map(SlowDownTime) := stageConst(SlowDown); + map(BrokenObject) := 0; + + # We check the proper side, and use stageBGVar to see if it was broken! + if pos x < 0 && stageBGVar(101, 0, actionno) != 0 { + # We shrink the stage via modifyStageVar + modifyStageVar{camera.boundleft: -30} + # We show the reflection from the pillars via modifyBGCtrl and a BGCtrl "Enable" + modifyBGCtrl{ID: 301; value: 1} + # We show the pillars themselves via modifyStageBG and Changeanim = 0 + modifyStageBG{ID: 101; actionno: 0} + } + + if pos x > 0 && stageBGVar(102, 0, actionno) != 0 { + modifyStageVar{camera.boundright: 30} + modifyBGCtrl{ID: 302; value: 1} + modifyStageBG{ID: 102; actionno: 0} + } +} + +if roundState = 0 && # If Fatality conditions *can* be met, and fatality wasn't performed, + # make banners visible during this round + (player(1), decisiveRound || player(2), decisiveRound || player(1), teamMode = Turns || player(2), teamMode = Turns) + && stageBGVar(50, 0, delta.x) != 17.10#This means the banner was not already changed +{ + modifyStageBG{ID: 50; trans:addalpha;alpha:256,0;delta.x:0.6;} + modifyStageBG{ID: 51; trans:addalpha;alpha:256,0;delta.x:0.6;} +} + +#========================================================================================== +# Negative states +#========================================================================================== +[Statedef -4] +# Attached chars will often use helpers to interact with Teams 1 and 2. +if isHelper(1) {# let's run this only once + + # This defines the stage color pulse. + + if time = 0 { + map(Adding) := 1; + } + + if gameVar(superpausetime) = 0 && gameVar(pausetime) = 0 { + map(Pulsation) := map(Pulsation) + map(Adding); + } + if map(Pulsation) = 180 { + map(Adding) := -1; + } + if map(Pulsation) = 0 { + map(Adding) := 1; + } + map(Intensity) := 0.4; + + displaytoclipboard{text: "%v"; params: map(Pulsation);} + + bgPalFX{ID: 2; time: 2; add: 0, -50 + map(Pulsation)*map(Intensity), 10 + map(Pulsation)*map(Intensity)*2.2} + bgPalFX{ID: 3; time: 2; add: 0, -100 + map(Pulsation)*1.8*map(Intensity), 10 + map(Pulsation)*map(Intensity)} + bgPalFX{ID: 4; time: 2; add: -50 + map(Pulsation)*map(Intensity), -50 + map(Pulsation)*map(Intensity), -10 + map(Pulsation)*map(Intensity)} + + # Stage Fatal! If the player dies within the window and is thrown up high enough, player will go through + # and "fall" across, then an envhsake and a sound will play. + + # Reset everything every round + if roundState = 0{ + map(PlayerNumberIsDead) := -1; + } + + if roundState = 3 && # Let's see... + ((player(1), decisiveRound && player(1), win = 1) || + (player(2), decisiveRound && player(2), win = 1) || + (player(1), teamMode = Turns && player(1), win = 0) || + (player(2), teamMode = Turns && player(2), win = 0)) + && map(PlayerNumberIsDead) < 0 { # Once it's checked, no need to re-check + for i = 1; 8; 1 { + if playerNoExist($i) + && player($i), alive = 0 + && player($i), vel y != 0 + && abs(player($i), pos x + cameraPos x) < 110 + && player($i), pos y = [-130, -90] { + # Mark the player for the Fatal, play the sound and pause + map(PlayerNumberIsDead) := player($i), ID; + playSnd{value: 0, 2; abspan: 1} + pause{time: 120} + } + } + } + # End check for Roundover and win conditions + + # If the stage fatal is triggered, + # hide the lifebars, send the defeated player behind most stage layers, + # hide their reflection and shadow, and have them "fall" under the ground level, + # and trigger an EnvShake when they landed. + # "Landing" moment is checked via commonstates, which is a crucial thought process + # for this kind of universal moves. + if map(PlayerNumberIsDead) > 0 && roundState > 2 { + sprPriority{value: -9; layerno: -1; redirectID: map(PlayerNumberIsDead)} + modifyReflection{intensity: 0; redirectID: map(PlayerNumberIsDead)} + modifyShadow{intensity: 0; color: 0, 0, 0; redirectID: map(PlayerNumberIsDead)} + groundLevelOffset{value: 900; redirectID: map(PlayerNumberIsDead)} + + if playerID(map(PlayerNumberIsDead)), StateNo = 5100 + && playerID(map(PlayerNumberIsDead)), Time < 2 { + envShake{time: 30; freq: 90; ampl: 10; decay: 1} + Map(JustDied):=1; + } + + if roundState = 3 { + assertSpecial{flag: nobardisplay} + } + } + + if Map(JustDied) > 0 && Map(JustDied) < 9999 {Map(JustDied):=Map(JustDied)+1;} + + if Map(JustDied) > 50 && Map(JustDied) < 70 + && stageBGVar(50, 0, delta.x) != 17.10 + { + #The wobbling effect is done by stacking these shaded explods + explod{ + ID:599; + anim: 598; + postype : left; + pos:screenWidth/2,screenHeight/2; + removetime: 40; + scale :9999,9999; + Shadow :0; + ownpal :1; + ontop :1; + shader :"wobble"; + } + + #And this is another simple modifyStageBG idea to make a stage object invisible; just give it this trans + #and add another parameter you can check via stageBGVar + if Map(JustDied) = 60 {modifyStageBG{ID: 50; trans:addalpha;alpha:0,256;delta.x:17.10;}} + } +} +# End isHelper(1) + +# Create only one left side pillar +# Note the 'StageBackEdgeDist' and 'StageFrontEdgeDist' triggers. They are useful for Attached Chars! +if numHelper(1) = 0 { + helper{ + helpertype: normal; + facing: 1; + name: "Left Pillar"; + pos: -stageBackEdgeDist, 10; + ID: 1; + stateno : 200; + keyctrl : 0; + supermovetime: 0; + pausemovetime: 0; + size.ground.back: 1; + size.ground.front: 1; + size.height: 1; + preserve: 1; # This is relevant in Attached Char helpers! + standby: 0; # This is relevant in Attached Char helpers! + immortal: 1; + ownpal: 1; + } +} + +# Create only one right side pillar +if numHelper(2) = 0 { + helper{ + helpertype: normal; + facing: -1; + name: "Right Pillar"; + pos: stageFrontEdgeDist, 10; + ID: 2; + stateno : 200; + keyctrl : 0; + supermovetime: 0; + pausemovetime: 0; + size.ground.back: 1; + size.ground.front: 1; + size.height: 1; + preserve: 1; + standby: 0; + immortal: 1; + ownpal: 1; + } +} + +# Now we'll define some conditions for the Attached Character itself, which is not used anymore. +if isHelper = 0 { + assertSpecial{flag: nohardcodedkeys; flag2: noautoturn} + tagout{} +} diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/interactivestagechar.def b/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/interactivestagechar.def new file mode 100644 index 00000000..9e32245e --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/interactivestagechar.def @@ -0,0 +1,50 @@ +[Info] +name = "Attached Char for Interactive Stage" +author = "Lasombra Demon" +ikemenversion = 1.0 +localcoord = 320,240 +;Special thanks to Foobs for his template: +;https://github.com/RealFoobs/Attached-char-template/tree/main + +;Extra Sprites made by David Bazbar + +[Files] +sprite = interactivestageChar.sff +anim = interactivestageChar.air +sound = interactivestageChar.snd +stcommon = common1.cns +st = interactivestageChar.zss + +;Credits to Neat Unsou for these files +[Shaders] +wobble = wobble.frag + +;========================================================================================= +;CMD section +[Remap] +x = x +y = y +z = z +a = a +b = b +c = c +s = s + +[Defaults] +command.time = 15 +command.buffer.time = 1 + +[Command] +name = "FF" ;Required (do not remove) +command = F, F +time = 10 + +[Command] +name = "BB" ;Required (do not remove) +command = B, B +time = 10 + +[Command] +name = "recovery" ;Required (do not remove) +command = x+y +time = 1 diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/wobble.frag b/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/wobble.frag new file mode 100644 index 00000000..b949dcae --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/wobble.frag @@ -0,0 +1,89 @@ +//When converting to SPV, specify version 450 +//#version 450 core + +#if __VERSION__ >= 450 + // VULKAN PATH + #define COMPAT_TEXTURE texture + layout(binding = 1) uniform UniformBufferObject { + vec4 x1x2x4x3; + vec4 tint; + vec3 add; + vec3 mult; + float alpha, gray, hue; + int mask; + bool isFlat, isRgba, isTrapez, neg; + float iTime; + vec2 iResolution; + float aspectRatio; + }; + layout(push_constant, std430) uniform u { + vec4 palUV; + float p0, p1, p2, p3, p4, p5, p6, p7; + float p8, p9, p10, p11, p12, p13, p14, p15; + }; + layout(binding = 2) uniform sampler2D tex; + layout(binding = 3) uniform sampler2D pal; + layout(binding = 4) uniform sampler2D bgl_RenderedTexture; // GrabPass + layout(location = 0) in vec2 texcoord; + layout(location = 0) out vec4 FragColor; +#else + // OPENGL / GLES PATH + #define COMPAT_VARYING in + #define COMPAT_TEXTURE texture + #ifdef GL_ES + precision highp float; + precision highp int; + #endif + out vec4 FragColor; + + uniform sampler2D tex; + uniform sampler2D pal; + uniform sampler2D bgl_RenderedTexture; // GrabPass + + uniform vec4 x1x2x4x3; + uniform vec4 tint; + uniform vec3 add, mult; + uniform float alpha, gray, hue; + uniform int mask; + uniform bool isFlat, isRgba, isTrapez, neg; + + uniform float p0, p1, p2, p3, p4, p5, p6, p7; + uniform float p8, p9, p10, p11, p12, p13, p14, p15; + + uniform float iTime; + uniform vec2 iResolution; + uniform float aspectRatio; + COMPAT_VARYING vec2 texcoord; +#endif +// ---------------------- + + +vec2 wobble(vec2 uv, float amplitude, float frequence, float speed) +{ + float offset = amplitude * sin(uv.y * frequence + iTime * speed); + return vec2(uv.x + offset, uv.y); +} + +void main() { + // Obtain the UV coordinates of the entire screen (0.0 ~ 1.0) + vec2 screen_uv = gl_FragCoord.xy / iResolution; + + //screen_uv.y = 1.0 - screen_uv.y; + + // Obtain the parameters passed from CNS (use default values ​​if not set) + float amplitude = (p0 != 0.0) ? p0 : 0.0130; + float frequence = (p1 != 0.0) ? p1 : 25.00; + float speed = (p2 != 0.0) ? p2 : 16.0; + + + // Distort the background UV coordinates to create a wavy effect + vec2 distorted_uv = wobble(screen_uv, amplitude/aspectRatio, frequence, speed); + + // Sample the GrabPassed background image (bgl_RenderedTexture) using the distorted UVs + vec4 bgColor = texture(bgl_RenderedTexture, distorted_uv); + bgColor.a = 1.0; + + // Output to the screen + FragColor = bgColor; + +} \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/wobble.frag.spv b/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/wobble.frag.spv new file mode 100644 index 00000000..99388f94 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/stages/interactivestage/wobble.frag.spv differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/kfm.def b/bios/Game Engines/Ikemen GO/ikemen/stages/kfm.def new file mode 100644 index 00000000..12d87831 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/stages/kfm.def @@ -0,0 +1,362 @@ +; Definition of KFM's stage +; *** denotes values you should change/check for each stage. +; The term "background" is used to mean both backgrounds and foregrounds. + +;-------------------------------------------------------- +[Info] + ;Name of the stage. +name = "Mountainside Temple" +displayname = "Mountainside Temple" ;Name to display +versiondate = 09,30,2009 ;Version date of stage (MM,DD,YYYY or X.XX) +mugenversion = 1.1 ;Version of M.U.G.E.N stage works on (X.XX) +author = "Elecbyte" ;Stage author name + +;-------------------------------------------------------- +[Camera] + ;Camera starting position: Usually 0 for both +startx = 0 +starty = 0 + + ;Left and right bound of camera + ;You may want to fiddle a bit with these values to make sure the + ;background doesn't move too far or too little + ;*** +boundleft = -150 +boundright = 150 + + ;High and low bound of camera + ;High is a negative number. Make is more negative if you want to + ;camera to be able to move higher. + ;Low should usually be 0. + ;If omitted, defaults to -25 and 0 respectively + ;*** +boundhigh = -22 +boundlow = 0 + + ;This is how much the camera will move vertically towards the + ;highest player. Valid values are from 0 to 1. A value of 0 will mean + ;the camera does not move up at all. A value of 1 will makes the camera + ;follow the highest player. + ;Typically .2 for normal-sized backgrounds. You may need to pull this + ;value up for taller backgrounds. +verticalfollow = .2 + + ;Minimum vertical distance the highest player has to be from the floor, + ;before the camera starts to move up to follow him. For extremely + ;tall stages, a floor tension of about 20-30 coupled with a + ;vertical-follow of .8 allows the camera to follow the action. +floortension = 0 + + ;Vertical distance from top and bottom edges where players can influence + ;vertical movement of the camera. +;tensionhigh = 95 +;tensionlow = -5 + + ;Horizontal distance player is from edge before camera starts to move + ;left or right. Typically 50 or 60. +tension = 60 + + ;Number of pixels beyond the top and bottom of the screen that may + ;be drawn. Overdraw specifies the how much can be seen during an + ;EnvShake. Overdraw pixels will also be used when the screen aspect + ;is taller than the stage aspect. +overdrawhigh = 0 +overdrawlow = 0 + + ;Number of pixels into the top and bottom of the screen that may be + ;cut from drawing when the screen aspect is shorter than the stage + ;aspect. These parameters suggest a guideline, and the actual + ;number of pixels cut depends on the difference in aspect. +cuthigh = 35 +cutlow = 25 + + ;Zoom limits +zoomout = 1 +zoomin = 1 + +;-------------------------------------------------------- +[PlayerInfo] +;--- Player 1 --- + ;Player 1 starting coordinates. + ;p1startx is typically -70 and p2startx is 70. + ;p1starty should be 0. +p1startx = -70 ;Starting x coordinates +p1starty = 0 ;Starting y coordinates +p1facing = 1 ;Direction player faces: 1=right, -1=left + +;--- Player 2 --- +p2startx = 70 +p2starty = 0 +p2facing = -1 + +;--- Common --- + ;Don't change these values. +leftbound = -1000 ;Left bound (x-movement) +rightbound = 1000 ;Right bound + +;-------------------------------------------------------- +[Bound] + ;Distance from left/right edge of screen that player can move to + ;Typically 15 +screenleft = 15 ;Dist from left of screen that player can move to +screenright = 15 ;Right edge + +;-------------------------------------------------------- +[StageInfo] + ;"Ground" level where players stand at, measured in pixels from the + ;top of the screen. + ;Adjust this value to move the ground level up/down in the screen. + ;*** +zoffset = 200 + + ;Leave this at 1. It makes the players face each other +autoturn = 1 + + ;Set the following to 1 to have the background be reset between + ;rounds. +resetBG = 1 + + ;Width and height of the local coordinate space of the stage. +localcoord = 320, 240 + + ;Horizontal and vertical scaling factor for drawing. +xscale = 1 +yscale = 1 + +;-------------------------------------------------------- +[Shadow] + ;This controls the darkness of the shadow. Valid values range + ;from 0 (lightest) to 256 (darkest). Defaults to 128 if omitted. +intensity = 64 + + ;This is the shadow color given in r,g,b. Valid values for each + ;range from 0 (lightest) to 255 (darkest). + ;Defaults to 0,0,0 if omitted. + ;intensity and color's effects add up to give the final shadow + ;result. +color = 0,0,0 + + ;This is the scale factor of the shadow. Use a big scale factor + ;to make the shadow longer. You can use a NEGATIVE scale factor + ;to make the shadow fall INTO the screen. + ;Defaults to 0.4 if omitted. +yscale = -.1 + + ;This parameter lets you set the range over which the shadow is + ;visible. The first value is the high level, and the second is + ;the middle level. Both represent y-coordinates of the player. + ;A shadow is invisible if the player is above the high level, + ;and fully visible if below the middle level. The shadow is + ;faded in between the two levels. This gives an effect of the + ;shadow fading away as the player gets farther away from the + ;ground. If omitted, defaults to no level effects (shadow is + ;always fully visible). +fade.range = -400,-100 + +;-------------------------------------------------------- +[Reflection] + ;Intensity of reflection (from 0 to 256). Set to 0 to have no + ;reflection. Defaults to 0. +intensity = 128 + +;-------------------------------------------------------- +[Music] + ;Put a filename for a MOD, MP3 or MIDI here, or just leave it + ;blank if you don't want music. If an invalid filename is + ;given, then no music will play. To play CD audio, put + ;the track number followed by ".da". Using a track number of + ;0 will play a random audio track. For example, to play + ;track 3 from a music CD, use: + ; bgmusic = 3.da +bgmusic = sound/kfm.mid + +;bgmloopstart = +;bgmloopend = + + ;Adjust the volume. 100 is for 100%. +bgmvolume = 100 + +;======================================================== +;-------------------------------------------------------- +; Background definition +; *** +;------------------------------------- +; [BG x] +; type = ? "Normal"/"Parallax" (def: "normal") +; spriteno = ?, ? Sprite group and number: groupno, imgno (req'd) +; start = ?, ? Starting location (integer) (def: 0, 0) +; delta = ?, ? Change in location per camera unit moved (float) (def: 1,1) +; trans = ? Transparency settings: "none"/"add"/"add1"/"sub"/"addalpha" (def: "none") +; alpha = ?, ? (only for trans=addalpha) Source,dest alpha (def: 256,0) +; mask = ? Masking (int): 0 - off, 1 - on (def: 0) +; velocity = ?, ? Velocity: x, y (float): speed background moves (def: 0, 0) +; tile = ?, ? Tiling: xtile, ytile (int): 0 - off, 1 - infinite, +; >1 - tile that number of times (def: 0, 0) - only for Normal BG +; tilespacing = ?, ? Tiling: x, y (int) : space between tiles (def: 0, 0) +; Parallax-only: +; xscale = ?, ? Top xscale, bottom xscale (float) +; width = ?, ? Top width, bottom width (int) (use either this or above, but not both) +; yscalestart = ? Starting y-scale (float, in percent) (def: 100) +; yscaledelta = ? Change in y-scale per unit (float, in percent) (def: 0) +;------------------------------------- + +;------------------------------------- +; Main background definition +[BGdef] + ;Filename of sprite data +spr = kfm.sff + + ;Set to 1 if you want to clear the screen to magenta before + ;drawing layer 0 (the default background). Good for spotting "holes" + ;in your background. + ;Remember to turn this off when you are done debugging the background, + ;because it slows down performance. +debugbg = 0 + +;------------------------------------- +; IKEMEN GO ONLY, preview animation used in the Select screen +[Begin Action 9000] +9000,1, 0,0,-1 +;------------------------------------- + +;---------- +; Start each background element with the following: +; Make sure it's "[BG n]", where n is anything you like (it's only used to +; report errors.) For example, you could use: [BG TheFloor] +; Specify as many as you like. This is an example of a normal background: +[BG 0] + + ;The background type goes here: for now, only NORMAL and PARALLAX + ;If this line is omitted, the type will be assumed to be normal. +type = normal + + ;The sprite number to use for the background (from the SFF specified above) + ;It's the group-number, followed by a comma, then the sprite-number + ;*** Do not omit this line. +spriteno = 0, 0 + + ;This is the layer number, which determines where the sprite is drawn to. + ;Valid values are 0 and 1. + ;0 for background (behind characters), 1 for foreground (in front) + ;If this line is omitted, the default value of 0 will be assumed. +layerno = 0 + + ;This is the starting location of the background in the format + ;x, y + ;If this line is omitted, the default value of 0,0 will be assumed. +start = 0, 0 + + ;These are the number of pixels the background moves for every single unit + ;of camera movement, in the format + ;x, y + ;For the main background (eg. the floor the players stand on) you'll want + ;to use a delta of 1,1. Things farther away should have a smaller delta, + ;like 0.5 for example. Things near the camera should have a larget delta. + ;If this line is omitted, the default value of 1,1 will be assumed. +delta = .5,.5 + + ;Here is the transparency setting of the background. + ;Valid values are: + ;"none" for normal drawing + ;"add" for colour addition (like a spotlight effect) + ;"add1" for colour addition with background dimmed to 50% brightness + ;"addalpha" for colour addition with control over alpha values (you need + ; an "alpha" parameter if you use this) + ;"sub" for colour subtraction (like a shadow effect) + ;If this line is omitted, it's assumed that there will be no transparency. +trans = none + + ;Use this parameter only if "trans = addalpha". First value is the alpha + ;of the source (sprite), and the second is the alpha of the destination + ;(background). The values range from 0 to 256. + ;Uncomment the line below to use it: +;alpha = 256,0 + + ;Mask means whether or not to draw colour zero of a sprite. + ;If you turn masking off, the background will take less CPU power to draw, + ;so remember to turn it off on sprites that don't use it. + ;If this line is omitted, it's assumed that there will be no masking. +mask = 0 + + ;The format for tiling is x,y. For each of them, the value is: + ;0 to use no tiling, 1 to tile, n where (n>1) to tile n times. + ;If this line is omitted, it's assumed that there will be no tiling. +tile = 0, 0 + + ;This is the x and y space between each tile, for tiled backgrounds + ;If omitted, default value is 0,0 +tilespacing = 0,0 + + ;This defines the drawing space, or "window" of the background. It's + ;given in the form + ;x1,y1, x2,y2 + ;where (x1,y1)-(x2,y2) define a rectangular box. + ;Make the window smaller if you only want to draw part of the background. + ;You normally do not have to use this setting. Value values range from + ;0-319 for x, and 0-239 for y. The values are 0,0, 319,239 by default (full + ;screen). + ;Uncomment the line below to use it: +;window = 0,0, 319, 239 + + ;Similar to the delta parameter, this one affects the movement of + ;the window. Defaults to 0,0 + ;Uncomment the line below to use it: +;windowdelta = 0,0 + +;---------- +[BG Floor] +type = parallax +spriteno = 10,0 +start = 0, 181 +delta = .78, .75 +xscale = 1, 1.75 +yscalestart = 100 +yscaledelta = 1.2 + +;---------- +[BG Ceiling] +type = parallax +spriteno = 11,0 +start = 0, 10 +delta = 1.1115,.75 +xscale = 1.425,1 +yscalestart = 100 +yscaledelta = -1.0 + +;---------- +[BG Wall reflection on floor] +type = normal +spriteno = 1,1 +trans = addalpha ;Specify alpha +alpha = 128,128 ;to 50% + 50% +start = 0, 239 +delta = .8, .75 +mask = 1 +tile = 1, 0 + +;---------- +[BG Wall] +type = normal +spriteno = 1,0 +start = 0, 11 +delta = .8, .75 +mask = 1 +tile = 1, 0 + +;---------- +[BG Pillar Bottom] +type = normal +spriteno = 15,0 +start = 0, 180 +delta = .8, .75 +mask = 1 +tile = 1, 0 + +;---------- +[BG Pillar Top] +type = normal +spriteno = 15,1 +start = 0, 11 +delta = .8, .75 +mask = 1 +tile = 1, 0 diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/kfm.sff b/bios/Game Engines/Ikemen GO/ikemen/stages/kfm.sff new file mode 100644 index 00000000..be50e737 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/stages/kfm.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/stage0-720.def b/bios/Game Engines/Ikemen GO/ikemen/stages/stage0-720.def new file mode 100644 index 00000000..dbd9a551 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/stages/stage0-720.def @@ -0,0 +1,308 @@ +; Definition of stage 0 (training stage) +; *** denotes values you should change/check for each stage. +; The term "background" is used to mean both backgrounds and foregrounds. + +;-------------------------------------------------------- +[Info] + ;Name of the stage. +name = "Training Room 720" +displayname = "Training Room HD" ;Name to display +versiondate = 09,30,2009 ;Version date of stage (MM,DD,YYYY or X.XX) +mugenversion = 1.0 ;Version of M.U.G.E.N stage works on (X.XX) +author = "Elecbyte" ;Stage author name + +;-------------------------------------------------------- +[Camera] + ;Camera starting position: Usually 0 for both +startx = 0 +starty = 0 + + ;Left and right bound of camera + ;You may want to fiddle a bit with these values to make sure the + ;background doesn't move too far or too little + ;*** +boundleft = -500 +boundright = 500 + + ;High and low bound of camera + ;High is a negative number. Make is more negative if you want to + ;camera to be able to move higher. + ;Low should usually be 0. + ;If omitted, defaults to -25 and 0 respectively + ;*** +boundhigh = -450 +boundlow = 0 + + ;This is how much the camera will move vertically towards the + ;highest player. Valid values are from 0 to 1. A value of 0 will mean + ;the camera does not move up at all. A value of 1 will makes the camera + ;follow the highest player. + ;Typically .2 for normal-sized backgrounds. You may need to pull this + ;value up for taller backgrounds. +verticalfollow = .85 + + ;Minimum vertical distance the highest player has to be from the floor, + ;before the camera starts to move up to follow him. For extremely + ;tall stages, a floor tension of about 20-30 coupled with a + ;vertical-follow of .8 allows the camera to follow the action. +floortension = 200 + + ;Horizontal distance player is from edge before camera starts to move + ;left or right. Typically 50 or 60. +tension = 200 + +overdrawhigh = 120 +overdrawlow = 120 +cuthigh = 0 +cutlow = 0 + +;-------------------------------------------------------- +[PlayerInfo] +;--- Player 1 --- + ;Player 1 starting coordinates. +p1startx = -280 ;Starting x coordinates +p1starty = 0 ;Starting y coordinates +p1facing = 1 ;Direction player faces: 1=right, -1=left + +;--- Player 2 --- +p2startx = 280 +p2starty = 0 +p2facing = -1 + +;--- Player 3 --- +p3startx = -400 +p3starty = 0 +p3facing = 1 + +;--- Player 4 --- +p4startx = 400 +p4starty = 0 +p4facing = -1 + +;--- Common --- +leftbound = -4000 ;Left bound (x-movement) +rightbound = 4000 ;Right bound + +;-------------------------------------------------------- +[Bound] + ;Distance from left/right edge of screen that player can move to + ;Typically 15 +screenleft = 60 ;Dist from left of screen that player can move to +screenright = 60 ;Right edge + +;-------------------------------------------------------- +[StageInfo] + ;"Ground" level where players stand at, measured in pixels from the + ;top of the screen. + ;Adjust this value to move the ground level up/down in the screen. + ;*** +zoffset = 660 + + ;Leave this at 1. It makes the players face each other +autoturn = 1 + + ;Set the following to 1 to have the background reset itself between + ;rounds. +resetBG = 1 + + ;Width and height of the local coordinate space of the stage. +localcoord = 1280, 720 + + ;Horizontal and vertical scaling factor for drawing. +xscale = 1 +yscale = 1 + + ;Specifies the display scale of the portrait for screenpack rendering + ;This value overwrites localcoord-compliant display scale +portraitscale = 4 + +;-------------------------------------------------------- +[Shadow] + ;This is the shadow darkening intensity. Valid values range from + ;0 (lightest) to 256 (darkest). Defaults to 128 if omitted. +intensity = 96 + + ;This is the shadow color given in r,g,b. Valid values for each + ;range from 0 (lightest) to 255 (darkest). + ;Defaults to 0,0,0 if omitted. + ;intensity and color's effects add up to give the final shadow + ;result. +color = 0,0,0 + + ;This is the scale factor of the shadow. Use a big scale factor + ;to make the shadow longer. You can use a NEGATIVE scale factor + ;to make the shadow fall INTO the screen. + ;Defaults to 0.4 if omitted. +yscale = .3 + + ;This parameter lets you set the range over which the shadow is + ;visible. The first value is the high level, and the second is + ;the middle level. Both represent y-coordinates of the player. + ;A shadow is invisible if the player is above the high level, + ;and fully visible if below the middle level. The shadow is + ;faded in between the two levels. This gives an effect of the + ;shadow fading away as the player gets farther away from the + ;ground. If omitted, defaults to no level effects (shadow is + ;always fully visible). +fade.range = 0,0 + +;-------------------------------------------------------- +[Reflection] + ;Intensity of reflection (from 0 to 256). Set to 0 to have no + ;reflection. Defaults to 0. +intensity = 0 + +;-------------------------------------------------------- +[Music] + ;Put a filename for a MOD, MP3 or MIDI here, or just leave it + ;blank if you don't want music. If an invalid filename is + ;given, then no music will play. To play CD audio, put + ;the track number followed by ".da". Using a track number of + ;0 will play a random audio track. For example, to play + ;track 3 from a music CD, use: + ; bgmusic = 3.da +bgmusic = + +;bgmloopstart = +;bgmloopend = + + ;Adjust the volume. 100 is for 100%. +bgmvolume = 100 + +;======================================================== +;-------------------------------------------------------- +; Background definition +; *** +;------------------------------------- +; [BG x] +; type = ? "Normal"/"Parallax" (def: "normal") +; spriteno = ?, ? Sprite group and number: groupno, imgno (req'd) +; start = ?, ? Starting location (integer) (def: 0, 0) +; delta = ?, ? Change in location per camera unit moved (float) (def: 1,1) +; trans = ? Transparency settings: "none"/"add"/"add1"/"sub"" (def: "none") +; mask = ? Masking (int): 0 - off, 1 - on (def: 0) +; velocity = ?, ? Velocity: x, y (float): speed background moves (def: 0, 0) +; tile = ?, ? Tiling: xtile, ytile (int): 0 - off, 1 - infinite, +; >1 - tile that number of times (def: 0, 0) - only for Normal BG +; tilespacing = ?, ? Tiling: x, y (int) : space between tiles (def: 0, 0) +; Parallax-only: +; xscale = ?, ? Top xscale, bottom xscale (float) +; width = ?, ? Top width, bottom width (int) (use either this or above, but not both) +; yscalestart = ? Starting y-scale (float, in percent) (def: 100) +; yscaledelta = ? Change in y-scale per unit (float, in percent) (def: 0) +;------------------------------------- + +;------------------------------------- +; Main background definition +[BGdef] + ;Filename of sprite data +spr = stage0-720.sff + + ;Set to 1 if you want to clear the screen to magenta before + ;drawing layer 0 (the default background). Good for spotting "holes" + ;in your background. + ;Remember to turn this off when you are done debugging the background, + ;because it slows down performance. +debugbg = 0 + +;------------------------------------- +; IKEMEN GO ONLY, preview animation used in the Select screen +[Begin Action 9000] +9000,1, 0,0,-1 +;------------------------------------- + +;---------- +; Start each background element with the following: +; Make sure it's "[BG n]", where n is anything you like (it's only used to +; report errors.) For example, you could use: [BG TheFloor] +; Specify as many as you like. This is an example of a normal background: +[BG 0] + + ;The background type goes here: for now, only NORMAL and PARALLAX + ;If this line is omitted, the type will be assumed to be normal. +type = normal + + ;The sprite number to use for the background (from the SFF specified above) + ;It's the group-number, followed by a comma, then the sprite-number + ;*** Do not omit this line. +spriteno = 0, 0 + + ;This is the layer number, which determines where the sprite is drawn to. + ;Valid values are 0 and 1. + ;0 for background (behind characters), 1 for foreground (in front) + ;If this line is omitted, the default value of 0 will be assumed. +layerno = 0 + + ;This is the starting location of the background in the format + ;x, y + ;If this line is omitted, the default value of 0,0 will be assumed. +start = 0, 0 + + ;These are the number of pixels the background moves for every single unit + ;of camera movement, in the format + ;x, y + ;For the main background (eg. the floor the players stand on) you'll want + ;to use a delta of 1,1. Things farther away should have a smaller delta, + ;like 0.5 for example. Things near the camera should have a larget delta. + ;If this line is omitted, the default value of 1,1 will be assumed. +delta = .75, .75 + + ;Here is the transparency setting of the background. + ;Valid values are: + ;"none" for normal drawing + ;"add" for colour addition (like a spotlight effect) + ;"add1" for colour addition with background dimmed to 50% brightness + ;"addalpha" for colour addition with control over alpha values (you need + ; an "alpha" parameter if you use this) + ;"sub" for colour subtraction (like a shadow effect) + ;If this line is omitted, it's assumed that there will be no transparency. +trans = none + + ;Use this parameter only if "trans = addalpha". First value is the alpha + ;of the source (sprite), and the second is the alpha of the destination + ;(background). The values range from 0 to 256. + ;Uncomment the line below to use it: +;alpha = 256,0 + + ;Mask means whether or not to draw colour zero of a sprite. + ;If you turn masking off, the background will take less CPU power to draw, + ;so remember to turn it off on sprites that don't use it. + ;If this line is omitted, it's assumed that there will be no masking. +mask = 0 + + ;The format for tiling is x,y. For each of them, the value is: + ;0 to use no tiling, 1 to tile, n where (n>1) to tile n times. + ;If this line is omitted, it's assumed that there will be no tiling. +;tile = 0, 0 + + ;This is the x and y space between each tile, for tiled backgrounds + ;If omitted, default value is 0,0 +tilespacing = 0,0 + + ;This defines the drawing space, or "window" of the background. It's + ;given in the form + ;x1,y1, x2,y2 + ;where (x1,y1)-(x2,y2) define a rectangular box. + ;Make the window smaller if you only want to draw part of the background. + ;You normally do not have to change this setting. Value values range from + ;0-319 for x, and 0-239 for y. The values are 0,0, 319,239 by default (full + ;screen). + ;Uncomment the line below to use it: +;window = 0,0, 1279, 719 + + ;Similar to the delta parameter, this one affects the movement of + ;the window. Defaults to 0,0 + ;Uncomment the line below to use it: +;windowdelta = 0,0 + + +;---------- +[BG 1] +type = parallax +spriteno = 1, 0 +start = 0, 612 +delta = .78, .75 +xscale = 1, 3 +yscalestart = 100 +yscaledelta = .3 +mask = 0 diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/stage0-720.sff b/bios/Game Engines/Ikemen GO/ikemen/stages/stage0-720.sff new file mode 100644 index 00000000..a601941c Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/stages/stage0-720.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/stage0.def b/bios/Game Engines/Ikemen GO/ikemen/stages/stage0.def new file mode 100644 index 00000000..023b8cf9 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/stages/stage0.def @@ -0,0 +1,307 @@ +; Definition of stage 0 (training stage) +; *** denotes values you should change/check for each stage. +; The term "background" is used to mean both backgrounds and foregrounds. + +;-------------------------------------------------------- +[Info] + ;Name of the stage. +name = "Training Room" +displayname = "Training Room" ;Name to display +versiondate = 09,30,2009 ;Version date of stage (MM,DD,YYYY or X.XX) +mugenversion = 1.0 ;Version of M.U.G.E.N stage works on (X.XX) +author = "Elecbyte" ;Stage author name + +;-------------------------------------------------------- +[Camera] + ;Camera starting position: Usually 0 for both +startx = 0 +starty = 0 + + ;Left and right bound of camera + ;You may want to fiddle a bit with these values to make sure the + ;background doesn't move too far or too little + ;*** +boundleft = -125 +boundright = 125 + + ;High and low bound of camera + ;High is a negative number. Make is more negative if you want to + ;camera to be able to move higher. + ;Low should usually be 0. + ;If omitted, defaults to -25 and 0 respectively + ;*** +boundhigh = -25 +boundlow = 0 + + ;This is how much the camera will move vertically towards the + ;highest player. Valid values are from 0 to 1. A value of 0 will mean + ;the camera does not move up at all. A value of 1 will makes the camera + ;follow the highest player. + ;Typically .2 for normal-sized backgrounds. You may need to pull this + ;value up for taller backgrounds. +verticalfollow = .2 + + ;Minimum vertical distance the highest player has to be from the floor, + ;before the camera starts to move up to follow him. For extremely + ;tall stages, a floor tension of about 20-30 coupled with a + ;vertical-follow of .8 allows the camera to follow the action. +floortension = 0 + + ;Horizontal distance player is from edge before camera starts to move + ;left or right. Typically 50 or 60. +tension = 50 + + ;Number of pixels beyond the top and bottom of the screen that may + ;be drawn. Overdraw specifies the how much can be seen during an + ;EnvShake. Overdraw pixels will also be used when the screen aspect + ;is taller than the stage aspect. +overdrawhigh = 0 +overdrawlow = 0 + + ;Number of pixels into the top and bottom of the screen that may be + ;cut from drawing when the screen aspect is shorter than the stage + ;aspect. These parameters suggest a guideline, and the actual + ;number of pixels cut depends on the difference in aspect. +cuthigh = 35 +cutlow = 25 + + +;-------------------------------------------------------- +[PlayerInfo] +;--- Player 1 --- + ;Player 1 starting coordinates. + ;p1startx is typically -70 and p2startx is 70. + ;p1starty should be 0. +p1startx = -70 ;Starting x coordinates +p1starty = 0 ;Starting y coordinates +p1facing = 1 ;Direction player faces: 1=right, -1=left + +;--- Player 2 --- +p2startx = 70 +p2starty = 0 +p2facing = -1 + +;--- Common --- + ;Don't change these values. +leftbound = -1000 ;Left bound (x-movement) +rightbound = 1000 ;Right bound + +;-------------------------------------------------------- +[Bound] + ;Distance from left/right edge of screen that player can move to + ;Typically 15 +screenleft = 15 ;Dist from left of screen that player can move to +screenright = 15 ;Right edge + +;-------------------------------------------------------- +[StageInfo] + ;"Ground" level where players stand at, measured in pixels from the + ;top of the screen. + ;Adjust this value to move the ground level up/down in the screen. + ;*** +zoffset = 190 + + ;Leave this at 1. It makes the players face each other +autoturn = 1 + + ;Set the following to 1 to have the background reset itself between + ;rounds. +resetBG = 1 + + ;Width and height of the local coordinate space of the stage. +localcoord = 320, 240 + + ;Horizontal and vertical scaling factor for drawing. +xscale = 1 +yscale = 1 + +;-------------------------------------------------------- +[Shadow] + ;This is the shadow darkening intensity. Valid values range from + ;0 (lightest) to 256 (darkest). Defaults to 128 if omitted. +intensity = 96 + + ;This is the shadow color given in r,g,b. Valid values for each + ;range from 0 (lightest) to 255 (darkest). + ;Defaults to 0,0,0 if omitted. + ;intensity and color's effects add up to give the final shadow + ;result. +color = 0,0,0 + + ;This is the scale factor of the shadow. Use a big scale factor + ;to make the shadow longer. You can use a NEGATIVE scale factor + ;to make the shadow fall INTO the screen. + ;Defaults to 0.4 if omitted. +yscale = .3 + + ;This parameter lets you set the range over which the shadow is + ;visible. The first value is the high level, and the second is + ;the middle level. Both represent y-coordinates of the player. + ;A shadow is invisible if the player is above the high level, + ;and fully visible if below the middle level. The shadow is + ;faded in between the two levels. This gives an effect of the + ;shadow fading away as the player gets farther away from the + ;ground. If omitted, defaults to no level effects (shadow is + ;always fully visible). +fade.range = 0,0 + +;-------------------------------------------------------- +[Reflection] + ;Intensity of reflection (from 0 to 256). Set to 0 to have no + ;reflection. Defaults to 0. +intensity = 0 + +;-------------------------------------------------------- +[Music] + ;Put a filename for a MOD, MP3 or MIDI here, or just leave it + ;blank if you don't want music. If an invalid filename is + ;given, then no music will play. To play CD audio, put + ;the track number followed by ".da". Using a track number of + ;0 will play a random audio track. For example, to play + ;track 3 from a music CD, use: + ; bgmusic = 3.da +bgmusic = + +;bgmloopstart = +;bgmloopend = + + ;Adjust the volume. 100 is for 100%. +bgmvolume = 100 + +;======================================================== +;-------------------------------------------------------- +; Background definition +; *** +;------------------------------------- +; [BG x] +; type = ? "Normal"/"Parallax" (def: "normal") +; spriteno = ?, ? Sprite group and number: groupno, imgno (req'd) +; start = ?, ? Starting location (integer) (def: 0, 0) +; delta = ?, ? Change in location per camera unit moved (float) (def: 1,1) +; trans = ? Transparency settings: "none"/"add"/"add1"/"sub"" (def: "none") +; mask = ? Masking (int): 0 - off, 1 - on (def: 0) +; velocity = ?, ? Velocity: x, y (float): speed background moves (def: 0, 0) +; tile = ?, ? Tiling: xtile, ytile (int): 0 - off, 1 - infinite, +; >1 - tile that number of times (def: 0, 0) - only for Normal BG +; tilespacing = ?, ? Tiling: x, y (int) : space between tiles (def: 0, 0) +; Parallax-only: +; xscale = ?, ? Top xscale, bottom xscale (float) +; width = ?, ? Top width, bottom width (int) (use either this or above, but not both) +; yscalestart = ? Starting y-scale (float, in percent) (def: 100) +; yscaledelta = ? Change in y-scale per unit (float, in percent) (def: 0) +;------------------------------------- + +;------------------------------------- +; Main background definition +[BGdef] + ;Filename of sprite data +spr = stage0.sff + + ;Set to 1 if you want to clear the screen to magenta before + ;drawing layer 0 (the default background). Good for spotting "holes" + ;in your background. + ;Remember to turn this off when you are done debugging the background, + ;because it slows down performance. +debugbg = 0 + +;------------------------------------- +; IKEMEN GO ONLY, preview animation used in the Select screen +[Begin Action 9000] +9000,1, 0,0,-1 +;------------------------------------- + +;---------- +; Start each background element with the following: +; Make sure it's "[BG n]", where n is anything you like (it's only used to +; report errors.) For example, you could use: [BG TheFloor] +; Specify as many as you like. This is an example of a normal background: +[BG 0] + + ;The background type goes here: for now, only NORMAL and PARALLAX + ;If this line is omitted, the type will be assumed to be normal. +type = normal + + ;The sprite number to use for the background (from the SFF specified above) + ;It's the group-number, followed by a comma, then the sprite-number + ;*** Do not omit this line. +spriteno = 0, 0 + + ;This is the layer number, which determines where the sprite is drawn to. + ;Valid values are 0 and 1. + ;0 for background (behind characters), 1 for foreground (in front) + ;If this line is omitted, the default value of 0 will be assumed. +layerno = 0 + + ;This is the starting location of the background in the format + ;x, y + ;If this line is omitted, the default value of 0,0 will be assumed. +start = 0, 0 + + ;These are the number of pixels the background moves for every single unit + ;of camera movement, in the format + ;x, y + ;For the main background (eg. the floor the players stand on) you'll want + ;to use a delta of 1,1. Things farther away should have a smaller delta, + ;like 0.5 for example. Things near the camera should have a larget delta. + ;If this line is omitted, the default value of 1,1 will be assumed. +delta = 1, 1 + + ;Here is the transparency setting of the background. + ;Valid values are: + ;"none" for normal drawing + ;"add" for colour addition (like a spotlight effect) + ;"add1" for colour addition with background dimmed to 50% brightness + ;"addalpha" for colour addition with control over alpha values (you need + ; an "alpha" parameter if you use this) + ;"sub" for colour subtraction (like a shadow effect) + ;If this line is omitted, it's assumed that there will be no transparency. +trans = none + + ;Use this parameter only if "trans = addalpha". First value is the alpha + ;of the source (sprite), and the second is the alpha of the destination + ;(background). The values range from 0 to 256. + ;Uncomment the line below to use it: +;alpha = 256,0 + + ;Mask means whether or not to draw colour zero of a sprite. + ;If you turn masking off, the background will take less CPU power to draw, + ;so remember to turn it off on sprites that don't use it. + ;If this line is omitted, it's assumed that there will be no masking. +mask = 0 + + ;The format for tiling is x,y. For each of them, the value is: + ;0 to use no tiling, 1 to tile, n where (n>1) to tile n times. + ;If this line is omitted, it's assumed that there will be no tiling. +tile = 1, 0 + + ;This is the x and y space between each tile, for tiled backgrounds + ;If omitted, default value is 0,0 +tilespacing = 0,0 + + ;This defines the drawing space, or "window" of the background. It's + ;given in the form + ;x1,y1, x2,y2 + ;where (x1,y1)-(x2,y2) define a rectangular box. + ;Make the window smaller if you only want to draw part of the background. + ;You normally do not have to change this setting. Value values range from + ;0-319 for x, and 0-239 for y. The values are 0,0, 319,239 by default (full + ;screen). + ;Uncomment the line below to use it: +;window = 0,0, 319, 239 + + ;Similar to the delta parameter, this one affects the movement of + ;the window. Defaults to 0,0 + ;Uncomment the line below to use it: +;windowdelta = 0,0 + + +;---------- +[BG 1] +type = normal +spriteno = 0, 1 +start = 0, 185 +delta = 1, 1 +mask = 0 +velocity = 0, 0 +tile = 1, 0 +tilespacing = 0, 0 diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/stage0.sff b/bios/Game Engines/Ikemen GO/ikemen/stages/stage0.sff new file mode 100644 index 00000000..ebd03e28 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/stages/stage0.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/stage1.def b/bios/Game Engines/Ikemen GO/ikemen/stages/stage1.def new file mode 100644 index 00000000..6e9634c3 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/stages/stage1.def @@ -0,0 +1,240 @@ +; Definition of Stage1 (Training stage) +; The term "background" is used to mean both backgrounds and foregrounds. +; Licensed under CC BY 3.0. + +; ---------------------------------------------------------- +[Info] +name = "Training Stage" ; Internal name of the stage. +displayName = "Training Stage" ; Name to display on the select screen. +versionDate = 1.0 ; Version / Date of stage. +mugenVersion = 1.1 ; Version of MUGEN the stage made for, use the (1.0 / 1.1) format +;ikemenVersion = 1.0 ; Not yet implemented +author = "Gacel" ; Stage author name. + +; ---------------------------------------------------------- +[Camera] +; Camera starting position: Usually 0 for both +startX = 0 +startY = 0 + +; Left and right bound of camera +; You may want to fiddle a bit with these values to make sure the +; background doesn't move too far or too little +boundLeft = -125 +boundRight = 125 + +; High and low bound of camera +; High is a negative number. Make it more negative if you want to +; camera to be able to move higher. +; Low should usually be 0. +; If omitted, defaults to -25 and 0 respectively +boundHigh = -76 +boundLow = 0 + +; This is how much the camera will move vertically towards the +; highest player. Valid values are from 0 to 1. A value of 0 will mean +; the camera does not move up at all. A value of 1 will makes the camera +; follow the highest player. +; Typically .2 for normal-sized backgrounds. You may need to pull this +; value up for taller backgrounds. +verticalfollow = .2 + +; Minimum vertical distance the highest player has to be from the floor, +; before the camera starts to move up to follow him. For extremely +; tall stages, a floor tension of about 20-30 coupled with a +; vertical-follow of .8 allows the camera to follow the action. +floortension = 0 + +; Horizontal distance player is from edge before camera starts to move +; left or right. Typically 50 or 60. +tension = 50 + +; Number of pixels beyond the top and bottom of the screen that may +; be drawn. Overdraw specifies the how much can be seen during an +; EnvShake. Overdraw pixels will also be used when the screen aspect +; is taller than the stage aspect. +overdrawhigh = 50 +overdrawlow = 50 + +; Number of pixels into the top and bottom of the screen that may be +; cut from drawing when the screen aspect is shorter than the stage +; aspect. These parameters suggest a guideline, and the actual +; number of pixels cut depends on the difference in aspect. +cuthigh = 35 +cutlow = 25 + + +; ---------------------------------------------------------- +[PlayerInfo] +; --- Player 1 --- +; Player 1 starting coordinates. +; p1StartX is typically -70 and p2startx is 70. +; p1StartY should be 0. +p1StartX = -70 ;Starting x coordinates +p1StartY = 0 ;Starting y coordinates +p1Facing = 1 ;Direction player faces: 1=right, -1=left + +; --- Player 2 --- +p2StartX = 70 +p2StartY = 0 +p2Facing = -1 + +; --- Common --- +; Absolute limit that any object can move on the X axis. +; Normally you do not want to change these values +; unless you make a very very wide stage. (Over 700 in screenLeft/screenRight) +leftBound = -1000 +rightBound = 1000 + +; ---------------------------------------------------------- +[Bound] +; Distance from left/right edge of screen that camera can move to. +; Typically 15 +screenLeft = 15 +screenRight = 15 + +; ---------------------------------------------------------- +[StageInfo] +; "Ground" level where players stand at, measured in pixels from the +; top of the screen. +; Adjust this value to move the ground level up/down in the screen. +; *** +zoffset = 204 + +; Leave this at 1. It makes the players face each other +autoturn = 1 + +; Set the following to 1 to have the background reset itself between rounds. +resetBG = 1 + +; Width and height of the local coordinate space of the stage. +localCoord = 320, 240 +portraitScale = 0.41666 + +; Horizontal and vertical scaling factor for drawing. +xScale = 1 +yScale = 1 + +; ---------------------------------------------------------- +[Shadow] +; This is the shadow darkening intensity. Valid values range from +; 0 (lightest) to 256 (darkest). Defaults to 128 if omitted. +intensity = 0 + +; This is the shadow color given in r,g,b. Valid values for each +; range from 0 (lightest) to 255 (darkest). +; Defaults to "0, 0, 0" if omitted. +; intensity and color's effects add up to give the final shadow result. +color = 0, 0, 0 + +; This is the scale factor of the shadow. Use a big scale factor +; to make the shadow longer. You can use a NEGATIVE scale factor +; to make the shadow fall INTO the screen. +; Defaults to 0.4 if omitted. +yScale = .3 + +; This parameter lets you set the range over which the shadow is +; visible. The first value is the high level, and the second is +; the middle level. Both represent y-coordinates of the player. +; A shadow is invisible if the player is above the high level, +; and fully visible if below the middle level. The shadow is +; faded in between the two levels. This gives an effect of the +; shadow fading away as the player gets farther away from the +; ground. If omitted, defaults to no level effects (shadow is +; always fully visible). +fade.range = 0, 0 + +; ---------------------------------------------------------- +[Reflection] + ;Intensity of reflection (from 0 to 256). Set to 0 to have no + ;reflection. Defaults to 0. +intensity = 128 + +; ---------------------------------------------------------- +[Music] +; Put a filename for a MOD, MP3 or MIDI here, or just leave it +; blank if you don't want music. If an invalid filename is +; given, then no music will play. +bgMusic = + +; bgmLoopstart = +; bgmloopend = + + ;Adjust the volume. 100 is for 100%. +bgmVolume = 100 + +; ========================================================== + +; ---------------------------------------------------------- +; Background definition +; ------------------------------------- +; [BG x] +; type = ? "Normal"/"Parallax" (def: "normal") +; spriteNo = ?, ? Sprite group and number: groupno, imgno (req'd) +; start = ?, ? Starting location (integer) (def: 0, 0) +; delta = ?, ? Change in location per camera unit moved (float) (def: 1,1) +; trans = ? Transparency settings: "none"/"add"/"add1"/"sub"" (def: "none") +; mask = ? Masking (int): 0 - off, 1 - on (def: 0) +; velocity = ?, ? Velocity: x, y (float): speed background moves (def: 0, 0) +; tile = ?, ? Tiling: xtile, ytile (int): 0 - off, 1 - infinite, +; >1 - tile that number of times (def: 0, 0) - only for Normal BG +; tilespacing = ?, ? Tiling: x, y (int) : space between tiles (def: 0, 0) +; +; Parallax-only: +; xScale = ?, ? Top xscale, bottom xscale (float) +; width = ?, ? Top width, bottom width (int) (use either this or above, but not both) +; yScaleStart = ? Starting y-scale (float, in percent) (def: 100) +; yScaleDelta = ? Change in y-scale per unit (float, in percent) (def: 0) +; ------------------------------------- + +; For more info check the stage docs. + +; ------------------------------------- +; Main background definition +[BGdef] +; Filename of sprite data. +spr = stage1.sff + +; Set to 1 if you want to clear the screen to magenta before +; drawing layer 0 (the default background). +; Good for spotting "holes" in your background. +; Remember to turn this off when you are done debugging the background, +; because it slows down performance. +debugBg = 0 + +;------------------------------------- +; IKEMEN GO ONLY, preview animation used in the Select screen +[Begin Action 9000] +9000,1, 0,0,-1 +;------------------------------------- + +; BG Colour +[BG 1] +type = normal +spriteNo = 1, 1 +layerNo = 0 +start = 0, 0 +delta = 1, 1 +tile = 1, 1 +tileSpacing = 0, 0 + + +; Wall BG +[BG 1] +type = normal +spriteNo = 1, 0 +layerNo = 0 +start = 0, -46 +delta = 1, 1 +tile = 1, 0 +tileSpacing = 0, 0 + +; Floor BG +[BG 0] +type = normal +spriteNo = 0, 0 +layerNo = 0 +start = 12, 190 +delta = 1, 1 +tile = 1, 0 +tileSpacing = 0, 0 \ No newline at end of file diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/stage1.sff b/bios/Game Engines/Ikemen GO/ikemen/stages/stage1.sff new file mode 100644 index 00000000..03807962 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/stages/stage1.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/stage3d.def b/bios/Game Engines/Ikemen GO/ikemen/stages/stage3d.def new file mode 100644 index 00000000..c245111f --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/stages/stage3d.def @@ -0,0 +1,109 @@ +;This stage and its assets are licensed under MIT. +;-------------------------------------------------------- +[Info] +name = "Third Heights" +displayname = "Third Heights" +versiondate = 11,25,2023 +mugenversion = 1.1 +author = "SuperFromND" + +;-------------------------------------------------------- +[Camera] +startx = 0 +starty = 0 +boundleft = -700 +boundright = 700 +boundhigh = -450 +boundlow = 0 + +verticalfollow = .85 +floortension = 200 +tension = 200 + +overdrawhigh = 120 +overdrawlow = 120 +cuthigh = 0 +cutlow = 0 + +;zoomout = .8 + +;Field of view. 30 is good for photorealistic scenes, but feel free to tweak this to your preference. +fov = 30 +;-------------------------------------------------------- +[PlayerInfo] +;--- Player 1 --- +p1startx = -280 +p1starty = 0 +p1facing = 1 + +;--- Player 2 --- +p2startx = 280 +p2starty = 0 +p2facing = -1 + +;--- Common --- +leftbound = -4000 +rightbound = 4000 + +;-------------------------------------------------------- +[Bound] +screenleft = 60 +screenright = 60 + +;-------------------------------------------------------- +[StageInfo] +zoffset = 660 + +autoturn = 1 +resetBG = 1 + +localcoord = 1280, 720 +xscale = 1 +yscale = 1 + +portraitscale = 4 + +;-------------------------------------------------------- +[Shadow] +intensity = 96 +color = 0,0,0 +yscale = .3 +fade.range = 0,0 + +;-------------------------------------------------------- +[Reflection] +intensity = 0 + +;-------------------------------------------------------- +[Music] +bgmusic = +bgmvolume = 100 + +;======================================================== +[BGdef] + +;Filename of 3D model file +;Supported file types are gltf and glb; supported by most modern 3D model programs. +;It is recommended to use PNG/JPEG/embedded image format for textures. Compressed DDS textures are not supported. +;Make sure the world origin of the model is at the camera's starting point. +model = stage3d.glb + +;Filename of .sff file, required by spec (and for stage portraits) +spr = stage3d.sff + +;debugbg = 0 + +;------------------------------------- +; Model element definition +[Model] + +; X, Y, and Z coordinates of the model +offset = 0,-0.2,-0.9 + +; Scale of the model +scale = 0.05, 0.05, 0.05 + +;------------------------------------- +; Stage portrait data +[Begin Action 9000] +9000,1, 0,0,-1 diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/stage3d.glb b/bios/Game Engines/Ikemen GO/ikemen/stages/stage3d.glb new file mode 100644 index 00000000..d6ccbda8 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/stages/stage3d.glb differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/stage3d.sff b/bios/Game Engines/Ikemen GO/ikemen/stages/stage3d.sff new file mode 100644 index 00000000..7ca17a7d Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/stages/stage3d.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/stage3d_outline.def b/bios/Game Engines/Ikemen GO/ikemen/stages/stage3d_outline.def new file mode 100644 index 00000000..58f81ac1 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/stages/stage3d_outline.def @@ -0,0 +1,109 @@ +;This stage and its assets are licensed under MIT. +;-------------------------------------------------------- +[Info] +name = "Third Heights" +displayname = "Third Heights" +versiondate = 11,25,2023 +mugenversion = 1.1 +author = "SuperFromND"; modifed by Eiton + +;-------------------------------------------------------- +[Camera] +startx = 0 +starty = 0 +boundleft = -700 +boundright = 700 +boundhigh = -450 +boundlow = 0 + +verticalfollow = .85 +floortension = 200 +tension = 200 + +overdrawhigh = 120 +overdrawlow = 120 +cuthigh = 0 +cutlow = 0 + +zoomout = .8 + +;Field of view. 30 is good for photorealistic scenes, but feel free to tweak this to your preference. +fov = 30 +;-------------------------------------------------------- +[PlayerInfo] +;--- Player 1 --- +p1startx = -280 +p1starty = 0 +p1facing = 1 + +;--- Player 2 --- +p2startx = 280 +p2starty = 0 +p2facing = -1 + +;--- Common --- +leftbound = -4000 +rightbound = 4000 + +;-------------------------------------------------------- +[Bound] +screenleft = 60 +screenright = 60 + +;-------------------------------------------------------- +[StageInfo] +zoffset = 660 + +autoturn = 1 +resetBG = 1 + +localcoord = 1280, 720 +xscale = 1 +yscale = 1 + +portraitscale = 4 + +;-------------------------------------------------------- +[Shadow] +intensity = 96 +color = 0,0,0 +yscale = .3 +fade.range = 0,0 + +;-------------------------------------------------------- +[Reflection] +intensity = 0 + +;-------------------------------------------------------- +[Music] +bgmusic = +bgmvolume = 100 + +;======================================================== +[BGdef] + +;Filename of 3D model file +;Supported file types are gltf and glb; supported by most modern 3D model programs. +;It is recommended to use PNG/JPEG/embedded image format for textures. Compressed DDS textures are not supported. +;Make sure the world origin of the model is at the camera's starting point. +model = stage3d_outline.glb + +;Filename of .sff file, required by spec (and for stage portraits) +spr = stage3d_outline.sff + +;debugbg = 0 + +;------------------------------------- +; Model element definition +[Model] + +; X, Y, and Z coordinates of the model +offset = 0,-0.2,-0.9 + +; Scale of the model +scale = 0.05, 0.05, 0.05 + +;------------------------------------- +; Stage portrait data +[Begin Action 9000] +9000,1, 0,0,-1 diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/stage3d_outline.glb b/bios/Game Engines/Ikemen GO/ikemen/stages/stage3d_outline.glb new file mode 100644 index 00000000..9e810276 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/stages/stage3d_outline.glb differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/stage3d_outline.sff b/bios/Game Engines/Ikemen GO/ikemen/stages/stage3d_outline.sff new file mode 100644 index 00000000..69201285 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/stages/stage3d_outline.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/stageZ.def b/bios/Game Engines/Ikemen GO/ikemen/stages/stageZ.def new file mode 100644 index 00000000..bba5e1f6 --- /dev/null +++ b/bios/Game Engines/Ikemen GO/ikemen/stages/stageZ.def @@ -0,0 +1,285 @@ +; Definition of Stage Z (Training stage) +; This stage allows characters to move in the Z axis +; The term "background" is used to mean both backgrounds and foregrounds. +; Licensed under CC BY 3.0. + +; ---------------------------------------------------------- +[Info] +name = "Training Stage Z" ; Internal name of the stage. +displayName = "Training Stage Z" ; Name to display on the select screen. +versionDate = 2025.03.07 ; Version / Date of stage. +ikemenVersion = 1.0 ; Version of Ikemen GO the stage is made for +author = "Phantom.of.the.Server" ; Stage author name. + +; ---------------------------------------------------------- +[Camera] +; Camera starting position: Usually 0 for both +startX = 0 +startY = 0 + +; Left and right bounds of camera +; You may want to fiddle a bit with these values to make sure the +; background doesn't move too far or too little +boundLeft = -165 +boundRight = 165 + +; High and low bound of camera +; High is a negative number. Make it more negative if you want to +; camera to be able to move higher. +; Low should usually be 0. +; If omitted, defaults to -25 and 0 respectively +boundHigh = -240 +boundLow = 0 + +; Top and bot bounds of Z camera +; Top is a negative number. Make it more negative if you want the +; camera to be able to move further in the negative Z direction. +; Bot is usually a positive number. Increase it to let the camera +; move further in the positive Z direction. +; If omitted, defaults to 0 for both. +zboundtop = -20 +zboundbot = 20 + +; Horizontal distance player is from edge before camera starts to move +; left or right. Typically 50 or 60. +tension = 50 + +; Z distance player is from the z boundaries before camera starts to move +; up or down. +ztension = 20 + +; These parameters control the distance between the highest and lowest +; characters where the camera will begin to move or zoom out +tensionhigh = 120 +tensionlow = 0 + +; Number of pixels beyond the top and bottom of the screen that may +; be drawn. Overdraw specifies the how much can be seen during an +; EnvShake. Overdraw pixels will also be used when the screen aspect +; is taller than the stage aspect. +overdrawhigh = 50 +overdrawlow = 50 + +; Number of pixels into the top and bottom of the screen that may be +; cut from drawing when the screen aspect is shorter than the stage +; aspect. These parameters suggest a guideline, and the actual +; number of pixels cut depends on the difference in aspect. +cuthigh = 60 +cutlow = 0 + +; Zoom parameters +startzoom = 1.00 +zoomout = 0.75 +zoomin = 1.00 + +; ---------------------------------------------------------- +[PlayerInfo] +; --- Player 1 --- +; Player 1 starting coordinates. +; p1StartX is typically -70 and p2startx is 70. +; p1StartY should be 0. +p1StartX = -70 ;Starting x coordinates +p1StartY = 0 ;Starting y coordinates +p1StartZ = 0 ;Starting z coordinates +p1Facing = 1 ;Direction player faces: 1=right, -1=left + +; --- Player 2 --- +p2StartX = 70 +p2StartY = 0 +p2StartZ = 0 +p2Facing = -1 + +; --- Common --- +; Absolute limit that any player can move on the X axis. +; These values should be larger than boundLeft and boundRight +leftBound = -1000 +rightBound = 1000 + +;--- Z-axis boundaries --- +topbound = -30 ; Top z-ccordinate that players are allowed to reach +botbound = 30 ; Bottom z-ccordinate that players are allowed to reach + +;-------------------------------------------------------- +; Returning from DOS: Z-axis scaling +[Scaling] +topz = 0 ; Top z-coordinate for scaling reference +botz = 30 ; Bottom z-coordinate for scaling reference +topscale = 1.00 ; Scale to use at top z-coordinate +botscale = 1.10 ; Scale to use at bottom z-coordinate +depthtoscreen = 1.0 ; z-coordinate to y-offset conversion factor + +; ---------------------------------------------------------- +[Bound] +; Distance from left/right edge of screen that players can move to. +; Typically 15 +screenLeft = 30 +screenRight = 30 + +; ---------------------------------------------------------- +[StageInfo] +; "Ground" level where players stand at, measured in pixels from the top of the screen. +; Adjust this value to move the ground level up or down in the screen. +zoffset = 200 + +; Leave this at 1. It makes the players automatically face each other +autoturn = 1 + +; Set the following to 1 to have the background reset itself between rounds. +resetBG = 1 + +; Width and height of the local coordinate space of the stage. +localCoord = 320, 240 + +; Scale of the stage portrait in the select screen +portraitScale = 0.5 + +; Horizontal and vertical scaling factor for drawing. +xScale = 1 +yScale = 1 + +; ---------------------------------------------------------- +[Shadow] +; This is the shadow darkening intensity. Valid values range from +; 0 (lightest) to 256 (darkest). Defaults to 128 if omitted. +intensity = 0 + +; This is the shadow color given in r,g,b. Valid values for each +; range from 0 (lightest) to 255 (darkest). +; Defaults to "0, 0, 0" if omitted. +; intensity and color's effects add up to give the final shadow result. +color = 16, 16, 0 + +; This is the scale factor of the shadow. Use a big scale factor +; to make the shadow longer. You can use a NEGATIVE scale factor +; to make the shadow fall INTO the screen. +; Defaults to 0.4 if omitted. +yScale = -0.25 + +; This parameter lets you set the range over which the shadow is +; visible. The first value is the high level, and the second is +; the middle level. Both represent y-coordinates of the player. +; A shadow is invisible if the player is above the high level, +; and fully visible if below the middle level. The shadow is +; faded in between the two levels. This gives an effect of the +; shadow fading away as the player gets farther away from the +; ground. If omitted, defaults to no level effects (shadow is +; always fully visible). +fade.range = -120, 0 + +offset = 0, 0 + +; ---------------------------------------------------------- +[Reflection] +; Intensity of reflection (from 0 to 256). +; Set to 0 to have no reflection. Defaults to 0. +intensity = 128 + +; See shadow color +color = 256, 128, 0 + +; See shadow yScale +yScale = 0.67 + +offset = 0, 0 + +; ---------------------------------------------------------- +[Music] +; Put a filename for a MOD, MP3 or MIDI here, or just leave it +; blank if you don't want music. If an invalid filename is +; given, then no music will play. +bgMusic = + +; bgmLoopstart = +; bgmloopend = + + ;Adjust the volume. 100 is for 100%. +bgmVolume = 100 + +; ========================================================== + +; ---------------------------------------------------------- +; Background definition +; ---------------------------------------------------------- +; [BG x] +; type = ? "Normal"/"Parallax" (def: "normal") +; spriteNo = ?, ? Sprite group and number: groupno, imgno (req'd) +; start = ?, ? Starting location (integer) (def: 0, 0) +; delta = ?, ? Change in location per camera unit moved (float) (def: 1,1) +; trans = ? Transparency settings: "none"/"add"/"add1"/"sub"" (def: "none") +; mask = ? Masking (int): 0 - off, 1 - on (def: 0) +; velocity = ?, ? Velocity: x, y (float): speed background moves (def: 0, 0) +; tile = ?, ? Tiling: xtile, ytile (int): 0 - off, 1 - infinite, +; >1 - tile that number of times (def: 0, 0) - only for Normal BG +; tilespacing = ?, ? Tiling: x, y (int) : space between tiles (def: 0, 0) +; +; Parallax-only: +; xScale = ?, ? Top xscale, bottom xscale (float) +; width = ?, ? Top width, bottom width (int) (use either this or above, but not both) +; yScaleStart = ? Starting y-scale (float, in percent) (def: 100) +; yScaleDelta = ? Change in y-scale per unit (float, in percent) (def: 0) +; ---------------------------------------------------------- + +; For more information check the stage docs. + +; ---------------------------------------------------------- +; Main background definition +[BGdef] +; Filename of sprite data. +spr = stageZ.sff + +; Set to 1 if you want to clear the screen to magenta before +; drawing layer 0 (the default background). +; Good for spotting "holes" in your background. +; Remember to turn this off when you are done debugging the background, +; because it slows down performance. +debugBg = 0 + +[BG Colour] +type = normal +spriteNo = 1, 1 +layerNo = 0 +start = 0, 0 +delta = 1, 1 +tile = 1, 0 +tileSpacing = 0, 0 +mask = 0 + +[BG Wall] +type = normal +spriteNo = 1, 0 +layerNo = 0 +start = 0, -12 +delta = 0.8667, 1 +tile = 1, 1 +tileSpacing = 0, 0 +mask = 1 + +[BG Floor] +type = parallax +spriteno = 0, 0 +layerno = 0 +start = 0, 160 +delta = 0.8667, 1.0 +tile = 1, 0 +tilespacing = 0, 0 +width = 775, 1141; 0.8667, 1.2667 +mask = 0 + +[BG Wall Reflection] +type = normal +spriteNo = 2, 0 +layerNo = 0 +start = 0, 160 +delta = 0.8667, 1 +tile = 1, 0 +tileSpacing = 0, 0 +trans = addalpha +alpha = 16, 256 + +[BG Y Arrow] +type = normal +spriteNo = 0, 1 +layerNo = 0 +start = -0.5, 170 +delta = 0.90, 1 +mask = 1 diff --git a/bios/Game Engines/Ikemen GO/ikemen/stages/stageZ.sff b/bios/Game Engines/Ikemen GO/ikemen/stages/stageZ.sff new file mode 100644 index 00000000..8da33401 Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/stages/stageZ.sff differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/video/ik_credits.webm b/bios/Game Engines/Ikemen GO/ikemen/video/ik_credits.webm new file mode 100644 index 00000000..563ffa6a Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/video/ik_credits.webm differ diff --git a/bios/Game Engines/Ikemen GO/ikemen/video/ik_logo.webm b/bios/Game Engines/Ikemen GO/ikemen/video/ik_logo.webm new file mode 100644 index 00000000..5c96cbaf Binary files /dev/null and b/bios/Game Engines/Ikemen GO/ikemen/video/ik_logo.webm differ diff --git a/bios/Game Engines/OpenJKDF2/openjkdf2/episode/jk1demo.gob b/bios/Game Engines/OpenJKDF2/openjkdf2/episode/jk1demo.gob new file mode 100755 index 00000000..f0dc1baa Binary files /dev/null and b/bios/Game Engines/OpenJKDF2/openjkdf2/episode/jk1demo.gob differ diff --git a/bios/Game Engines/OpenJKDF2/openjkdf2/episode/jk1mpdem.gob b/bios/Game Engines/OpenJKDF2/openjkdf2/episode/jk1mpdem.gob new file mode 100755 index 00000000..5d9f17d1 Binary files /dev/null and b/bios/Game Engines/OpenJKDF2/openjkdf2/episode/jk1mpdem.gob differ diff --git a/bios/Game Engines/OpenJKDF2/openjkdf2/resource/jk_.cd b/bios/Game Engines/OpenJKDF2/openjkdf2/resource/jk_.cd new file mode 100755 index 00000000..ccd5f638 --- /dev/null +++ b/bios/Game Engines/OpenJKDF2/openjkdf2/resource/jk_.cd @@ -0,0 +1 @@ +Ä2’i \ No newline at end of file diff --git a/bios/Game Engines/OpenJKDF2/openjkdf2/resource/res1demo.gob b/bios/Game Engines/OpenJKDF2/openjkdf2/resource/res1demo.gob new file mode 100755 index 00000000..07cd1f71 Binary files /dev/null and b/bios/Game Engines/OpenJKDF2/openjkdf2/resource/res1demo.gob differ diff --git a/bios/Game Engines/OpenJKDF2/openjkmots/resource/jk_.cd b/bios/Game Engines/OpenJKDF2/openjkmots/resource/jk_.cd new file mode 100644 index 00000000..1a30ba7f --- /dev/null +++ b/bios/Game Engines/OpenJKDF2/openjkmots/resource/jk_.cd @@ -0,0 +1 @@ +)iB; \ No newline at end of file diff --git a/emulators/cdogs.yml b/emulators/cdogs.yml index 197b2ebc..1723cb11 100644 --- a/emulators/cdogs.yml +++ b/emulators/cdogs.yml @@ -13,124 +13,227 @@ verification: existence notes: | Top-down shooter engine, open-source remake of the DOS C-Dogs by Ronny Wester. - Ships every asset it needs in-tree: data/, graphics/, missions/, music/, - sounds/, dogfights/, doc/, wiki/ (about 100 MB). + The repository ships every asset the engine reads: data/, graphics/, + missions/, dogfights/, music/, sounds/ and doc/. - The data root is baked into the binary via -DCDOGS_DATA_DIR (CMakeLists.txt - option). Batocera sets it to /userdata/roms/cdogs/; the Linux source default - is cdogs-data. GetDataFilePath() in src/cdogs/utils.c:392 either returns an - absolute override as-is, or joins the current working directory with - CDOGS_DATA_DIR plus the requested relative path. + The data root is baked into the binary through -DCDOGS_DATA_DIR. The + source default is "../" ("./" on GCW0), CMakeLists.txt:141-147; Batocera + sets it to /userdata/roms/cdogs/. GetDataFilePath(), src/cdogs/utils.c:392, + returns an absolute request as it is, and otherwise joins CDOGS_DATA_DIR + (under the working directory when it is relative) with the requested path. - Top-level sub-trees the game pulls files from (every path is relative to - CDOGS_DATA_DIR, resolved through GetDataFilePath): - data/: ammo.json, bullets.json, guns.json, pickups.json, - map_objects.json, character_classes.json, particles.json, - gamecontrollerdb.txt, prefixes.txt (configuration data) - graphics/: sprites, font, icons; grafx.c:92 (cdogs_icon.bmp), - grafx.c:156 (font.png + font.json) - missions/: single-player campaigns, mission packs (JSON) - music/: menu, briefing, game, end, lose, victory tracks - (music.c:45-50 LoadMusic calls) - sounds/: sfx wavs - dogfights/: deathmatch arenas + Paths below are written under cdogs/, which stands for that data root. - All open-source content (GPL-2.0). No separate BIOS or retail data required. + What the engine reads there: + data/: the JSON class definitions and name lists loaded by main(), + src/cdogs.c:226-245, and the two controller databases, + src/cdogs/joystick.c:43-54 + data/.wolf3d/: campaign templates used when a Wolfenstein 3D, Spear of + Destiny or Super 3D Noah's Ark installation is found, + src/cdogs/map_wolf.c:50 + graphics/: every .png, walked by PicManagerLoad, + src/cdogs/pic_manager.c:247-254, plus the font and the window icon + missions/ and dogfights/: campaigns, src/cdogs/campaigns.c:203-211 + music/: six track directories, src/cdogs/music.c:45-50 + sounds/: samples, src/cdogs.c:213 + doc/CREDITS: src/credits.c:47 files: - name: "ammo.json" - path: "data/ammo.json" + path: "cdogs/data/ammo.json" category: game_data description: "Ammo type definitions" required: true bundled: true - source_ref: "src/cdogs/ammo.c (AmmoLoadJSON reads data/ammo.json)" + source_ref: "src/cdogs.c:228, src/cdogs/ammo.c:77-84" - name: "bullets.json" - path: "data/bullets.json" + path: "cdogs/data/bullets.json" category: game_data description: "Bullet behaviour definitions" required: true bundled: true - source_ref: "src/cdogs/weapon_class.c (BulletsLoadJSON)" + source_ref: "src/cdogs.c:230-232, src/cdogs/weapon_class.c:739-746" - name: "guns.json" - path: "data/guns.json" + path: "cdogs/data/guns.json" category: game_data description: "Weapon definitions" required: true bundled: true - source_ref: "src/cdogs/weapon_class.c" + source_ref: "src/cdogs.c:230-232, src/cdogs/weapon_class.c:757-763" - name: "character_classes.json" - path: "data/character_classes.json" + path: "cdogs/data/character_classes.json" category: game_data description: "Character class definitions" required: true bundled: true - source_ref: "src/cdogs/character_class.c" + source_ref: "src/cdogs.c:234-235, src/cdogs/character_class.c:353-360" - name: "map_objects.json" - path: "data/map_objects.json" + path: "cdogs/data/map_objects.json" category: game_data description: "Interactive map object definitions" required: true bundled: true - source_ref: "src/cdogs/map_object.c" + source_ref: "src/cdogs.c:244-245, src/cdogs/map_object.c:231-238" - name: "particles.json" - path: "data/particles.json" + path: "cdogs/data/particles.json" category: game_data description: "Particle effect definitions" required: true bundled: true - source_ref: "src/cdogs/particle.c" + source_ref: "src/cdogs.c:226, src/cdogs/particle.c:61-64" - name: "pickups.json" - path: "data/pickups.json" + path: "cdogs/data/pickups.json" category: game_data description: "Pickup item definitions" required: true bundled: true - source_ref: "src/cdogs/pickup_class.c" + source_ref: "src/cdogs.c:241-242, src/cdogs/pickup_class.c:246-252" - name: "prefixes.txt" - path: "data/prefixes.txt" + path: "cdogs/data/prefixes.txt" category: game_data description: "Random name generation prefixes" required: true bundled: true - source_ref: "src/cdogs/character.c" + source_ref: "src/prep.c:324-327, src/namegen.c:44-59" + note: "LoadFile reads the stream without checking that fopen succeeded." + + - name: "suffixes.txt" + path: "cdogs/data/suffixes.txt" + category: game_data + description: "Random name generation suffixes" + required: true + bundled: true + source_ref: "src/prep.c:325-327, src/namegen.c:44-59" + note: "LoadFile reads the stream without checking that fopen succeeded." + + - name: "suffixnames.txt" + path: "cdogs/data/suffixnames.txt" + category: game_data + description: "Random name generation name suffixes" + required: true + bundled: true + source_ref: "src/prep.c:326-327, src/namegen.c:44-59" + note: "LoadFile reads the stream without checking that fopen succeeded." - name: "gamecontrollerdb.txt" - path: "data/gamecontrollerdb.txt" + path: "cdogs/data/gamecontrollerdb.txt" category: game_data description: "SDL gamecontroller mapping database" required: false bundled: true - source_ref: "src/cdogs/joystick.c:43" - unsourceable: "ships inside the engine package; a same-named file of another program must not stand in" + source_ref: "src/cdogs/joystick.c:43-48" + note: "A load failure is logged and the built-in SDL mappings stay in use." + + - name: "gamecontrollerbuttondb.txt" + path: "cdogs/data/gamecontrollerbuttondb.txt" + category: game_data + description: "Controller button names and colours" + required: false + bundled: true + source_ref: "src/cdogs/joystick.c:49-54" + note: "A load failure is logged." + + - name: ".wolf3d/" + type: directory + path: "cdogs/data/.wolf3d/" + category: game_data + description: "Campaign templates for Wolfenstein 3D, Spear of Destiny and Super 3D Noah's Ark" + required: false + bundled: true + source_ref: "src/cdogs/map_wolf.c:50, src/cdogs/map_wolf.c:110-134, src/cdogs/map_wolf.c:781-793" + note: > + Read only when the game data of one of these titles is found in a + Steam or GOG installation. + + - name: "graphics/" + type: directory + path: "cdogs/graphics/" + category: game_data + description: "Sprites, tiles, HUD and character body definitions" + required: true + bundled: true + source_ref: "src/cdogs.c:189, src/cdogs/pic_manager.c:181-254, src/cdogs/draw/char_sprites.c:55-115" + note: > + PicManagerLoad walks the directory and loads every .png. + CharSpriteClassesLoadDir reads data.json from each directory of + graphics/chars/bodies/. - name: "font.png" - path: "graphics/font.png" + path: "cdogs/graphics/font.png" category: game_data description: "Main bitmap font" required: true bundled: true - source_ref: "src/cdogs/grafx.c:156 (FontLoadFromJSON)" + source_ref: "src/cdogs.c:186, src/cdogs/grafx.c:156, src/cdogs/font.c:54-60" - name: "font.json" - path: "graphics/font.json" + path: "cdogs/graphics/font.json" category: game_data description: "Main bitmap font layout" required: true bundled: true - source_ref: "src/cdogs/grafx.c:156" + source_ref: "src/cdogs.c:186, src/cdogs/grafx.c:156, src/cdogs/font_utils.c:35-41" - name: "cdogs_icon.bmp" - path: "graphics/cdogs_icon.bmp" + path: "cdogs/graphics/cdogs_icon.bmp" category: game_data description: "Window icon" required: false bundled: true - source_ref: "src/cdogs/grafx.c:92" + source_ref: "src/cdogs/grafx.c:92-93" + + - name: "missions/" + type: directory + path: "cdogs/missions/" + category: game_data + description: "Campaigns" + required: false + bundled: true + source_ref: "src/cdogs/sys_config.h.cmake:38, src/cdogs/campaigns.c:203-206, src/cdogs/campaigns.c:257-298" + note: > + Every entry of the directory is tried as a campaign and subdirectories + are walked. Quick play needs none. + + - name: "dogfights/" + type: directory + path: "cdogs/dogfights/" + category: game_data + description: "Dogfight arenas" + required: false + bundled: true + source_ref: "src/cdogs/sys_config.h.cmake:39, src/cdogs/campaigns.c:208-211" + + - name: "music/" + type: directory + path: "cdogs/music/" + category: game_data + description: "Music tracks: menu, briefing, game, end, lose, victory" + required: false + bundled: true + source_ref: "src/cdogs/music.c:45-50, src/cdogs/music.c:52-64" + note: "Every file of each of the six directories is loaded as a track." + + - name: "sounds/" + type: directory + path: "cdogs/sounds/" + category: game_data + description: "Sound effects" + required: false + bundled: true + source_ref: "src/cdogs.c:213, src/cdogs/sounds.c:187-198, src/cdogs/sounds.c:199-244" + note: "SoundLoadDir walks the directory and loads every .ogg, .wav and .mp3." + + - name: "CREDITS" + path: "cdogs/doc/CREDITS" + category: game_data + description: "Credits shown in the main menu" + required: false + bundled: true + source_ref: "src/credits.c:47-53" diff --git a/emulators/fallout2-ce.yml b/emulators/fallout2-ce.yml index 96189b29..d950e54e 100644 --- a/emulators/fallout2-ce.yml +++ b/emulators/fallout2-ce.yml @@ -60,4 +60,11 @@ files: category: game_data required: false description: "High Resolution Patch resource archive, loaded when present" - source_ref: "src/game.cc:1380-1382" + source_ref: "src/game.cc:1380-1382, src/interface.cc:2488, src/interface.cc:2540-2543" + note: > + Opened as one more database over master.dat, with no check of its + content. The engine loads art\intrface\HR_IFACE_.FRM, the + widened interface bar, and HR_IFACELFT.frm and HR_IFACERHT.frm, + the side panels, which this archive provides. Several builds circulate + under the same name and the code cannot tell them apart. BGforgeNet + f2_res v0.6 carries hr_iface_800.frm and both pairs of side panels. diff --git a/emulators/hcl.yml b/emulators/hcl.yml index fa26013a..338df050 100644 --- a/emulators/hcl.yml +++ b/emulators/hcl.yml @@ -16,73 +16,81 @@ notes: | Castle Labyrinth. ptitSeb's SDL/SDL2/SDL3 fork is used by batocera (the package batocera/ports/hcl pins HCL_VERSION to this commit). - The engine opens every data file from a relative "data/" prefix hard-coded - in the sources: - - qda.c:19, strcpy(fullPath, "data/") before appending qda chunk names - - hero.c:202, fopen("data/save.tmp", "rb") - - sdl2/audio.c:30, strcpy(buff, "data/") before midi/wav loads - - sdl2/graphics.c, sdl3/graphics.c: fopen("data/bmp.qda", "rb") - - game.h:184, savename macro = "data/save.tmp" + The SDL builds open every data file from a relative "data/" prefix + hard-coded in the sources: + - src/qda.c:19, strcpy(fullPath, "data/") before the archive name + - src/sdl2/graphics.c:223, fopen("data/bmp.qda", "rb") + - src/text.c:79, "data/" before en.dat or jp.dat + - src/game.c:1195 and src/game.c:1290, "data/map/" and "data/obj/" + - src/sdl2/audio.c:30 and src/sdl2/audio.c:40, "data/" before the + music and sound names + - src/game.h:184, savename macro = "data/save.tmp" Save files are rewritten in that same relative data/ tree, so the game must - be launched from a working directory that contains data/ (batocera copies - the shipped data/ beside the binary). + be launched from a working directory that contains data/. - The 31 MB data/ tree is shipped in the source repository and is open content. - Nothing else is required. + Paths below are written under hcl/, which stands for that working + directory. The data/ tree is shipped in the source repository. files: - name: "bmp.qda" - path: "data/bmp.qda" + path: "hcl/data/bmp.qda" category: game_data description: "Packed graphics (QDA archive of all bitmaps)" required: true bundled: true - source_ref: "src/sdl2/graphics.c:229 (fopen \"data/bmp.qda\" rb)" + source_ref: "src/qda.c:19-28, src/sdl2/graphics.c:223" - name: "en.dat" - path: "data/en.dat" + path: "hcl/data/en.dat" category: game_data description: "English localization" required: true bundled: true - source_ref: "src/text.c (loaded via data/ prefix)" + source_ref: "src/text.c:79-93" - name: "jp.dat" - path: "data/jp.dat" + path: "hcl/data/jp.dat" category: game_data description: "Japanese localization" required: true bundled: true - source_ref: "src/text.c" + source_ref: "src/text.c:79-93" - - name: "map" - path: "data/map" + - name: "map/" + type: directory + path: "hcl/data/map/" category: game_data - description: "Level maps directory (060 .map files)" + description: "Room tile maps, .map and the background layer a.map" required: true bundled: true - source_ref: "src/stagedata.c (loads data/map/.map)" + source_ref: "src/game.c:1195-1209" - - name: "obj" - path: "data/obj" + - name: "obj/" + type: directory + path: "hcl/data/obj/" category: game_data - description: "Per-stage object definitions directory" + description: "Per-room object definitions, .dat" required: true bundled: true - source_ref: "src/stagedata.c (loads data/obj/.dat)" + source_ref: "src/game.c:1290-1306" - - name: "midi" - path: "data/midi" + - name: "midi/" + type: directory + path: "hcl/data/midi/" category: game_data - description: "Music files (.mid + .ogg companions)" + description: "Music, each track as .mid and .ogg" required: false bundled: true - source_ref: "src/sdl2/audio.c:30 (data/ prefix for midi loads)" + source_ref: "src/sdl2/audio.c:25-34, src/game.c:48-56, src/game.c:473-474" + note: > + PHL_LoadMusic appends .ogg or .mid according to the music type option. + A track that fails to load is not played. - - name: "wav" - path: "data/wav" + - name: "wav/" + type: directory + path: "hcl/data/wav/" category: game_data description: "Sound effect samples" required: false bundled: true - source_ref: "src/sdl2/audio.c (data/wav/.wav)" + source_ref: "src/sdl2/audio.c:37-42, src/game.c:428-470" diff --git a/emulators/hurrican.yml b/emulators/hurrican.yml index 1ce9813e..96dcf521 100644 --- a/emulators/hurrican.yml +++ b/emulators/hurrican.yml @@ -25,6 +25,8 @@ notes: | from --pathsave or -PS, else XDG_DATA_HOME and XDG_CONFIG_HOME on builds with USE_HOME_DIR, else "." (Hurrican/src/Main.cpp:370-385). + Paths below are written under hurrican/, which stands for g_storage_ext. + Files read under g_storage_ext: lang/*.lng: Hurrican/src/Main.cpp:496-515, Hurrican/src/Texts.cpp:65 data/textures/: Hurrican/src/DX8Texture.cpp:204-211 @@ -40,8 +42,9 @@ notes: | for levels, textures, custom.lng and levellist.dat. files: - - name: "lang" - path: "lang" + - name: "lang/" + type: directory + path: "hurrican/lang/" category: game_data description: "Language files (.lng)" required: true @@ -51,8 +54,9 @@ files: GameInit lists the .lng files of lang/, then of the working directory, and aborts when it finds none. - - name: "textures" - path: "data/textures" + - name: "textures/" + type: directory + path: "hurrican/data/textures/" category: game_data description: "Textures (sprites, backgrounds, fonts)" required: true @@ -62,16 +66,18 @@ files: An optional scalefactors.txt in the same directory is read by ReadScaleFactorsFiles (Hurrican/src/DX8Texture.cpp:162-168). - - name: "levels" - path: "data/levels" + - name: "levels/" + type: directory + path: "hurrican/data/levels/" category: game_data description: "Level files and levellist.dat" required: true bundled: true source_ref: "Hurrican/src/Tileengine.cpp:330-336, Hurrican/src/Texts.cpp:127-133" - - name: "shaders" - path: "data/shaders" + - name: "shaders/" + type: directory + path: "hurrican/data/shaders/" category: game_data description: "GLSL shader sources, one subdirectory per GLSL version" required: true @@ -81,16 +87,18 @@ files: Loaded by the GL2 and GL3 renderers (GL2 is the build default); a GL1 build compiles this block out. - - name: "music" - path: "data/music" + - name: "music/" + type: directory + path: "hurrican/data/music/" category: game_data description: "Music tracks" required: true bundled: true source_ref: "Hurrican/src/DX8Sound.cpp:314-320" - - name: "sfx" - path: "data/sfx" + - name: "sfx/" + type: directory + path: "hurrican/data/sfx/" category: game_data description: "Sound effect samples" required: true @@ -98,10 +106,10 @@ files: source_ref: "Hurrican/src/DX8Sound.cpp:580-586" - name: "gamecontrollerdb.txt" - path: "data/gamecontrollerdb.txt" + path: "hurrican/data/gamecontrollerdb.txt" category: game_data description: "SDL game controller mapping database" required: false bundled: true - source_ref: "Hurrican/src/DX8Input.cpp:97-99" - unsourceable: "ships inside the engine package; a same-named file of another program must not stand in" + source_ref: "Hurrican/src/DX8Input.cpp:97-102" + note: "Passed to SDL_GameControllerAddMappingsFromFile; the result is only logged." diff --git a/emulators/ikemen.yml b/emulators/ikemen.yml index b54703ef..beaf21d2 100644 --- a/emulators/ikemen.yml +++ b/emulators/ikemen.yml @@ -16,9 +16,10 @@ notes: | .def, .air, .cmd, .cns, .sff and .snd files of M.U.G.E.N. content, plus its own .zss state files. - Every path below is relative to the working directory. The file names come - from the embedded default configuration, src/resources/defaultConfig.ini, - which save/config.ini overrides (src/main.go:189-195). + Every file is read relative to the working directory; paths below are + written under ikemen/, which stands for it. The file names come from the + embedded default configuration, src/resources/defaultConfig.ini, which + save/config.ini overrides (src/main.go:189-195). The repository ships: data/: common animations, commands, constants and state files @@ -28,17 +29,25 @@ notes: | font/: debug.def with Open Sans, and the default-3x5 bitmap fonts The default configuration also names files the repository does not hold: - the motif data/ikemen1/system.def, the effects pack data/gofx/gofx.def and - the stage stages/stage0-720.def. Release packages copy chars, data, font, - sound, stages and video from the Ikemen-GO-Screenpack repository next to - the engine (.github/workflows/releases.yml:585-593). + the motif data/ikemen1/system.def, the effects pack data/gofx/gofx.def, the + stage stages/stage0-720.def and external/gamecontrollerdb.txt. Release + packages copy chars, data, font, sound, stages and video from the + Ikemen-GO-Screenpack repository next to the engine + (.github/workflows/releases.yml:585-593) and download the controller + database (.github/workflows/releases.yml:610-612). + + A definition file names the files it loads. Each name is searched beside + the definition, beside the motif, in the working directory and in data/ + (src/common.go:641), fonts also in font/ and videos in video/. The motif + names its music under sound/, which release packages ship empty. Characters and stages are found under chars/ and stages/ (src/system.go:5364, src/system.go:5590). files: - - name: "script" - path: "external/script" + - name: "script/" + type: directory + path: "ikemen/external/script/" category: game_data description: "Lua scripts: main.lua and the modules it requires" required: true @@ -49,7 +58,7 @@ files: requires debug, start, options and menu from the same directory. - name: "IkemenCylia_256.png" - path: "external/icons/IkemenCylia_256.png" + path: "ikemen/external/icons/IkemenCylia_256.png" category: game_data description: "Window icon, 256 px" required: true @@ -57,7 +66,7 @@ files: source_ref: "src/resources/defaultConfig.ini:141, src/system.go:527-538" - name: "IkemenCylia_96.png" - path: "external/icons/IkemenCylia_96.png" + path: "ikemen/external/icons/IkemenCylia_96.png" category: game_data description: "Window icon, 96 px" required: true @@ -65,15 +74,16 @@ files: source_ref: "src/resources/defaultConfig.ini:141, src/system.go:527-538" - name: "IkemenCylia_48.png" - path: "external/icons/IkemenCylia_48.png" + path: "ikemen/external/icons/IkemenCylia_48.png" category: game_data description: "Window icon, 48 px" required: true bundled: true source_ref: "src/resources/defaultConfig.ini:141, src/system.go:527-538" - - name: "shaders" - path: "external/shaders" + - name: "shaders/" + type: directory + path: "ikemen/external/shaders/" category: game_data description: "Post-processing shaders offered in the options menu" required: false @@ -81,7 +91,7 @@ files: source_ref: "external/script/options.lua:1646, src/system.go:457-470" - name: "common.air" - path: "data/common.air" + path: "ikemen/data/common.air" category: game_data description: "Common animations merged into every character" required: true @@ -89,7 +99,7 @@ files: source_ref: "src/resources/defaultConfig.ini:12, src/char.go:4676-4689" - name: "common.cmd" - path: "data/common.cmd" + path: "ikemen/data/common.cmd" category: game_data description: "Common commands appended to every character's command file" required: true @@ -97,7 +107,7 @@ files: source_ref: "src/resources/defaultConfig.ini:14, src/compiler.go:8367-8380" - name: "common.const" - path: "data/common.const" + path: "ikemen/data/common.const" category: game_data description: "Common constants" required: true @@ -105,7 +115,7 @@ files: source_ref: "src/resources/defaultConfig.ini:16, src/char.go:4338-4355" - name: "functions.zss" - path: "data/functions.zss" + path: "ikemen/data/functions.zss" category: game_data description: "Common states: shared ZSS functions" required: true @@ -113,7 +123,7 @@ files: source_ref: "src/resources/defaultConfig.ini:18, src/compiler.go:8545-8552" - name: "action.zss" - path: "data/action.zss" + path: "ikemen/data/action.zss" category: game_data description: "Common states: actions" required: true @@ -121,7 +131,7 @@ files: source_ref: "src/resources/defaultConfig.ini:18, src/compiler.go:8545-8552" - name: "demo.zss" - path: "data/demo.zss" + path: "ikemen/data/demo.zss" category: game_data description: "Common states: demo mode" required: true @@ -129,7 +139,7 @@ files: source_ref: "src/resources/defaultConfig.ini:18, src/compiler.go:8545-8552" - name: "dizzy.zss" - path: "data/dizzy.zss" + path: "ikemen/data/dizzy.zss" category: game_data description: "Common states: dizzy" required: true @@ -137,7 +147,7 @@ files: source_ref: "src/resources/defaultConfig.ini:18, src/compiler.go:8545-8552" - name: "guardbreak.zss" - path: "data/guardbreak.zss" + path: "ikemen/data/guardbreak.zss" category: game_data description: "Common states: guard break" required: true @@ -145,7 +155,7 @@ files: source_ref: "src/resources/defaultConfig.ini:18, src/compiler.go:8545-8552" - name: "score.zss" - path: "data/score.zss" + path: "ikemen/data/score.zss" category: game_data description: "Common states: score" required: true @@ -153,7 +163,7 @@ files: source_ref: "src/resources/defaultConfig.ini:18, src/compiler.go:8545-8552" - name: "system.zss" - path: "data/system.zss" + path: "ikemen/data/system.zss" category: game_data description: "Common states: system" required: true @@ -161,7 +171,7 @@ files: source_ref: "src/resources/defaultConfig.ini:18, src/compiler.go:8545-8552" - name: "tag.zss" - path: "data/tag.zss" + path: "ikemen/data/tag.zss" category: game_data description: "Common states: tag team" required: true @@ -169,7 +179,7 @@ files: source_ref: "src/resources/defaultConfig.ini:18, src/compiler.go:8545-8552" - name: "training.zss" - path: "data/training.zss" + path: "ikemen/data/training.zss" category: game_data description: "Common states: training mode" required: true @@ -177,7 +187,7 @@ files: source_ref: "src/resources/defaultConfig.ini:18, src/compiler.go:8545-8552" - name: "common1.cns.zss" - path: "data/common1.cns.zss" + path: "ikemen/data/common1.cns.zss" category: game_data description: "ZSS replacement for the common1.cns state file" required: true @@ -189,7 +199,7 @@ files: asking for common1.cns gets data/common1.cns.zss. - name: "debug.def" - path: "font/debug.def" + path: "ikemen/font/debug.def" category: game_data description: "Debug overlay font definition" required: true @@ -198,7 +208,7 @@ files: note: "loadDebugFont raises a Lua error when the font cannot be loaded." - name: "OpenSans-Bold.ttf" - path: "font/Open_Sans/OpenSans-Bold.ttf" + path: "ikemen/font/Open_Sans/OpenSans-Bold.ttf" category: game_data description: "TrueType face named by debug.def" required: true @@ -209,7 +219,7 @@ files: font directories; the engine panics when that fails too. - name: "default-3x5.def" - path: "font/default-3x5.def" + path: "ikemen/font/default-3x5.def" category: game_data description: "Default motif font (font1)" required: false @@ -218,7 +228,7 @@ files: note: "A motif font that fails to load is logged and replaced by an empty font." - name: "default-3x5.sff" - path: "font/default-3x5.sff" + path: "ikemen/font/default-3x5.sff" category: game_data description: "Glyph sprites named by default-3x5.def" required: false @@ -227,7 +237,7 @@ files: note: "LoadFntSff panics when default-3x5.def is loaded and this file is missing." - name: "system.def" - path: "data/ikemen1/system.def" + path: "ikemen/data/ikemen1/system.def" category: game_data description: "Default motif definition" required: true @@ -239,7 +249,7 @@ files: when the definition cannot be read. -r selects another motif. - name: "gofx.def" - path: "data/gofx/gofx.def" + path: "ikemen/data/gofx/gofx.def" category: game_data description: "Common effects pack" required: true @@ -249,22 +259,158 @@ files: Held by the Ikemen-GO-Screenpack repository and copied into release packages. A load failure puts the match loader in its error state. - - name: "chars" - path: "chars" + - name: "gofx/" + type: directory + path: "ikemen/data/gofx/" + category: game_data + description: "Sprites, animations and sounds named by gofx.def" + required: true + bundled: true + source_ref: "src/fightscreen.go:162-193" + note: "loadFightFx returns an error when the sff, air or snd file it names fails to load." + + - name: "ikemen1/" + type: directory + path: "ikemen/data/ikemen1/" + category: game_data + description: "Default motif: sprites, logo and credits storyboards, fonts" + required: false + bundled: true + source_ref: "src/motif.go:72-85, src/motif.go:2475-2487, src/motif.go:2594-2621, src/storyboard.go:561-620" + note: > + Files named by system.def and searched beside it first. A sprite file + or font that fails to load is logged and replaced by an empty one. + + - name: "select.def" + path: "ikemen/data/select.def" + category: game_data + description: "Character and stage selection list" + required: true + bundled: true + source_ref: "src/motif.go:81, external/script/main.lua:1522, external/script/main.lua:43-50" + note: "main.lua reads the file at startup and raises an error when it cannot be opened." + + - name: "fight.def" + path: "ikemen/data/fight.def" + category: game_data + description: "Fight screen definition" + required: true + bundled: true + source_ref: "src/motif.go:82, src/fightscreen.go:6005-6027, src/fightscreen.go:4792-4800, src/script.go:4233-4236, external/script/main.lua:1188" + note: "main.lua calls loadFightScreen at startup, which raises a Lua error on a load failure." + + - name: "fight.sff" + path: "ikemen/data/fight.sff" + category: game_data + description: "Fight screen sprites" + required: true + bundled: true + source_ref: "src/fightscreen.go:4916-4926" + note: "Named by the sff key of fight.def; a load failure fails loadFightScreen." + + - name: "fight.snd" + path: "ikemen/data/fight.snd" + category: game_data + description: "Fight screen sounds" + required: true + bundled: true + source_ref: "src/fightscreen.go:4927-4937" + note: "Named by the snd key of fight.def; a load failure fails loadFightScreen." + + - name: "fightfx.sff" + path: "ikemen/data/fightfx.sff" + category: game_data + description: "Common effect sprites" + required: true + bundled: true + source_ref: "src/fightscreen.go:4938-4948" + note: "Named by the fightfx.sff key of fight.def; a load failure fails loadFightScreen." + + - name: "fightfx.air" + path: "ikemen/data/fightfx.air" + category: game_data + description: "Common effect animations" + required: true + bundled: true + source_ref: "src/fightscreen.go:4949-4959" + note: "Named by the fightfx.air key of fight.def; a load failure fails loadFightScreen." + + - name: "common.snd" + path: "ikemen/data/common.snd" + category: game_data + description: "Common effect sounds" + required: true + bundled: true + source_ref: "src/fightscreen.go:4960-4966" + note: "Named by the common.snd key of fight.def; a load failure fails loadFightScreen." + + - name: "system.snd" + path: "ikemen/data/system.snd" + category: game_data + description: "Motif sounds" + required: false + bundled: true + source_ref: "src/resources/defaultMotif.ini:69, src/motif.go:73, src/motif.go:2578-2590" + note: "Named by the snd key of the motif. A load failure is logged and an empty sound set is used." + + - name: "glyphs.sff" + path: "ikemen/data/glyphs.sff" + category: game_data + description: "Button glyph sprites for the movelist" + required: false + bundled: true + source_ref: "src/resources/defaultMotif.ini:97, src/motif.go:84, src/motif.go:2490-2503" + note: "A load failure is logged and an empty sprite set is used." + + - name: "font/" + type: directory + path: "ikemen/font/" + category: game_data + description: "Fonts named by the motif, the fight screen and storyboards" + required: false + bundled: true + source_ref: "src/motif.go:64, src/motif.go:2594-2621, src/fightscreen.go:5017, src/storyboard.go:620, src/font.go:413" + note: "font/ is the default directory of every font lookup." + + - name: "video/" + type: directory + path: "ikemen/video/" + category: game_data + description: "Videos played by the logo and credits storyboards" + required: false + bundled: true + source_ref: "src/stage.go:204-212" + note: > + A background element of type video names its file in path; video/ is + the default directory of the lookup. + + - name: "gamecontrollerdb.txt" + path: "ikemen/external/gamecontrollerdb.txt" + category: game_data + description: "SDL game controller mapping database" + required: false + bundled: true + source_ref: "src/resources/defaultConfig.ini:153, src/system.go:444-445, src/input_sdl.go:261-271" + note: "A read failure is logged." + + - name: "chars/" + type: directory + path: "ikemen/chars/" category: game_data description: "Character directory" required: false source_ref: "src/system.go:5364, src/script.go:3190-3191" note: > - User supplied. A character path that does not resolve as given is - searched under chars/. + A character path that does not resolve as given is searched under + chars/. Release packages ship the Kung Fu Man characters. - - name: "stages" - path: "stages" + - name: "stages/" + type: directory + path: "ikemen/stages/" category: game_data description: "Stage directory" required: false source_ref: "src/system.go:5590, src/resources/defaultConfig.ini:178, external/script/main.lua:1770-1774" note: > - User supplied. Debug.StartStage defaults to stages/stage0-720.def, the - stage added when select.def lists none. + Debug.StartStage defaults to stages/stage0-720.def, the stage added + when select.def lists none. diff --git a/emulators/openjkdf2.yml b/emulators/openjkdf2.yml index 9c5059a3..c573ab93 100644 --- a/emulators/openjkdf2.yml +++ b/emulators/openjkdf2.yml @@ -28,6 +28,16 @@ notes: | aGobDirectories[4] gamedata\resource (CD overlay), mounted by jkRes_LoadCd (src/Main/jkRes.c:130-131) + The asset root is the working directory when it holds resource/jk_.cd, + else the per-user data directory, whose last component is openjkdf2, + openjkmots or opendroidworks (src/Main/InstallHelper.c:97, + src/Main/InstallHelper.c:239-270). Paths below are written under that + component. + + jkRes_LoadNew mounts every .gob (.goo in Mysteries of the Sith mode) of + resource/ (src/Main/jkRes.c:287-300) and jkEpisode lists every one of + episode/ (src/Main/jkEpisode.c:106). + Required-asset lists are declared in src/Main/InstallHelper.c and checked by InstallHelper_CheckInstalled / AttemptInstallFromExisting; a missing entry aborts installation (src/Main/InstallHelper.c:748-756, @@ -45,7 +55,7 @@ files: # ================================================================ - name: "JK1.gob" - path: "episode/JK1.gob" + path: "openjkdf2/episode/JK1.gob" system: dark-forces-ii category: game_data required: true @@ -53,7 +63,7 @@ files: note: "Single-player episode data." - name: "JK1CTF.gob" - path: "episode/JK1CTF.gob" + path: "openjkdf2/episode/JK1CTF.gob" system: dark-forces-ii category: game_data required: true @@ -61,7 +71,7 @@ files: note: "Multiplayer CTF episode." - name: "JK1MP.gob" - path: "episode/JK1MP.gob" + path: "openjkdf2/episode/JK1MP.gob" system: dark-forces-ii category: game_data required: true @@ -69,7 +79,7 @@ files: note: "Multiplayer deathmatch episode. Default -episode value in Main.c:120." - name: "Res1hi.gob" - path: "resource/Res1hi.gob" + path: "openjkdf2/resource/Res1hi.gob" system: dark-forces-ii category: game_data required: true @@ -77,7 +87,7 @@ files: note: "High-resolution textures and sprites." - name: "Res2.gob" - path: "resource/Res2.gob" + path: "openjkdf2/resource/Res2.gob" system: dark-forces-ii category: game_data required: true @@ -85,15 +95,43 @@ files: note: "Shared engine resources: sounds, 3DOs, materials." - name: "jk_.cd" - path: "resource/jk_.cd" + path: "openjkdf2/resource/jk_.cd" system: dark-forces-ii category: game_data required: true - source_ref: "src/Main/InstallHelper.c:39 (aRequiredAssets), src/Main/jkRes.c:234" - note: "CD key marker read by jkRes_ReadKeyFromFile." + source_ref: "src/Main/InstallHelper.c:39 (aRequiredAssets), src/Main/InstallHelper.c:764-769, src/Main/InstallHelper.c:1334-1336, src/engine_config.h:263" + note: | + 4-byte marker. The install helper writes JKRES_MAGIC_1 into it once the + assets are copied, 0x699232C4 for this game. At startup a missing + marker sends the engine to the required-asset check. + + - name: "jk1demo.gob" + path: "openjkdf2/episode/jk1demo.gob" + system: dark-forces-ii + category: game_data + required: false + source_ref: "src/Main/InstallHelper.c:654, src/Main/InstallHelper.c:841" + note: "Single-player episode of the demo, copied by the install helper when present." + + - name: "jk1mpdem.gob" + path: "openjkdf2/episode/jk1mpdem.gob" + aliases: ["jk1mpdemo.gob"] + system: dark-forces-ii + category: game_data + required: false + source_ref: "src/Main/InstallHelper.c:655-656, src/Main/InstallHelper.c:842-843" + note: "Multiplayer episode of the demo. The install helper copies it under either name." + + - name: "res1demo.gob" + path: "openjkdf2/resource/res1demo.gob" + system: dark-forces-ii + category: game_data + required: false + source_ref: "src/Main/InstallHelper.c:657, src/Main/InstallHelper.c:844" + note: "Resources of the demo, copied by the install helper when present." - name: "Res1low.gob" - path: "resource/Res1low.gob" + path: "openjkdf2/resource/Res1low.gob" system: dark-forces-ii category: game_data required: false @@ -115,7 +153,7 @@ files: # ================================================================ - name: "JKM.goo" - path: "episode/JKM.goo" + path: "openjkmots/episode/JKM.goo" system: mysteries-of-the-sith category: game_data required: true @@ -123,28 +161,28 @@ files: note: "Main MoTS single-player episode." - name: "JKM_KFY.goo" - path: "episode/JKM_KFY.goo" + path: "openjkmots/episode/JKM_KFY.goo" system: mysteries-of-the-sith category: game_data required: true source_ref: "src/Main/InstallHelper.c:45 (aRequiredAssetsMots)" - name: "JKM_MP.goo" - path: "episode/JKM_MP.goo" + path: "openjkmots/episode/JKM_MP.goo" system: mysteries-of-the-sith category: game_data required: true source_ref: "src/Main/InstallHelper.c:46 (aRequiredAssetsMots)" - name: "JKM_SABER.goo" - path: "episode/JKM_SABER.goo" + path: "openjkmots/episode/JKM_SABER.goo" system: mysteries-of-the-sith category: game_data required: true source_ref: "src/Main/InstallHelper.c:47 (aRequiredAssetsMots)" - name: "Jkmres.goo" - path: "resource/Jkmres.goo" + path: "openjkmots/resource/Jkmres.goo" system: mysteries-of-the-sith category: game_data required: true @@ -152,13 +190,24 @@ files: note: "Shared MoTS engine resources." - name: "JKMsndLO.goo" - path: "resource/JKMsndLO.goo" + path: "openjkmots/resource/JKMsndLO.goo" system: mysteries-of-the-sith category: game_data required: true source_ref: "src/Main/InstallHelper.c:50 (aRequiredAssetsMots)" note: "Low-quality sound bank (MININSTALL/JKMSNDLO.GOO on the CD)." + - name: "jk_.cd" + path: "openjkmots/resource/jk_.cd" + system: mysteries-of-the-sith + category: game_data + required: true + source_ref: "src/Main/InstallHelper.c:51 (aRequiredAssetsMots), src/Main/InstallHelper.c:1318-1320, src/Main/jkRes.c:232-235, src/engine_config.h:267-270" + note: | + 4-byte marker holding 0x3B426929. InstallHelper_SetCwd reads it at + startup and enables Mysteries of the Sith mode when it finds that + value. + - name: "JKM.EXE" system: mysteries-of-the-sith category: game_data diff --git a/emulators/sonic3-air.yml b/emulators/sonic3-air.yml index 55f46a15..22eb2dc9 100644 --- a/emulators/sonic3-air.yml +++ b/emulators/sonic3-air.yml @@ -42,11 +42,18 @@ notes: | (enginedata.bin, gamedata.bin, audiodata.bin, audioremaster.bin). Three are required and part of the release; audioremaster.bin is optional and downloaded on demand from https://sonic3air.org/download/audioremaster.bin - (126 MB) when the user enables the remastered soundtrack. + when the user enables the remastered soundtrack. ref: Oxygen/sonic3air/oxygenproject.json:32-38, Oxygen/sonic3air/source/sonic3air/EngineDelegate.cpp:115-118, Oxygen/sonic3air/source/sonic3air/audio/RemasteredMusicDownload.cpp:48-62 + Each package is opened from the game data directory, data/ under the + install directory, then from data/ under the app-data directory, where + the downloader saves audioremaster.bin. Package paths below are written + under sonic3-air/, which stands for either root. + ref: Oxygen/oxygenengine/source/oxygen/engine/EngineMain.cpp:643-651, + Oxygen/oxygenengine/source/oxygen/application/Configuration.cpp:288-289 + Only one RomInfo is declared (S3K_Steam). The engine does not support on-the-fly Sonic 3 + Sonic & Knuckles lock-on concatenation at run time; the user must supply the 4 MiB combined ROM (as distributed with Sega @@ -69,13 +76,53 @@ files: accepts a user-picked .bin via the native file-selection dialog that satisfies the same post-modification check. + - name: "enginedata.bin" + path: "sonic3-air/data/enginedata.bin" + category: game_data + system: sonic3-air + required: true + bundled: true + source_ref: "Oxygen/sonic3air/source/sonic3air/EngineDelegate.cpp:115, Oxygen/oxygenengine/source/oxygen/engine/EngineMain.cpp:603-617, Oxygen/oxygenengine/source/oxygen/engine/EngineMain.cpp:643-651" + note: | + Oxygen Engine data package. A required package that cannot be opened + closes the application, unless the data is present unpacked + (data/images/icon.png exists). The engine then checks for + oxygen_icon.png in the engine data and stops when it is absent + (EngineMain.cpp:584-593). + + - name: "gamedata.bin" + path: "sonic3-air/data/gamedata.bin" + category: game_data + system: sonic3-air + required: true + bundled: true + source_ref: "Oxygen/sonic3air/source/sonic3air/EngineDelegate.cpp:116, Oxygen/oxygenengine/source/oxygen/engine/EngineMain.cpp:603-617, Oxygen/oxygenengine/source/oxygen/engine/EngineMain.cpp:643-651" + note: | + Game data package. A required package that cannot be opened closes + the application, unless the data is present unpacked + (data/images/icon.png exists). + + - name: "audiodata.bin" + path: "sonic3-air/data/audiodata.bin" + category: game_data + system: sonic3-air + required: true + bundled: true + source_ref: "Oxygen/sonic3air/source/sonic3air/EngineDelegate.cpp:117, Oxygen/oxygenengine/source/oxygen/engine/EngineMain.cpp:603-617, Oxygen/oxygenengine/source/oxygen/engine/EngineMain.cpp:643-651" + note: | + Audio data package. A required package that cannot be opened closes + the application, unless the data is present unpacked + (data/images/icon.png exists). + - name: "audioremaster.bin" + path: "sonic3-air/data/audioremaster.bin" category: game_data system: sonic3-air required: false - source_ref: "Oxygen/sonic3air/source/sonic3air/EngineDelegate.cpp:118 (mDataPackages, Required=false), Oxygen/sonic3air/source/sonic3air/audio/RemasteredMusicDownload.cpp:48-62" + source_ref: "Oxygen/sonic3air/source/sonic3air/EngineDelegate.cpp:118 (mDataPackages, Required=false), Oxygen/sonic3air/source/sonic3air/audio/RemasteredMusicDownload.cpp:45-62" note: | - Remastered soundtrack package (approx 126 MB). Downloaded on demand - from https://sonic3air.org/download/audioremaster.bin and reloaded + Remastered soundtrack package (131677405 bytes). Downloaded on demand + from https://sonic3air.org/download/audioremaster.bin, saved as + data/audioremaster.bin under the app-data directory and reloaded via EngineMain::reloadFilePackage. Absent at first launch; the engine falls back to the emulated FM soundtrack.