X operations(XOPS)に非常に近いFPSゲームを制作・リメイクし、成果物をオープンソースとして公開することを目的としたプロジェクトです。
| Revision | 182 (tree) |
|---|---|
| Time | 2017-08-12 00:02:20 |
| Author | |
人の当たり判定の高速化、ポイントデータの最大数を増やしても正しく読み込まれないバグの修正。
| @@ -415,8 +415,8 @@ | ||
| 415 | 415 | { |
| 416 | 416 | FILE *fp; |
| 417 | 417 | unsigned char pdata_header[2]; |
| 418 | - float pdata_mainf[200][4]; | |
| 419 | - char pdata_mainc[200][4]; | |
| 418 | + float pdata_mainf[MAX_POINTS][4]; | |
| 419 | + char pdata_mainc[MAX_POINTS][4]; | |
| 420 | 420 | char fname2[MAX_PATH]; |
| 421 | 421 | |
| 422 | 422 | #ifdef ENABLE_DEBUGLOG |
| @@ -2661,17 +2661,25 @@ | ||
| 2661 | 2661 | |
| 2662 | 2662 | //武器を拾う処理 |
| 2663 | 2663 | for(int i=0; i<MAX_HUMAN; i++){ |
| 2664 | - //武器を拾うだけで毎フレーム総当たりで処理する意味はないので、各武器2フレームに1回処理にケチってます (^^; | |
| 2665 | - //フレーム数が偶数目の時は、データ番号が偶数の武器。奇数の時は、奇数の武器を処理。 | |
| 2666 | - for(int j=(framecnt%2); j<MAX_WEAPON; j+=2){ | |
| 2667 | - PickupWeapon(&HumanIndex[i], &WeaponIndex[j]); | |
| 2664 | + if( HumanIndex[i].GetEnableFlag() == true ){ | |
| 2665 | + //武器を拾うだけで毎フレーム総当たりで処理する意味はないので、各武器2フレームに1回処理にケチってます (^^; | |
| 2666 | + //フレーム数が偶数目の時は、データ番号が偶数の武器。奇数の時は、奇数の武器を処理。 | |
| 2667 | + for(int j=(framecnt%2); j<MAX_WEAPON; j+=2){ | |
| 2668 | + PickupWeapon(&HumanIndex[i], &WeaponIndex[j]); | |
| 2669 | + } | |
| 2668 | 2670 | } |
| 2669 | 2671 | } |
| 2670 | 2672 | |
| 2671 | 2673 | for(int i=0; i<MAX_HUMAN; i++){ |
| 2672 | - for(int j=i+1; j<MAX_HUMAN; j++){ | |
| 2673 | - //人同士の当たり判定(押し合い) | |
| 2674 | - CollideHuman(&HumanIndex[i], &HumanIndex[j]); | |
| 2674 | + if( HumanIndex[i].GetEnableFlag() == true ){ | |
| 2675 | + for(int j=i+1; j<MAX_HUMAN; j++){ | |
| 2676 | + if( HumanIndex[j].GetEnableFlag() == true ){ | |
| 2677 | + | |
| 2678 | + //人同士の当たり判定(押し合い) | |
| 2679 | + CollideHuman(&HumanIndex[i], &HumanIndex[j]); | |
| 2680 | + | |
| 2681 | + } | |
| 2682 | + } | |
| 2675 | 2683 | } |
| 2676 | 2684 | } |
| 2677 | 2685 |