• R/O
  • SSH
  • HTTPS

コミット

よく使われているワード(クリックで追加)

javac++androidlinuxc#windowsobjective-cqtcocoa誰得pythonphprubygameguibathyscaphec翻訳計画中(planning stage)omegatframeworktwittertestdomvb.netdirectxbtronarduinopreviewerゲームエンジン

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


コミットメタ情報

リビジョン343 (tree)
日時2022-12-31 01:10:40
作者xops-mikan

ログメッセージ

ポイントパラメーターの値変換を関数化、人とマップの当たり判定を改善、コメント修正

変更サマリ

差分

--- trunk/collision.cpp (revision 342)
+++ trunk/collision.cpp (revision 343)
@@ -232,7 +232,7 @@
232232 return 0;
233233 }
234234
235-//! @brief AABBによる全てのブロックとの当たり判定
235+//! @brief AABBによるブロックとの当たり判定
236236 //! @param id 判定するブロック番号
237237 //! @param min_x 物体の最少 X座標
238238 //! @param min_y 物体の最少 Y座標
@@ -247,10 +247,15 @@
247247 if( BlockDataIF == NULL ){ return false; }
248248 if( (id < 0)||(BlockDataIF->GetTotaldatas() <= id) ){ return false; }
249249
250+ //板状のブロックは計算外
251+ if( cbdata[id].BoardBlock == true ){
252+ return false;
253+ }
254+
250255 return CollideBoxAABB(min_x, min_y, min_z, max_x, max_y, max_z, cbdata[id].min_x, cbdata[id].min_y, cbdata[id].min_z, cbdata[id].max_x, cbdata[id].max_y, cbdata[id].max_z);
251256 }
252257
253-//! @brief AABBによるブロックとの当たり判定
258+//! @brief AABBによる全てのブロックとの当たり判定
254259 //! @param min_x 物体の最少 X座標
255260 //! @param min_y 物体の最少 Y座標
256261 //! @param min_z 物体の最少 Z座標
--- trunk/event.cpp (revision 342)
+++ trunk/event.cpp (revision 343)
@@ -323,12 +323,12 @@
323323 break;
324324
325325 case 17: //時間待ち
326- if( WaitSec((unsigned char)data.p2) == false ){ return cnt; }
326+ if( WaitSec(PointParamToInt(data.p2)) == false ){ return cnt; }
327327 nextp4 = data.p3;
328328 break;
329329
330330 case 18: //メッセージ
331- SetMessage((unsigned char)data.p2, &(Param->MessageID), &(Param->SetMessageID));
331+ SetMessage(PointParamToInt(data.p2), &(Param->MessageID), &(Param->SetMessageID));
332332 nextp4 = data.p3;
333333 break;
334334
--- trunk/main.cpp (revision 342)
+++ trunk/main.cpp (revision 343)
@@ -333,6 +333,14 @@
333333 return r;
334334 }
335335
336+//! @brief ポイントパラメーターの値をunsigned int型に変換
337+//! @param value 値
338+//! @return 整数値
339+unsigned int PointParamToInt(signed short int value)
340+{
341+ return (unsigned int)((unsigned char)value);
342+}
343+
336344 //! @brief 2バイトに数値設定(リトルエンディアン)
337345 //! @param outdata 2バイトのポインタ
338346 //! @param value 数値
--- trunk/main.h (revision 342)
+++ trunk/main.h (revision 343)
@@ -162,6 +162,7 @@
162162
163163 bool CheckCommandParameter(const char *param, const char *cmd);
164164 float AngleNormalization(float r);
165+unsigned int PointParamToInt(signed short int value);
165166 void Set2ByteLittleEndian(unsigned char *outdata, unsigned int value);
166167 void Set4ByteLittleEndian(unsigned char *outdata, unsigned int value);
167168 void Set2ByteBigEndian(unsigned char *outdata, unsigned int value);
--- trunk/objectmanager.cpp (revision 342)
+++ trunk/objectmanager.cpp (revision 343)
@@ -365,7 +365,7 @@
365365 {
366366 //武器番号と弾数を仮登録
367367 int WeaponID = data.p2;
368- int nbs = (unsigned char)data.p3;
368+ int nbs = PointParamToInt(data.p3);
369369
370370 //ランダムな武器ならば
371371 if( data.p1 == POINT_P1TYPE_RAND_WEAPON ){