• R/O
  • HTTP
  • SSH
  • HTTPS

svg-dll: コミット

SVG (SSTP-Viewer Ghost) 用プラグイン


コミットメタ情報

リビジョンe91001c51b88ae36de829356f3c1feb4f9ad5195 (tree)
日時2003-04-06 22:46:11
作者naru <bottle@mika...>
コミッターnaru

ログメッセージ

Added support for '+' expression

変更サマリ

差分

--- a/SVG.dll.txt
+++ b/SVG.dll.txt
@@ -15,4 +15,5 @@ SSTP-Viewer
1515
1616 ●履歴
1717  1.0 初公開
18- 1.1 ghost.txtをGUIで設定可能
\ No newline at end of file
18+ 1.1 ghost.txtをGUIで設定可能
19+ 1.2 「1:1,2:+,3:+」といった形式の「+」表記に対応
\ No newline at end of file
--- a/SVG.dpr
+++ b/SVG.dpr
@@ -57,7 +57,7 @@ end;
5757 // CanConfigureは、Configureを呼ばれてやることがあるかどうかを返す。
5858 function GetVersion(DLLName: PChar; NameLen: integer;
5959 var Version: integer; var CanConfigure: boolean): integer; cdecl;
60-const ThisDLL = 'SVG Surface Loader for Ver. 1.1';
60+const ThisDLL = 'SVG Surface Loader Ver. 1.2';
6161 begin
6262 Version := 1;
6363 CanConfigure := true;
@@ -68,7 +68,8 @@ end;
6868 function LoadDefinitionFile(Ghost: String;
6969 Surface: integer; FileName: String; out Pos: integer): String;
7070 var Lines, ALine, SurfaceMap: TStringList;
71- i, j, p: integer;
71+ i, j, p, sur, oldpos: integer;
72+ posstr: String;
7273 begin
7374 // 内部関数。ゴースト定義ファイルを解析して、
7475 // 目的のゴーストの含まれたファイルかどうか判断する
@@ -87,7 +88,7 @@ begin
8788 end;
8889
8990 // 目的のゴースト発見
90-
91+ oldpos := 0;
9192 SurfaceMap := TStringList.Create;
9293 try
9394 for i := 1 to Lines.Count-1 do
@@ -99,12 +100,18 @@ begin
99100 p := System.Pos(':', SurfaceMap[j]);
100101 if p = 0 then
101102 Continue;
102- if StrToInt(Copy(SurfaceMap[j], 1, p-1)) = Surface then
103+ sur := StrToInt(Copy(SurfaceMap[j], 1, p-1));
104+ posstr := Copy(SurfaceMap[j], p+1, High(integer));
105+ if posstr = '+' then
106+ Pos := oldpos + 1
107+ else
108+ Pos := StrToInt(posstr);
109+ if sur = Surface then
103110 begin
104- Pos := StrToInt(Copy(SurfaceMap[j], p+1, High(integer)));
105111 Result := ALine[4]; // BMPファイル名
106112 Exit;
107- end;
113+ end else
114+ oldpos := Pos;
108115 except
109116 on EConvertError do; // nothing. 単なるコメント行扱い
110117 end;
旧リポジトリブラウザで表示