• R/O
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

X operations(XOPS)に非常に近いFPSゲームを制作・リメイクし、成果物をオープンソースとして公開することを目的としたプロジェクトです。


Commit MetaInfo

Revision147 (tree)
Time2016-09-04 14:15:10
Authorxops-mikan

Log Message

追加判定フラグに対応

Change Summary

Incremental Difference

--- trunk/collision.cpp (revision 146)
+++ trunk/collision.cpp (revision 147)
@@ -536,6 +536,14 @@
536536 if( rmax_x < RayPos_x ){ rmax_x = RayPos_x; }
537537 if( rmax_y < RayPos_y ){ rmax_y = RayPos_y; }
538538 if( rmax_z < RayPos_z ){ rmax_z = RayPos_z; }
539+
540+ //計算誤差対策のため、わずかに大きめにする。
541+ rmin_x -= 0.1f;
542+ rmin_y -= 0.1f;
543+ rmin_z -= 0.1f;
544+ rmax_x += 0.1f;
545+ rmax_y += 0.1f;
546+ rmax_z += 0.1f;
539547 }
540548
541549 if( maxDist > 0.0f ){
@@ -646,6 +654,14 @@
646654 if( rmax_x < RayPos_x ){ rmax_x = RayPos_x; }
647655 if( rmax_y < RayPos_y ){ rmax_y = RayPos_y; }
648656 if( rmax_z < RayPos_z ){ rmax_z = RayPos_z; }
657+
658+ //計算誤差対策のため、わずかに大きめにする。
659+ rmin_x -= 0.1f;
660+ rmin_y -= 0.1f;
661+ rmin_z -= 0.1f;
662+ rmax_x += 0.1f;
663+ rmax_y += 0.1f;
664+ rmax_z += 0.1f;
649665 }
650666
651667 if( maxDist > 0.0f ){
@@ -936,6 +952,14 @@
936952 if( pmax_y < RayPos_y ){ pmax_y = RayPos_y; }
937953 if( pmax_z < RayPos_z ){ pmax_z = RayPos_z; }
938954
955+ //計算誤差対策のため、わずかに大きめにする。
956+ pmin_x -= 0.1f;
957+ pmin_y -= 0.1f;
958+ pmin_z -= 0.1f;
959+ pmax_x += 0.1f;
960+ pmax_y += 0.1f;
961+ pmax_z += 0.1f;
962+
939963 //境界ボックス同士で判定
940964 if( CollideBoxAABB(s_x - s_r, s_y - s_r, s_z - s_r, s_x + s_r, s_y + s_r, s_z + s_r, pmin_x, pmin_y, pmin_z, pmax_x, pmax_y, pmax_z) == false ){
941965 return false;
@@ -1023,6 +1047,14 @@
10231047 if( pmax_y < RayPos_y ){ pmax_y = RayPos_y; }
10241048 if( pmax_z < RayPos_z ){ pmax_z = RayPos_z; }
10251049
1050+ //計算誤差対策のため、わずかに大きめにする。
1051+ pmin_x -= 0.1f;
1052+ pmin_y -= 0.1f;
1053+ pmin_z -= 0.1f;
1054+ pmax_x += 0.1f;
1055+ pmax_y += 0.1f;
1056+ pmax_z += 0.1f;
1057+
10261058 //境界ボックス同士で判定
10271059 if( CollideBoxAABB(box_min_x, box_min_y, box_min_z, box_max_x, box_max_y, box_max_z, pmin_x, pmin_y, pmin_z, pmax_x, pmax_y, pmax_z) == false ){
10281060 return false;
--- trunk/gamemain.cpp (revision 146)
+++ trunk/gamemain.cpp (revision 147)
@@ -204,6 +204,9 @@
204204 ObjMgr.LoadPointData();
205205 ObjMgr.SetPlayerID(MAX_HUMAN-1); //実在しない人をプレイヤーに(銃声のサウンド再生対策)
206206
207+ //追加のあたり判定設定
208+ ObjMgr.SetAddCollisionFlag(false);
209+
207210 //AI設定
208211 for(int i=0; i<MAX_HUMAN; i++){
209212 HumanAI[i].SetClass(&ObjMgr, i, &BlockData, &PointData, &GameParamInfo, &CollD, GameSound);
@@ -472,6 +475,9 @@
472475 //ポイントデータ初期化
473476 ObjMgr.LoadPointData();
474477
478+ //追加のあたり判定設定
479+ ObjMgr.SetAddCollisionFlag(false);
480+
475481 //AI設定
476482 for(int i=0; i<MAX_HUMAN; i++){
477483 HumanAI[i].SetClass(&ObjMgr, i, &BlockData, &PointData, &GameParamInfo, &CollD, GameSound);
@@ -570,7 +576,7 @@
570576 char name[32];
571577 strcpy(name, "");
572578 if( GameInfoData.selectaddon == false ){
573- GameParamInfo.GetOfficialMission(scrollitems + i, name, NULL, NULL, NULL);
579+ GameParamInfo.GetOfficialMission(scrollitems + i, name, NULL, NULL, NULL, NULL);
574580 }
575581 else{
576582 strcpy(name, GameAddon.GetMissionName(scrollitems + i));
@@ -824,7 +830,7 @@
824830
825831 //ミッション名を取得
826832 if( GameInfoData.selectaddon == false ){
827- GameParamInfo.GetOfficialMission(scrollitems + i, name, NULL, NULL, NULL);
833+ GameParamInfo.GetOfficialMission(scrollitems + i, name, NULL, NULL, NULL, NULL);
828834 }
829835 else{
830836 strcpy(name, GameAddon.GetMissionName(scrollitems + i));
@@ -898,7 +904,7 @@
898904
899905 //mifファイルのファイルパス取得
900906 if( GameInfoData.selectaddon == false ){
901- GameParamInfo.GetOfficialMission(GameInfoData.selectmission_id, NULL, NULL, path, pdata);
907+ GameParamInfo.GetOfficialMission(GameInfoData.selectmission_id, NULL, NULL, path, pdata, NULL);
902908 strcat(path, pdata);
903909 strcat(path, ".txt");
904910 }
@@ -993,7 +999,7 @@
993999 //ミッション名を取得・描画
9941000 char mname[64];
9951001 if( MIFdata.GetFiletype() == false ){
996- GameParamInfo.GetOfficialMission(GameInfoData.selectmission_id, NULL, mname, NULL, NULL);
1002+ GameParamInfo.GetOfficialMission(GameInfoData.selectmission_id, NULL, mname, NULL, NULL, NULL);
9971003 }
9981004 else{
9991005 strcpy(mname, MIFdata.GetMissionFullname());
@@ -1048,10 +1054,11 @@
10481054 char pdata[MAX_PATH];
10491055 char pdata2[MAX_PATH];
10501056 int blockflag, pointflag;
1057+ bool collisionflag;
10511058
10521059 //.bd1と.pd1のファイルパスを求める
10531060 if( MIFdata.GetFiletype() == false ){
1054- GameParamInfo.GetOfficialMission(MainGameInfo.selectmission_id, NULL, NULL, path, pdata2);
1061+ GameParamInfo.GetOfficialMission(MainGameInfo.selectmission_id, NULL, NULL, path, pdata2, &collisionflag);
10551062
10561063 strcpy(bdata, path);
10571064 strcat(bdata, "temp.bd1");
@@ -1061,6 +1068,7 @@
10611068 }
10621069 else{
10631070 MIFdata.GetDatafilePath(bdata, pdata);
1071+ collisionflag = MIFdata.GetCollisionFlag();
10641072
10651073 strcpy(path, bdata);
10661074 for(int i=strlen(path)-1; i>0; i--){
@@ -1095,6 +1103,9 @@
10951103 //ポイントデータ初期化
10961104 ObjMgr.LoadPointData();
10971105
1106+ //追加のあたり判定設定
1107+ ObjMgr.SetAddCollisionFlag(collisionflag);
1108+
10981109 //AI設定
10991110 for(int i=0; i<MAX_HUMAN; i++){
11001111 HumanAI[i].SetClass(&ObjMgr, i, &BlockData, &PointData, &GameParamInfo, &CollD, GameSound);
@@ -1179,7 +1190,7 @@
11791190
11801191 //.bd1と.pd1のファイルパスを求める
11811192 if( MIFdata.GetFiletype() == false ){
1182- GameParamInfo.GetOfficialMission(MainGameInfo.selectmission_id, NULL, NULL, path, NULL);
1193+ GameParamInfo.GetOfficialMission(MainGameInfo.selectmission_id, NULL, NULL, path, NULL, NULL);
11831194 }
11841195 else{
11851196 MIFdata.GetDatafilePath(bdata, pdata);
@@ -3234,7 +3245,7 @@
32343245
32353246 //ミッション名を取得し描画
32363247 if( MIFdata.GetFiletype() == false ){
3237- GameParamInfo.GetOfficialMission(GameInfoData.selectmission_id, NULL, mname, NULL, NULL);
3248+ GameParamInfo.GetOfficialMission(GameInfoData.selectmission_id, NULL, mname, NULL, NULL, NULL);
32383249 }
32393250 else{
32403251 strcpy(mname, MIFdata.GetMissionFullname());
--- trunk/object.cpp (revision 146)
+++ trunk/object.cpp (revision 147)
@@ -1270,11 +1270,12 @@
12701270 //! @brief マップとの当たり判定
12711271 //! @param CollD Collisionクラスのポインタ
12721272 //! @param inblockdata BlockDataInterfaceクラスのポインタ
1273+//! @param AddCollisionFlag 追加のあたり判定フラグ
12731274 //! @param FallDist Y軸の移動量を取得するポインタ
12741275 //! @param nowmove_x X軸の移動量を取得するポインタ
12751276 //! @param nowmove_z Z軸の移動量を取得するポインタ
12761277 //! @return ブロックに埋まっている:true 埋まっていない:false
1277-bool human::MapCollisionDetection(class Collision *CollD, class BlockDataInterface *inblockdata, float *FallDist, float *nowmove_x, float *nowmove_z)
1278+bool human::MapCollisionDetection(class Collision *CollD, class BlockDataInterface *inblockdata, bool AddCollisionFlag, float *FallDist, float *nowmove_x, float *nowmove_z)
12781279 {
12791280 bool inside = false;
12801281 int id;
@@ -1312,6 +1313,8 @@
13121313 FallDistance = move_y;
13131314 }
13141315 move_y_flag = true;
1316+
1317+ //DummyRay() 関数の結果に関わらず FallDistance = move_y; でも良いのだろうか?
13151318 }
13161319 else{
13171320 int id, face;
@@ -1429,6 +1432,20 @@
14291432 CollD->ScratchVector(id, face, move_x2, vy, move_z2, &move_x2, &vy, &move_z2);
14301433 }
14311434
1435+ if( AddCollisionFlag == true ){
1436+ //腰付近の追加当たり判定
1437+ if( CollD->CheckALLBlockIntersectDummyRay(pos_x, pos_y + HUMAN_MAPCOLLISION_ADD_HEIGTH_A, pos_z, vx, 0, vz, NULL, NULL, &Dist, speed) == true ){
1438+ CollD->CheckALLBlockIntersectRay(pos_x, pos_y + FallDistance + HUMAN_MAPCOLLISION_ADD_HEIGTH_A, pos_z, vx, 0, vz, &id, &face, &Dist, speed);
1439+ CollD->ScratchVector(id, face, move_x2, vy, move_z2, &move_x2, &vy, &move_z2);
1440+ }
1441+
1442+ //腰付近の追加当たり判定
1443+ if( CollD->CheckALLBlockIntersectDummyRay(pos_x, pos_y + HUMAN_MAPCOLLISION_ADD_HEIGTH_B, pos_z, vx, 0, vz, NULL, NULL, &Dist, speed) == true ){
1444+ CollD->CheckALLBlockIntersectRay(pos_x, pos_y + FallDistance + HUMAN_MAPCOLLISION_ADD_HEIGTH_B, pos_z, vx, 0, vz, &id, &face, &Dist, speed);
1445+ CollD->ScratchVector(id, face, move_x2, vy, move_z2, &move_x2, &vy, &move_z2);
1446+ }
1447+ }
1448+
14321449 //足元がブロックに埋まっていなければ
14331450 if( CollD->CheckALLBlockInside(pos_x, pos_y + offset, pos_z) == false ){
14341451
@@ -1516,9 +1533,10 @@
15161533 //! @brief 計算を実行(当たり判定)
15171534 //! @param CollD Collisionのポインタ
15181535 //! @param inblockdata BlockDataInterfaceのポインタ
1536+//! @param AddCollisionFlag 追加のあたり判定フラグ
15191537 //! @param F5mode 上昇機能(F5裏技)のフラグ (有効:true 無効:false)
15201538 //! @return 処理なし:0 通常処理:1 死亡して倒れ終わった直後:2 静止した死体:3
1521-int human::RunFrame(class Collision *CollD, class BlockDataInterface *inblockdata, bool F5mode)
1539+int human::RunFrame(class Collision *CollD, class BlockDataInterface *inblockdata, bool AddCollisionFlag, bool F5mode)
15221540 {
15231541 if( CollD == NULL ){ return 0; }
15241542 if( EnableFlag == false ){ return 0; }
@@ -1592,7 +1610,7 @@
15921610 ControlProcess();
15931611
15941612 //マップとの当たり判定
1595- MapCollisionDetection(CollD, inblockdata, &FallDistance, &nowmove_x, &nowmove_z);
1613+ MapCollisionDetection(CollD, inblockdata, AddCollisionFlag, &FallDistance, &nowmove_x, &nowmove_z);
15961614
15971615 //移動するなら
15981616 if( (nowmove_x*nowmove_x + nowmove_z*nowmove_z) > 0.0f * 0.0f ){
--- trunk/object.h (revision 146)
+++ trunk/object.h (revision 147)
@@ -67,6 +67,8 @@
6767
6868 #define HUMAN_MAPCOLLISION_R 5.0f //!< 人とマップの当たり判定 半径
6969 #define HUMAN_MAPCOLLISION_HEIGTH 10.2f //!< 人とマップの当たり判定 高さ(注:腰程度)
70+#define HUMAN_MAPCOLLISION_ADD_HEIGTH_A 9.2f //!< 人とマップの当たり判定 追加分 高さ(注:標準マップ SCHOOL に合わせる)
71+#define HUMAN_MAPCOLLISION_ADD_HEIGTH_B 13.2f //!< 人とマップの当たり判定 追加分 高さ(注:標準マップ SCHOOL に合わせる)
7072 #define HUMAN_MAPCOLLISION_SLOPEANGLE DegreeToRadian(50) //!< 人とマップの当たり判定 登れない斜面の角度
7173 #define HUMAN_MAPCOLLISION_SLOPEFORCEANGLE DegreeToRadian(22.62f) //!< 人とマップの当たり判定 登れない斜面が人を押し出す角度
7274 #define HUMAN_DEADLINE -100.0f //!< 人が死亡するY座標(デッドライン)
@@ -162,7 +164,7 @@
162164 void GunsightErrorRange();
163165 int CheckAndProcessDead(class Collision *CollD);
164166 void ControlProcess();
165- bool MapCollisionDetection(class Collision *CollD, class BlockDataInterface *inblockdata, float *FallDist, float *nowmove_x, float *nowmove_z);
167+ bool MapCollisionDetection(class Collision *CollD, class BlockDataInterface *inblockdata, bool AddCollisionFlag, float *FallDist, float *nowmove_x, float *nowmove_z);
166168
167169 public:
168170 human(class ParameterInfo *in_Param = NULL, float x = 0.0f, float y = 0.0f, float z = 0.0f, float rx = 0.0f, int id_param = -1, int dataid = 0, signed char p4 = 0, int team = 0, bool flag = false);
@@ -210,7 +212,7 @@
210212 virtual void SetHitFlag();
211213 virtual bool CheckHit();
212214 virtual float GetTotalMove();
213- virtual int RunFrame(class Collision *CollD, class BlockDataInterface *inblockdata, bool F5mode);
215+ virtual int RunFrame(class Collision *CollD, class BlockDataInterface *inblockdata, bool AddCollisionFlag, bool F5mode);
214216 virtual int GetGunsightErrorRange();
215217 virtual void Render(class D3DGraphics *d3dg, class ResourceManager *Resource, bool DrawArm, bool player);
216218 };
--- trunk/objectmanager.cpp (revision 146)
+++ trunk/objectmanager.cpp (revision 147)
@@ -47,6 +47,7 @@
4747 Human_headshot = new int[MAX_HUMAN];
4848 Human_ShotFlag = new bool[MAX_HUMAN];
4949 BulletObj_HumanIndex = new BulletObjectHumanIndex[MAX_BULLET];
50+ AddCollisionFlag = false;
5051 FriendlyFire = false;
5152 Player_HumanID = 0;
5253 Human_FrameTextureRefresh = new bool[MAX_HUMAN];
@@ -1310,6 +1311,7 @@
13101311 //! @brief ポイントデータを元にオブジェクトを配置
13111312 void ObjectManager::LoadPointData()
13121313 {
1314+ AddCollisionFlag = false;
13131315 FriendlyFire = false;
13141316 Player_HumanID = 0;
13151317
@@ -1504,6 +1506,13 @@
15041506 }
15051507 }
15061508
1509+//! @brief 追加のあたり判定フラグを設定
1510+//! @param flag フラグ
1511+void ObjectManager::SetAddCollisionFlag(bool flag)
1512+{
1513+ AddCollisionFlag = flag;
1514+}
1515+
15071516 //! @brief FF(同士討ち)有効化フラグを取得
15081517 //! @return フラグ
15091518 bool ObjectManager::GetFriendlyFireFlag()
@@ -2421,7 +2430,7 @@
24212430 cmdF5 = false;
24222431 }
24232432
2424- if( HumanIndex[i].RunFrame(CollD, BlockData, cmdF5) == 2 ){
2433+ if( HumanIndex[i].RunFrame(CollD, BlockData, AddCollisionFlag, cmdF5) == 2 ){
24252434 //死亡時のエフェクト
24262435 DeadEffect(&(HumanIndex[i]));
24272436 }
--- trunk/objectmanager.h (revision 146)
+++ trunk/objectmanager.h (revision 147)
@@ -83,6 +83,7 @@
8383 bool *Human_ShotFlag; //!< 発砲フラグ(マズルフラッシュ用)
8484 class BulletObjectHumanIndex *BulletObj_HumanIndex; //!< 弾対人判定用オブジェクト
8585
86+ bool AddCollisionFlag; //!< 追加のあたり判定
8687 bool FriendlyFire; //!< FF(同士討ち)有効化
8788
8889 int Player_HumanID; //!< プレイヤーが操作する人オブジェクトのID
@@ -126,6 +127,7 @@
126127 int AddMapEffect(int id, int face, float pos_x, float pos_y, float pos_z, float size, float rotation, int count, int texture);
127128 void LoadPointData();
128129 void Recovery();
130+ void SetAddCollisionFlag(bool flag);
129131 bool GetFriendlyFireFlag();
130132 void SetFriendlyFireFlag(bool flag);
131133 int GetPlayerID();
--- trunk/parameter.cpp (revision 146)
+++ trunk/parameter.cpp (revision 147)
@@ -1327,238 +1327,296 @@
13271327 Bullet[1].size = Weapon[ID_WEAPON_GRENADE].size;
13281328
13291329
1330- missionname[0] = "TRAINING YARD";
1331- missionfullname[0] = "TRAINING YARD training";
1332- missiondirectory[0] = "data\\map0\\";
1333- missiontxt[0] = "tr";
1334- missionname[1] = "UNDERGROUND_EXT";
1335- missionfullname[1] = "UNDERGROUND extermination";
1336- missiondirectory[1] = "data\\map5\\";
1337- missiontxt[1] = "ext";
1338- missionname[2] = "BUILDING_EXT";
1339- missionfullname[2] = "BUILDING extermination";
1340- missiondirectory[2] = "data\\map1\\";
1341- missiontxt[2] = "ext";
1342- missionname[3] = "SNOW BASE_EXT";
1343- missionfullname[3] = "SNOW BASE extermination";
1344- missiondirectory[3] = "data\\map2\\";
1345- missiontxt[3] = "ext";
1346- missionname[4] = "MBASE_EXT";
1347- missionfullname[4] = "MILITARY BASE extermination";
1348- missiondirectory[4] = "data\\map4\\";
1349- missiontxt[4] = "ext";
1350- missionname[5] = "WAREHOUSE_EXT";
1351- missionfullname[5] = "WAREHOUSE AREA extermination";
1352- missiondirectory[5] = "data\\map7\\";
1353- missiontxt[5] = "ext";
1354- missionname[6] = "DUEL_EXT";
1355- missionfullname[6] = "DUEL extermination";
1356- missiondirectory[6] = "data\\map9\\";
1357- missiontxt[6] = "ext";
1358- missionname[7] = "STATION_EXT";
1359- missionfullname[7] = "SUBWAY STATION extermination";
1360- missiondirectory[7] = "data\\map6\\";
1361- missiontxt[7] = "ext";
1362- missionname[8] = "MAZE_EXT";
1363- missionfullname[8] = "MAZE extermination";
1364- missiondirectory[8] = "data\\map13\\";
1365- missiontxt[8] = "ext";
1366- missionname[9] = "RUINS_EXT";
1367- missionfullname[9] = "RUINS extermination";
1368- missiondirectory[9] = "data\\map14\\";
1369- missiontxt[9] = "ext";
1370- missionname[10] = "URBAN_EXT";
1371- missionfullname[10] = "URBAN extermination";
1372- missiondirectory[10]= "data\\map8\\";
1373- missiontxt[10] = "ext";
1374- missionname[11] = "UNDERGROUND_EXT2";
1375- missionfullname[11] = "UNDERGROUND extermination2";
1376- missiondirectory[11]= "data\\map5\\";
1377- missiontxt[11] = "ext2";
1378- missionname[12] = "TUNNEL_EXT";
1379- missionfullname[12] = "TUNNEL extermination";
1380- missiondirectory[12]= "data\\map12\\";
1381- missiontxt[12] = "ext";
1382- missionname[13] = "URBAN_DEF";
1383- missionfullname[13] = "URBAN defend target";
1384- missiondirectory[13]= "data\\map8\\";
1385- missiontxt[13] = "def";
1386- missionname[14] = "DTOWN_EXT";
1387- missionfullname[14] = "DESERT TOWN extermination";
1388- missiondirectory[14]= "data\\map3\\";
1389- missiontxt[14] = "ext";
1390- missionname[15] = "URBAN_DEF2";
1391- missionfullname[15] = "URBAN defend target2";
1392- missiondirectory[15]= "data\\map8\\";
1393- missiontxt[15] = "def2";
1394- missionname[16] = "WAREHOUSE_KT";
1395- missionfullname[16] = "WAREHOUSE AREA kill the target";
1396- missiondirectory[16]= "data\\map7\\";
1397- missiontxt[16] = "kt";
1398- missionname[17] = "RUINS_RE";
1399- missionfullname[17] = "RUINS release";
1400- missiondirectory[17]= "data\\map14\\";
1401- missiontxt[17] = "re";
1402- missionname[18] = "RELIC_CAP";
1403- missionfullname[18] = "RELIC capture";
1404- missiondirectory[18]= "data\\map16\\";
1405- missiontxt[18] = "cap";
1406- missionname[19] = "MBASE_DE";
1407- missionfullname[19] = "MILITARY BASE destroy";
1408- missiondirectory[19]= "data\\map4\\";
1409- missiontxt[19] = "de";
1410- missionname[20] = "RUINS_CAP";
1411- missionfullname[20] = "RUINS capture";
1412- missiondirectory[20]= "data\\map14\\";
1413- missiontxt[20] = "cap";
1414- missionname[21] = "DTOWN_KT";
1415- missionfullname[21] = "DESERT TOWN kill the target";
1416- missiondirectory[21]= "data\\map3\\";
1417- missiontxt[21] = "kt";
1418- missionname[22] = "SNOW BASE_RE";
1419- missionfullname[22] = "SNOW BASE release";
1420- missiondirectory[22]= "data\\map2\\";
1421- missiontxt[22] = "re";
1422- missionname[23] = "UNDERGROUND_DEF";
1423- missionfullname[23] = "UNDERGROUND defend target";
1424- missiondirectory[23]= "data\\map5\\";
1425- missiontxt[23] = "def";
1426- missionname[24] = "TUNNEL_EXT2";
1427- missionfullname[24] = "TUNNEL extermination2";
1428- missiondirectory[24]= "data\\map12\\";
1429- missiontxt[24] = "ext2";
1430- missionname[25] = "RELIC_DEF";
1431- missionfullname[25] = "RELIC defend target";
1432- missiondirectory[25]= "data\\map16\\";
1433- missiontxt[25] = "def";
1434- missionname[26] = "URBAN_KT";
1435- missionfullname[26] = "URBAN kill the target";
1436- missiondirectory[26]= "data\\map8\\";
1437- missiontxt[26] = "kt";
1438- missionname[27] = "ALLEY_KT";
1439- missionfullname[27] = "ALLEY kill the target";
1440- missiondirectory[27]= "data\\map10\\";
1441- missiontxt[27] = "kt";
1442- missionname[28] = "STATION_KT";
1443- missionfullname[28] = "SUBWAY STATION kill the target";
1444- missiondirectory[28]= "data\\map6\\";
1445- missiontxt[28] = "kt";
1446- missionname[29] = "WAREHOUSE_DEF";
1447- missionfullname[29] = "WAREHOUSE AREA defend target";
1448- missiondirectory[29]= "data\\map7\\";
1449- missiontxt[29] = "def";
1450- missionname[30] = "URBAN_KT2";
1451- missionfullname[30] = "URBAN kill the target2";
1452- missiondirectory[30]= "data\\map8\\";
1453- missiontxt[30] = "kt2";
1454- missionname[31] = "OFFICE_DEF";
1455- missionfullname[31] = "OFFICE defend target";
1456- missiondirectory[31]= "data\\map15\\";
1457- missiontxt[31] = "def";
1458- missionname[32] = "URBAN_CAP";
1459- missionfullname[32] = "URBAN capture";
1460- missiondirectory[32]= "data\\map8\\";
1461- missiontxt[32] = "cap";
1462- missionname[33] = "ALLEY_EXT";
1463- missionfullname[33] = "ALLEY extermination";
1464- missiondirectory[33]= "data\\map10\\";
1465- missiontxt[33] = "ext";
1466- missionname[34] = "TUNNEL_ESC";
1467- missionfullname[34] = "TUNNEL escape";
1468- missiondirectory[34]= "data\\map12\\";
1469- missiontxt[34] = "esc";
1470- missionname[35] = "MAZE_CAP";
1471- missionfullname[35] = "MAZE capture";
1472- missiondirectory[35]= "data\\map13\\";
1473- missiontxt[35] = "cap";
1474- missionname[36] = "WAREHOUSE_DEF2";
1475- missionfullname[36] = "WAREHOUSE AREA defend target2";
1476- missiondirectory[36]= "data\\map7\\";
1477- missiontxt[36] = "def2";
1478- missionname[37] = "RUINS_DE";
1479- missionfullname[37] = "RUINS destroy";
1480- missiondirectory[37]= "data\\map14\\";
1481- missiontxt[37] = "de";
1482- missionname[38] = "URBAN_KT3";
1483- missionfullname[38] = "URBAN kill the target3";
1484- missiondirectory[38]= "data\\map8\\";
1485- missiontxt[38] = "kt3";
1486- missionname[39] = "DUEL_EXT2";
1487- missionfullname[39] = "DUEL extermination2";
1488- missiondirectory[39]= "data\\map9\\";
1489- missiontxt[39] = "ext2";
1490- missionname[40] = "RELIC_EXT";
1491- missionfullname[40] = "RELIC extermination";
1492- missiondirectory[40]= "data\\map16\\";
1493- missiontxt[40] = "ext";
1494- missionname[41] = "SNOW BASE_DEF";
1495- missionfullname[41] = "SNOW BASE defend target";
1496- missiondirectory[41]= "data\\map2\\";
1497- missiontxt[41] = "def";
1498- missionname[42] = "BUILDING_KT";
1499- missionfullname[42] = "BUILDING kill the target";
1500- missiondirectory[42]= "data\\map1\\";
1501- missiontxt[42] = "kt";
1502- missionname[43] = "MAZE_ESC";
1503- missionfullname[43] = "MAZE escape";
1504- missiondirectory[43]= "data\\map13\\";
1505- missiontxt[43] = "esc";
1506- missionname[44] = "ALLEY_EXT2";
1507- missionfullname[44] = "ALLEY extermination2";
1508- missiondirectory[44]= "data\\map10\\";
1509- missiontxt[44] = "ext2";
1510- missionname[45] = "MBASE_ESC";
1511- missionfullname[45] = "MILITARY BASE escape";
1512- missiondirectory[45]= "data\\map4\\";
1513- missiontxt[45] = "esc";
1514- missionname[46] = "DTOWN_DEF";
1515- missionfullname[46] = "DESERT TOWN defend target";
1516- missiondirectory[46]= "data\\map3\\";
1517- missiontxt[46] = "def";
1518- missionname[47] = "OFFICE_KT";
1519- missionfullname[47] = "OFFICE kill the target";
1520- missiondirectory[47]= "data\\map15\\";
1521- missiontxt[47] = "kt";
1522- missionname[48] = "BUILDING_DEF";
1523- missionfullname[48] = "BUILDING defend target";
1524- missiondirectory[48]= "data\\map1\\";
1525- missiontxt[48] = "def";
1526- missionname[49] = "OFFICE_KT2";
1527- missionfullname[49] = "OFFICE kill the target2";
1528- missiondirectory[49]= "data\\map15\\";
1529- missiontxt[49] = "kt2";
1530- missionname[50] = "MBASE_CAP";
1531- missionfullname[50] = "MILITARY BASE capture";
1532- missiondirectory[50]= "data\\map4\\";
1533- missiontxt[50] = "cap";
1534- missionname[51] = "TUNNEL_KT";
1535- missionfullname[51] = "TUNNEL kill the target";
1536- missiondirectory[51]= "data\\map12\\";
1537- missiontxt[51] = "kt";
1538- missionname[52] = "OFFICE_RE";
1539- missionfullname[52] = "OFFICE release";
1540- missiondirectory[52]= "data\\map15\\";
1541- missiontxt[52] = "re";
1542- missionname[53] = "URBAN_KT4";
1543- missionfullname[53] = "URBAN kill the target4";
1544- missiondirectory[53]= "data\\map8\\";
1545- missiontxt[53] = "kt4";
1546- missionname[54] = "UNDERGROUND_EXT3";
1547- missionfullname[54] = "UNDERGROUND extermination3";
1548- missiondirectory[54]= "data\\map5\\";
1549- missiontxt[54] = "ext3";
1550- missionname[55] = "SCHOOL_EXT";
1551- missionfullname[55] = "SCHOOL extermination";
1552- missiondirectory[55]= "data\\map11\\";
1553- missiontxt[55] = "ext";
1554- missionname[56] = "SCHOOL_EXT2";
1555- missionfullname[56] = "SCHOOL extermination2";
1556- missiondirectory[56]= "data\\map11\\";
1557- missiontxt[56] = "ext2";
1558- missionname[57] = "SCHOOL_DE";
1559- missionfullname[57] = "SCHOOL destroy";
1560- missiondirectory[57]= "data\\map11\\";
1561- missiontxt[57] = "de";
1330+ missionname[0] = "TRAINING YARD";
1331+ missionfullname[0] = "TRAINING YARD training";
1332+ missiondirectory[0] = "data\\map0\\";
1333+ missiontxt[0] = "tr";
1334+ missioncollisionflag[0] = false;
1335+ missionname[1] = "UNDERGROUND_EXT";
1336+ missionfullname[1] = "UNDERGROUND extermination";
1337+ missiondirectory[1] = "data\\map5\\";
1338+ missiontxt[1] = "ext";
1339+ missioncollisionflag[1] = false;
1340+ missionname[2] = "BUILDING_EXT";
1341+ missionfullname[2] = "BUILDING extermination";
1342+ missiondirectory[2] = "data\\map1\\";
1343+ missiontxt[2] = "ext";
1344+ missioncollisionflag[2] = false;
1345+ missionname[3] = "SNOW BASE_EXT";
1346+ missionfullname[3] = "SNOW BASE extermination";
1347+ missiondirectory[3] = "data\\map2\\";
1348+ missiontxt[3] = "ext";
1349+ missioncollisionflag[3] = false;
1350+ missionname[4] = "MBASE_EXT";
1351+ missionfullname[4] = "MILITARY BASE extermination";
1352+ missiondirectory[4] = "data\\map4\\";
1353+ missiontxt[4] = "ext";
1354+ missioncollisionflag[4] = false;
1355+ missionname[5] = "WAREHOUSE_EXT";
1356+ missionfullname[5] = "WAREHOUSE AREA extermination";
1357+ missiondirectory[5] = "data\\map7\\";
1358+ missiontxt[5] = "ext";
1359+ missioncollisionflag[5] = false;
1360+ missionname[6] = "DUEL_EXT";
1361+ missionfullname[6] = "DUEL extermination";
1362+ missiondirectory[6] = "data\\map9\\";
1363+ missiontxt[6] = "ext";
1364+ missioncollisionflag[6] = false;
1365+ missionname[7] = "STATION_EXT";
1366+ missionfullname[7] = "SUBWAY STATION extermination";
1367+ missiondirectory[7] = "data\\map6\\";
1368+ missiontxt[7] = "ext";
1369+ missioncollisionflag[7] = false;
1370+ missionname[8] = "MAZE_EXT";
1371+ missionfullname[8] = "MAZE extermination";
1372+ missiondirectory[8] = "data\\map13\\";
1373+ missiontxt[8] = "ext";
1374+ missioncollisionflag[8] = false;
1375+ missionname[9] = "RUINS_EXT";
1376+ missionfullname[9] = "RUINS extermination";
1377+ missiondirectory[9] = "data\\map14\\";
1378+ missiontxt[9] = "ext";
1379+ missioncollisionflag[9] = false;
1380+ missionname[10] = "URBAN_EXT";
1381+ missionfullname[10] = "URBAN extermination";
1382+ missiondirectory[10] = "data\\map8\\";
1383+ missiontxt[10] = "ext";
1384+ missioncollisionflag[10]= false;
1385+ missionname[11] = "UNDERGROUND_EXT2";
1386+ missionfullname[11] = "UNDERGROUND extermination2";
1387+ missiondirectory[11] = "data\\map5\\";
1388+ missiontxt[11] = "ext2";
1389+ missioncollisionflag[11]= false;
1390+ missionname[12] = "TUNNEL_EXT";
1391+ missionfullname[12] = "TUNNEL extermination";
1392+ missiondirectory[12] = "data\\map12\\";
1393+ missiontxt[12] = "ext";
1394+ missioncollisionflag[12]= false;
1395+ missionname[13] = "URBAN_DEF";
1396+ missionfullname[13] = "URBAN defend target";
1397+ missiondirectory[13] = "data\\map8\\";
1398+ missiontxt[13] = "def";
1399+ missioncollisionflag[13]= false;
1400+ missionname[14] = "DTOWN_EXT";
1401+ missionfullname[14] = "DESERT TOWN extermination";
1402+ missiondirectory[14] = "data\\map3\\";
1403+ missiontxt[14] = "ext";
1404+ missioncollisionflag[14]= false;
1405+ missionname[15] = "URBAN_DEF2";
1406+ missionfullname[15] = "URBAN defend target2";
1407+ missiondirectory[15] = "data\\map8\\";
1408+ missiontxt[15] = "def2";
1409+ missioncollisionflag[15]= false;
1410+ missionname[16] = "WAREHOUSE_KT";
1411+ missionfullname[16] = "WAREHOUSE AREA kill the target";
1412+ missiondirectory[16] = "data\\map7\\";
1413+ missiontxt[16] = "kt";
1414+ missioncollisionflag[16]= false;
1415+ missionname[17] = "RUINS_RE";
1416+ missionfullname[17] = "RUINS release";
1417+ missiondirectory[17] = "data\\map14\\";
1418+ missiontxt[17] = "re";
1419+ missioncollisionflag[17]= false;
1420+ missionname[18] = "RELIC_CAP";
1421+ missionfullname[18] = "RELIC capture";
1422+ missiondirectory[18] = "data\\map16\\";
1423+ missiontxt[18] = "cap";
1424+ missioncollisionflag[18]= false;
1425+ missionname[19] = "MBASE_DE";
1426+ missionfullname[19] = "MILITARY BASE destroy";
1427+ missiondirectory[19] = "data\\map4\\";
1428+ missiontxt[19] = "de";
1429+ missioncollisionflag[19]= false;
1430+ missionname[20] = "RUINS_CAP";
1431+ missionfullname[20] = "RUINS capture";
1432+ missiondirectory[20] = "data\\map14\\";
1433+ missiontxt[20] = "cap";
1434+ missioncollisionflag[20]= false;
1435+ missionname[21] = "DTOWN_KT";
1436+ missionfullname[21] = "DESERT TOWN kill the target";
1437+ missiondirectory[21] = "data\\map3\\";
1438+ missiontxt[21] = "kt";
1439+ missioncollisionflag[21]= false;
1440+ missionname[22] = "SNOW BASE_RE";
1441+ missionfullname[22] = "SNOW BASE release";
1442+ missiondirectory[22] = "data\\map2\\";
1443+ missiontxt[22] = "re";
1444+ missioncollisionflag[22]= false;
1445+ missionname[23] = "UNDERGROUND_DEF";
1446+ missionfullname[23] = "UNDERGROUND defend target";
1447+ missiondirectory[23] = "data\\map5\\";
1448+ missiontxt[23] = "def";
1449+ missioncollisionflag[23]= false;
1450+ missionname[24] = "TUNNEL_EXT2";
1451+ missionfullname[24] = "TUNNEL extermination2";
1452+ missiondirectory[24] = "data\\map12\\";
1453+ missiontxt[24] = "ext2";
1454+ missioncollisionflag[24]= false;
1455+ missionname[25] = "RELIC_DEF";
1456+ missionfullname[25] = "RELIC defend target";
1457+ missiondirectory[25] = "data\\map16\\";
1458+ missiontxt[25] = "def";
1459+ missioncollisionflag[25]= false;
1460+ missionname[26] = "URBAN_KT";
1461+ missionfullname[26] = "URBAN kill the target";
1462+ missiondirectory[26] = "data\\map8\\";
1463+ missiontxt[26] = "kt";
1464+ missioncollisionflag[26]= false;
1465+ missionname[27] = "ALLEY_KT";
1466+ missionfullname[27] = "ALLEY kill the target";
1467+ missiondirectory[27] = "data\\map10\\";
1468+ missiontxt[27] = "kt";
1469+ missioncollisionflag[27]= false;
1470+ missionname[28] = "STATION_KT";
1471+ missionfullname[28] = "SUBWAY STATION kill the target";
1472+ missiondirectory[28] = "data\\map6\\";
1473+ missiontxt[28] = "kt";
1474+ missioncollisionflag[28]= false;
1475+ missionname[29] = "WAREHOUSE_DEF";
1476+ missionfullname[29] = "WAREHOUSE AREA defend target";
1477+ missiondirectory[29] = "data\\map7\\";
1478+ missiontxt[29] = "def";
1479+ missioncollisionflag[29]= false;
1480+ missionname[30] = "URBAN_KT2";
1481+ missionfullname[30] = "URBAN kill the target2";
1482+ missiondirectory[30] = "data\\map8\\";
1483+ missiontxt[30] = "kt2";
1484+ missioncollisionflag[30]= false;
1485+ missionname[31] = "OFFICE_DEF";
1486+ missionfullname[31] = "OFFICE defend target";
1487+ missiondirectory[31] = "data\\map15\\";
1488+ missiontxt[31] = "def";
1489+ missioncollisionflag[31]= false;
1490+ missionname[32] = "URBAN_CAP";
1491+ missionfullname[32] = "URBAN capture";
1492+ missiondirectory[32] = "data\\map8\\";
1493+ missiontxt[32] = "cap";
1494+ missioncollisionflag[32]= false;
1495+ missionname[33] = "ALLEY_EXT";
1496+ missionfullname[33] = "ALLEY extermination";
1497+ missiondirectory[33] = "data\\map10\\";
1498+ missiontxt[33] = "ext";
1499+ missioncollisionflag[33]= false;
1500+ missionname[34] = "TUNNEL_ESC";
1501+ missionfullname[34] = "TUNNEL escape";
1502+ missiondirectory[34] = "data\\map12\\";
1503+ missiontxt[34] = "esc";
1504+ missioncollisionflag[34]= false;
1505+ missionname[35] = "MAZE_CAP";
1506+ missionfullname[35] = "MAZE capture";
1507+ missiondirectory[35] = "data\\map13\\";
1508+ missiontxt[35] = "cap";
1509+ missioncollisionflag[35]= false;
1510+ missionname[36] = "WAREHOUSE_DEF2";
1511+ missionfullname[36] = "WAREHOUSE AREA defend target2";
1512+ missiondirectory[36] = "data\\map7\\";
1513+ missiontxt[36] = "def2";
1514+ missioncollisionflag[36]= false;
1515+ missionname[37] = "RUINS_DE";
1516+ missionfullname[37] = "RUINS destroy";
1517+ missiondirectory[37] = "data\\map14\\";
1518+ missiontxt[37] = "de";
1519+ missioncollisionflag[37]= false;
1520+ missionname[38] = "URBAN_KT3";
1521+ missionfullname[38] = "URBAN kill the target3";
1522+ missiondirectory[38] = "data\\map8\\";
1523+ missiontxt[38] = "kt3";
1524+ missioncollisionflag[38]= false;
1525+ missionname[39] = "DUEL_EXT2";
1526+ missionfullname[39] = "DUEL extermination2";
1527+ missiondirectory[39] = "data\\map9\\";
1528+ missiontxt[39] = "ext2";
1529+ missioncollisionflag[39]= false;
1530+ missionname[40] = "RELIC_EXT";
1531+ missionfullname[40] = "RELIC extermination";
1532+ missiondirectory[40] = "data\\map16\\";
1533+ missiontxt[40] = "ext";
1534+ missioncollisionflag[40]= false;
1535+ missionname[41] = "SNOW BASE_DEF";
1536+ missionfullname[41] = "SNOW BASE defend target";
1537+ missiondirectory[41] = "data\\map2\\";
1538+ missiontxt[41] = "def";
1539+ missioncollisionflag[41]= false;
1540+ missionname[42] = "BUILDING_KT";
1541+ missionfullname[42] = "BUILDING kill the target";
1542+ missiondirectory[42] = "data\\map1\\";
1543+ missiontxt[42] = "kt";
1544+ missioncollisionflag[42]= false;
1545+ missionname[43] = "MAZE_ESC";
1546+ missionfullname[43] = "MAZE escape";
1547+ missiondirectory[43] = "data\\map13\\";
1548+ missiontxt[43] = "esc";
1549+ missioncollisionflag[43]= false;
1550+ missionname[44] = "ALLEY_EXT2";
1551+ missionfullname[44] = "ALLEY extermination2";
1552+ missiondirectory[44] = "data\\map10\\";
1553+ missiontxt[44] = "ext2";
1554+ missioncollisionflag[44]= false;
1555+ missionname[45] = "MBASE_ESC";
1556+ missionfullname[45] = "MILITARY BASE escape";
1557+ missiondirectory[45] = "data\\map4\\";
1558+ missiontxt[45] = "esc";
1559+ missioncollisionflag[45]= false;
1560+ missionname[46] = "DTOWN_DEF";
1561+ missionfullname[46] = "DESERT TOWN defend target";
1562+ missiondirectory[46] = "data\\map3\\";
1563+ missiontxt[46] = "def";
1564+ missioncollisionflag[46]= false;
1565+ missionname[47] = "OFFICE_KT";
1566+ missionfullname[47] = "OFFICE kill the target";
1567+ missiondirectory[47] = "data\\map15\\";
1568+ missiontxt[47] = "kt";
1569+ missioncollisionflag[47]= false;
1570+ missionname[48] = "BUILDING_DEF";
1571+ missionfullname[48] = "BUILDING defend target";
1572+ missiondirectory[48] = "data\\map1\\";
1573+ missiontxt[48] = "def";
1574+ missioncollisionflag[48]= false;
1575+ missionname[49] = "OFFICE_KT2";
1576+ missionfullname[49] = "OFFICE kill the target2";
1577+ missiondirectory[49] = "data\\map15\\";
1578+ missiontxt[49] = "kt2";
1579+ missioncollisionflag[49]= false;
1580+ missionname[50] = "MBASE_CAP";
1581+ missionfullname[50] = "MILITARY BASE capture";
1582+ missiondirectory[50] = "data\\map4\\";
1583+ missiontxt[50] = "cap";
1584+ missioncollisionflag[50]= false;
1585+ missionname[51] = "TUNNEL_KT";
1586+ missionfullname[51] = "TUNNEL kill the target";
1587+ missiondirectory[51] = "data\\map12\\";
1588+ missiontxt[51] = "kt";
1589+ missioncollisionflag[51]= false;
1590+ missionname[52] = "OFFICE_RE";
1591+ missionfullname[52] = "OFFICE release";
1592+ missiondirectory[52] = "data\\map15\\";
1593+ missiontxt[52] = "re";
1594+ missioncollisionflag[52]= false;
1595+ missionname[53] = "URBAN_KT4";
1596+ missionfullname[53] = "URBAN kill the target4";
1597+ missiondirectory[53] = "data\\map8\\";
1598+ missiontxt[53] = "kt4";
1599+ missioncollisionflag[53]= false;
1600+ missionname[54] = "UNDERGROUND_EXT3";
1601+ missionfullname[54] = "UNDERGROUND extermination3";
1602+ missiondirectory[54] = "data\\map5\\";
1603+ missiontxt[54] = "ext3";
1604+ missioncollisionflag[54]= false;
1605+ missionname[55] = "SCHOOL_EXT";
1606+ missionfullname[55] = "SCHOOL extermination";
1607+ missiondirectory[55] = "data\\map11\\";
1608+ missiontxt[55] = "ext";
1609+ missioncollisionflag[55]= true;
1610+ missionname[56] = "SCHOOL_EXT2";
1611+ missionfullname[56] = "SCHOOL extermination2";
1612+ missiondirectory[56] = "data\\map11\\";
1613+ missiontxt[56] = "ext2";
1614+ missioncollisionflag[56]= true;
1615+ missionname[57] = "SCHOOL_DE";
1616+ missionfullname[57] = "SCHOOL destroy";
1617+ missiondirectory[57] = "data\\map11\\";
1618+ missiontxt[57] = "de";
1619+ missioncollisionflag[57]= true;
15621620
15631621
15641622 AIlevel[0].aiming = 1;
@@ -1726,9 +1784,10 @@
17261784 //! @param fullname ミッション正式名称を受け取るポインタ (NULL可)
17271785 //! @param directory データの格納先を受け取るポインタ (NULL可)
17281786 //! @param txt ファイル名を受け取るポインタ (NULL可)
1787+//! @param collisionflag 追加のあたり判定を示すフラグを受け取るポインタ (NULL可)
17291788 //! @return 成功:0 失敗:1
17301789 //! @note ファイル名・・・ミッション情報ファイル(.txt)とポイントデータファイル(.pd1)に使われる名前
1731-int ParameterInfo::GetOfficialMission(int id, char *name, char *fullname, char* directory, char *txt)
1790+int ParameterInfo::GetOfficialMission(int id, char *name, char *fullname, char* directory, char *txt, bool *collisionflag)
17321791 {
17331792 if( (id < 0)||((TOTAL_OFFICIALMISSION -1) < id ) ){ return 1; }
17341793
@@ -1736,6 +1795,7 @@
17361795 if( fullname != NULL ){ strcpy(fullname, missionfullname[id]); }
17371796 if( directory != NULL ){ strcpy(directory, missiondirectory[id]); }
17381797 if( txt != NULL ){ strcpy(txt, missiontxt[id]); }
1798+ if( collisionflag != NULL ){ *collisionflag = missioncollisionflag[id]; }
17391799 return 0;
17401800 }
17411801
--- trunk/parameter.h (revision 146)
+++ trunk/parameter.h (revision 147)
@@ -137,11 +137,12 @@
137137 WeaponParameter *BugWeapon; //!< バグ武器の情報を格納するポインタ
138138 #endif
139139 SmallObjectParameter *SmallObject; //!< 小物の情報を格納するポインタ
140- BulletParameter *Bullet; //!< 銃弾オブジェクトの情報を格納するポインタ
141- char *missionname[TOTAL_OFFICIALMISSION]; //!< 標準ミッションのミッション識別名
142- char *missionfullname[TOTAL_OFFICIALMISSION]; //!< 標準ミッションのミッション正式名称
143- char *missiondirectory[TOTAL_OFFICIALMISSION]; //!< 標準ミッションのデータディレクトリ
144- char *missiontxt[TOTAL_OFFICIALMISSION]; //!< 標準ミッションのファイル名(.pd1/.txt)
140+ BulletParameter *Bullet; //!< 銃弾オブジェクトの情報を格納するポインタ
141+ char *missionname[TOTAL_OFFICIALMISSION]; //!< 標準ミッションのミッション識別名
142+ char *missionfullname[TOTAL_OFFICIALMISSION]; //!< 標準ミッションのミッション正式名称
143+ char *missiondirectory[TOTAL_OFFICIALMISSION]; //!< 標準ミッションのデータディレクトリ
144+ char *missiontxt[TOTAL_OFFICIALMISSION]; //!< 標準ミッションのファイル名(.pd1/.txt)
145+ bool missioncollisionflag[TOTAL_OFFICIALMISSION]; //!< 標準ミッションの追加のあたり判定を示すフラグ
145146 AIParameter *AIlevel; //!< AIの性能値
146147
147148 public:
@@ -157,7 +158,7 @@
157158 #endif
158159 int GetSmallObject(int id, SmallObjectParameter *out_data);
159160 int GetBullet(int id, BulletParameter *out_data);
160- int GetOfficialMission(int id, char *name, char *fullname, char* directory, char *txt);
161+ int GetOfficialMission(int id, char *name, char *fullname, char* directory, char *txt, bool *collisionflag);
161162 int GetAIlevel(int level, AIParameter **out_AIlevel);
162163 };
163164