Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
andanteyk committed Apr 23, 2017
2 parents e9eea97 + b946956 commit 44c2891
Show file tree
Hide file tree
Showing 37 changed files with 3,592 additions and 227 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
[submodule "DockPanelSuite"]
path = DockPanelSuite
url = https://github.com/andanteyk/dockpanelsuite.git
[submodule "SwfExtractor"]
path = SwfExtractor
url = https://github.com/andanteyk/SwfExtractor.git
22 changes: 14 additions & 8 deletions Browser/FormBrowser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,7 @@ public void SetProxy( string proxy ) {
/// <summary>
/// キャッシュを削除します。
/// </summary>
private void ClearCache() {
private bool ClearCache( long timeoutMilliseconds = 5000 ) {

const int CACHEGROUP_SEARCH_ALL = 0x0;
const int ERROR_NO_MORE_ITEMS = 259;
Expand All @@ -605,7 +605,7 @@ private void ClearCache() {
enumHandle = FindFirstUrlCacheGroup( 0, CACHEGROUP_SEARCH_ALL, IntPtr.Zero, 0, ref groupId, IntPtr.Zero );

if ( enumHandle != IntPtr.Zero && ERROR_NO_MORE_ITEMS == Marshal.GetLastWin32Error() )
return;
return true;

/*/
while ( true ) {
Expand All @@ -621,13 +621,15 @@ private void ClearCache() {

enumHandle = FindFirstUrlCacheEntry( null, IntPtr.Zero, ref cacheEntryInfoBufferSizeInitial );
if ( enumHandle != IntPtr.Zero && ERROR_NO_MORE_ITEMS == Marshal.GetLastWin32Error() )
return;
return true;

cacheEntryInfoBufferSize = cacheEntryInfoBufferSizeInitial;
cacheEntryInfoBuffer = Marshal.AllocHGlobal( cacheEntryInfoBufferSize );
enumHandle = FindFirstUrlCacheEntry( null, cacheEntryInfoBuffer, ref cacheEntryInfoBufferSizeInitial );

while ( true ) {

Stopwatch sw = Stopwatch.StartNew();
while ( sw.ElapsedMilliseconds < timeoutMilliseconds ) {
var internetCacheEntry = (INTERNET_CACHE_ENTRY_INFOA)Marshal.PtrToStructure( cacheEntryInfoBuffer, typeof( INTERNET_CACHE_ENTRY_INFOA ) );

cacheEntryInfoBufferSizeInitial = cacheEntryInfoBufferSize;
Expand All @@ -651,10 +653,11 @@ private void ClearCache() {
returnValue = FindNextUrlCacheEntry( enumHandle, cacheEntryInfoBuffer, ref cacheEntryInfoBufferSizeInitial );
}
}


sw.Stop();
Marshal.FreeHGlobal( cacheEntryInfoBuffer );


return sw.ElapsedMilliseconds < timeoutMilliseconds;
}


Expand Down Expand Up @@ -897,8 +900,11 @@ private void ToolMenu_Other_ClearCache_Click( object sender, EventArgs e ) {
== System.Windows.Forms.DialogResult.OK ) {

BeginInvoke( (MethodInvoker)( () => {
ClearCache();
MessageBox.Show( "キャッシュの削除が完了しました。", "削除完了", MessageBoxButtons.OK, MessageBoxIcon.Information );
bool succeeded = ClearCache();
if ( succeeded )
MessageBox.Show( "キャッシュの削除が完了しました。", "削除完了", MessageBoxButtons.OK, MessageBoxIcon.Information );
else
MessageBox.Show( "時間がかかりすぎたため、キャッシュの削除を中断しました。\r\n削除しきれていない可能性があります。", "削除中断", MessageBoxButtons.OK, MessageBoxIcon.Exclamation );
} ) );

}
Expand Down
10 changes: 9 additions & 1 deletion ElectronicObserver.sln
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
# Visual Studio Express 2013 for Windows Desktop
VisualStudioVersion = 12.0.40629.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ElectronicObserver", "ElectronicObserver\ElectronicObserver.csproj", "{A9ABEC50-1BFC-4C69-87AE-C68DB6004F68}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Browser", "Browser\Browser.csproj", "{87A2B596-57D0-48BB-B522-895782D7A6FC}"
Expand All @@ -9,6 +11,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BrowserLib", "BrowserLib\Br
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinFormsUI", "DockPanelSuite\WinFormsUI\WinFormsUI.csproj", "{C75532C4-765B-418E-B09B-46D36B2ABDB1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SwfExtractor", "SwfExtractor\SwfExtractor\SwfExtractor.csproj", "{44244148-D3FE-4D71-AA8F-CACB54AC53C1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand All @@ -31,6 +35,10 @@ Global
{C75532C4-765B-418E-B09B-46D36B2ABDB1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C75532C4-765B-418E-B09B-46D36B2ABDB1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C75532C4-765B-418E-B09B-46D36B2ABDB1}.Release|Any CPU.Build.0 = Release|Any CPU
{44244148-D3FE-4D71-AA8F-CACB54AC53C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{44244148-D3FE-4D71-AA8F-CACB54AC53C1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{44244148-D3FE-4D71-AA8F-CACB54AC53C1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{44244148-D3FE-4D71-AA8F-CACB54AC53C1}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
Binary file modified ElectronicObserver/Assets.zip
Binary file not shown.
Binary file added ElectronicObserver/Assets/Level/AircraftLevel0.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ElectronicObserver/Assets/Level/AircraftLevel1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ElectronicObserver/Assets/Level/AircraftLevel2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ElectronicObserver/Assets/Level/AircraftLevel3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ElectronicObserver/Assets/Level/AircraftLevel4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ElectronicObserver/Assets/Level/AircraftLevel5.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ElectronicObserver/Assets/Level/AircraftLevel6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added ElectronicObserver/Assets/Level/AircraftLevel7.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 20 additions & 0 deletions ElectronicObserver/Data/FleetData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -458,6 +458,26 @@ public int GetAirSuperiority() {
}
}

/// <summary>
/// 現在の設定に応じて、制空戦力を表す文字列を取得します。
/// </summary>
/// <returns></returns>
public string GetAirSuperiorityString() {
switch ( Utility.Configuration.Config.FormFleet.AirSuperiorityMethod ) {
case 0:
default:
return Calculator.GetAirSuperiorityIgnoreLevel( this ).ToString();
case 1: {
int min = Calculator.GetAirSuperiority( this, false );
int max = Calculator.GetAirSuperiority( this, true );

if ( Utility.Configuration.Config.FormFleet.ShowAirSuperiorityRange && min < max )
return string.Format( "{0} ~ {1}", min, max );
else
return min.ToString();
}
}
}

/// <summary>
/// 現在の設定に応じて、索敵能力を取得します。
Expand Down
2 changes: 1 addition & 1 deletion ElectronicObserver/Data/ShipGroupManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public int GetUniqueID() {

public ShipGroupManager Load() {

ResourceManager.CopyFromArchive( DefaultFilePath.Replace( "\\", "/" ), DefaultFilePath );
ResourceManager.CopyDocumentFromArchive( DefaultFilePath.Replace( "\\", "/" ), DefaultFilePath );

return (ShipGroupManager)Load( DefaultFilePath );
}
Expand Down
14 changes: 14 additions & 0 deletions ElectronicObserver/ElectronicObserver.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,7 @@
<Compile Include="Observer\kcsapi\api_req_sortie\ld_airbattle.cs" />
<Compile Include="Resource\Record\ResourceRecord.cs" />
<Compile Include="Utility\Data\RecordHash.cs" />
<Compile Include="Utility\FleetImageGenerator.cs" />
<Compile Include="Utility\SyncBGMPlayer.cs" />
<Compile Include="Utility\MediaPlayer.cs" />
<Compile Include="Utility\PathHelper.cs" />
Expand Down Expand Up @@ -400,6 +401,12 @@
<Compile Include="Window\Dialog\DialogEquipmentList.Designer.cs">
<DependentUpon>DialogEquipmentList.cs</DependentUpon>
</Compile>
<Compile Include="Window\Dialog\DialogFleetImageGenerator.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Window\Dialog\DialogFleetImageGenerator.Designer.cs">
<DependentUpon>DialogFleetImageGenerator.cs</DependentUpon>
</Compile>
<Compile Include="Window\Dialog\DialogHalloween.cs">
<SubType>Form</SubType>
</Compile>
Expand Down Expand Up @@ -659,6 +666,9 @@
<EmbeddedResource Include="Window\Dialog\DialogEquipmentList.resx">
<DependentUpon>DialogEquipmentList.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Window\Dialog\DialogFleetImageGenerator.resx">
<DependentUpon>DialogFleetImageGenerator.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Window\Dialog\DialogHalloween.resx">
<DependentUpon>DialogHalloween.cs</DependentUpon>
</EmbeddedResource>
Expand Down Expand Up @@ -816,6 +826,10 @@
<Project>{c75532c4-765b-418e-b09b-46d36b2abdb1}</Project>
<Name>WinFormsUI</Name>
</ProjectReference>
<ProjectReference Include="..\SwfExtractor\SwfExtractor\SwfExtractor.csproj">
<Project>{44244148-d3fe-4d71-aa8f-cacb54ac53c1}</Project>
<Name>SwfExtractor</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Expand Down
82 changes: 80 additions & 2 deletions ElectronicObserver/Other/Information/apilist.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

艦これ APIリスト
2014/08夏イベント~2015/11ごろのAPIの情報を参照
2014/08夏イベント~のAPIの情報を参照
未記入は不明か使いどころなし
推測・噂で書いてある点も多々ある、信じすぎないこと
基本的に戦闘APIはapi_req_sortie/battleを参照すること。他の戦闘系APIの説明は情報が古い可能性がある、差分だけチェックすること
Expand All @@ -13,7 +13,79 @@ api_start2 :艦娘・装備固有データその他
api_sortno :図鑑番号
api_name :艦娘名
api_yomi :艦娘名読み
api_stype :艦種
api_stype :艦種ID
api_ctype :艦型ID 以下図鑑より
1=綾波型, 深海棲艦
2=伊勢型
3=加賀型
4=球磨型
5=暁型
6=金剛型
7=古鷹型
8=高雄型
9=最上型
10=初春型
11=祥鳳型
12=吹雪型
13=青葉型
14=赤城型
15=千歳型
16=川内型
17=蒼龍型
18=朝潮型
19=長門型
20=長良型
21=天龍型
22=島風型
23=白露型
24=飛鷹型
25=飛龍型
26=扶桑型
27=鳳翔型
28=睦月型
29=妙高型
30=陽炎型
31=利根型
32=龍驤型
33=翔鶴型
34=夕張型
35=海大VI型
36=巡潜乙型改二
37=大和型
38=夕雲型
39=巡潜乙型
40=巡潜3型
41=阿賀野型
42=(欠番)
43=大鳳型
44=潜特型(伊400型潜水艦)
45=特種船丙型
46=三式潜航輸送艇
47=Bismarck級
48=Z1型
49=工作艦
50=大鯨型
51=龍鳳型
52=大淀型
53=雲龍型
54=秋月型
55=Admiral Hipper級
56=香取型
57=UボートIXC型/呂号潜水艦
58=V.Veneto級
59=秋津洲型
60=改風早型
61=Maestrale級
62=瑞穂型
63=Graf Zeppelin級
64=Zara級
65=Iowa級
66=神風型
67=Queen Elizabeth級
68=Aquila級
69=Lexington級
70=C.Teste級
71=巡潜甲型改二
api_afterlv :改装Lv
api_aftershipid :改装後ID 文字列 "0"=なし
api_taik :耐久 [0]=初期値, [1]=最大値
Expand Down Expand Up @@ -74,6 +146,10 @@ api_start2 :艦娘・装備固有データその他

api_mst_equip_exslot:補強スロットに装備可能なカテゴリ

api_mst_equip_exslot_ship :拡張スロットへの特殊装備
api_slotitem_id :装備ID
api_ship_ids :対象となる艦娘ID []

api_mst_stype :艦船カテゴリ
api_id :カテゴリID(艦船のstypeに対応)
api_sortno :並べ替え順
Expand Down Expand Up @@ -177,6 +253,7 @@ api_start2 :艦娘・装備固有データその他
40=Jet Fighting Bomber
41=Transport Materials
42=Submarine Equipment
43=Multi-purpose Seaplane

1=主砲
2=副砲
Expand Down Expand Up @@ -217,6 +294,7 @@ api_start2 :艦娘・装備固有データその他
40=噴式戦闘爆撃機
41=輸送機材
42=潜水艦装備
43=多用途水上機/水上爆撃機

[2]:カテゴリ
(api_mst_slotitem_equiptype を参照)
Expand Down
36 changes: 28 additions & 8 deletions ElectronicObserver/Other/Information/kcmemo.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
2000≦price<20000
とくに特別なフラグはない。

また、ダイナミック家具割引が有効になる条件は、
price≧100000
値引き後は `int( ( price - 100000 ) * 0.1 )` になる。

#### ケッコンカッコカリ後の耐久値
ケッコン前の最大耐久値及び「最大耐久値の最大値」にのみ依存する。艦種や艦型、ケッコンのタイミングなどの影響は受けない。

Expand Down Expand Up @@ -42,13 +46,18 @@ value = min + ceil( ( max - min ) * ( 0.4 or 0.8 ) * Lv / 99 )
クリスマス・年末・正月に衣装替えした艦娘のデータは ID 901 以降に保存されており、図鑑からのみ参照できる。
~~なお、システム内では 501 以降の艦は深海棲艦として扱われるため、一応深海棲艦扱い。~~ 現在は修正済。

> 2017/04/05 現在、ID: 900-1000 の領域がほぼ枯渇状態にあるため、新しい衣替え艦娘は ID: 900 から降順に追加されていっている。
2015/07/17アップデートによって、艦船マスターデータ(`api_mst_ship`)からデータが削除された。
`api_mst_shipgraph` からのみアクセス可能となった。

2016/05/02 アップデート('16 春イベ)時に、記念日シリーズ(具体的には、記念日夕雲・記念日長波・記念日春雨改・記念日瑞穂)の艦娘がマスターデータに追加された。
理由としては、これらの艦娘には 900 以下のIDが降られており、クライアントに送信するマスターデータのフィルタ処理(ex. ID > 900 の艦娘は送信しない)から抜けてしまったものと考えられる。
(なお、2016/05/03現在、従来の衣替え艦娘領域( 900 < ID < 1000 )はほぼ枯渇状態にある。それがID移動の原因かと考えられる。 )

2017/04/05 アップデートにより、敵艦IDの先頭が 501 → 1501 に変更された。それに伴ってフィルタ処理が変更されたのか、衣替え艦娘のデータがマスターから消滅した。
引き続き図鑑や `api_start2` の画像位置設定からは参照可能。

以下に 2017/03/01 時点における ID と対応する艦娘及び衣装を示す。なお、ID: 900 以降の名称については(参照できないため)公式のものではない。

|ID|艦名|
Expand Down Expand Up @@ -951,6 +960,7 @@ Bismarck dreiに対する魚雷装備・試製51cm連装砲といったものの
|264|「空母機動部隊」西へ!|4-2ボスS勝利1|要(空母or軽母)2/駆逐2
|266|「水上反撃部隊」突入せよ!|2-5ボスS勝利1|要駆逐旗艦、重巡1軽巡1駆逐4
|822|沖ノ島海域迎撃戦|2-4ボスS勝利2|クォータリー(その他扱い)
|854|戦果拡張任務!「Z作戦」前段作戦|2-4・6-1・6-3ボスA勝利各1、6-4ボスS勝利1?|クォータリー
|303|「演習」で練度向上!|演習3
|304|「演習」で他提督を圧倒せよ!|演習勝利5
|302|大規模演習|演習勝利20
Expand Down Expand Up @@ -1006,6 +1016,8 @@ Bismarck dreiに対する魚雷装備・試製51cm連装砲といったものの
* 652: 「特注家具」の調達
* 653: 節分特別任務:節分準備!
* 655: 「彩雲」輸送分解
* 656: 六三一空「晴嵐」隊の編成
* 659: 精鋭「水戦」隊の新編成

以上の任務には、このような特性が存在する。

Expand Down Expand Up @@ -1395,17 +1407,25 @@ Lv. 3 の離島棲鬼には装甲破壊効果はないのではないかと思
両方持っている状態で発動した時、必ずどちらも発動する。(どちらか1つだけ発動することはない)。
大本営曰く併用でより効果が上がるようだが、未検証。

#### 改装時に必要な開発資材
#### 改装時に必要な特殊資材

##### 開発資材

改装に必要な鋼材の量に依存する。
なお、設計図を1枚以上消費する改装においては常に 0 となる。
基本的には、改装に必要な鋼材の量に依存する。

```
if ( 改装設計図が必要 && 鈴谷改二への改装ではない )
return 0;
else if ( 鋼材 < 4500 ) return 0;
else if ( 鋼材 < 5500 ) return 10;
else if ( 鋼材 < 6500 ) return 15;
else return 20;
```

* < 4500 : 0
* < 5500 : 10
* < 6500 : 15
* ≧ 6500 : 20
##### 高速建造材

2015/10/21現在、あてはまるのは翔鶴改二(甲)及び瑞鶴改二(甲)のみ。
ソースコード中に決め打ちされている。
鈴谷改二, 鈴谷航改二が 20 、 それ以外は 0 。

#### 編成登録・展開の挙動

Expand Down
2 changes: 1 addition & 1 deletion ElectronicObserver/Resource/Record/RecordManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ public bool Load( bool logging = true ) {

bool succeeded = true;

ResourceManager.CopyFromArchive( "Record/" + ShipParameter.FileName, MasterPath + "\\" + ShipParameter.FileName );
ResourceManager.CopyDocumentFromArchive( "Record/" + ShipParameter.FileName, MasterPath + "\\" + ShipParameter.FileName );

succeeded &= EnemyFleet.Load( MasterPath );
succeeded &= ShipParameter.Load( MasterPath );
Expand Down
Loading

0 comments on commit 44c2891

Please sign in to comment.