• R/O
  • SSH
  • HTTPS

railsim2: Commit


Commit MetaInfo

Revision11 (tree)
Time2012-09-09 13:21:31
Authorokadu

Log Message

[okadu] Version 2.14a バグ修正いろいろ

Change Summary

Incremental Difference

--- trunk/CRailWay.cpp (revision 10)
+++ trunk/CRailWay.cpp (revision 11)
@@ -452,6 +452,10 @@
452452 m_GirderPlugin->CopyMapTemp(m_GirderMapV);
453453 m_GirderPlugin->AddMapTemp(m_SegLen);
454454 }
455+ if(m_LinePlugin){
456+ m_LinePlugin->CopyMapTemp(m_LineMapV);
457+ m_LinePlugin->AddMapTemp(m_SegLen); // 本当は架線の折れ線距離を計算する必要があるが…
458+ }
455459 }
456460
457461 /*
@@ -1262,7 +1266,15 @@
12621266 IPolePos ipo = m_PoleList.begin();
12631267 for(; ipo!=m_PoleList.end(); ipo++) ipo->RestoreAddress();
12641268 IPGroupEndLocator ipge = m_GroupEnd.begin();
1265- for(; ipge!=m_GroupEnd.end(); ipge++) *ipge = (CGroupEndLocator *)ReplaceAdr(*ipge);
1269+ for(; ipge!=m_GroupEnd.end();){
1270+ *ipge = (CGroupEndLocator *)ReplaceAdr(*ipge);
1271+ if(*ipge){
1272+ ++ipge;
1273+ }else{
1274+ //Dialog("GroupEnd not found!");
1275+ ipge = m_GroupEnd.erase(ipge);
1276+ }
1277+ }
12661278 }
12671279
12681280 /*
--- trunk/CScene.h (revision 10)
+++ trunk/CScene.h (revision 11)
@@ -86,6 +86,7 @@
8686 bool PickScene(VEC3, VEC3, VEC3 *, VEC3 *tri = NULL, int inv = 1);
8787 bool ClipAlt(VEC3 *, VEC3 *, VEC3 *, int);
8888 void Dump();
89+ void SetDumpReady(bool r){ m_IsDumpReady = r; }
8990 void RenderScene();
9091 void RenderAfter();
9192 void SimulateScene();
--- trunk/CSceneryMode.h (revision 10)
+++ trunk/CSceneryMode.h (revision 11)
@@ -101,6 +101,7 @@
101101 virtual void ScanInputCursorScenery() = 0;
102102 void RenderScenery();
103103 virtual void RenderCursorScenery(){}
104+ virtual void RenderCursorSceneryFull(){}
104105 bool IsPausedScenery(){ return IsPausedCursorScenery(); }
105106 virtual bool IsPausedCursorScenery(){ return false; }
106107 };
--- trunk/CWindowDivInfo.h (revision 10)
+++ trunk/CWindowDivInfo.h (revision 11)
@@ -29,6 +29,8 @@
2929
3030 CWindowDivInfo *GetDiv(){ return m_Div; }
3131 CWindowDivInfo **GetDivAdr(){ return &m_Div; }
32+ int GetWidth() const { return m_Width; }
33+ int GetHeight() const { return m_Height; }
3234 CScene *GetScene(){ return m_Scene; }
3335 CCamera *GetCamera(){ return &m_Camera; }
3436 void SetCamera(const CCamera& cam){ m_Camera = cam; }
--- trunk/CSaveFile.cpp (revision 10)
+++ trunk/CSaveFile.cpp (revision 11)
@@ -17,6 +17,11 @@
1717 #include "CSimulationMode.h"
1818 #include "CConfigMode.h"
1919 #include "CNeutralMode.h"
20+#include "CRailPlugin.h"
21+#include "CTiePlugin.h"
22+#include "CGirderPlugin.h"
23+#include "CPierPlugin.h"
24+#include "CLinePlugin.h"
2025
2126 // 関数宣言
2227 bool IsLeapYear(int);
@@ -345,6 +350,12 @@
345350 }
346351 DeleteWarp();
347352 CScene **adr = &m_SceneList;
353+ g_Scene = sc;
354+ g_RailPluginList->ClearDumpAll();
355+ g_TiePluginList->ClearDumpAll();
356+ g_GirderPluginList->ClearDumpAll();
357+ g_PierPluginList->ClearDumpAll();
358+ g_LinePluginList->ClearDumpAll();
348359 g_Scene = NULL;
349360 while(*adr){
350361 if(*adr==sc){
@@ -363,6 +374,11 @@
363374 g_Scene = m_SceneList = new CScene(g_DefaultSurface, g_DefaultEnv, lang(InitialScene));
364375 m_SceneNum = 1;
365376 }
377+ CScene *ptr = m_SceneList;
378+ while(ptr){
379+ ptr->SetDumpReady(false);
380+ ptr = ptr->Next();
381+ }
366382 NumberScene();
367383 g_Scene->Enter(false);
368384 g_ConfigMode->GetRootWindow()->OnDeleteScene(sc);
--- trunk/CNeutralMode.cpp (revision 10)
+++ trunk/CNeutralMode.cpp (revision 11)
@@ -149,6 +149,17 @@
149149 }
150150 if(GetFocusInst() && GetFocusInst()->GetScene()==g_Scene){
151151 if(ms_PhotoMode<1) m_FocusInfo.GetPartsInst()->DrawBox();
152+ //GetFocusInst()->PrintInfo(); // Full
153+ }
154+ }
155+}
156+
157+/*
158+ * レンダリング (画面分割無視)
159+ */
160+void CNeutralMode::RenderCursorSceneryFull(){
161+ if(ms_PhotoMode<2){
162+ if(GetFocusInst() && GetFocusInst()->GetScene()==g_Scene){
152163 GetFocusInst()->PrintInfo();
153164 }
154165 }
--- trunk/CNeutralMode.h (revision 10)
+++ trunk/CNeutralMode.h (revision 11)
@@ -28,6 +28,7 @@
2828 void EnterCursorScenery();
2929 void ScanInputCursorScenery();
3030 void RenderCursorScenery();
31+ void RenderCursorSceneryFull();
3132 bool IsWindowDivisible(){ return true; }
3233 };
3334
--- trunk/RailSim2.cpp (revision 10)
+++ trunk/RailSim2.cpp (revision 11)
@@ -18,7 +18,7 @@
1818
1919 // 内部定数
2020 extern const float RAILSIM_VERSION = 2.14f; // 本体バージョン
21-extern const char* VERSION_STRING = "2.14"; // 表示バージョン文字列 (2.00a 等のバグ修正コードを含む)
21+extern const char* VERSION_STRING = "2.14a"; // 表示バージョン文字列 (2.00a 等のバグ修正コードを含む)
2222
2323 // 外部グローバル
2424 extern char *g_PluginViewArg;
--- trunk/CCamera.cpp (revision 10)
+++ trunk/CCamera.cpp (revision 11)
@@ -73,6 +73,7 @@
7373 // m_Bank = bank;
7474 m_Dist = dist<0.0f ? m_DefDist : dist;
7575 m_FieldOfView = 0.25f*D3DX_PI;
76+ m_Wheel = 0.0f;
7677 SetCenter();
7778 }
7879
--- trunk/Distribution/en/RailSim2/Help/history.html (revision 10)
+++ trunk/Distribution/en/RailSim2/Help/history.html (revision 11)
@@ -40,7 +40,7 @@
4040 <tr><td class="nowrap">RailSim II<br>Version 2.11</td><td>2009/02/07<br>Added manual control mode and ignore acceleration and deceleration mode.<br>Implemented splitting and merging of trains.<br>2009/04/26 - 2.11 additional description<br>Added new system-defined coordinate systems: "_CAMERA", "_LIGHT" (which enables billboards etc.).<br>2009/06/06 - 2.11a<br>Fixed a problem of wrong data source of Diffuse and Ambient material value in *.x files for RS2 train plugins. cf. material-changer</td></tr>
4141 <tr><td class="nowrap">RailSim II<br>Version 2.12</td><td>2009/11/16<br>Supported downsampling and AVI saving for video (no audio recording yet).<br>Supported rail blocks and speed limit.<br>Implemented stereoscopy mode (switch at configulations mode).<br>Re-ordering in the train list, the car list and the scene list by drag & drop.<br>Fix: on network connection, UDP port should be opened, not TCP.</td></tr>
4242 <tr><td class="nowrap">RailSim II<br>Version 2.13</td><td>2010/11/23<br>The function to move a platform along an object is implemented.<br>The functions to connect platforms dynamically in station plugins (rail-connector, rail-brancher, rail-disconnector) are implemented.<br>Added turntable test, traverser test and point test by a station plugin as sample plugins.<br>Supported select-all by Ctrl + A key on text input.<br>2012/03/20 - 2.13a<br>Bug fix on building multi track railways, causing the first track disappear.</td></tr>
43-<tr><td class="nowrap">RailSim II<br>Version 2.14</td><td>2012/08/28<br>The screen is splittable in neutral mode.<br>In diagram setting, stop position at station can be specified with number.<br>Some bug fix on loading layout data.</td></tr>
43+<tr><td class="nowrap">RailSim II<br>Version 2.14</td><td>2012/08/28<br>The screen is splittable in neutral mode.<br>In diagram setting, stop position at station can be specified with number.<br>Some bug fix on loading layout data.<br>2012/09/09 - 2.14a<br>Fixed a bug of train speed display when using screen division.<br>Fixed a bug that train speed exceeds the plugin setting on speed limit region.<br>Fixed a crash when using line plugins which contain Profile description.<br>Fixed a bug that rail of deleted scene is displayed on another scene.<br>Some bug fix on loading layout data.</td></tr>
4444 </table>
4545 </div>
4646 </div>
--- trunk/Distribution/en/RailSim2/index.html (revision 10)
+++ trunk/Distribution/en/RailSim2/index.html (revision 11)
@@ -34,7 +34,7 @@
3434 <div class="contbox">
3535 <h2>Version 2.14</h2>
3636 <p class="joint">Changes from previous version 2.13a to current 2.14 are below.</p>
37-<p>2012/08/28 - 2.14<br>The screen is splittable in <a href="help/opr_neutral.html">neutral mode</a>.<br>In diagram setting, stop position at station can be specified with number.<br>Some bug fix on loading layout data.</p>
37+<p>2012/08/28 - 2.14<br>The screen is splittable in <a href="help/opr_neutral.html">neutral mode</a>.<br>In diagram setting, stop position at station can be specified with number.<br>Some bug fix on loading layout data.<br>2012/09/09 - 2.14a<br>Fixed a bug of train speed display when using screen division.<br>Fixed a bug that train speed exceeds the plugin setting on speed limit region.<br>Fixed a crash when using line plugins which contain Profile description.<br>Fixed a bug that rail of deleted scene is displayed on another scene.<br>Some bug fix on loading layout data.</p>
3838 </div>
3939 <div class="contbox">
4040 <h2>Index</h2>
--- trunk/Distribution/jp/RailSim2/Help/history.html (revision 10)
+++ trunk/Distribution/jp/RailSim2/Help/history.html (revision 11)
@@ -41,7 +41,7 @@
4141 <tr><td class="nowrap">RailSim II<br>Version 2.11</td><td>2009/02/07<br>マニュアル操作モード・加減速度無視モードを追加。<br>編成の分割・併合機能を実装。<br>2009/04/26 - 2.11 追記<br>システム座標系に "_CAMERA", "_LIGHT" を追加(ビルボード等を実現可能)。<br>2009/06/06 - 2.11a<br>RS2 仕様の車輌プラグインにおいて *.x ファイルの Diffuse, Ambient マテリアル値が使用されていない問題を修正。参考: material-changer</td></tr>
4242 <tr><td class="nowrap">RailSim II<br>Version 2.12</td><td>2009/11/16<br>ビデオ撮影にダウンサンプル機能、AVI 形式保存機能を追加(録音は未対応)。<br>閉塞区間機能および制限速度機能を実装。<br>ステレオ画面機能を実装 (オプション設定で切り替え)。<br>編成リスト、車輌リスト、シーンリストのドラッグ&ドロップによる並び替えに対応。<br>訂正: ネットワーク接続で開放が必要なポートは TCP ではなく UDP の誤りでした。<br>2010/08/15<br>LGPL ライセンスによりオープンソース化。</td></tr>
4343 <tr><td class="nowrap">RailSim II<br>Version 2.13</td><td>2010/11/23<br>プラットフォームをオブジェクトに連動して動かす機能を実装。<br>駅舎プラグインにおいてプラットフォーム同士を動的に接続する機能 (rail-connector, rail-brancher, rail-disconnector) を実装。<br>サンプルプラグインに転車台テスト、遷車台テスト、駅舎プラグインによる分岐テストを追加。<br>テキスト入力時に Ctrl + A キーによる全選択に対応。<br>2012/03/20 - 2.13a<br>複線設置時に 1 本目のレールが正常に表示されなくなるバグを修正。</td></tr>
44-<tr><td class="nowrap">RailSim II<br>Version 2.14</td><td>2012/08/28<br>ニュートラルモードに画面分割機能を追加。<br>ダイヤ設定のホーム停止位置を数値指定できるようにした。<br>レイアウト読み込み時の不具合を一部修正。</td></tr>
44+<tr><td class="nowrap">RailSim II<br>Version 2.14</td><td>2012/08/28<br>ニュートラルモードに画面分割機能を追加。<br>ダイヤ設定のホーム停止位置を数値指定できるようにした。<br>レイアウト読み込み時の不具合を一部修正。<br>2012/09/09 - 2.14a<br>画面分割時に列車速度等が正しく表示されない問題を修正。<br>速度制限時に編成速度がプラグインの設定値を超える不具合を修正。<br>架線プラグインで Profile を記述すると線路延長時に落ちる不具合を修正。<br>削除したシーンのレールが他のシーンに表示される不具合を修正。<br>レイアウト読み込み時の不具合を一部修正。</td></tr>
4545 </table>
4646 </div>
4747 </div>
--- trunk/Distribution/jp/RailSim2/index.html (revision 10)
+++ trunk/Distribution/jp/RailSim2/index.html (revision 11)
@@ -32,9 +32,9 @@
3232 <p>RailSim II をダウンロードしていただきありがとうございます。<br>初めてご利用になる方はまず<a href="help/introduction.html">はじめに</a>をお読みください。</p>
3333 </div>
3434 <div class="contbox">
35-<h2>Version 2.14</h2>
36-<p class="joint">前バージョン 2.13a から 2.14 への変更点は以下の通りです。</p>
37-<p>2012/08/28 - 2.14<br><a href="help/opr_neutral.html">ニュートラルモード</a>に画面分割機能を追加。<br>ダイヤ設定のホーム停止位置を数値指定できるようにした。<br>レイアウト読み込み時の不具合を一部修正。</p>
35+<h2>Version 2.14a</h2>
36+<p class="joint">前バージョン 2.13a から 2.14a への変更点は以下の通りです。</p>
37+<p>2012/08/28 - 2.14<br><a href="help/opr_neutral.html">ニュートラルモード</a>に画面分割機能を追加。<br>ダイヤ設定のホーム停止位置を数値指定できるようにした。<br>レイアウト読み込み時の不具合を一部修正。<br>2012/09/09 - 2.14a<br>画面分割時に列車速度等が正しく表示されない問題を修正。<br>速度制限時に編成速度がプラグインの設定値を超える不具合を修正。<br>架線プラグインで Profile を記述すると線路延長時に落ちる不具合を修正。<br>削除したシーンのレールが他のシーンに表示される不具合を修正。<br>レイアウト読み込み時の不具合を一部修正。</p>
3838 </div>
3939 <div class="contbox">
4040 <h2>目次</h2>
--- trunk/CGameMode.cpp (revision 10)
+++ trunk/CGameMode.cpp (revision 11)
@@ -671,8 +671,11 @@
671671 g_WindDirObject.RenderA(alpha);
672672 }
673673 devResetMatrix();
674- g_StrTex->RenderRight(g_DispWidth*45/100, g_DispHeight-TILE_UNIT,
675- 0xffffffff, 0xff000000, FlashIn("%s: %.1f [m/s]", lang(WindSpeed), MAXFPS*windspeed));
674+ if(ms_ActiveMode!=g_NeutralMode || !g_ConfigMode->IsWindowDiv()){
675+ int vp_w = g_DispWidth, vp_h = g_DispHeight;
676+ g_StrTex->RenderRight(vp_w*45/100, vp_h-TILE_UNIT,
677+ 0xffffffff, 0xff000000, FlashIn("%s: %.1f [m/s]", lang(WindSpeed), MAXFPS*windspeed));
678+ }
676679 }
677680
678681 /*
--- trunk/lib/window.cpp (revision 10)
+++ trunk/lib/window.cpp (revision 11)
@@ -7,6 +7,7 @@
77 #include "debug.h"
88 #include "graphic.h" // sv3.fWindowes
99 #include "window.h"
10+#include "input.h"
1011
1112 #if defined(__BORLANDC__) // for BC++
1213 #define IDI_ICON1 1001
@@ -189,6 +190,7 @@
189190 svw.fActive = (BOOL)wParam;
190191 Debug(svw.fActive ? "<アクティブ>\n" : "<非アクティブ>\n");
191192 if(svw.fActive){
193+ svi.wheel = 0;
192194 ShowCursor(FALSE);
193195 }else{
194196 ShowCursor(TRUE);
--- trunk/CSceneryMode.cpp (revision 10)
+++ trunk/CSceneryMode.cpp (revision 11)
@@ -520,6 +520,7 @@
520520 devTEX_POINT(1);
521521 if(ms_PhotoMode) return;
522522 if(ms_NeedResetViewport) ResetViewport();
523+ RenderCursorSceneryFull();
523524 m_Interface.Render();
524525 GetCamera()->PrintInfo(CameraCtrlExp());
525526 RenderFrame(1);
--- trunk/CTrainGroup.cpp (revision 10)
+++ trunk/CTrainGroup.cpp (revision 11)
@@ -333,7 +333,9 @@
333333 */
334334 float CTrainGroup::CalcSignedSpeedLimit(){
335335 if(m_SpeedLimit<0) return m_EffectTargetSpeed;
336- return m_EffectTargetSpeed<0.0f ? -m_SpeedLimit : m_SpeedLimit;
336+ float abs_limited_speed = fabsf(m_EffectTargetSpeed);
337+ if(abs_limited_speed>m_SpeedLimit) abs_limited_speed = (float)m_SpeedLimit;
338+ return m_EffectTargetSpeed<0.0f ? -abs_limited_speed : abs_limited_speed;
337339 }
338340
339341 /*
Show on old repository browser