• 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

Revision244 (tree)
Time2020-05-05 14:40:55
Authorxops-mikan

Log Message

連射モード切替カウントが有効な場合に、切り替え時にスコープを解除しつつ、切替モーションを再生するように。

Change Summary

Incremental Difference

--- trunk/object.cpp (revision 243)
+++ trunk/object.cpp (revision 244)
@@ -756,20 +756,26 @@
756756
757757 //もしスコープ使用中ならば
758758 if( scopemode != 0 ){
759- //新しい武器の情報を取得
760- if( Param->GetWeapon(ChangeWeaponID, &ParamData) != 0 ){ return 1; }
759+ if( ChangeCnt == 0 ){
760+ //新しい武器の情報を取得
761+ if( Param->GetWeapon(ChangeWeaponID, &ParamData) != 0 ){ return 1; }
761762
762- if( scopemode == ParamData.scopemode ){
763- //同じスコープが使えるならば、何もせずスコープ維持
763+ if( scopemode == ParamData.scopemode ){
764+ //同じスコープが使えるならば、何もせずスコープ維持
765+ }
766+ else if( ParamData.scopemode == 0 ){
767+ //スコープが使えないならば、スコープ解除
768+ SetDisableScope();
769+ }
770+ else{
771+ //異なるスコープが使えるならば、スコープ再設定
772+ SetEnableScope();
773+ }
764774 }
765- else if( ParamData.scopemode == 0 ){
766- //スコープが使えないならば、スコープ解除
775+ else{
776+ //スコープ解除
767777 SetDisableScope();
768778 }
769- else{
770- //異なるスコープが使えるならば、スコープ再設定
771- SetEnableScope();
772- }
773779 }
774780
775781 //モーション実行
@@ -1696,6 +1702,7 @@
16961702 if( deadstate == 5 ){ return 3; }
16971703
16981704 int WeaponReloadMotionCnt;
1705+ int WeaponChangeWeaponidCnt;
16991706 float FallDistance;
17001707 float nowmove_x, nowmove_z;
17011708 int CheckDead;
@@ -1722,12 +1729,14 @@
17221729 }
17231730 }
17241731
1725- //リロードカウント取得(モーション用)
1732+ //リロード・ショットモード切替カウント取得(モーション用)
17261733 if( weapon[selectweapon] != NULL ){
17271734 WeaponReloadMotionCnt = weaponreloadcnt;
1735+ WeaponChangeWeaponidCnt = changeweaponidcnt;
17281736 }
17291737 else{
17301738 WeaponReloadMotionCnt = 0;
1739+ WeaponChangeWeaponidCnt = 0;
17311740 }
17321741
17331742 //照準の状態誤差の処理
@@ -1797,7 +1806,7 @@
17971806 }
17981807
17991808 //モーション計算
1800- MotionCtrl->RunFrame(rotation_x, armrotation_y, weapon_paramid, WeaponReloadMotionCnt, MoveFlag_lt, hp, player);
1809+ MotionCtrl->RunFrame(rotation_x, armrotation_y, weapon_paramid, WeaponReloadMotionCnt, WeaponChangeWeaponidCnt, MoveFlag_lt, hp, player);
18011810
18021811 if( CheckDead != 0 ){ return 3; }
18031812 return 1;
@@ -3017,10 +3026,11 @@
30173026 //! @attention armrotation_y 腕の回転角度
30183027 //! @attention weapon_paramid 武器の種類番号
30193028 //! @attention ReloadCnt 武器のリロードカウント
3029+//! @attention ChangeShotModeCnt 武器のショットモード切替カウント
30203030 //! @attention MoveFlag 移動方向を表すフラグ
30213031 //! @attention hp 体力
30223032 //! @attention PlayerFlag プレイヤーかどうか
3023-void HumanMotionControl::RunFrame(float rotation_x, float armrotation_y, int weapon_paramid, int ReloadCnt, int MoveFlag, int hp, bool PlayerFlag)
3033+void HumanMotionControl::RunFrame(float rotation_x, float armrotation_y, int weapon_paramid, int ReloadCnt, int ChangeShotModeCnt, int MoveFlag, int hp, bool PlayerFlag)
30243034 {
30253035 int ArmModelID;
30263036 float move_rx;
@@ -3040,6 +3050,11 @@
30403050 reaction_y = ARMRAD_RELOADWEAPON;
30413051 }
30423052
3053+ //武器のショットモード切替中なら腕の角度を再設定
3054+ if( ChangeShotModeCnt > 0 ){
3055+ reaction_y = ARMRAD_RELOADWEAPON;
3056+ }
3057+
30433058 if( weapon_paramid == ID_WEAPON_NONE ){ //手ぶら
30443059 if( PlayerFlag == true ){
30453060 armmodel_rotation_y = ARMRAD_NOWEAPON;
--- trunk/object.h (revision 243)
+++ trunk/object.h (revision 244)
@@ -386,7 +386,7 @@
386386 void DumpWeapon();
387387 void ChangeShotMode(int weapon_paramid);
388388 void Jump();
389- void RunFrame(float rotation_x, float armrotation_y, int weapon_paramid, int ReloadCnt, int MoveFlag, int hp, bool PlayerFlag);
389+ void RunFrame(float rotation_x, float armrotation_y, int weapon_paramid, int ReloadCnt, int ChangeShotModeCnt, int MoveFlag, int hp, bool PlayerFlag);
390390 void GetRenderMotion(float *arm_rotation_y, float *leg_rotation_x, int *upmodel, int *armmodel, int *legmodel);
391391 };
392392