Update SD2 walls
@@ -1530,11 +1530,41 @@
|
||||
"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, -11],
|
||||
"Health": 0,
|
||||
"Flags": ["OnWall"]
|
||||
},
|
||||
{
|
||||
"Name": "bulletmarks",
|
||||
"Pic": {
|
||||
"Type": "Normal",
|
||||
"Pic": "particles/bulletmarks"
|
||||
"Pic": "bulletmarks"
|
||||
},
|
||||
"Offset": [-5, -10],
|
||||
"Health": 0,
|
||||
@@ -1544,7 +1574,7 @@
|
||||
"Name": "scratch",
|
||||
"Pic": {
|
||||
"Type": "Normal",
|
||||
"Pic": "particles/scratch"
|
||||
"Pic": "scratch"
|
||||
},
|
||||
"Offset": [-5, -10],
|
||||
"Health": 0,
|
||||
@@ -1620,6 +1650,26 @@
|
||||
"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": "wall_vent",
|
||||
"Pic": {
|
||||
|
Before Width: | Height: | Size: 335 B After Width: | Height: | Size: 335 B |
BIN
graphics/green_relief.png
Normal file
After Width: | Height: | Size: 7.0 KiB |
@@ -29,6 +29,7 @@ box_red.png
|
||||
box_wood.png
|
||||
box_wreck.png
|
||||
box2.png
|
||||
bulletmarks.png
|
||||
bullet_ball.png
|
||||
cabinet.png
|
||||
cabinet_wreck.png
|
||||
@@ -92,8 +93,6 @@ paper.png
|
||||
particles/blood0.png
|
||||
particles/blood1.png
|
||||
particles/blood2.png
|
||||
particles/bulletmarks.png
|
||||
particles/scratch.png
|
||||
particles/spark_classic.png
|
||||
pci_card.png
|
||||
plant.png
|
||||
@@ -104,6 +103,7 @@ rocket_wreck.png
|
||||
sack.png
|
||||
safe.png
|
||||
safe_wreck.png
|
||||
scratch.png
|
||||
skull.png
|
||||
statue_ogre.png
|
||||
table_clothed.png
|
||||
|
Before Width: | Height: | Size: 337 B After Width: | Height: | Size: 337 B |
BIN
graphics/ship_light.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
BIN
graphics/ship_picture.png
Normal file
After Width: | Height: | Size: 7.5 KiB |
4
graphics/ship_picture.txt
Normal file
@@ -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/
|
BIN
graphics/wall_chart.png
Normal file
After Width: | Height: | Size: 636 B |
5
graphics/wall_chart.txt
Normal file
@@ -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/
|
BIN
graphics/wall_nuke_sign.png
Normal file
After Width: | Height: | Size: 638 B |
5
graphics/wall_nuke_sign.txt
Normal file
@@ -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/
|
Before Width: | Height: | Size: 5.6 KiB |
@@ -1,4 +0,0 @@
|
||||
Derived from Dawnblocker Ortho
|
||||
By Buch
|
||||
http://opengameart.org/content/dawnblocker-ortho
|
||||
http://creativecommons.org/publicdomain/zero/1.0/
|
Before Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 811 B |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 6.0 KiB |
@@ -1,4 +0,0 @@
|
||||
Derived from Pixel Blocks
|
||||
by Zush Design
|
||||
https://opengameart.org/content/pixel-blocks
|
||||
https://creativecommons.org/licenses/by/4.0/
|
BIN
missions/.wolf3d/SD2data.cdogscpn/graphics/swastika_relief.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 12 KiB |
BIN
missions/.wolf3d/SD2data.cdogscpn/graphics/wall_light.png
Normal file
After Width: | Height: | Size: 9.0 KiB |
@@ -279,6 +279,16 @@
|
||||
"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": {
|
||||
@@ -289,26 +299,6 @@
|
||||
"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": {
|
||||
@@ -330,22 +320,12 @@
|
||||
"Flags": ["Inside", "OnWall"]
|
||||
},
|
||||
{
|
||||
"Name": "swastika_wreath",
|
||||
"Name": "swastika_relief",
|
||||
"Pic": {
|
||||
"Type": "Normal",
|
||||
"Pic": "swastika_wreath"
|
||||
"Pic": "swastika_relief"
|
||||
},
|
||||
"Offset": [-5, -11],
|
||||
"Health": 0,
|
||||
"Flags": ["OnWall"]
|
||||
},
|
||||
{
|
||||
"Name": "coat_of_arms_flag",
|
||||
"Pic": {
|
||||
"Type": "Normal",
|
||||
"Pic": "coat_of_arms_flag"
|
||||
},
|
||||
"Offset": [-7, -11],
|
||||
"Offset": [-4, -9],
|
||||
"Health": 0,
|
||||
"Flags": ["OnWall"]
|
||||
},
|
||||
@@ -369,26 +349,6 @@
|
||||
"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": {
|
||||
@@ -409,26 +369,6 @@
|
||||
"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": {
|
||||
@@ -439,16 +379,6 @@
|
||||
"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",
|
||||
|
@@ -776,11 +776,11 @@
|
||||
"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,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,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",
|
||||
@@ -803,9 +803,9 @@
|
||||
"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",
|
||||
@@ -827,118 +827,11 @@
|
||||
"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0",
|
||||
"0,0,0,0,0,0,0,0,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]]
|
||||
@@ -1124,6 +1017,109 @@
|
||||
{
|
||||
"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]]
|
||||
}],
|
||||
"StaticCharacters": [{
|
||||
"Index": 0,
|
||||
|
@@ -599,7 +599,7 @@ bail:
|
||||
static void LoadSounds(const SoundDevice *s, const CWolfMap *map);
|
||||
static void LoadMission(
|
||||
CampaignSetting *c, const map_t tileClasses, const CWolfMap *map,
|
||||
const int missionIndex, const int numMissions);
|
||||
const int spearMission, const int missionIndex, const int numMissions);
|
||||
typedef struct
|
||||
{
|
||||
const CWolfMap *Map;
|
||||
@@ -714,7 +714,7 @@ int MapWolfLoad(
|
||||
|
||||
for (int i = 0; i < map->nLevels; i++)
|
||||
{
|
||||
LoadMission(c, tileClasses, map, i, numMissions);
|
||||
LoadMission(c, tileClasses, map, spearMission, i, numMissions);
|
||||
}
|
||||
|
||||
bail:
|
||||
@@ -866,7 +866,7 @@ static void LoadTile(
|
||||
const struct vec2i v, const int missionIndex);
|
||||
static void TryLoadWallObject(
|
||||
MissionStatic *m, const uint16_t ch, const CWolfMap *map,
|
||||
const struct vec2i v, const int missionIndex);
|
||||
const int spearMission, const struct vec2i v, const int missionIndex);
|
||||
static void LoadEntity(
|
||||
Mission *m, const uint16_t ch, const CWolfMap *map, const struct vec2i v,
|
||||
const int missionIndex, const int numMissions, int *bossObjIdx,
|
||||
@@ -885,7 +885,7 @@ static Mix_Chunk *GetMissionSong(void *data)
|
||||
}
|
||||
static void LoadMission(
|
||||
CampaignSetting *c, const map_t tileClasses, const CWolfMap *map,
|
||||
const int missionIndex, const int numMissions)
|
||||
const int spearMission, const int missionIndex, const int numMissions)
|
||||
{
|
||||
const CWLevel *level = &map->levels[missionIndex];
|
||||
Mission m;
|
||||
@@ -942,7 +942,8 @@ static void LoadMission(
|
||||
// Load objects after all tiles are loaded
|
||||
RECT_FOREACH(Rect2iNew(svec2i_zero(), m.Size))
|
||||
const uint16_t ch = CWLevelGetCh(level, 0, _v.x, _v.y);
|
||||
TryLoadWallObject(&m.u.Static, ch, map, _v, missionIndex);
|
||||
TryLoadWallObject(
|
||||
&m.u.Static, ch, map, spearMission, _v, missionIndex);
|
||||
const uint16_t ech = CWLevelGetCh(level, 1, _v.x, _v.y);
|
||||
LoadEntity(
|
||||
&m, ech, map, _v, missionIndex, numMissions, &bossObjIdx,
|
||||
@@ -1090,7 +1091,7 @@ static int LoadWall(const uint16_t ch)
|
||||
|
||||
static void TryLoadWallObject(
|
||||
MissionStatic *m, const uint16_t ch, const CWolfMap *map,
|
||||
const struct vec2i v, const int missionIndex)
|
||||
const int spearMission, const struct vec2i v, const int missionIndex)
|
||||
{
|
||||
const CWLevel *level = &map->levels[missionIndex];
|
||||
const struct vec2i levelSize =
|
||||
@@ -1101,37 +1102,191 @@ static void TryLoadWallObject(
|
||||
switch (wall)
|
||||
{
|
||||
case CWWALL_GREY_BRICK_FLAG:
|
||||
moName = "heer_flag";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "heer_flag";
|
||||
break;
|
||||
case 2:
|
||||
moName = "wall_light";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_GREY_BRICK_HITLER:
|
||||
moName = "hitler_portrait";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "hitler_portrait";
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_CELL:
|
||||
moName = "jail_cell";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "jail_cell";
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_GREY_BRICK_EAGLE:
|
||||
moName = "brick_eagle";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "brick_eagle";
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_CELL_SKELETON:
|
||||
moName = "jail_cell_skeleton";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "jail_cell_skeleton";
|
||||
break;
|
||||
case 2:
|
||||
moName = "wall_light";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_BLUE_BRICK_1:
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
moName = "ship_light";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_BLUE_BRICK_2:
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
moName = "hitler_poster";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_WOOD_EAGLE:
|
||||
moName = "eagle_portrait";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "eagle_portrait";
|
||||
break;
|
||||
case 2:
|
||||
moName = "swastika_relief";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_WOOD_HITLER:
|
||||
moName = "hitler_portrait";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "hitler_portrait";
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_WOOD:
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
moName = "wall_light";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_ENTRANCE:
|
||||
moName = "elevator_entrance";
|
||||
break;
|
||||
case CWWALL_STEEL_SIGN:
|
||||
moName = "no_sign";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "no_sign";
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_RED_BRICK:
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
moName = "wall_chart";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_RED_BRICK_SWASTIKA:
|
||||
moName = "swastika_wreath";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "swastika_wreath";
|
||||
break;
|
||||
case 2:
|
||||
moName = "wall_nuke_sign";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_PURPLE:
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
moName = "heer_flag";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_RED_BRICK_FLAG:
|
||||
moName = "coat_of_arms_flag";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "coat_of_arms_flag";
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_ELEVATOR: {
|
||||
const TileClass *tcBelow =
|
||||
@@ -1215,68 +1370,429 @@ static void TryLoadWallObject(
|
||||
}
|
||||
break;
|
||||
case CWWALL_WOOD_IRON_CROSS:
|
||||
moName = "iron_cross";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "iron_cross";
|
||||
break;
|
||||
case 2:
|
||||
moName = "wall_chart";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_DIRTY_BRICK_1:
|
||||
case CWWALL_DIRTY_BRICK_2: // fallthrough
|
||||
moName = "cobble_moss";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "cobble_moss";
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_PURPLE_BLOOD:
|
||||
moName = "bloodstain";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "bloodstain";
|
||||
break;
|
||||
case 2:
|
||||
moName = "no_sign";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_DIRTY_BRICK_2:
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "cobble_moss";
|
||||
break;
|
||||
case 2:
|
||||
moName = "jail_cell";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_GREY_BRICK_3:
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
moName = "jail_cell_skeleton";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_GREY_BRICK_SIGN:
|
||||
moName = "no_sign";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "no_sign";
|
||||
break;
|
||||
case 2:
|
||||
moName = "no_sign";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_BROWN_WEAVE_BLOOD_2:
|
||||
moName = "bloodstain";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "bloodstain";
|
||||
break;
|
||||
case 2:
|
||||
moName = "skull_blue";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_BROWN_WEAVE_BLOOD_3:
|
||||
moName = "bloodstain1";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "bloodstain1";
|
||||
break;
|
||||
case 2:
|
||||
moName = "swastika_blue";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_BROWN_WEAVE_BLOOD_1:
|
||||
moName = "bloodstain2";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "bloodstain2";
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_STAINED_GLASS:
|
||||
moName = "hitler_glass";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "hitler_glass";
|
||||
break;
|
||||
case 2:
|
||||
moName = "swastika_relief";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_BLUE_WALL_SKULL:
|
||||
moName = "skull_blue";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "skull_blue";
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_GREY_WALL_1:
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
moName = "map";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_BLUE_WALL_SWASTIKA:
|
||||
moName = "swastika_blue";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "swastika_blue";
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_GREY_WALL_VENT:
|
||||
moName = "wall_vent";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "wall_vent";
|
||||
break;
|
||||
case 2:
|
||||
moName = "no_sign";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_MULTICOLOR_BRICK:
|
||||
moName = "brick_color";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "brick_color";
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_GREY_WALL_2:
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
moName = "bulletholes";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_BLUE_WALL:
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
moName = "ship_picture";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_BLUE_BRICK_SIGN:
|
||||
moName = "no_sign";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "no_sign";
|
||||
break;
|
||||
case 2:
|
||||
moName = "hitler_poster";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_BROWN_MARBLE_1:
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
moName = "wall_vent";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_GREY_WALL_MAP:
|
||||
moName = "map";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "map";
|
||||
break;
|
||||
case 2:
|
||||
moName = "heer_flag";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_BROWN_STONE_2:
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
moName = "swastika_relief";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_BROWN_MARBLE_2:
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
moName = "eagle_portrait";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_BROWN_MARBLE_FLAG:
|
||||
moName = "heer_flag";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "heer_flag";
|
||||
break;
|
||||
case 2:
|
||||
moName = "green_relief";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_WOOD_PANEL:
|
||||
moName = "panel";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "panel";
|
||||
break;
|
||||
case 2:
|
||||
moName = "scratch";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_GREY_WALL_HITLER:
|
||||
moName = "hitler_poster";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "hitler_poster";
|
||||
break;
|
||||
case 2:
|
||||
moName = "wall_goo2";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_STONE_WALL_1:
|
||||
case CWWALL_STONE_WALL_2: // fallthrough
|
||||
case CWWALL_RAMPART_STONE_1: // fallthrough
|
||||
case CWWALL_RAMPART_STONE_2: // fallthrough
|
||||
moName = "stone_color";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "stone_color";
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_STONE_WALL_2:
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "stone_color";
|
||||
break;
|
||||
case 2:
|
||||
moName = "scratch";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_STONE_WALL_FLAG:
|
||||
moName = "heer_flag";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "heer_flag";
|
||||
break;
|
||||
case 2:
|
||||
moName = "iron_cross";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_STONE_WALL_WREATH:
|
||||
moName = "swastika_wreath";
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "swastika_wreath";
|
||||
break;
|
||||
case 2:
|
||||
moName = "wall_goo2";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_GREY_CONCRETE_LIGHT:
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
moName = "wall_nuke_sign";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_GREY_CONCRETE_DARK:
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
moName = "wall_light";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_BLOOD_WALL:
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
moName = "scratch";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_RAMPART_STONE_1:
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "stone_color";
|
||||
break;
|
||||
case 2:
|
||||
moName = "no_sign";
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_RAMPART_STONE_2:
|
||||
switch (spearMission)
|
||||
{
|
||||
case 1:
|
||||
moName = "stone_color";
|
||||
break;
|
||||
case 2:
|
||||
break;
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CWWALL_ELEVATOR_WALL:
|
||||
moName = "elevator_interior";
|
||||
|