X operations(XOPS)に非常に近いFPSゲームを制作・リメイクし、成果物をオープンソースとして公開することを目的としたプロジェクトです。
| Revision | 258 (tree) |
|---|---|
| Time | 2021-02-08 00:40:20 |
| Author | |
オブジェクトのモデル非表示機能追加、コンソールのコマンドを1個追加(model)
| @@ -1385,7 +1385,8 @@ | ||
| 1385 | 1385 | //! @param id_model モデル認識番号 |
| 1386 | 1386 | //! @param id_texture テクスチャ認識番号 |
| 1387 | 1387 | //! @param darkflag モデルを暗くする |
| 1388 | -void D3DGraphics::RenderModel(int id_model, int id_texture, bool darkflag) | |
| 1388 | +//! @param nomodel モデル描画無効化 | |
| 1389 | +void D3DGraphics::RenderModel(int id_model, int id_texture, bool darkflag, bool nomodel) | |
| 1389 | 1390 | { |
| 1390 | 1391 | //無効な引数が設定されていれば失敗 |
| 1391 | 1392 | if( id_model == -1 ){ return; } |
| @@ -1392,8 +1393,15 @@ | ||
| 1392 | 1393 | //if( id_texture == -1 ){ return; } |
| 1393 | 1394 | |
| 1394 | 1395 | //指定したモデルが初期化されていなければ失敗 |
| 1395 | - if( pmesh[id_model] == NULL) return; | |
| 1396 | + if( pmesh[id_model] == NULL ){ return; } | |
| 1396 | 1397 | |
| 1398 | + if( nomodel == true ){ | |
| 1399 | + Renderline(1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, GetColorCode(1.0f,0.5f,0.0f,1.0f)); | |
| 1400 | + Renderline(0.0f, 1.0f, 0.0f, 0.0f, -1.0f, 0.0f, GetColorCode(1.0f,0.5f,0.0f,1.0f)); | |
| 1401 | + Renderline(0.0f, 0.0f, 1.0f, 0.0f, 0.0f, -1.0f, GetColorCode(1.0f,0.5f,0.0f,1.0f)); | |
| 1402 | + return; | |
| 1403 | + } | |
| 1404 | + | |
| 1397 | 1405 | float Brightness; |
| 1398 | 1406 | |
| 1399 | 1407 | if( darkflag == false ){ |
| @@ -1435,11 +1443,20 @@ | ||
| 1435 | 1443 | //! @brief 板を描画 |
| 1436 | 1444 | //! @param id_texture テクスチャ認識番号 |
| 1437 | 1445 | //! @param alpha 透明度 (0.0〜1.0 0.0:完全透明) |
| 1438 | -void D3DGraphics::RenderBoard(int id_texture, float alpha) | |
| 1446 | +//! @param nomodel 板の描画無効化 | |
| 1447 | +void D3DGraphics::RenderBoard(int id_texture, float alpha, bool nomodel) | |
| 1439 | 1448 | { |
| 1440 | 1449 | //テクスチャが設定されていなければ、処理しない。 |
| 1441 | 1450 | if( id_texture == -1 ){ return; } |
| 1442 | 1451 | |
| 1452 | + if( nomodel == true ){ | |
| 1453 | + Renderline(0.0f, 0.5f, -0.5f, 0.0f, -0.5f, -0.5f, GetColorCode(0.75f,0.75f,0.75f,1.0f)); | |
| 1454 | + Renderline(0.0f, -0.5f, -0.5f, 0.0f, -0.5f, 0.5f, GetColorCode(0.75f,0.75f,0.75f,1.0f)); | |
| 1455 | + Renderline(0.0f, -0.5f, 0.5f, 0.0f, 0.5f, 0.5f, GetColorCode(0.75f,0.75f,0.75f,1.0f)); | |
| 1456 | + Renderline(0.0f, 0.5f, 0.5f, 0.0f, 0.5f, -0.5f, GetColorCode(0.75f,0.75f,0.75f,1.0f)); | |
| 1457 | + return; | |
| 1458 | + } | |
| 1459 | + | |
| 1443 | 1460 | VERTEXTXTA BoardVertices[4]; |
| 1444 | 1461 | |
| 1445 | 1462 | //頂点座標・UV座標・色/透明度を設定 |
| @@ -2131,12 +2131,20 @@ | ||
| 2131 | 2131 | //! @param id_model モデル認識番号 |
| 2132 | 2132 | //! @param id_texture テクスチャ認識番号 |
| 2133 | 2133 | //! @param darkflag モデルを暗くする |
| 2134 | -void D3DGraphics::RenderModel(int id_model, int id_texture, bool darkflag) | |
| 2134 | +//! @param nomodel モデル描画無効化 | |
| 2135 | +void D3DGraphics::RenderModel(int id_model, int id_texture, bool darkflag, bool nomodel) | |
| 2135 | 2136 | { |
| 2136 | 2137 | //無効な引数が設定されていれば失敗 |
| 2137 | 2138 | if( id_model == -1 ){ return; } |
| 2138 | 2139 | if( pmodel[id_model].useflag == false ){ return; } |
| 2139 | 2140 | |
| 2141 | + if( nomodel == true ){ | |
| 2142 | + Renderline(1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, GetColorCode(1.0f,0.5f,0.0f,1.0f)); | |
| 2143 | + Renderline(0.0f, 1.0f, 0.0f, 0.0f, -1.0f, 0.0f, GetColorCode(1.0f,0.5f,0.0f,1.0f)); | |
| 2144 | + Renderline(0.0f, 0.0f, 1.0f, 0.0f, 0.0f, -1.0f, GetColorCode(1.0f,0.5f,0.0f,1.0f)); | |
| 2145 | + return; | |
| 2146 | + } | |
| 2147 | + | |
| 2140 | 2148 | //テクスチャが正常に読み込めていなければ設定 |
| 2141 | 2149 | if( id_texture == -1 ){ |
| 2142 | 2150 | //テクスチャ無効 |
| @@ -2188,12 +2196,21 @@ | ||
| 2188 | 2196 | //! @brief 板を描画 |
| 2189 | 2197 | //! @param id_texture テクスチャ認識番号 |
| 2190 | 2198 | //! @param alpha 透明度 (0.0〜1.0 0.0:完全透明) |
| 2191 | -void D3DGraphics::RenderBoard(int id_texture, float alpha) | |
| 2199 | +//! @param nomodel 板の描画無効化 | |
| 2200 | +void D3DGraphics::RenderBoard(int id_texture, float alpha, bool nomodel) | |
| 2192 | 2201 | { |
| 2193 | 2202 | //テクスチャが設定されていなければ、処理しない。 |
| 2194 | 2203 | if( id_texture == -1 ){ return; } |
| 2195 | 2204 | if( ptextures[id_texture].useflag == false ){ return; } |
| 2196 | 2205 | |
| 2206 | + if( nomodel == true ){ | |
| 2207 | + Renderline(0.0f, 0.5f, -0.5f, 0.0f, -0.5f, -0.5f, GetColorCode(0.75f,0.75f,0.75f,1.0f)); | |
| 2208 | + Renderline(0.0f, -0.5f, -0.5f, 0.0f, -0.5f, 0.5f, GetColorCode(0.75f,0.75f,0.75f,1.0f)); | |
| 2209 | + Renderline(0.0f, -0.5f, 0.5f, 0.0f, 0.5f, 0.5f, GetColorCode(0.75f,0.75f,0.75f,1.0f)); | |
| 2210 | + Renderline(0.0f, 0.5f, 0.5f, 0.0f, 0.5f, -0.5f, GetColorCode(0.75f,0.75f,0.75f,1.0f)); | |
| 2211 | + return; | |
| 2212 | + } | |
| 2213 | + | |
| 2197 | 2214 | float VertexAry[4*3]; |
| 2198 | 2215 | float ColorAry[4*4]; |
| 2199 | 2216 | float TexCoordAry[4*2]; |
| @@ -296,8 +296,8 @@ | ||
| 296 | 296 | void RenderMapdata(bool wireframe); |
| 297 | 297 | int GetMapTextureID(int id); |
| 298 | 298 | void CleanupMapdata(); |
| 299 | - void RenderModel(int id_model, int id_texture, bool darkflag); | |
| 300 | - void RenderBoard(int id_texture, float alpha); | |
| 299 | + void RenderModel(int id_model, int id_texture, bool darkflag, bool nomodel); | |
| 300 | + void RenderBoard(int id_texture, float alpha, bool nomodel); | |
| 301 | 301 | void StartEffectRender(); |
| 302 | 302 | void EndEffectRender(); |
| 303 | 303 | void ScreenBrightness(int Width, int Height, int Brightness); |
| @@ -346,7 +346,7 @@ | ||
| 346 | 346 | //カメラ座標に背景空を描画 |
| 347 | 347 | d3dg->SetWorldTransform(camera_x, camera_y, camera_z, 0.0f, 0.0f, 2.0f); |
| 348 | 348 | Resource.GetSkyModelTexture(&skymodel, &skytexture); |
| 349 | - d3dg->RenderModel(skymodel, skytexture, false); | |
| 349 | + d3dg->RenderModel(skymodel, skytexture, false, false); | |
| 350 | 350 | |
| 351 | 351 | //Zバッファを初期化 |
| 352 | 352 | d3dg->ResetZbuffer(); |
| @@ -356,7 +356,7 @@ | ||
| 356 | 356 | d3dg->RenderMapdata(false); |
| 357 | 357 | |
| 358 | 358 | //オブジェクトを描画 |
| 359 | - ObjMgr.Render(camera_x, camera_y, camera_z, 0); | |
| 359 | + ObjMgr.Render(camera_x, camera_y, camera_z, 0, false); | |
| 360 | 360 | } |
| 361 | 361 | |
| 362 | 362 | void opening::Render2D() |
| @@ -723,7 +723,7 @@ | ||
| 723 | 723 | d3dg->RenderMapdata(false); |
| 724 | 724 | |
| 725 | 725 | //オブジェクトを描画 |
| 726 | - ObjMgr.Render(camera_x, camera_y, camera_z, 0); | |
| 726 | + ObjMgr.Render(camera_x, camera_y, camera_z, 0, false); | |
| 727 | 727 | } |
| 728 | 728 | |
| 729 | 729 | void mainmenu::Render2D() |
| @@ -1775,6 +1775,7 @@ | ||
| 1775 | 1775 | tag = false; |
| 1776 | 1776 | radar = false; |
| 1777 | 1777 | wireframe = false; |
| 1778 | + nomodel = false; | |
| 1778 | 1779 | CenterLine = false; |
| 1779 | 1780 | Camera_Blind = true; |
| 1780 | 1781 | Camera_F1mode = false; |
| @@ -2631,7 +2632,7 @@ | ||
| 2631 | 2632 | //カメラ座標に背景空を描画 |
| 2632 | 2633 | d3dg->SetWorldTransform(camera_x, camera_y, camera_z, 0.0f, 0.0f, 2.0f); |
| 2633 | 2634 | Resource.GetSkyModelTexture(&skymodel, &skytexture); |
| 2634 | - d3dg->RenderModel(skymodel, skytexture, DarkScreenFlag); | |
| 2635 | + d3dg->RenderModel(skymodel, skytexture, DarkScreenFlag, false); | |
| 2635 | 2636 | |
| 2636 | 2637 | //Zバッファを初期化 |
| 2637 | 2638 | d3dg->ResetZbuffer(); |
| @@ -2656,7 +2657,7 @@ | ||
| 2656 | 2657 | } |
| 2657 | 2658 | } |
| 2658 | 2659 | //オブジェクトを描画 |
| 2659 | - ObjMgr.Render(camera_x, camera_y, camera_z, DrawPlayer); | |
| 2660 | + ObjMgr.Render(camera_x, camera_y, camera_z, DrawPlayer, nomodel); | |
| 2660 | 2661 | |
| 2661 | 2662 | //AIデバック情報表示 |
| 2662 | 2663 | if( AIdebuginfoID != -1 ){ |
| @@ -3092,13 +3093,13 @@ | ||
| 3092 | 3093 | GameParamInfo.GetWeapon(weapon_paramid[selectweapon], &weapon_paramdata); |
| 3093 | 3094 | Resource.GetWeaponModelTexture(weapon_paramid[selectweapon], &weaponmodel, &weapontexture); |
| 3094 | 3095 | d3dg->SetWorldTransformPlayerWeapon(true, camera_rx, camera_ry, DegreeToRadian(framecnt*2), weapon_paramdata.size); |
| 3095 | - d3dg->RenderModel(weaponmodel, weapontexture, false); | |
| 3096 | + d3dg->RenderModel(weaponmodel, weapontexture, false, nomodel); | |
| 3096 | 3097 | |
| 3097 | 3098 | //(3D描画)所持している武器モデルの描画・サブ武器 |
| 3098 | 3099 | GameParamInfo.GetWeapon(weapon_paramid[notselectweapon], &weapon_paramdata); |
| 3099 | 3100 | Resource.GetWeaponModelTexture(weapon_paramid[notselectweapon], &weaponmodel, &weapontexture); |
| 3100 | 3101 | d3dg->SetWorldTransformPlayerWeapon(false, camera_rx, camera_ry, 0.0f, weapon_paramdata.size); |
| 3101 | - d3dg->RenderModel(weaponmodel, weapontexture, false); | |
| 3102 | + d3dg->RenderModel(weaponmodel, weapontexture, false, nomodel); | |
| 3102 | 3103 | } |
| 3103 | 3104 | |
| 3104 | 3105 | //----------------------------------- |
| @@ -3475,7 +3476,7 @@ | ||
| 3475 | 3476 | if( strcmp(NewCommand, "help") == 0 ){ |
| 3476 | 3477 | AddInfoConsole(d3dg->GetColorCode(1.0f,1.0f,1.0f,1.0f), "help human result event ver"); |
| 3477 | 3478 | AddInfoConsole(d3dg->GetColorCode(1.0f,1.0f,1.0f,1.0f), "config mif bd1 pd1 resinfo"); |
| 3478 | - AddInfoConsole(d3dg->GetColorCode(1.0f,1.0f,1.0f,1.0f), "info view center map aiinfo <NUM>"); | |
| 3479 | + AddInfoConsole(d3dg->GetColorCode(1.0f,1.0f,1.0f,1.0f), "info view center map model aiinfo <NUM>"); | |
| 3479 | 3480 | AddInfoConsole(d3dg->GetColorCode(1.0f,1.0f,1.0f,1.0f), "tag radar inmap sky <NUM> dark fog"); |
| 3480 | 3481 | AddInfoConsole(d3dg->GetColorCode(1.0f,1.0f,1.0f,1.0f), "player <NUM> revive kill <NUM> treat <NUM> nodamage <NUM>"); |
| 3481 | 3482 | AddInfoConsole(d3dg->GetColorCode(1.0f,1.0f,1.0f,1.0f), "newobj <NUM> break <NUM> delhuman <NUM> delweapon <NUM> delobj <NUL>"); |
| @@ -3927,6 +3928,18 @@ | ||
| 3927 | 3928 | } |
| 3928 | 3929 | } |
| 3929 | 3930 | |
| 3931 | + //モデル描画フラグ切り替え | |
| 3932 | + if( strcmp(NewCommand, "model") == 0 ){ | |
| 3933 | + if( nomodel == false ){ | |
| 3934 | + nomodel = true; | |
| 3935 | + AddInfoConsole(d3dg->GetColorCode(1.0f,1.0f,1.0f,1.0f), "Disable render model."); | |
| 3936 | + } | |
| 3937 | + else{ | |
| 3938 | + nomodel = false; | |
| 3939 | + AddInfoConsole(d3dg->GetColorCode(1.0f,1.0f,1.0f,1.0f), "Enable render model."); | |
| 3940 | + } | |
| 3941 | + } | |
| 3942 | + | |
| 3930 | 3943 | //AI情報表示 |
| 3931 | 3944 | if( GetCommandNum("aiinfo", &id) == true ){ |
| 3932 | 3945 | if( (0 <= id)&&(id < MAX_HUMAN) ){ |
| @@ -237,6 +237,7 @@ | ||
| 237 | 237 | bool tag; //!< オブジェクトのタグを表示 |
| 238 | 238 | bool radar; //!< 簡易レーダー表示 |
| 239 | 239 | bool wireframe; //!< マップをワイヤーフレーム表示 |
| 240 | + bool nomodel; //!< モデル描画フラグ | |
| 240 | 241 | bool CenterLine; //!< 3D空間に中心線を表示 |
| 241 | 242 | bool Camera_Blind; //!< 目隠し描画 |
| 242 | 243 | bool Camera_F1mode; //!< カメラF1モード |
| @@ -146,13 +146,14 @@ | ||
| 146 | 146 | |
| 147 | 147 | //! @brief 描画 |
| 148 | 148 | //! @param d3dg D3DGraphicsのポインタ |
| 149 | -void object::Render(D3DGraphics *d3dg) | |
| 149 | +//! @param NoModel モデル描画無効化 | |
| 150 | +void object::Render(D3DGraphics *d3dg, bool NoModel) | |
| 150 | 151 | { |
| 151 | 152 | if( d3dg == NULL ){ return; } |
| 152 | 153 | if( EnableFlag == false ){ return; } |
| 153 | 154 | |
| 154 | 155 | d3dg->SetWorldTransform(pos_x, pos_y, pos_z, rotation_x, 0.0f, model_size); |
| 155 | - d3dg->RenderModel(id_model, id_texture, DarkModelFlag); | |
| 156 | + d3dg->RenderModel(id_model, id_texture, DarkModelFlag, NoModel); | |
| 156 | 157 | } |
| 157 | 158 | |
| 158 | 159 | //! @brief コンストラクタ |
| @@ -1824,9 +1825,10 @@ | ||
| 1824 | 1825 | //! @param Resource ResourceManagerのポインタ |
| 1825 | 1826 | //! @param DrawArm 腕と武器のみ描画する |
| 1826 | 1827 | //! @param player 対象の人物がプレイヤーかどうか |
| 1828 | +//! @param NoModel モデル描画無効化 | |
| 1827 | 1829 | //! @todo 腕の位置を行列で求める |
| 1828 | 1830 | //! @todo 死体の部位の高さ(Y軸)がおかしい |
| 1829 | -void human::Render(class D3DGraphics *d3dg, class ResourceManager *Resource, bool DrawArm, bool player) | |
| 1831 | +void human::Render(class D3DGraphics *d3dg, class ResourceManager *Resource, bool DrawArm, bool player, bool NoModel) | |
| 1830 | 1832 | { |
| 1831 | 1833 | //未使用引数対策 |
| 1832 | 1834 | UNREFERENCED_PARAMETER(player); |
| @@ -1843,11 +1845,11 @@ | ||
| 1843 | 1845 | if( DrawArm == false ){ |
| 1844 | 1846 | //上半身を描画 |
| 1845 | 1847 | d3dg->SetWorldTransform(pos_x, pos_y - 1.0f, pos_z, rotation_x + (float)M_PI, rotation_y, upmodel_size); |
| 1846 | - d3dg->RenderModel(upmodel, id_texture, DarkModelFlag); | |
| 1848 | + d3dg->RenderModel(upmodel, id_texture, DarkModelFlag, NoModel); | |
| 1847 | 1849 | |
| 1848 | 1850 | //足を描画 |
| 1849 | 1851 | d3dg->SetWorldTransform(pos_x, pos_y, pos_z, legrx + (float)M_PI, rotation_y, legmodel_size); |
| 1850 | - d3dg->RenderModel(legmodel, id_texture, DarkModelFlag); | |
| 1852 | + d3dg->RenderModel(legmodel, id_texture, DarkModelFlag, NoModel); | |
| 1851 | 1853 | } |
| 1852 | 1854 | |
| 1853 | 1855 | //現在装備する武器のクラスを取得 |
| @@ -1860,11 +1862,11 @@ | ||
| 1860 | 1862 | float y = pos_y + cos(rotation_y)*16.0f; |
| 1861 | 1863 | float z = pos_z + sin(rotation_x*-1 - (float)M_PI/2)*sin(rotation_y)*16.0f; |
| 1862 | 1864 | d3dg->SetWorldTransform(x, y, z, rotation_x + (float)M_PI, armrotation_y + rotation_y, armmodel_size); |
| 1863 | - d3dg->RenderModel(armmodel, id_texture, DarkModelFlag); | |
| 1865 | + d3dg->RenderModel(armmodel, id_texture, DarkModelFlag, NoModel); | |
| 1864 | 1866 | } |
| 1865 | 1867 | else if( nowweapon == NULL ){ //手ぶら |
| 1866 | 1868 | d3dg->SetWorldTransform(pos_x, pos_y + 16.0f, pos_z, rotation_x + (float)M_PI, armry, armmodel_size); |
| 1867 | - d3dg->RenderModel(armmodel, id_texture, DarkModelFlag); | |
| 1869 | + d3dg->RenderModel(armmodel, id_texture, DarkModelFlag, NoModel); | |
| 1868 | 1870 | } |
| 1869 | 1871 | else{ //何か武器を持っている |
| 1870 | 1872 | //武器のモデルとテクスチャを取得 |
| @@ -1877,11 +1879,11 @@ | ||
| 1877 | 1879 | |
| 1878 | 1880 | //腕を描画 |
| 1879 | 1881 | d3dg->SetWorldTransform(pos_x, pos_y + 16.0f, pos_z, rotation_x + (float)M_PI, armry, armmodel_size); |
| 1880 | - d3dg->RenderModel(armmodel, id_texture, DarkModelFlag); | |
| 1882 | + d3dg->RenderModel(armmodel, id_texture, DarkModelFlag, NoModel); | |
| 1881 | 1883 | |
| 1882 | 1884 | //武器を描画 |
| 1883 | 1885 | d3dg->SetWorldTransformHumanWeapon(pos_x, pos_y + 16.0f, pos_z, paramdata.mx/10*-1, paramdata.my/10, paramdata.mz/10*-1, rotation_x + (float)M_PI, armry, paramdata.size); |
| 1884 | - d3dg->RenderModel(model, texture, DarkModelFlag); | |
| 1886 | + d3dg->RenderModel(model, texture, DarkModelFlag, NoModel); | |
| 1885 | 1887 | } |
| 1886 | 1888 | } |
| 1887 | 1889 |
| @@ -2189,7 +2191,8 @@ | ||
| 2189 | 2191 | |
| 2190 | 2192 | //! @brief 描画 |
| 2191 | 2193 | //! @param d3dg D3DGraphicsのポインタ |
| 2192 | -void weapon::Render(class D3DGraphics *d3dg) | |
| 2194 | +//! @param NoModel モデル描画無効化 | |
| 2195 | +void weapon::Render(class D3DGraphics *d3dg, bool NoModel) | |
| 2193 | 2196 | { |
| 2194 | 2197 | //クラスが設定されていなければ失敗 |
| 2195 | 2198 | if( d3dg == NULL ){ return; } |
| @@ -2200,7 +2203,7 @@ | ||
| 2200 | 2203 | |
| 2201 | 2204 | //武器を描画 |
| 2202 | 2205 | d3dg->SetWorldTransform(pos_x, pos_y, pos_z, rotation_x, 0.0f, (float)M_PI/2, model_size); |
| 2203 | - d3dg->RenderModel(id_model, id_texture, DarkModelFlag); | |
| 2206 | + d3dg->RenderModel(id_model, id_texture, DarkModelFlag, NoModel); | |
| 2204 | 2207 | } |
| 2205 | 2208 | |
| 2206 | 2209 | //! @brief コンストラクタ |
| @@ -2423,7 +2426,8 @@ | ||
| 2423 | 2426 | |
| 2424 | 2427 | //! @brief 描画 |
| 2425 | 2428 | //! @param d3dg D3DGraphicsのポインタ |
| 2426 | -void smallobject::Render(D3DGraphics *d3dg) | |
| 2429 | +//! @param NoModel モデル描画無効化 | |
| 2430 | +void smallobject::Render(D3DGraphics *d3dg, bool NoModel) | |
| 2427 | 2431 | { |
| 2428 | 2432 | //クラスが設定されていなければ失敗 |
| 2429 | 2433 | if( d3dg == NULL ){ return; } |
| @@ -2433,7 +2437,7 @@ | ||
| 2433 | 2437 | |
| 2434 | 2438 | //描画 |
| 2435 | 2439 | d3dg->SetWorldTransform(pos_x, pos_y, pos_z, rotation_x, rotation_y, model_size); |
| 2436 | - d3dg->RenderModel(id_model, id_texture, DarkModelFlag); | |
| 2440 | + d3dg->RenderModel(id_model, id_texture, DarkModelFlag, NoModel); | |
| 2437 | 2441 | } |
| 2438 | 2442 | |
| 2439 | 2443 | //! @brief コンストラクタ |
| @@ -2541,7 +2545,8 @@ | ||
| 2541 | 2545 | |
| 2542 | 2546 | //! @brief 描画 |
| 2543 | 2547 | //! @param d3dg D3DGraphicsのポインタ |
| 2544 | -void bullet::Render(class D3DGraphics *d3dg) | |
| 2548 | +//! @param NoModel モデル描画無効化 | |
| 2549 | +void bullet::Render(class D3DGraphics *d3dg, bool NoModel) | |
| 2545 | 2550 | { |
| 2546 | 2551 | //クラスが設定されていなければ失敗 |
| 2547 | 2552 | if( d3dg == NULL ){ return; } |
| @@ -2555,7 +2560,7 @@ | ||
| 2555 | 2560 | |
| 2556 | 2561 | //描画 |
| 2557 | 2562 | d3dg->SetWorldTransform(pos_x, pos_y, pos_z, (rotation_x * -1 - (float)M_PI/2), rotation_y, model_size); |
| 2558 | - d3dg->RenderModel(id_model, id_texture, false); | |
| 2563 | + d3dg->RenderModel(id_model, id_texture, false, NoModel); | |
| 2559 | 2564 | } |
| 2560 | 2565 | |
| 2561 | 2566 | //! @brief コンストラクタ |
| @@ -2685,7 +2690,8 @@ | ||
| 2685 | 2690 | |
| 2686 | 2691 | //! @brief 描画 |
| 2687 | 2692 | //! @param d3dg D3DGraphicsのポインタ |
| 2688 | -void grenade::Render(class D3DGraphics *d3dg) | |
| 2693 | +//! @param NoModel モデル描画無効化 | |
| 2694 | +void grenade::Render(class D3DGraphics *d3dg, bool NoModel) | |
| 2689 | 2695 | { |
| 2690 | 2696 | //クラスが設定されていなければ失敗 |
| 2691 | 2697 | if( d3dg == NULL ){ return; } |
| @@ -2695,7 +2701,7 @@ | ||
| 2695 | 2701 | |
| 2696 | 2702 | //描画 |
| 2697 | 2703 | d3dg->SetWorldTransform(pos_x, pos_y, pos_z, (rotation_x * -1 - (float)M_PI/2), 0.0f, (float)M_PI/2, model_size); |
| 2698 | - d3dg->RenderModel(id_model, id_texture, DarkModelFlag); | |
| 2704 | + d3dg->RenderModel(id_model, id_texture, DarkModelFlag, NoModel); | |
| 2699 | 2705 | } |
| 2700 | 2706 | |
| 2701 | 2707 | //! @brief コンストラクタ |
| @@ -2867,7 +2873,8 @@ | ||
| 2867 | 2873 | |
| 2868 | 2874 | //! @brief 描画 |
| 2869 | 2875 | //! @param d3dg D3DGraphicsのポインタ |
| 2870 | -void effect::Render(class D3DGraphics *d3dg) | |
| 2876 | +//! @param NoModel モデル描画無効化 | |
| 2877 | +void effect::Render(class D3DGraphics *d3dg, bool NoModel) | |
| 2871 | 2878 | { |
| 2872 | 2879 | //クラスが設定されていなければ失敗 |
| 2873 | 2880 | if( d3dg == NULL ){ return; } |
| @@ -2877,7 +2884,7 @@ | ||
| 2877 | 2884 | |
| 2878 | 2885 | //描画 |
| 2879 | 2886 | d3dg->SetWorldTransformEffect(pos_x, pos_y, pos_z, rotation_x, rotation_y, rotation_texture, model_size); |
| 2880 | - d3dg->RenderBoard(id_texture, alpha); | |
| 2887 | + d3dg->RenderBoard(id_texture, alpha, NoModel); | |
| 2881 | 2888 | } |
| 2882 | 2889 | |
| 2883 | 2890 | //! @brief コンストラクタ |
| @@ -121,7 +121,7 @@ | ||
| 121 | 121 | virtual int GetTexture(); |
| 122 | 122 | virtual void SetDarkModelFlag(bool flag); |
| 123 | 123 | virtual int RunFrame(); |
| 124 | - virtual void Render(class D3DGraphics *d3dg); | |
| 124 | + virtual void Render(class D3DGraphics *d3dg, bool NoModel); | |
| 125 | 125 | }; |
| 126 | 126 | |
| 127 | 127 | //! @brief 人管理クラス |
| @@ -220,7 +220,7 @@ | ||
| 220 | 220 | virtual float GetTotalMove(); |
| 221 | 221 | virtual int RunFrame(class Collision *CollD, class BlockDataInterface *inblockdata, bool AddCollisionFlag, bool player, bool F5mode); |
| 222 | 222 | virtual int GetGunsightErrorRange(); |
| 223 | - virtual void Render(class D3DGraphics *d3dg, class ResourceManager *Resource, bool DrawArm, bool player); | |
| 223 | + virtual void Render(class D3DGraphics *d3dg, class ResourceManager *Resource, bool DrawArm, bool player, bool NoModel); | |
| 224 | 224 | }; |
| 225 | 225 | |
| 226 | 226 | //! @brief 武器管理クラス |
| @@ -249,7 +249,7 @@ | ||
| 249 | 249 | virtual int RunReload(); |
| 250 | 250 | virtual bool ResetWeaponParam(class ResourceManager *Resource, int id_param, int lnbs, int nbs); |
| 251 | 251 | virtual int RunFrame(class Collision *CollD); |
| 252 | - virtual void Render(class D3DGraphics *d3dg); | |
| 252 | + virtual void Render(class D3DGraphics *d3dg, bool NoModel); | |
| 253 | 253 | }; |
| 254 | 254 | |
| 255 | 255 | //! @brief 小物管理クラス |
| @@ -278,7 +278,7 @@ | ||
| 278 | 278 | virtual void HitGrenadeExplosion(int attacks); |
| 279 | 279 | virtual void Destruction(); |
| 280 | 280 | virtual int RunFrame(); |
| 281 | - virtual void Render(D3DGraphics *d3dg); | |
| 281 | + virtual void Render(D3DGraphics *d3dg, bool NoModel); | |
| 282 | 282 | }; |
| 283 | 283 | |
| 284 | 284 | //! @brief 弾丸管理クラス |
| @@ -302,7 +302,7 @@ | ||
| 302 | 302 | virtual void GetPosData(float *x, float *y, float *z, float *rx, float *ry); |
| 303 | 303 | virtual void GetParamData(int *_attacks, int *_penetration, int *_speed, int *_teamid, int *_humanid, float *_ontargetcnt); |
| 304 | 304 | virtual int RunFrame(); |
| 305 | - virtual void Render(class D3DGraphics *d3dg); | |
| 305 | + virtual void Render(class D3DGraphics *d3dg, bool NoModel); | |
| 306 | 306 | }; |
| 307 | 307 | |
| 308 | 308 | //! @brief 手榴弾管理クラス |
| @@ -319,7 +319,7 @@ | ||
| 319 | 319 | void GetParamData(float *_speed, int *_teamid, int *_humanid, float *_ontargetcnt); |
| 320 | 320 | float GetSpeed(); |
| 321 | 321 | int RunFrame(class Collision *CollD); |
| 322 | - virtual void Render(D3DGraphics *d3dg); | |
| 322 | + virtual void Render(D3DGraphics *d3dg, bool NoModel); | |
| 323 | 323 | }; |
| 324 | 324 | |
| 325 | 325 | //! @brief エフェクト管理クラス |
| @@ -351,7 +351,7 @@ | ||
| 351 | 351 | virtual void GetMove(float *mx, float *my, float *mz); |
| 352 | 352 | virtual bool GetCollideMapFlag(); |
| 353 | 353 | virtual int RunFrame(float camera_rx, float camera_ry); |
| 354 | - virtual void Render(class D3DGraphics *d3dg); | |
| 354 | + virtual void Render(class D3DGraphics *d3dg, bool NoModel); | |
| 355 | 355 | }; |
| 356 | 356 | |
| 357 | 357 | //! @brief 人モーション制御クラス |
| @@ -2875,7 +2875,8 @@ | ||
| 2875 | 2875 | //! @param camera_y カメラのY座標 |
| 2876 | 2876 | //! @param camera_z カメラのZ座標 |
| 2877 | 2877 | //! @param HidePlayer プレイヤーの描画設定 (描画する:0 描画しない:1 腕と武器のみ描画する:2) |
| 2878 | -void ObjectManager::Render(float camera_x, float camera_y, float camera_z, int HidePlayer) | |
| 2878 | +//! @param NoModel モデル描画無効化 | |
| 2879 | +void ObjectManager::Render(float camera_x, float camera_y, float camera_z, int HidePlayer, bool NoModel) | |
| 2879 | 2880 | { |
| 2880 | 2881 | //ワールド座標を原点へ |
| 2881 | 2882 | d3dg->ResetWorldTransform(); |
| @@ -2926,7 +2927,7 @@ | ||
| 2926 | 2927 | player = false; |
| 2927 | 2928 | } |
| 2928 | 2929 | |
| 2929 | - HumanIndex[i].Render(d3dg, Resource, DrawArm, player); | |
| 2930 | + HumanIndex[i].Render(d3dg, Resource, DrawArm, player, NoModel); | |
| 2930 | 2931 | |
| 2931 | 2932 | /* |
| 2932 | 2933 | //当たり判定の簡易表示 |
| @@ -2946,22 +2947,22 @@ | ||
| 2946 | 2947 | |
| 2947 | 2948 | //武器描画 |
| 2948 | 2949 | for(int i=0; i<MAX_WEAPON; i++){ |
| 2949 | - WeaponIndex[i].Render(d3dg); | |
| 2950 | + WeaponIndex[i].Render(d3dg, NoModel); | |
| 2950 | 2951 | } |
| 2951 | 2952 | |
| 2952 | 2953 | //小物描画 |
| 2953 | 2954 | for(int i=0; i<MAX_SMALLOBJECT; i++){ |
| 2954 | - SmallObjectIndex[i].Render(d3dg); | |
| 2955 | + SmallObjectIndex[i].Render(d3dg, NoModel); | |
| 2955 | 2956 | } |
| 2956 | 2957 | |
| 2957 | 2958 | //弾描画 |
| 2958 | 2959 | for(int i=0; i<MAX_BULLET; i++){ |
| 2959 | - BulletIndex[i].Render(d3dg); | |
| 2960 | + BulletIndex[i].Render(d3dg, NoModel); | |
| 2960 | 2961 | } |
| 2961 | 2962 | |
| 2962 | 2963 | //手榴弾描画 |
| 2963 | 2964 | for(int i=0; i<MAX_GRENADE; i++){ |
| 2964 | - GrenadeIndex[i].Render(d3dg); | |
| 2965 | + GrenadeIndex[i].Render(d3dg, NoModel); | |
| 2965 | 2966 | } |
| 2966 | 2967 | |
| 2967 | 2968 | //エフェクト描画 |
| @@ -2968,13 +2969,13 @@ | ||
| 2968 | 2969 | d3dg->StartEffectRender(); |
| 2969 | 2970 | /* |
| 2970 | 2971 | for(int i=0; i<MAX_EFFECT; i++){ |
| 2971 | - EffectIndex[i].Render(d3dg); | |
| 2972 | + EffectIndex[i].Render(d3dg, NoModel); | |
| 2972 | 2973 | } |
| 2973 | 2974 | */ |
| 2974 | 2975 | effectdata data[MAX_EFFECT]; |
| 2975 | 2976 | int cnt = SortEffect(camera_x, camera_y, camera_z, data); |
| 2976 | 2977 | for(int i=0; i<cnt; i++) { |
| 2977 | - EffectIndex[ data[i].id ].Render(d3dg); | |
| 2978 | + EffectIndex[ data[i].id ].Render(d3dg, NoModel); | |
| 2978 | 2979 | } |
| 2979 | 2980 | d3dg->EndEffectRender(); |
| 2980 | 2981 | } |
| @@ -173,7 +173,7 @@ | ||
| 173 | 173 | bool GetObjectInfoTag(float camera_x, float camera_y, float camera_z, float camera_rx, float camera_ry, int *color, char *infostr); |
| 174 | 174 | int Process(int cmdF5id, bool demomode, float camera_rx, float camera_ry, bool screen); |
| 175 | 175 | bool GetHumanShotInfo(int id, float *ontarget, int *kill, int *headshot); |
| 176 | - void Render(float camera_x, float camera_y, float camera_z, int HidePlayer); | |
| 176 | + void Render(float camera_x, float camera_y, float camera_z, int HidePlayer, bool NoModel); | |
| 177 | 177 | void RenderLog(int x, int y); |
| 178 | 178 | void Cleanup(); |
| 179 | 179 | }; |