• 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

Revision241 (tree)
Time2020-05-03 14:35:38
Authorxops-mikan

Log Message

死亡時にリロードなどの処理を中断するように修正、連射モード切替カウントが有効な場合はリロード時は切り替えないように修正。

Change Summary

Incremental Difference

--- trunk/object.cpp (revision 240)
+++ trunk/object.cpp (revision 241)
@@ -739,21 +739,25 @@
739739
740740 //武器のショットモード切り替え先(新しい武器番号)を調べる
741741 WeaponParameter ParamData;
742- int ChangeWeapon;
742+ int ChangeWeaponID, ChangeCnt;
743743 if( Param->GetWeapon(param_id, &ParamData) != 0 ){ return 1; }
744- ChangeWeapon = ParamData.ChangeWeaponID;
744+ ChangeWeaponID = ParamData.ChangeWeaponID;
745+ ChangeCnt = ParamData.ChangeWeaponCnt;
745746
746747 //新しい武器番号が正しいか確認
747- if( ChangeWeapon == param_id ){ return 1; }
748- if( (ChangeWeapon < 0)||(TOTAL_PARAMETERINFO_WEAPON-1 < ChangeWeapon) ){ return 1; }
748+ if( ChangeWeaponID == param_id ){ return 1; }
749+ if( (ChangeWeaponID < 0)||(TOTAL_PARAMETERINFO_WEAPON-1 < ChangeWeaponID) ){ return 1; }
749750
751+ //カウントが有効にもかかわらずリロード中なら切り替えない
752+ if( (ChangeCnt > 0)&&(weaponreloadcnt > 0) ){ return 1; }
753+
750754 //設定を適用
751- weapon[selectweapon]->SetParamData(ChangeWeapon, lnbs, nbs, false);
755+ weapon[selectweapon]->SetParamData(ChangeWeaponID, lnbs, nbs, false);
752756
753757 //もしスコープ使用中ならば
754758 if( scopemode != 0 ){
755759 //新しい武器の情報を取得
756- if( Param->GetWeapon(ChangeWeapon, &ParamData) != 0 ){ return 1; }
760+ if( Param->GetWeapon(ChangeWeaponID, &ParamData) != 0 ){ return 1; }
757761
758762 if( scopemode == ParamData.scopemode ){
759763 //同じスコープが使えるならば、何もせずスコープ維持
@@ -769,10 +773,10 @@
769773 }
770774
771775 //モーション実行
772- MotionCtrl->ChangeShotMode(ChangeWeapon);
776+ MotionCtrl->ChangeShotMode(ChangeWeaponID);
773777
774778 //切り替え完了のカウント
775- changeweaponidcnt = ParamData.ChangeWeaponCnt;
779+ changeweaponidcnt = ChangeCnt;
776780
777781 return 0;
778782 }
@@ -1135,6 +1139,12 @@
11351139 //スコープモードを解除
11361140 SetDisableScope();
11371141
1142+ //各種カウント初期化
1143+ selectweaponcnt = 0;
1144+ weaponshotcnt = 0;
1145+ weaponreloadcnt = 0;
1146+ changeweaponidcnt = 0;
1147+
11381148 //次のフレームの頭の座標を取得
11391149 check_posx = pos_x + cos(rotation_x*-1 - (float)M_PI/2) * sin(add_ry) * HUMAN_HEIGHT;
11401150 check_posy = pos_y + cos(add_ry) * HUMAN_HEIGHT;