X operations(XOPS)に非常に近いFPSゲームを制作・リメイクし、成果物をオープンソースとして公開することを目的としたプロジェクトです。
| Revision | 245 (tree) |
|---|---|
| Time | 2020-05-10 16:58:04 |
| Author | |
ショットモード切り替え機能を武器ID切り替え機能に命名変更、キーコード用の定数名修正
| @@ -888,7 +888,7 @@ | ||
| 888 | 888 | weapon[notselectweapon]->GetParamData(NULL, NULL, &nbs); |
| 889 | 889 | if( nbs > 0 ){ |
| 890 | 890 | //持ち替える |
| 891 | - ObjMgr->ChangeWeapon(ctrlid); | |
| 891 | + ObjMgr->ChangeHaveWeapon(ctrlid); | |
| 892 | 892 | return 1; |
| 893 | 893 | } |
| 894 | 894 | } |
| @@ -1027,7 +1027,7 @@ | ||
| 1027 | 1027 | if( longattack == false ){ |
| 1028 | 1028 | // 1/100の確率で持ち替える |
| 1029 | 1029 | if( (GetRand(100) == 0)&&(nextnds > 0) ){ |
| 1030 | - ObjMgr->ChangeWeapon(ctrlid); | |
| 1030 | + ObjMgr->ChangeHaveWeapon(ctrlid); | |
| 1031 | 1031 | return 3; |
| 1032 | 1032 | } |
| 1033 | 1033 | } |
| @@ -1034,7 +1034,7 @@ | ||
| 1034 | 1034 | else{ |
| 1035 | 1035 | // 1/66の確率で持ち替える |
| 1036 | 1036 | if( (GetRand(66) == 0)&&(nextnds > 0) ){ |
| 1037 | - ObjMgr->ChangeWeapon(ctrlid); | |
| 1037 | + ObjMgr->ChangeHaveWeapon(ctrlid); | |
| 1038 | 1038 | return 3; |
| 1039 | 1039 | } |
| 1040 | 1040 | } |
| @@ -1088,7 +1088,7 @@ | ||
| 1088 | 1088 | return 2; |
| 1089 | 1089 | } |
| 1090 | 1090 | //else{ |
| 1091 | - ObjMgr->ChangeWeapon(ctrlid); | |
| 1091 | + ObjMgr->ChangeHaveWeapon(ctrlid); | |
| 1092 | 1092 | return 3; |
| 1093 | 1093 | //} |
| 1094 | 1094 | } |
| @@ -1106,7 +1106,7 @@ | ||
| 1106 | 1106 | if( longattack == false ){ |
| 1107 | 1107 | //近距離攻撃中で、現在SEMI・切り替えるとFULLになるなら |
| 1108 | 1108 | if( (blazingmodeS == false)&&(blazingmodeN == true) ){ |
| 1109 | - ObjMgr->ChangeShotMode(ctrlid); //切り替える | |
| 1109 | + ObjMgr->ChangeWeaponID(ctrlid); //切り替える | |
| 1110 | 1110 | return 4; |
| 1111 | 1111 | } |
| 1112 | 1112 | } |
| @@ -1113,7 +1113,7 @@ | ||
| 1113 | 1113 | else{ |
| 1114 | 1114 | //遠距離攻撃中で、現在FULL・切り替えるとSEMIになるなら |
| 1115 | 1115 | if( (blazingmodeS == true)&&(blazingmodeN == false) ){ |
| 1116 | - ObjMgr->ChangeShotMode(ctrlid); //切り替える | |
| 1116 | + ObjMgr->ChangeWeaponID(ctrlid); //切り替える | |
| 1117 | 1117 | return 4; |
| 1118 | 1118 | } |
| 1119 | 1119 | } |
| @@ -1151,7 +1151,7 @@ | ||
| 1151 | 1151 | |
| 1152 | 1152 | //手榴弾に切り替えられるなら、切り替える |
| 1153 | 1153 | if( (i != TOTAL_HAVEWEAPON)&&(i != selectweapon) ){ |
| 1154 | - ObjMgr->ChangeWeapon(ctrlid, i); | |
| 1154 | + ObjMgr->ChangeHaveWeapon(ctrlid, i); | |
| 1155 | 1155 | } |
| 1156 | 1156 | |
| 1157 | 1157 | //パスと人の高さを取得 |
| @@ -231,11 +231,11 @@ | ||
| 231 | 231 | Keycode[KEY_RELOAD] = 49; |
| 232 | 232 | Keycode[KEY_DROPWEAPON] = 38; |
| 233 | 233 | Keycode[KEY_ZOOMSCOPE] = 20; |
| 234 | - Keycode[KEY_ShotMODE] = 55; | |
| 234 | + Keycode[KEY_SHOTMODE] = 55; | |
| 235 | 235 | Keycode[KEY_SWITCHWEAPON] = 57; |
| 236 | 236 | Keycode[KEY_WEAPON1] = 23; |
| 237 | 237 | Keycode[KEY_WEAPON2] = 24; |
| 238 | - Keycode[KEY_Shot] = 18; | |
| 238 | + Keycode[KEY_SHOT] = 18; | |
| 239 | 239 | MouseSensitivity = 25; |
| 240 | 240 | FullscreenFlag = true; |
| 241 | 241 | SoundFlag = true; |
| @@ -55,11 +55,11 @@ | ||
| 55 | 55 | KEY_RELOAD, |
| 56 | 56 | KEY_DROPWEAPON, |
| 57 | 57 | KEY_ZOOMSCOPE, |
| 58 | - KEY_ShotMODE, | |
| 58 | + KEY_SHOTMODE, | |
| 59 | 59 | KEY_SWITCHWEAPON, |
| 60 | 60 | KEY_WEAPON1, |
| 61 | 61 | KEY_WEAPON2, |
| 62 | - KEY_Shot | |
| 62 | + KEY_SHOT | |
| 63 | 63 | }; |
| 64 | 64 | |
| 65 | 65 | //! @brief 設定ファイルを読み込むクラス |
| @@ -2113,7 +2113,7 @@ | ||
| 2113 | 2113 | } |
| 2114 | 2114 | |
| 2115 | 2115 | //発砲操作かチェック |
| 2116 | - if( CheckInputControl(KEY_Shot, keymode) ){ | |
| 2116 | + if( CheckInputControl(KEY_SHOT, keymode) ){ | |
| 2117 | 2117 | |
| 2118 | 2118 | if( zombie == false ){ |
| 2119 | 2119 | //弾の発射に成功すれば |
| @@ -2143,15 +2143,20 @@ | ||
| 2143 | 2143 | |
| 2144 | 2144 | //武器の切り替え操作かチェック |
| 2145 | 2145 | if( CheckInputControl(KEY_SWITCHWEAPON, 1) ){ |
| 2146 | - ObjMgr.ChangeWeapon(PlayerID, -1); | |
| 2146 | + ObjMgr.ChangeHaveWeapon(PlayerID, -1); | |
| 2147 | 2147 | } |
| 2148 | 2148 | if( CheckInputControl(KEY_WEAPON1, 1) ){ |
| 2149 | - ObjMgr.ChangeWeapon(PlayerID, 0); | |
| 2149 | + ObjMgr.ChangeHaveWeapon(PlayerID, 0); | |
| 2150 | 2150 | } |
| 2151 | 2151 | if( CheckInputControl(KEY_WEAPON2, 1) ){ |
| 2152 | - ObjMgr.ChangeWeapon(PlayerID, 1); | |
| 2152 | + ObjMgr.ChangeHaveWeapon(PlayerID, 1); | |
| 2153 | 2153 | } |
| 2154 | 2154 | |
| 2155 | + //連射モード変更操作かチェック | |
| 2156 | + if( CheckInputControl(KEY_SHOTMODE, 1) ){ | |
| 2157 | + ObjMgr.ChangeWeaponID(PlayerID); | |
| 2158 | + } | |
| 2159 | + | |
| 2155 | 2160 | //武器の廃棄操作かチェック |
| 2156 | 2161 | if( CheckInputControl(KEY_DROPWEAPON, 1) ){ |
| 2157 | 2162 | ObjMgr.DumpWeapon(PlayerID); |
| @@ -2162,11 +2167,6 @@ | ||
| 2162 | 2167 | ObjMgr.ChangeScopeMode(PlayerID); |
| 2163 | 2168 | } |
| 2164 | 2169 | |
| 2165 | - //連射モード変更操作かチェック | |
| 2166 | - if( CheckInputControl(KEY_ShotMODE, 1) ){ | |
| 2167 | - ObjMgr.ChangeShotMode(PlayerID); | |
| 2168 | - } | |
| 2169 | - | |
| 2170 | 2170 | //カメラ表示モード変更操作かチェック |
| 2171 | 2171 | if( inputCtrl->CheckKeyDown( GetFunctionKeycode(1) ) ){ |
| 2172 | 2172 | if( Camera_F1mode == false ){ |
| @@ -2322,7 +2322,7 @@ | ||
| 2322 | 2322 | //人を追加 |
| 2323 | 2323 | id = ObjMgr.AddHumanIndex(x, y, z, r, param, team, weapon_paramid); |
| 2324 | 2324 | if( id >= 0 ){ |
| 2325 | - ObjMgr.ChangeWeapon(id, selectweapon); | |
| 2325 | + ObjMgr.ChangeHaveWeapon(id, selectweapon); | |
| 2326 | 2326 | |
| 2327 | 2327 | //AIを設定 |
| 2328 | 2328 | HumanAI[id].Init(); |
| @@ -2369,7 +2369,7 @@ | ||
| 2369 | 2369 | |
| 2370 | 2370 | //移動量決定 |
| 2371 | 2371 | float dist = VIEW_FREECAMERA_SCALE; |
| 2372 | - if( CheckInputControl(KEY_Shot, 0) ){ | |
| 2372 | + if( CheckInputControl(KEY_SHOT, 0) ){ | |
| 2373 | 2373 | dist *= 2; |
| 2374 | 2374 | } |
| 2375 | 2375 |
| @@ -2759,7 +2759,7 @@ | ||
| 2759 | 2759 | } |
| 2760 | 2760 | } |
| 2761 | 2761 | reloadcnt = myHuman->GetWeaponReloadCnt(); |
| 2762 | - selectweaponcnt = myHuman->GetChangeWeaponCnt() + myHuman->GetChangeWeaponIDCnt(); | |
| 2762 | + selectweaponcnt = myHuman->GetChangeHaveWeaponCnt() + myHuman->GetChangeWeaponIDCnt(); | |
| 2763 | 2763 | GameParamInfo.GetWeapon(weapon_paramid[selectweapon], &weapon_paramdata); |
| 2764 | 2764 | //strcpy(weaponname, weapon_paramdata.name); |
| 2765 | 2765 | strcpy(str, weapon_paramdata.name); |
| @@ -187,9 +187,9 @@ | ||
| 187 | 187 | } |
| 188 | 188 | selectweapon = 1; |
| 189 | 189 | selectweaponcnt = 0; |
| 190 | + changeweaponidcnt = 0; | |
| 190 | 191 | weaponshotcnt = 0; |
| 191 | 192 | weaponreloadcnt = 0; |
| 192 | - changeweaponidcnt = 0; | |
| 193 | 193 | //if( Param->GetHuman(id_param, &data) == 0 ){ |
| 194 | 194 | // hp = data.hp; |
| 195 | 195 | //} |
| @@ -259,9 +259,9 @@ | ||
| 259 | 259 | } |
| 260 | 260 | selectweapon = 1; |
| 261 | 261 | selectweaponcnt = 0; |
| 262 | + changeweaponidcnt = 0; | |
| 262 | 263 | weaponshotcnt = 0; |
| 263 | 264 | weaponreloadcnt = 0; |
| 264 | - changeweaponidcnt = 0; | |
| 265 | 265 | if( Param->GetHuman(id_param, &data) == 0 ){ |
| 266 | 266 | hp = data.hp; |
| 267 | 267 | } |
| @@ -429,7 +429,7 @@ | ||
| 429 | 429 | //! @brief 武器を切り替える(持ち替える) |
| 430 | 430 | //! @param id 持ち替える武器 (-1 で次の武器) |
| 431 | 431 | //! @attention ゲーム上から直接呼び出すことは避け、ObjectManagerクラスから呼び出してください。 |
| 432 | -void human::ChangeWeapon(int id) | |
| 432 | +void human::ChangeHaveWeapon(int id) | |
| 433 | 433 | { |
| 434 | 434 | //体力がなければ失敗 |
| 435 | 435 | if( hp <= 0 ){ return; } |
| @@ -466,12 +466,12 @@ | ||
| 466 | 466 | |
| 467 | 467 | //腕の角度(反動)を設定 |
| 468 | 468 | if( nowweapon == NULL ){ //手ぶら |
| 469 | - MotionCtrl->ChangeWeapon(ID_WEAPON_NONE); | |
| 469 | + MotionCtrl->ChangeHaveWeapon(ID_WEAPON_NONE); | |
| 470 | 470 | } |
| 471 | 471 | else{ |
| 472 | 472 | int id_param = 0; |
| 473 | 473 | nowweapon->GetParamData(&id_param, NULL, NULL); |
| 474 | - MotionCtrl->ChangeWeapon(id_param); | |
| 474 | + MotionCtrl->ChangeHaveWeapon(id_param); | |
| 475 | 475 | } |
| 476 | 476 | |
| 477 | 477 | //切り替え完了のカウント |
| @@ -480,19 +480,78 @@ | ||
| 480 | 480 | |
| 481 | 481 | //! @brief 武器の切り替えカウントを取得 |
| 482 | 482 | //! @return カウント数 (1以上で切り替え中) |
| 483 | -int human::GetChangeWeaponCnt() | |
| 483 | +int human::GetChangeHaveWeaponCnt() | |
| 484 | 484 | { |
| 485 | 485 | return selectweaponcnt; |
| 486 | 486 | } |
| 487 | 487 | |
| 488 | -//! @brief 武器のリロードカウントを取得 | |
| 489 | -//! @return カウント数 (リロード中:1以上) | |
| 490 | -int human::GetWeaponReloadCnt() | |
| 488 | +//! @brief 武器の種類切り替え | |
| 489 | +//! @return 成功:0 失敗:1 | |
| 490 | +//! @attention ゲーム上から直接呼び出すことは避け、ObjectManagerクラスから呼び出してください。 | |
| 491 | +int human::ChangeWeaponID() | |
| 491 | 492 | { |
| 492 | - return weaponreloadcnt; | |
| 493 | + //武器切り替え中なら失敗 | |
| 494 | + //if( selectweaponcnt > 0 ){ return 1; } | |
| 495 | + if( changeweaponidcnt > 0 ){ return 1; } | |
| 496 | + | |
| 497 | + //武器を装備してなければ失敗 | |
| 498 | + if( weapon[selectweapon] == NULL ){ return 1; } | |
| 499 | + | |
| 500 | + //装備している武器の情報を取得 | |
| 501 | + int param_id, lnbs, nbs; | |
| 502 | + weapon[selectweapon]->GetParamData(¶m_id, &lnbs, &nbs); | |
| 503 | + | |
| 504 | + //武器の種類切り替え先(新しい武器番号)を調べる | |
| 505 | + WeaponParameter ParamData; | |
| 506 | + int ChangeWeaponID, ChangeCnt; | |
| 507 | + if( Param->GetWeapon(param_id, &ParamData) != 0 ){ return 1; } | |
| 508 | + ChangeWeaponID = ParamData.ChangeWeaponID; | |
| 509 | + ChangeCnt = ParamData.ChangeWeaponCnt; | |
| 510 | + | |
| 511 | + //新しい武器番号が正しいか確認 | |
| 512 | + if( ChangeWeaponID == param_id ){ return 1; } | |
| 513 | + if( (ChangeWeaponID < 0)||(TOTAL_PARAMETERINFO_WEAPON-1 < ChangeWeaponID) ){ return 1; } | |
| 514 | + | |
| 515 | + //カウントが有効にもかかわらずリロード中なら切り替えない | |
| 516 | + if( (ChangeCnt > 0)&&(weaponreloadcnt > 0) ){ return 1; } | |
| 517 | + | |
| 518 | + //設定を適用 | |
| 519 | + weapon[selectweapon]->SetParamData(ChangeWeaponID, lnbs, nbs, false); | |
| 520 | + | |
| 521 | + //もしスコープ使用中ならば | |
| 522 | + if( scopemode != 0 ){ | |
| 523 | + if( ChangeCnt == 0 ){ | |
| 524 | + //新しい武器の情報を取得 | |
| 525 | + if( Param->GetWeapon(ChangeWeaponID, &ParamData) != 0 ){ return 1; } | |
| 526 | + | |
| 527 | + if( scopemode == ParamData.scopemode ){ | |
| 528 | + //同じスコープが使えるならば、何もせずスコープ維持 | |
| 529 | + } | |
| 530 | + else if( ParamData.scopemode == 0 ){ | |
| 531 | + //スコープが使えないならば、スコープ解除 | |
| 532 | + SetDisableScope(); | |
| 533 | + } | |
| 534 | + else{ | |
| 535 | + //異なるスコープが使えるならば、スコープ再設定 | |
| 536 | + SetEnableScope(); | |
| 537 | + } | |
| 538 | + } | |
| 539 | + else{ | |
| 540 | + //スコープ解除 | |
| 541 | + SetDisableScope(); | |
| 542 | + } | |
| 543 | + } | |
| 544 | + | |
| 545 | + //モーション実行 | |
| 546 | + MotionCtrl->ChangeWeaponID(ChangeWeaponID); | |
| 547 | + | |
| 548 | + //切り替え完了のカウント | |
| 549 | + changeweaponidcnt = ChangeCnt; | |
| 550 | + | |
| 551 | + return 0; | |
| 493 | 552 | } |
| 494 | 553 | |
| 495 | -//! @brief 武器の切り替えカウントを取得 | |
| 554 | +//! @brief 武器の種類切り替えカウントを取得 | |
| 496 | 555 | //! @return カウント数 (1以上で切り替え中) |
| 497 | 556 | int human::GetChangeWeaponIDCnt() |
| 498 | 557 | { |
| @@ -499,6 +558,13 @@ | ||
| 499 | 558 | return changeweaponidcnt; |
| 500 | 559 | } |
| 501 | 560 | |
| 561 | +//! @brief 武器のリロードカウントを取得 | |
| 562 | +//! @return カウント数 (リロード中:1以上) | |
| 563 | +int human::GetWeaponReloadCnt() | |
| 564 | +{ | |
| 565 | + return weaponreloadcnt; | |
| 566 | +} | |
| 567 | + | |
| 502 | 568 | //! @brief 武器を取得 |
| 503 | 569 | //! @param out_selectweapon 選択されている武器 (0 〜 [TOTAL_HAVEWEAPON]-1) |
| 504 | 570 | //! @param out_weapon 受け取るweaponクラスのポインタ配列 (配列数:TOTAL_HAVEWEAPON) |
| @@ -721,72 +787,6 @@ | ||
| 721 | 787 | return false; |
| 722 | 788 | } |
| 723 | 789 | |
| 724 | -//! @brief 武器のショットモード切り替え | |
| 725 | -//! @return 成功:0 失敗:1 | |
| 726 | -//! @attention ゲーム上から直接呼び出すことは避け、ObjectManagerクラスから呼び出してください。 | |
| 727 | -int human::ChangeShotMode() | |
| 728 | -{ | |
| 729 | - //武器切り替え中なら失敗 | |
| 730 | - //if( selectweaponcnt > 0 ){ return 1; } | |
| 731 | - if( changeweaponidcnt > 0 ){ return 1; } | |
| 732 | - | |
| 733 | - //武器を装備してなければ失敗 | |
| 734 | - if( weapon[selectweapon] == NULL ){ return 1; } | |
| 735 | - | |
| 736 | - //装備している武器の情報を取得 | |
| 737 | - int param_id, lnbs, nbs; | |
| 738 | - weapon[selectweapon]->GetParamData(¶m_id, &lnbs, &nbs); | |
| 739 | - | |
| 740 | - //武器のショットモード切り替え先(新しい武器番号)を調べる | |
| 741 | - WeaponParameter ParamData; | |
| 742 | - int ChangeWeaponID, ChangeCnt; | |
| 743 | - if( Param->GetWeapon(param_id, &ParamData) != 0 ){ return 1; } | |
| 744 | - ChangeWeaponID = ParamData.ChangeWeaponID; | |
| 745 | - ChangeCnt = ParamData.ChangeWeaponCnt; | |
| 746 | - | |
| 747 | - //新しい武器番号が正しいか確認 | |
| 748 | - if( ChangeWeaponID == param_id ){ return 1; } | |
| 749 | - if( (ChangeWeaponID < 0)||(TOTAL_PARAMETERINFO_WEAPON-1 < ChangeWeaponID) ){ return 1; } | |
| 750 | - | |
| 751 | - //カウントが有効にもかかわらずリロード中なら切り替えない | |
| 752 | - if( (ChangeCnt > 0)&&(weaponreloadcnt > 0) ){ return 1; } | |
| 753 | - | |
| 754 | - //設定を適用 | |
| 755 | - weapon[selectweapon]->SetParamData(ChangeWeaponID, lnbs, nbs, false); | |
| 756 | - | |
| 757 | - //もしスコープ使用中ならば | |
| 758 | - if( scopemode != 0 ){ | |
| 759 | - if( ChangeCnt == 0 ){ | |
| 760 | - //新しい武器の情報を取得 | |
| 761 | - if( Param->GetWeapon(ChangeWeaponID, &ParamData) != 0 ){ return 1; } | |
| 762 | - | |
| 763 | - if( scopemode == ParamData.scopemode ){ | |
| 764 | - //同じスコープが使えるならば、何もせずスコープ維持 | |
| 765 | - } | |
| 766 | - else if( ParamData.scopemode == 0 ){ | |
| 767 | - //スコープが使えないならば、スコープ解除 | |
| 768 | - SetDisableScope(); | |
| 769 | - } | |
| 770 | - else{ | |
| 771 | - //異なるスコープが使えるならば、スコープ再設定 | |
| 772 | - SetEnableScope(); | |
| 773 | - } | |
| 774 | - } | |
| 775 | - else{ | |
| 776 | - //スコープ解除 | |
| 777 | - SetDisableScope(); | |
| 778 | - } | |
| 779 | - } | |
| 780 | - | |
| 781 | - //モーション実行 | |
| 782 | - MotionCtrl->ChangeShotMode(ChangeWeaponID); | |
| 783 | - | |
| 784 | - //切り替え完了のカウント | |
| 785 | - changeweaponidcnt = ChangeCnt; | |
| 786 | - | |
| 787 | - return 0; | |
| 788 | -} | |
| 789 | - | |
| 790 | 790 | //! @brief 前進(走り)を設定 |
| 791 | 791 | //! @attention ゲーム上から直接呼び出すことは避け、ObjectManagerクラスから呼び出してください。 |
| 792 | 792 | void human::SetMoveForward() |
| @@ -1147,9 +1147,9 @@ | ||
| 1147 | 1147 | |
| 1148 | 1148 | //各種カウント初期化 |
| 1149 | 1149 | selectweaponcnt = 0; |
| 1150 | + changeweaponidcnt = 0; | |
| 1150 | 1151 | weaponshotcnt = 0; |
| 1151 | 1152 | weaponreloadcnt = 0; |
| 1152 | - changeweaponidcnt = 0; | |
| 1153 | 1153 | |
| 1154 | 1154 | //次のフレームの頭の座標を取得 |
| 1155 | 1155 | check_posx = pos_x + cos(rotation_x*-1 - (float)M_PI/2) * sin(add_ry) * HUMAN_HEIGHT; |
| @@ -1702,7 +1702,7 @@ | ||
| 1702 | 1702 | if( deadstate == 5 ){ return 3; } |
| 1703 | 1703 | |
| 1704 | 1704 | int WeaponReloadMotionCnt; |
| 1705 | - int WeaponChangeWeaponidCnt; | |
| 1705 | + int WeaponChangeWeaponIDCnt; | |
| 1706 | 1706 | float FallDistance; |
| 1707 | 1707 | float nowmove_x, nowmove_z; |
| 1708 | 1708 | int CheckDead; |
| @@ -1729,14 +1729,14 @@ | ||
| 1729 | 1729 | } |
| 1730 | 1730 | } |
| 1731 | 1731 | |
| 1732 | - //リロード・ショットモード切替カウント取得(モーション用) | |
| 1732 | + //リロード・武器ID切替カウント取得(モーション用) | |
| 1733 | 1733 | if( weapon[selectweapon] != NULL ){ |
| 1734 | 1734 | WeaponReloadMotionCnt = weaponreloadcnt; |
| 1735 | - WeaponChangeWeaponidCnt = changeweaponidcnt; | |
| 1735 | + WeaponChangeWeaponIDCnt = changeweaponidcnt; | |
| 1736 | 1736 | } |
| 1737 | 1737 | else{ |
| 1738 | 1738 | WeaponReloadMotionCnt = 0; |
| 1739 | - WeaponChangeWeaponidCnt = 0; | |
| 1739 | + WeaponChangeWeaponIDCnt = 0; | |
| 1740 | 1740 | } |
| 1741 | 1741 | |
| 1742 | 1742 | //照準の状態誤差の処理 |
| @@ -1806,7 +1806,7 @@ | ||
| 1806 | 1806 | } |
| 1807 | 1807 | |
| 1808 | 1808 | //モーション計算 |
| 1809 | - MotionCtrl->RunFrame(rotation_x, armrotation_y, weapon_paramid, WeaponReloadMotionCnt, WeaponChangeWeaponidCnt, MoveFlag_lt, hp, player); | |
| 1809 | + MotionCtrl->RunFrame(rotation_x, armrotation_y, weapon_paramid, WeaponReloadMotionCnt, WeaponChangeWeaponIDCnt, MoveFlag_lt, hp, player); | |
| 1810 | 1810 | |
| 1811 | 1811 | if( CheckDead != 0 ){ return 3; } |
| 1812 | 1812 | return 1; |
| @@ -2963,7 +2963,7 @@ | ||
| 2963 | 2963 | |
| 2964 | 2964 | //! @brief 武器を切り替える(持ち替える) |
| 2965 | 2965 | //! @param weapon_paramid 武器の種類番号 |
| 2966 | -void HumanMotionControl::ChangeWeapon(int weapon_paramid) | |
| 2966 | +void HumanMotionControl::ChangeHaveWeapon(int weapon_paramid) | |
| 2967 | 2967 | { |
| 2968 | 2968 | //未使用引数対策 |
| 2969 | 2969 | UNREFERENCED_PARAMETER(weapon_paramid); |
| @@ -2972,6 +2972,15 @@ | ||
| 2972 | 2972 | reaction_y = DegreeToRadian(-20); |
| 2973 | 2973 | } |
| 2974 | 2974 | |
| 2975 | +//! @brief 武器の種類切り替え | |
| 2976 | +//! @param weapon_paramid 武器の種類番号 | |
| 2977 | +//! @attention この関数は拡張用のダミー関数です。 | |
| 2978 | +void HumanMotionControl::ChangeWeaponID(int weapon_paramid) | |
| 2979 | +{ | |
| 2980 | + //未使用引数対策 | |
| 2981 | + UNREFERENCED_PARAMETER(weapon_paramid); | |
| 2982 | +} | |
| 2983 | + | |
| 2975 | 2984 | //! @brief 発砲処理 |
| 2976 | 2985 | //! @param weapon_paramid 武器の種類番号 |
| 2977 | 2986 | void HumanMotionControl::ShotWeapon(int weapon_paramid) |
| @@ -3005,15 +3014,6 @@ | ||
| 3005 | 3014 | // |
| 3006 | 3015 | } |
| 3007 | 3016 | |
| 3008 | -//! @brief 武器のショットモード切り替え | |
| 3009 | -//! @param weapon_paramid 武器の種類番号 | |
| 3010 | -//! @attention この関数は拡張用のダミー関数です。 | |
| 3011 | -void HumanMotionControl::ChangeShotMode(int weapon_paramid) | |
| 3012 | -{ | |
| 3013 | - //未使用引数対策 | |
| 3014 | - UNREFERENCED_PARAMETER(weapon_paramid); | |
| 3015 | -} | |
| 3016 | - | |
| 3017 | 3017 | //! @brief ジャンプ |
| 3018 | 3018 | //! @attention この関数は拡張用のダミー関数です。 |
| 3019 | 3019 | void HumanMotionControl::Jump() |
| @@ -3026,11 +3026,11 @@ | ||
| 3026 | 3026 | //! @attention armrotation_y 腕の回転角度 |
| 3027 | 3027 | //! @attention weapon_paramid 武器の種類番号 |
| 3028 | 3028 | //! @attention ReloadCnt 武器のリロードカウント |
| 3029 | -//! @attention ChangeShotModeCnt 武器のショットモード切替カウント | |
| 3029 | +//! @attention ChangeWeaponIDCnt 武器IDの切替カウント | |
| 3030 | 3030 | //! @attention MoveFlag 移動方向を表すフラグ |
| 3031 | 3031 | //! @attention hp 体力 |
| 3032 | 3032 | //! @attention PlayerFlag プレイヤーかどうか |
| 3033 | -void HumanMotionControl::RunFrame(float rotation_x, float armrotation_y, int weapon_paramid, int ReloadCnt, int ChangeShotModeCnt, int MoveFlag, int hp, bool PlayerFlag) | |
| 3033 | +void HumanMotionControl::RunFrame(float rotation_x, float armrotation_y, int weapon_paramid, int ReloadCnt, int ChangeWeaponIDCnt, int MoveFlag, int hp, bool PlayerFlag) | |
| 3034 | 3034 | { |
| 3035 | 3035 | int ArmModelID; |
| 3036 | 3036 | float move_rx; |
| @@ -3050,8 +3050,8 @@ | ||
| 3050 | 3050 | reaction_y = ARMRAD_RELOADWEAPON; |
| 3051 | 3051 | } |
| 3052 | 3052 | |
| 3053 | - //武器のショットモード切替中なら腕の角度を再設定 | |
| 3054 | - if( ChangeShotModeCnt > 0 ){ | |
| 3053 | + //武器ID切替中なら腕の角度を再設定 | |
| 3054 | + if( ChangeWeaponIDCnt > 0 ){ | |
| 3055 | 3055 | reaction_y = ARMRAD_RELOADWEAPON; |
| 3056 | 3056 | } |
| 3057 | 3057 |
| @@ -144,10 +144,10 @@ | ||
| 144 | 144 | int noweapon_bullets[TOTAL_HAVEWEAPON]; //!< 武器未所持時の合計弾数 |
| 145 | 145 | int noweapon_loadbullets[TOTAL_HAVEWEAPON]; //!< 武器未所持時の装弾数 |
| 146 | 146 | int selectweapon; //!< 武器A/Bの選択 |
| 147 | - int selectweaponcnt; //!< 武器の切り替えカウント | |
| 147 | + int selectweaponcnt; //!< 武器の切り替え(持ち替え)カウント | |
| 148 | + int changeweaponidcnt; //!< 武器の種類切り替えカウント | |
| 148 | 149 | int weaponshotcnt; //!< 武器の連射カウント |
| 149 | 150 | int weaponreloadcnt; //!< 武器のリロードカウント |
| 150 | - int changeweaponidcnt; //!< 武器のショットモード切り替えカウント | |
| 151 | 151 | int hp; //!< 体力 |
| 152 | 152 | int deadstate; //!< 死体になっているか |
| 153 | 153 | float add_ry; //!< 死体の倒れる加速度 |
| @@ -185,10 +185,11 @@ | ||
| 185 | 185 | virtual void SetInvincibleFlag(bool flag); |
| 186 | 186 | virtual void SetWeapon(class weapon *in_weapon[], int nlnbs[], int nnbs[]); |
| 187 | 187 | virtual int PickupWeapon(class weapon *in_weapon); |
| 188 | - virtual void ChangeWeapon(int id = -1); | |
| 189 | - virtual int GetChangeWeaponCnt(); | |
| 188 | + virtual void ChangeHaveWeapon(int id = -1); | |
| 189 | + virtual int GetChangeHaveWeaponCnt(); | |
| 190 | + virtual int ChangeWeaponID(); | |
| 191 | + virtual int GetChangeWeaponIDCnt(); | |
| 190 | 192 | virtual int GetWeaponReloadCnt(); |
| 191 | - virtual int GetChangeWeaponIDCnt(); | |
| 192 | 193 | virtual void GetWeapon(int *out_selectweapon, class weapon *out_weapon[], int nlnbs[], int nnbs[]); |
| 193 | 194 | virtual int GetMainWeaponTypeNO(); |
| 194 | 195 | virtual bool GetWeaponBlazingmode(); |
| @@ -195,7 +196,6 @@ | ||
| 195 | 196 | virtual bool ShotWeapon(int *weapon_paramid, int *GunsightErrorRange); |
| 196 | 197 | virtual bool ReloadWeapon(); |
| 197 | 198 | virtual bool DumpWeapon(); |
| 198 | - virtual int ChangeShotMode(); | |
| 199 | 199 | virtual void SetMoveForward(); |
| 200 | 200 | virtual void SetMoveBack(); |
| 201 | 201 | virtual void SetMoveLeft(); |
| @@ -380,13 +380,13 @@ | ||
| 380 | 380 | void SetModel(int upmodel, int armmodel[], int legmodel, int walkmodel[], int runmodel[]); |
| 381 | 381 | void Init(float rx); |
| 382 | 382 | void PickupWeapon(int weapon_paramid); |
| 383 | - void ChangeWeapon(int weapon_paramid); | |
| 383 | + void ChangeHaveWeapon(int weapon_paramid); | |
| 384 | + void ChangeWeaponID(int weapon_paramid); | |
| 384 | 385 | void ShotWeapon(int weapon_paramid); |
| 385 | 386 | void ReloadWeapon(int weapon_paramid); |
| 386 | 387 | void DumpWeapon(); |
| 387 | - void ChangeShotMode(int weapon_paramid); | |
| 388 | 388 | void Jump(); |
| 389 | - void RunFrame(float rotation_x, float armrotation_y, int weapon_paramid, int ReloadCnt, int ChangeShotModeCnt, int MoveFlag, int hp, bool PlayerFlag); | |
| 389 | + void RunFrame(float rotation_x, float armrotation_y, int weapon_paramid, int ReloadCnt, int ChangeWeaponIDCnt, int MoveFlag, int hp, bool PlayerFlag); | |
| 390 | 390 | void GetRenderMotion(float *arm_rotation_y, float *leg_rotation_x, int *upmodel, int *armmodel, int *legmodel); |
| 391 | 391 | }; |
| 392 | 392 |
| @@ -2117,50 +2117,24 @@ | ||
| 2117 | 2117 | //! @brief 武器を切り替える(持ち替える) |
| 2118 | 2118 | //! @param human_id 人の番号(0〜MAX_HUMAN-1) |
| 2119 | 2119 | //! @param id 持ち替える武器 (-1 で次の武器) |
| 2120 | -void ObjectManager::ChangeWeapon(int human_id, int id) | |
| 2120 | +void ObjectManager::ChangeHaveWeapon(int human_id, int id) | |
| 2121 | 2121 | { |
| 2122 | 2122 | //値の範囲をチェック |
| 2123 | 2123 | if( (human_id < 0)||(MAX_HUMAN <= human_id) ){ return; } |
| 2124 | 2124 | |
| 2125 | - HumanIndex[human_id].ChangeWeapon(id); | |
| 2125 | + HumanIndex[human_id].ChangeHaveWeapon(id); | |
| 2126 | 2126 | } |
| 2127 | 2127 | |
| 2128 | -//! @brief 武器を捨てる | |
| 2128 | +//! @brief 武器の種類切り替え | |
| 2129 | 2129 | //! @param human_id 人の番号(0〜MAX_HUMAN-1) |
| 2130 | -//! @return 成功:true 失敗:false | |
| 2131 | -bool ObjectManager::DumpWeapon(int human_id) | |
| 2132 | -{ | |
| 2133 | - //値の範囲をチェック | |
| 2134 | - if( (human_id < 0)||(MAX_HUMAN <= human_id) ){ return false; } | |
| 2135 | - | |
| 2136 | - return HumanIndex[human_id].DumpWeapon(); | |
| 2137 | -} | |
| 2138 | - | |
| 2139 | -//! @brief スコープモードを切り替え | |
| 2140 | -//! @param human_id 人の番号(0〜MAX_HUMAN-1) | |
| 2141 | -void ObjectManager::ChangeScopeMode(int human_id) | |
| 2142 | -{ | |
| 2143 | - //値の範囲をチェック | |
| 2144 | - if( (human_id < 0)||(MAX_HUMAN <= human_id) ){ return; } | |
| 2145 | - | |
| 2146 | - if( HumanIndex[human_id].GetScopeMode() == 0 ){ //スコープを使用していなければ、スコープを設定 | |
| 2147 | - HumanIndex[human_id].SetEnableScope(); | |
| 2148 | - } | |
| 2149 | - else{ //使用中なら、解除 | |
| 2150 | - HumanIndex[human_id].SetDisableScope(); | |
| 2151 | - } | |
| 2152 | -} | |
| 2153 | - | |
| 2154 | -//! @brief 武器のショットモード切り替え | |
| 2155 | -//! @param human_id 人の番号(0〜MAX_HUMAN-1) | |
| 2156 | 2130 | //! @return 成功:0 失敗:1 |
| 2157 | -int ObjectManager::ChangeShotMode(int human_id) | |
| 2131 | +int ObjectManager::ChangeWeaponID(int human_id) | |
| 2158 | 2132 | { |
| 2159 | 2133 | //値の範囲をチェック |
| 2160 | 2134 | if( (human_id < 0)||(MAX_HUMAN <= human_id) ){ return 1; } |
| 2161 | 2135 | |
| 2162 | - //武器のショットモードを切り替えたら | |
| 2163 | - if( HumanIndex[human_id].ChangeShotMode() == 0 ){ | |
| 2136 | + //武器の種類を切り替えたら | |
| 2137 | + if( HumanIndex[human_id].ChangeWeaponID() == 0 ){ | |
| 2164 | 2138 | int selectweapon; |
| 2165 | 2139 | weapon *weapon[TOTAL_HAVEWEAPON]; |
| 2166 | 2140 | int WeaponID; |
| @@ -2190,6 +2164,32 @@ | ||
| 2190 | 2164 | return 1; |
| 2191 | 2165 | } |
| 2192 | 2166 | |
| 2167 | +//! @brief 武器を捨てる | |
| 2168 | +//! @param human_id 人の番号(0〜MAX_HUMAN-1) | |
| 2169 | +//! @return 成功:true 失敗:false | |
| 2170 | +bool ObjectManager::DumpWeapon(int human_id) | |
| 2171 | +{ | |
| 2172 | + //値の範囲をチェック | |
| 2173 | + if( (human_id < 0)||(MAX_HUMAN <= human_id) ){ return false; } | |
| 2174 | + | |
| 2175 | + return HumanIndex[human_id].DumpWeapon(); | |
| 2176 | +} | |
| 2177 | + | |
| 2178 | +//! @brief スコープモードを切り替え | |
| 2179 | +//! @param human_id 人の番号(0〜MAX_HUMAN-1) | |
| 2180 | +void ObjectManager::ChangeScopeMode(int human_id) | |
| 2181 | +{ | |
| 2182 | + //値の範囲をチェック | |
| 2183 | + if( (human_id < 0)||(MAX_HUMAN <= human_id) ){ return; } | |
| 2184 | + | |
| 2185 | + if( HumanIndex[human_id].GetScopeMode() == 0 ){ //スコープを使用していなければ、スコープを設定 | |
| 2186 | + HumanIndex[human_id].SetEnableScope(); | |
| 2187 | + } | |
| 2188 | + else{ //使用中なら、解除 | |
| 2189 | + HumanIndex[human_id].SetDisableScope(); | |
| 2190 | + } | |
| 2191 | +} | |
| 2192 | + | |
| 2193 | 2193 | //! @brief 裏技・所持している武器の弾を追加 |
| 2194 | 2194 | //! @param human_id 人の番号(0〜MAX_HUMAN-1) |
| 2195 | 2195 | //! @return 成功:true 失敗:false |
| @@ -160,10 +160,10 @@ | ||
| 160 | 160 | void MoveJump(int human_id); |
| 161 | 161 | int ShotWeapon(int human_id); |
| 162 | 162 | void ReloadWeapon(int human_id); |
| 163 | - void ChangeWeapon(int human_id, int id = -1); | |
| 163 | + void ChangeHaveWeapon(int human_id, int id = -1); | |
| 164 | + int ChangeWeaponID(int human_id); | |
| 164 | 165 | bool DumpWeapon(int human_id); |
| 165 | 166 | void ChangeScopeMode(int human_id); |
| 166 | - int ChangeShotMode(int human_id); | |
| 167 | 167 | bool CheatAddBullet(int human_id); |
| 168 | 168 | bool CheatNewWeapon(int human_id, int new_weaponID); |
| 169 | 169 | bool CheckZombieAttack(human* MyHuman, human* EnemyHuman); |