From caefeb6cde082fcd5070f4e31e1a044de9e51aee Mon Sep 17 00:00:00 2001 From: laqieer Date: Thu, 18 Aug 2022 21:46:13 +0800 Subject: [PATCH] Chapter X0004 with map changes. https://github.com/laqieer/FEHRG/issues/21. --- chapter/X0004.png | Bin 23542 -> 25415 bytes chapter/X0004.tmj | 419 +++++++++++++++++++++++++ chapter/X0004.tsj | 219 +++++++++++++ chapter/chapters.tiled-session | 47 ++- content/chapter_event/X0004Event.S | 62 ++++ content/chapter_events.c | 1 + content/chapter_map/X0004Map.c | 47 +++ content/chapter_maps.c | 10 + content/chapter_terrain/X0004Terrain.c | 23 ++ content/chapters.c | 2 + graphic/chapter_tileset/X0004.png | Bin 0 -> 27987 bytes include/chapter.h | 3 +- include/chapter_map.h | 15 + include/map_change_id.h | 4 + linkerscript/chapter_map.lds | 2 + source/chapter_map.c | 2 + tool/chapter/make_map.py | 20 ++ tool/chapter/util.py | 25 ++ 18 files changed, 895 insertions(+), 6 deletions(-) create mode 100644 chapter/X0004.tmj create mode 100644 chapter/X0004.tsj create mode 100644 content/chapter_event/X0004Event.S create mode 100644 content/chapter_map/X0004Map.c create mode 100644 content/chapter_terrain/X0004Terrain.c create mode 100644 graphic/chapter_tileset/X0004.png create mode 100644 include/map_change_id.h diff --git a/chapter/X0004.png b/chapter/X0004.png index ec414141295d76ab95a17cd28c7a9c6b0a38ff3a..b12fc53c9b80a39497b04a4d1a1da59b78a3d304 100644 GIT binary patch literal 25415 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 bXV3l*a25u&W*_c700000NkvXXu0mjf(mh$6 diff --git a/chapter/X0004.tmj b/chapter/X0004.tmj new file mode 100644 index 00000000..9270550f --- /dev/null +++ b/chapter/X0004.tmj @@ -0,0 +1,419 @@ +{ "compressionlevel":-1, + "height":17, + "infinite":false, + "layers":[ + { + "data":[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255], + "height":17, + "id":1, + "name":"\u5730\u56fe", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":15, + "x":0, + "y":0 + }, + { + "draworder":"topdown", + "id":7, + "name":"\u6211\u519b", + "objects":[ + { + "class":"", + "gid":258, + "height":32, + "id":1, + "name":"\u30a2\u30f3\u30ca", + "rotation":0, + "visible":true, + "width":16, + "x":16.3888409548461, + "y":31.73 + }, + { + "class":"", + "gid":256, + "height":32, + "id":2, + "name":"\u30a2\u30eb\u30d5\u30a9\u30f3\u30b9", + "rotation":0, + "visible":true, + "width":16, + "x":0.66, + "y":31.27 + }, + { + "class":"", + "gid":359, + "height":32, + "id":3, + "name":"\u30b7\u30e3\u30ed\u30f3", + "rotation":0, + "visible":true, + "width":16, + "x":32.9548461317227, + "y":32.19 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + }, + { + "draworder":"topdown", + "id":8, + "name":"\u654c\u519b", + "objects":[ + { + "class":"", + "gid":414, + "height":32, + "id":4, + "name":"\u30af\u30ec\u30a4\u30f3", + "properties":[ + { + "name":"unit", + "propertytype":"Unit", + "type":"class", + "value": + { + "items":"\u94c1\u5f13", + "level":2, + "pursue":false + } + }], + "rotation":0, + "visible":true, + "width":16, + "x":160.663594470046, + "y":191.115207373272 + }, + { + "class":"", + "gid":423, + "height":32, + "id":5, + "name":"\u30b5\u30ca\u30ad", + "properties":[ + { + "name":"unit", + "propertytype":"Unit", + "type":"class", + "value": + { + "items":"\u706b\u708e", + "level":2, + "pursue":false + } + }], + "rotation":0, + "visible":true, + "width":16, + "x":224.258064516129, + "y":79.06 + }, + { + "class":"", + "gid":414, + "height":32, + "id":6, + "name":"", + "properties":[ + { + "name":"unit", + "propertytype":"Unit", + "type":"class", + "value": + { + "items":"\u94c1\u5f13", + "level":2, + "pursue":false + } + }], + "rotation":0, + "visible":true, + "width":16, + "x":48.6820276497696, + "y":271.84 + }, + { + "class":"", + "gid":422, + "height":32, + "id":7, + "name":"", + "properties":[ + { + "name":"unit", + "propertytype":"Unit", + "type":"class", + "value": + { + "items":"\u706b\u708e", + "level":2, + "pursue":false + } + }], + "rotation":0, + "visible":true, + "width":16, + "x":128.94, + "y":79.1336405529954 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + }, + { + "draworder":"topdown", + "id":9, + "name":"\u53cb\u519b", + "objects":[ + { + "class":"", + "gid":629, + "height":32, + "id":8, + "name":"\u30a8\u30d5\u30e9\u30e0", + "properties":[ + { + "name":"unit", + "propertytype":"Unit", + "type":"class", + "value": + { + "guard":true, + "items":"\u94a2\u67aa", + "level":2, + "pursue":false + } + }], + "rotation":0, + "visible":true, + "width":16, + "x":0.22, + "y":15.0783410138249 + }, + { + "class":"", + "gid":630, + "height":32, + "id":9, + "name":"\u30a8\u30a4\u30ea\u30fc\u30af", + "properties":[ + { + "name":"unit", + "propertytype":"Unit", + "type":"class", + "value": + { + "guard":true, + "items":"\u7ec6\u8eab\u5251", + "level":2, + "pursue":false + } + }], + "rotation":0, + "visible":true, + "width":16, + "x":16.27, + "y":15.62 + }, + { + "class":"", + "gid":526, + "height":32, + "id":10, + "name":"\u30bb\u30ea\u30b9", + "properties":[ + { + "name":"unit", + "propertytype":"Unit", + "type":"class", + "value": + { + "guard":true, + "items":"\u94a2\u5251", + "level":2, + "pursue":false + } + }], + "rotation":0, + "visible":true, + "width":16, + "x":33.4746543778802, + "y":15.62 + }, + { + "class":"", + "gid":558, + "height":32, + "id":11, + "name":"\u30e6\u30ea\u30a2", + "properties":[ + { + "name":"unit", + "propertytype":"Unit", + "type":"class", + "value": + { + "guard":true, + "items":"\u95ea\u5149", + "level":2, + "pursue":false + } + }], + "rotation":0, + "visible":true, + "width":16, + "x":48.76, + "y":15.0783410138249 + }], + "opacity":1, + "type":"objectgroup", + "visible":true, + "x":0, + "y":0 + }, + { + "id":2, + "layers":[ + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":17, + "id":3, + "name":"1", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":15, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 156, 157, 163, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 171, 172, 178, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":17, + "id":4, + "name":"2", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":15, + "x":0, + "y":0 + }, + { + "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + "height":17, + "id":5, + "name":"3", + "opacity":1, + "type":"tilelayer", + "visible":true, + "width":15, + "x":0, + "y":0 + }], + "name":"\u53d8\u6362", + "opacity":1, + "type":"group", + "visible":true, + "x":0, + "y":0 + }], + "nextlayerid":10, + "nextobjectid":12, + "orientation":"orthogonal", + "renderorder":"right-down", + "tiledversion":"1.9.0", + "tileheight":16, + "tilesets":[ + { + "firstgid":1, + "source":"X0004.tsj" + }, + { + "firstgid":256, + "source":"unit\/ally.tsx" + }, + { + "firstgid":391, + "source":"unit\/enemy.tsx" + }, + { + "firstgid":526, + "source":"unit\/npc.tsx" + }], + "tilewidth":16, + "type":"map", + "version":"1.9", + "width":15 +} \ No newline at end of file diff --git a/chapter/X0004.tsj b/chapter/X0004.tsj new file mode 100644 index 00000000..66237e99 --- /dev/null +++ b/chapter/X0004.tsj @@ -0,0 +1,219 @@ +{ "columns":15, + "image":"X0004.png", + "imageheight":272, + "imagewidth":240, + "margin":0, + "name":"X0004", + "spacing":0, + "tilecount":255, + "tiledversion":"1.9.0", + "tileheight":16, + "tilewidth":16, + "type":"tileset", + "version":"1.8", + "wangsets":[ + { + "colors":[ + { + "color":"#ff0000", + "name":"", + "probability":1, + "tile":-1 + }], + "name":"\u5e73\u5730", + "tile":-1, + "type":"corner", + "wangtiles":[] + }, + { + "colors":[ + { + "color":"#ff0000", + "name":"", + "probability":1, + "tile":-1 + }], + "name":"\u56f4\u5899", + "tile":-1, + "type":"corner", + "wangtiles":[ + { + "tileid":36, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":37, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":39, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":40, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":41, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":42, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":43, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":44, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":51, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":66, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":81, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":96, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":111, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":141, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":156, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":157, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":158, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":159, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":160, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":161, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":225, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":226, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":227, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":229, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":230, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":231, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":232, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":233, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":234, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":238, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":239, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }] + }, + { + "colors":[ + { + "color":"#ff0000", + "name":"", + "probability":1, + "tile":-1 + }], + "name":"\u7834\u5899", + "tile":-1, + "type":"corner", + "wangtiles":[ + { + "tileid":38, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":126, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":228, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }] + }, + { + "colors":[ + { + "color":"#ff0000", + "name":"", + "probability":1, + "tile":-1 + }], + "name":"\u68ee\u6797", + "tile":-1, + "type":"corner", + "wangtiles":[ + { + "tileid":135, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":150, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":179, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }, + { + "tileid":194, + "wangid":[0, 1, 0, 1, 0, 1, 0, 1] + }] + }] +} \ No newline at end of file diff --git a/chapter/chapters.tiled-session b/chapter/chapters.tiled-session index f736f5b4..04bed064 100644 --- a/chapter/chapters.tiled-session +++ b/chapter/chapters.tiled-session @@ -3,8 +3,9 @@ "height": 4300, "width": 2 }, - "activeFile": "X0003.tmj", + "activeFile": "X0004.tmj", "expandedProjectPaths": [ + "unit", "." ], "fileStates": { @@ -27,16 +28,40 @@ "scaleInEditor": 2 }, "X0003.tmj": { + "expandedObjectLayers": [ + 2, + 3 + ], "scale": 2.173125, - "selectedLayer": 1, + "selectedLayer": 2, "viewCenter": { - "x": 65.11360368133447, - "y": 90.882945067587 + "x": 120.33362093758986, + "y": 137.35979292493528 } }, "X0003.tsj": { "scaleInDock": 1 }, + "X0004.tmj": { + "expandedGroupLayers": [ + 2 + ], + "expandedObjectLayers": [ + 8, + 9, + 7 + ], + "scale": 2.17, + "selectedLayer": 2, + "viewCenter": { + "x": 64.74654377880184, + "y": 91.01382488479263 + } + }, + "X0004.tsj": { + "scaleInDock": 1, + "scaleInEditor": 2 + }, "XX001.tmj": { "expandedObjectLayers": [ 2, @@ -57,6 +82,14 @@ }, "unit/enemy.tsx": { "scaleInDock": 1 + }, + "unit/npc.tsj": { + "scaleInDock": 1, + "scaleInEditor": 1 + }, + "unit/npc.tsx": { + "scaleInDock": 1, + "scaleInEditor": 2 } }, "last.imagePath": "/Users/laqieer/Projects/FEHRG/chapter", @@ -66,12 +99,16 @@ "map.tileWidth": 16, "map.width": 15, "openFiles": [ - "X0003.tmj" + "X0004.tmj" ], "project": "chapters.tiled-project", "property.type": "Unit", "recentFiles": [ + "X0004.tmj", + "X0004.tsj", + "unit/npc.tsx", "X0003.tmj", + "unit/npc.tsj", "X0001.tmj", "XX001.tmj", "X0002.tsj" diff --git a/content/chapter_event/X0004Event.S b/content/chapter_event/X0004Event.S new file mode 100644 index 00000000..b06fa9ed --- /dev/null +++ b/content/chapter_event/X0004Event.S @@ -0,0 +1,62 @@ + #include "event.h" + #include "chapter_id.h" + #include "character_id.h" + #include "class_id.h" + #include "item_id.h" + #include "AI.h" + #include "background_id.h" + #include "music_id.h" + + #include "event_text_id.h" + .section .rodata + .align 2 + .global X0004Event +X0004Event: + DefineEvents +TurnBasedEvents: + LoadBeginningScene + END_MAIN +CharacterBasedEvents: + END_MAIN +LocationBasedEvents: + END_MAIN +MiscBasedEvents: + CauseGameOverIfLordDies + DefeatAll(EndingScene) + END_MAIN +BeginningScene: + ShowBG(BG001_Brave) + LOU1 EnemyUnits + ENUN + LOU1 AllyUnits + ENUN + LOU1 NPCUnits + ENUN + MUSC BGM_MAP_FES_01 + TEX1 EvTx_X0004_MID_SCENARIO_MAP_BEGIN + REMA + ENDA +EndingScene: + TEX1 EvTx_X0004_MID_SCENARIO_MAP_END + REMA + MNCH X0004Next + ENDA +AllyUnits: + ALLY_UNIT_JOINED(アンナ, 1, 1) + ALLY_UNIT_JOINED(アルフォンス, 0, 1) + ALLY_UNIT_JOINED(シャロン, 2, 2) + END_UNIT +EnemyUnits: + ENEMY_UNIT(クレイン, 24, 2, AUTO_LEVEL, 10, 11, 铁弓, 0, 0, 0, 0, DoNotMove, 0, 0) + ENEMY_UNIT(サナキ, 33, 2, AUTO_LEVEL, 14, 4, 火炎, 0, 0, 0, 0, DoNotMove, 0, 0) + ENEMY_UNIT(杂兵, 24, 2, AUTO_LEVEL, 3, 16, 铁弓, 0, 0, 0, 0, DoNotMove, 0, 0) + ENEMY_UNIT(杂兵, 32, 2, AUTO_LEVEL, 8, 4, 火炎, 0, 0, 0, 0, DoNotMove, 0, 0) + END_UNIT +NPCUnits: + NPC_UNIT(エフラム, 104, 2, AUTO_LEVEL, 0, 0, 钢枪, 0, 0, 0, 0, DoNotMove, 0, GuardTile) + NPC_UNIT(エイリーク, 105, 2, AUTO_LEVEL, 1, 0, 细身剑, 0, 0, 0, 0, DoNotMove, 0, GuardTile) + NPC_UNIT(セリス, 1, 2, AUTO_LEVEL, 2, 0, 钢剑, 0, 0, 0, 0, DoNotMove, 0, GuardTile) + NPC_UNIT(ユリア, 33, 2, AUTO_LEVEL, 3, 0, 闪光, 0, 0, 0, 0, DoNotMove, 0, GuardTile) + END_UNIT +Traps: + END_TRAP diff --git a/content/chapter_events.c b/content/chapter_events.c index 27427fb5..27f3d930 100644 --- a/content/chapter_events.c +++ b/content/chapter_events.c @@ -8,4 +8,5 @@ cu8 * const ChapterEvents[] = { X0001Event, X0002Event, X0003Event, + X0004Event, }; diff --git a/content/chapter_map/X0004Map.c b/content/chapter_map/X0004Map.c new file mode 100644 index 00000000..44aba0e8 --- /dev/null +++ b/content/chapter_map/X0004Map.c @@ -0,0 +1,47 @@ +const unsigned short X0004TileMap[] = { + 15 + (17 << 8), // width + (height << 8) + 4 * 1, 4 * 2, 4 * 3, 4 * 4, 4 * 5, 4 * 6, 4 * 7, 4 * 8, 4 * 9, 4 * 10, 4 * 11, 4 * 12, 4 * 13, 4 * 14, 4 * 15, // 0 + 4 * 16, 4 * 17, 4 * 18, 4 * 19, 4 * 20, 4 * 21, 4 * 22, 4 * 23, 4 * 24, 4 * 25, 4 * 26, 4 * 27, 4 * 28, 4 * 29, 4 * 30, // 1 + 4 * 31, 4 * 32, 4 * 33, 4 * 34, 4 * 35, 4 * 36, 4 * 37, 4 * 38, 4 * 39, 4 * 40, 4 * 41, 4 * 42, 4 * 43, 4 * 44, 4 * 45, // 2 + 4 * 46, 4 * 47, 4 * 48, 4 * 49, 4 * 50, 4 * 51, 4 * 52, 4 * 53, 4 * 54, 4 * 55, 4 * 56, 4 * 57, 4 * 58, 4 * 59, 4 * 60, // 3 + 4 * 61, 4 * 62, 4 * 63, 4 * 64, 4 * 65, 4 * 66, 4 * 67, 4 * 68, 4 * 69, 4 * 70, 4 * 71, 4 * 72, 4 * 73, 4 * 74, 4 * 75, // 4 + 4 * 76, 4 * 77, 4 * 78, 4 * 79, 4 * 80, 4 * 81, 4 * 82, 4 * 83, 4 * 84, 4 * 85, 4 * 86, 4 * 87, 4 * 88, 4 * 89, 4 * 90, // 5 + 4 * 91, 4 * 92, 4 * 93, 4 * 94, 4 * 95, 4 * 96, 4 * 97, 4 * 98, 4 * 99, 4 * 100, 4 * 101, 4 * 102, 4 * 103, 4 * 104, 4 * 105, // 6 + 4 * 106, 4 * 107, 4 * 108, 4 * 109, 4 * 110, 4 * 111, 4 * 112, 4 * 113, 4 * 114, 4 * 115, 4 * 116, 4 * 117, 4 * 118, 4 * 119, 4 * 120, // 7 + 4 * 121, 4 * 122, 4 * 123, 4 * 124, 4 * 125, 4 * 126, 4 * 127, 4 * 128, 4 * 129, 4 * 130, 4 * 131, 4 * 132, 4 * 133, 4 * 134, 4 * 135, // 8 + 4 * 136, 4 * 137, 4 * 138, 4 * 139, 4 * 140, 4 * 141, 4 * 142, 4 * 143, 4 * 144, 4 * 145, 4 * 146, 4 * 147, 4 * 148, 4 * 149, 4 * 150, // 9 + 4 * 151, 4 * 152, 4 * 153, 4 * 154, 4 * 155, 4 * 156, 4 * 157, 4 * 158, 4 * 159, 4 * 160, 4 * 161, 4 * 162, 4 * 163, 4 * 164, 4 * 165, // 10 + 4 * 166, 4 * 167, 4 * 168, 4 * 169, 4 * 170, 4 * 171, 4 * 172, 4 * 173, 4 * 174, 4 * 175, 4 * 176, 4 * 177, 4 * 178, 4 * 179, 4 * 180, // 11 + 4 * 181, 4 * 182, 4 * 183, 4 * 184, 4 * 185, 4 * 186, 4 * 187, 4 * 188, 4 * 189, 4 * 190, 4 * 191, 4 * 192, 4 * 193, 4 * 194, 4 * 195, // 12 + 4 * 196, 4 * 197, 4 * 198, 4 * 199, 4 * 200, 4 * 201, 4 * 202, 4 * 203, 4 * 204, 4 * 205, 4 * 206, 4 * 207, 4 * 208, 4 * 209, 4 * 210, // 13 + 4 * 211, 4 * 212, 4 * 213, 4 * 214, 4 * 215, 4 * 216, 4 * 217, 4 * 218, 4 * 219, 4 * 220, 4 * 221, 4 * 222, 4 * 223, 4 * 224, 4 * 225, // 14 + 4 * 226, 4 * 227, 4 * 228, 4 * 229, 4 * 230, 4 * 231, 4 * 232, 4 * 233, 4 * 234, 4 * 235, 4 * 236, 4 * 237, 4 * 238, 4 * 239, 4 * 240, // 15 + 4 * 241, 4 * 242, 4 * 243, 4 * 244, 4 * 245, 4 * 246, 4 * 247, 4 * 248, 4 * 249, 4 * 250, 4 * 251, 4 * 252, 4 * 253, 4 * 254, 4 * 255, // 16 +}; + +#include +#include "chapter_map.h" + +cu16 X0004MapChange0[] = { + 4 * 7, + 4 * 183, + 4 * 198, +}; + +cu16 X0004MapChange1[] = { + 4 * 156,4 * 157,4 * 163, + 4 * 171,4 * 172,4 * 178, +}; + +cu16 X0004MapChange2[] = { + 4 * 148, + 4 * 163, +}; + +const struct MapChange X0004MapChanges[] = { + {0, 8, 1, 1, 3, X0004MapChange0}, + {1, 5, 7, 3, 2, X0004MapChange1}, + {2, 3, 14, 1, 2, X0004MapChange2}, + + MAP_CHANGE_END +}; diff --git a/content/chapter_maps.c b/content/chapter_maps.c index 4821c729..39d59d4f 100644 --- a/content/chapter_maps.c +++ b/content/chapter_maps.c @@ -9,6 +9,7 @@ cu32 * const ChapterTilesetTiles[] = { X0001Tiles, X0002Tiles, X0003Tiles, + X0004Tiles, }; cu16 * const ChapterTilesetMaps[] = { @@ -17,6 +18,7 @@ cu16 * const ChapterTilesetMaps[] = { X0001Map, X0002Map, X0003Map, + X0004Map, }; cu16 * const ChapterTilesetPals[] = { @@ -25,6 +27,7 @@ cu16 * const ChapterTilesetPals[] = { X0001Pal, X0002Pal, X0003Pal, + X0004Pal, }; cu8 * const ChapterTerrains[] = { @@ -33,6 +36,7 @@ cu8 * const ChapterTerrains[] = { X0001Terrain, X0002Terrain, X0003Terrain, + X0004Terrain, }; cu16 * const ChapterMaps[] = { @@ -40,4 +44,10 @@ cu16 * const ChapterMaps[] = { X0001TileMap, X0002TileMap, X0003TileMap, + X0004TileMap, +}; + +const struct MapChange * const ChapterMapChanges[] = { + NULL, + X0004MapChanges, }; diff --git a/content/chapter_terrain/X0004Terrain.c b/content/chapter_terrain/X0004Terrain.c new file mode 100644 index 00000000..fc199286 --- /dev/null +++ b/content/chapter_terrain/X0004Terrain.c @@ -0,0 +1,23 @@ +#include "terrain_id.h" + +const unsigned char X0004Terrain[] = { + 0, + 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, // 0 + 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, // 1 + 平地, 平地, 平地, 平地, 平地, 平地, 围墙, 围墙, 破墙, 围墙, 围墙, 围墙, 围墙, 围墙, 围墙, // 2 + 平地, 平地, 平地, 平地, 平地, 平地, 围墙, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, // 3 + 平地, 平地, 平地, 平地, 平地, 平地, 围墙, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, // 4 + 平地, 平地, 平地, 平地, 平地, 平地, 围墙, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, // 5 + 平地, 平地, 平地, 平地, 平地, 平地, 围墙, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, // 6 + 平地, 平地, 平地, 平地, 平地, 平地, 围墙, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, // 7 + 平地, 平地, 平地, 平地, 平地, 平地, 破墙, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, // 8 + 森林, 平地, 平地, 平地, 平地, 平地, 围墙, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, // 9 + 森林, 平地, 平地, 平地, 平地, 平地, 围墙, 围墙, 围墙, 围墙, 围墙, 围墙, 平地, 平地, 平地, // 10 + 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 森林, // 11 + 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 森林, // 12 + 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, // 13 + 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, // 14 + 围墙, 围墙, 围墙, 破墙, 围墙, 围墙, 围墙, 围墙, 围墙, 围墙, 平地, 平地, 平地, 围墙, 围墙, // 15 + 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, 平地, // 16 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; diff --git a/content/chapters.c b/content/chapters.c index cace8509..5e194099 100644 --- a/content/chapters.c +++ b/content/chapters.c @@ -4,10 +4,12 @@ #include "text_id.h" #include "music_id.h" #include "chapter_id.h" +#include "map_change_id.h" const struct Chapter Chapters[] = { SIMPLE_CHAPTER(XX001, "XX001", MID_STAGE_XX001, BGM_MAP_FES_01) SIMPLE_CHAPTER(X0001, "X0001", MID_STAGE_X0001, BGM_MAP_FES_01) SIMPLE_CHAPTER(X0002, "X0002", MID_STAGE_X0002, BGM_MAP_FES_01) SIMPLE_CHAPTER(X0003, "X0003", MID_STAGE_X0003, BGM_MAP_FES_01) + CHAPTER_WITH_MAP_CHANGE(X0004, "X0004", MID_STAGE_X0004, BGM_MAP_FES_01, MAP_CHANGE_ID_X0004) }; diff --git a/graphic/chapter_tileset/X0004.png b/graphic/chapter_tileset/X0004.png new file mode 100644 index 0000000000000000000000000000000000000000..200f31802a96e614991a6a297287cd47c0b8f9c7 GIT binary patch literal 27987 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') + print('#include "chapter_map.h"') + print('') + for layer in layers['变换'].layers: + id = int(layer.name) - 1 + x1 = get_bounder_left(layer) + x2 = get_bounder_right(layer) + y1 = get_bounder_up(layer) + y2 = get_bounder_down(layer) + s += '\t{{{}, {}, {}, {}, {}, {}MapChange{}}},\n'.format(id, x1, y1, x2 - x1 + 1, y2 - y1 + 1, map_name, id) + print('cu16 {}MapChange{}[] = {{'.format(map_name, id)) + for y in range(y1, y2 + 1): + print('\t{},'.format(','.join(['4 * ' + str(tileId - tileset.firstgid + 1) for tileId in layer.data[y][x1: x2 + 1]]))) + print('};\n') +print('const struct MapChange {}MapChanges[] = {{'.format(map_name)) +print(s) +print('\tMAP_CHANGE_END') print('};') diff --git a/tool/chapter/util.py b/tool/chapter/util.py index 836e66d6..9fea5fa5 100644 --- a/tool/chapter/util.py +++ b/tool/chapter/util.py @@ -1,5 +1,6 @@ import os from pytiled_parser.tiled_map import TiledMap +from pytiled_parser.layer import Layer def normalize(name: str): return name.replace(" ", "").replace("(", "").replace(")", "").replace(".", "").replace(",", "") @@ -18,3 +19,27 @@ def get_layers(map: TiledMap): for layer in map.layers: layers[layer.name] = layer return layers + +def get_bounder_left(layer: Layer): + for x in range(layer.size.width): + for y in range(layer.size.height): + if layer.data[y][x] > 0: + return x + +def get_bounder_right(layer: Layer): + for x in range(layer.size.width - 1, -1, -1): + for y in range(layer.size.height): + if layer.data[y][x] > 0: + return x + +def get_bounder_up(layer: Layer): + for y in range(layer.size.height): + for x in range(layer.size.width): + if layer.data[y][x] > 0: + return y + +def get_bounder_down(layer: Layer): + for y in range(layer.size.height - 1, -1, -1): + for x in range(layer.size.width): + if layer.data[y][x] > 0: + return y